Published on

TCP Özellikleri ve Segment Yapısı

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

TCP Özellikleri Ve Segment Yapısı

TCP, genel özellikleri ve işlevleri.

1-)Process-to-Process Communication

2 uç sistem arasındaki process’ler arasında iletişimi sağlar. Bu iletişim, port numaraları kullanılarak yapılmaktadır.

2-)reliable, in-order, byte steam:

Güvenilir, sıralı, bayt akışı sunar. Message sınırı yoktur.(Application Layer’dan gelen message’nin boyutu farketmez. Sebebini birazdan öğreneceğiz.)

3-)Pipelined :

TCP, tıkanıklığı ve akışı takip ederek windows size’ı ona göre ayarlar.

4-)Full Duplex Data :

Çift yönlü veri akışı aynı bağlantı üzerinden sağlanır.

5-)Connection-Oriented :

Veri alışverişinden önce uç sistemler arasında 3 aşamalı el sıkışma işlemi gerçekleştirilir.

6-) Flow Controlled :

Gönderici, alıcının bant genişliğine göre kendi hızını ayarlar. Böylece alıcının TCP buffer’ı tıkanmaz ve paketler minimum drop ile aktarılır.

TCP Segment Yapısı

TCP HEADER + DATA = SEGMENT

Aşağıda TCP Header Görseli Görmekteyiz.

Application Layer’dan gelen message segmentasyon işlemi ile ufak parçalara ayrılır daha sonrasında her bir segmente yukarıdaki fotoğrafta görülen TCP header’i eklenilerek Network Layer’e iletilir. Bir TCP Header’i 20-60 byte arasında değişebilir.

Source Port :

Segmenti gönderen process’in port adresidir.

Destination Port :

Segmenti alan process’in port adresidir.

Sequance Number :

Gönderilen/alınan segmentin sıra numarasıdır. Düzensiz şekilde karşı tarafa ulaşan segmentlerin, alıcı tarafında message’yi elde etmek için sırasıyla birleştirilmesi işlemi için kullanılır.

Data Offset / Header Length(HLEN) :

TCP Header’ının uzunluğunu belirtmek için 4 bitlik bir alandır. HLEN alanı header’in uzunluğunu 4-byte’lık(32bit) gruplar halinde ifade eder.Az önce yazdığım gibi TCP Header 20 ile 60 bayt arasında değer alabiliyordu. Eğer header uzunluğu 20 olduğunu varsayalım. HLEN alanı, bu durumda 20 byte’ı 4-byte’lık gruplar halinde sayar (20 ÷ 4 = 5). HLEN alanındaki değer 5 olur.

TCP başlığının en büyük uzunluğu 60 byte’tır. Bu durumda HLEN alanı, 60 byte’ı 4-byte’lık gruplar halinde sayar (60 ÷ 4 = 15). HLEN alanındaki değer 15 olur.

TCP başlığı 40 byte uzunluğundaysa, bu 4-byte’lık 10 grup eder. 40 ÷ 4 = 10 HLEN alanı 10 olur.

TCP başlığı 60 byte uzunluğundaysa, bu 4-byte’lık 15 grup eder. 60 ÷ 4 = 15 HLEN alanı 15 olur.

Control Flags :

  • URG(Urgent Pointer) :
    • Acil(urgent) veri varsa bu flag ayarlanır.
    • Acil veri, normalden önce işlenmesi gereken veridir.
  • ACK(Acklowledgment):
    • Doğrulama(Acklowledgment) flag’idir.
    • Bu flag, alınan bir segmentin doğru bir şekilde teslim alındığını onaylamak için kullanılır.
  • PSH(Push):
    • Alıcıya, verinin tamamının hemen işlenmesi gerektiğini belirtir.
  • RST(Reset):
    • Bağlantıyı sıfırlama (reset) flag’ıdır.
    • RST Flag’ı, bir hata durumunda bağlantıyı sıfırlamak için kullanılmaktadır.
  • SYN(Synchronize):
    • Gönderilen segmentin SYN olduğunu yani bağlantı kurma isteği belirtmek için kullanılır.
    • Yeni bir bağlantı kurulacağı zaman SYN flag’ı ayarlanır.
  • FIN(Finish):
    • Bağlantıyı sonlandırmak için FIN flag’ı kullanılır.
    • İletişim tamamlandığında bağlantıyı sonlandırmak için bu flag ayarlanır.

Window Size :

Gönderilen/Alınan segmentin window boyutunu bayt cinsinden belirtir.

CheckSum :

Bu alan gönderici tarafından doldurulur. Alıcı tarafında bu alan kontrol edilerek alınan segment’de herhangi bir hata olup olmadığı anlaşılır.

URG Pointer:

Bu alan sadece URG Flag’ı ayarlıysa kullanılır. Acil olan verilere işaret etmek için kullanılır. URG Pointer değeri, son acil baytın, bayt numarasını almak için sequance numarasına eklenir.

KAYNAKÇA :

Kurose, James F., & Ross, Keith W. (2017). “Computer Networking: A Top-Down Approach” (7th ed.). Boston: Pearson Education.

www.crnetpackets.com/2016/01/27/the-relation-between-maximum-transmission-unit-mtu-and-the-maximum-segment-size-mss/

www.pynetlabs.com/transmission-control-protocol-tcp-header/