3.1. Başlık Biçimi

TCP veri bölütleri Genel Ağ veri katarları olarak gönderilir. Genel Ağ Protokolünün başlığı [2] kaynak ve hedef konakların adreslerinin de içinde bulunduğu çeşitli bilgi alanları içerir. Genel Ağ Protokolünün başlığını TCP'ye özgü bilgi sağlayan TCP başlığı izler. Bu kısım TCP'ye ek olarak başka konak seviyesi protokollerin varlığına da izin verir.

Şekil 3. TCP Başlık Biçimi
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  <=  Bitler
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Kaynak Port          |          Hedef Port           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Sıra Numarası                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Alındı Numarası                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Veri |           |A|A|G|B|E|S|                               |
|Başlan-|  Yedek    |C|L|İ|Ş|Ş|O|            Pencere            |
|gıcı   |           |L|N|T|T|Z|N|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Sağlama Özeti           |      Aciliyet Göstergesi      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Seçenekler                    |    Dolgu      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             veri                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         TCP Başlık Biçimi

Kaynak Port: 16 bit

Kaynak port numarası

Hedef Port: 16 bit

Hedef port numarası

Sıra Numarası: 32 bit

Bu veri bölütündeki ilk veri sekizlisinin sıra numarası (EŞZ varlığı hariç). Eğer EŞZ varsa sıra numarası ilk sıra numarasıdır (İSN) ve ilk veri sekizlisi de İSN+1'dir.

Alındı Numarası: 32 bit

ALN denetim biti etkinse bu alan veri bölütü göndericisinin alacağı umulan sonraki sıra numarasını içerir. Bir bağlantı kurulduğu anda bu daima gönderilir.

Veri Başlangıcı: 4 bit

TCP Başlığındaki 32 bitlik sözcüklerin sayısı. Bu verinin başladığı yeri belirtir. TCP başlığı (bir seçenek içerse bile) 32 bitlik bir sayıdır.

Yedek: 6 bit

İlleride kullanmak üzere yedek. Sıfır olmalı.

Denetim bitleri: 6 bit (soldan sağa):

ACL:  Aciliyet Göstergesi alanı önemli
ALN:  Alındı alanı önemli
GİT:  Gitsin işlevi
BŞT:  Bağlantıyı baştan al
EŞZ:  Sıra numaralarını eşzamanla
SON:  Göndericide başka veri yok

Pencere: 16 bit

veri bölütü göndericisinin kabul etmeye hazır olduğunu belirttiği alındı alanı ile başlayan veri sekizliklerinin sayısı.

Sağlama Özeti: 16 bit

Başlık ve metindeki 16 bitlik sözcüklerin bire tümleyen toplamının bire tümleyenini içeren 16 bitlik sağlama özeti alanı. Eğer bir veri bölütü sağlama toplamı alınmak üzere başlık ve metin olarak tek sayıda sekizli içeriyorsa, sağlama özetinin amaçlarına uygun olarak 16 bitlik biçimi sağlamak için son sekizlinin sağındaki alan sıfırlarla doldurulur. Dolgu olarak kullanılan sekizli veri bölütünün parçası olarak aktarılmaz. Sağlama özeti hesaplanırken sağlama özeti alanının kendisi sıfırlarla doldurulur.

Ayrıca sağlama özeti kavramsal olarak TCP başlığına önek olarak 96 bitlik sözde başlık bilgisini de içerir. Bu sözde başlık bilgisi Kaynak Adres, Hedef Adres, Protokol ve TCP uzunluğunu içerir. Bu, yanlış yollanmış veri bölütlerine karşı TCP koruması sağlar. Bu bilgi Genel Ağ Protokolü tarafından taşınır ve TCP tarafından IP'ye yapılan çağrıların sonuçlarında veya bağımsız değişkenlerinde TCP/ağ arayüzüne aktarılır.

+--------+--------+--------+--------+
|           Kaynak Adres            |
+--------+--------+--------+--------+
|            Hedef Adres            |
+--------+--------+--------+--------+
|  sıfır | SBB Uz |  TCP Uzunluğu   |
+--------+--------+--------+--------+

TCP Uzunluğu, TCP başlık uzunluğu ile sekizliler cinsinden veri uzunluğunun toplamıdır (Bu miktar bilgisi doğrudan aktarılmaz, hesaplanır) ve sözde başlığın 12 sekizlisi sayılmaz.

Aciliyet Göstergesi: 16 bit

Bu alan, bu veri bölütündeki sıra numarasından pozitif mesafe olarak aciliyet göstericisinin o anki değerini nakleder. Aciliyet göstericisi acil verinin başındaki sekizlinin sıra numarasını gösterir. Bu alan sadece ACL denetim biti etkin olan veri bölütlerinde yorumlanır.

Seçenekler: değişken

Seçenekler TCP başlığının sonunda 8 bitin katları olarak yer işgal edebilir. Tüm seçenekler sağlama özetinde içerilir. Bir seçenek herhangi bir sekizlinin sınırından başlayabilir. Bir seçeneğin biçimi ile ilgili iki durum vardır:

  • 1. durum: Seçenek çeşidini içeren tek bir sekizli.
  • 2. durum: Seçenek çeşidi için bir, seçenek uzunluğu için bir sekizli ve asıl seçenek verisi sekizlileri.

Seçenek uzunluğu olarak, çeşit bir ve uzunluk iki saydıktan sonra asıl veri sekizlileri sayılır.

Seçenek listesinin veri başlangıcı alanının gerektirdiğinden daha kısa olabileceği gözden uzak tutulmamalıdır. Başlık içeriği, "Seçenek Listesi Sonu" seçeneğinden sonra başlık dolgu karakteri (örn, sıfır) ile doldurulmalıdır.

Bir TCP tüm seçenekleri gerçeklemelidir.

Şimdilik tanımlı seçenekler şunlardır (çeşit sekizli cinsinden belirtilir):

Çeşit     Uzunluk    Anlamı
-----     -------    -------
  0          -       Seçenek Listesi Sonu.
  1          -       İşlem Yok.
  2          4       Azami Veri bölütü Boyu.

Özel Seçenek Tanımları
Seçenek Listesi Sonu
+--------+
|00000000|
+--------+
  Çeşit=0

Bu seçenek kodu Seçenek listesinin sonunu belirtir. Bu, Veri Başlangıcı alanı ile ilgili TCP başlığının sonu ile çakışık olmayabilir. Bu, her seçeneğin sonunda değil, bütün seçeneklerin sonunda kullanılır ve sadece TCP başlığının sonu ile seçeneklerin sonu çakışık değilse kullanımına ihtiyaç duyulur.

İşlem Yok
+--------+
|00000001|
+--------+
  Çeşit=1

Bu seçenek kodu seçenekler arasında kullanılabilir, örneğin sonraki seçeneğin sözcük sınırına hizalanmasında. Göndericilerin bu seçeneği kullanacağının hiç bir garantisi yoktur, bu yüzden alıcılar bir sözcük sınırından başlamasa bile tüm seçenekleri işleme sokabilmeye hazır olmalıdır.

Azami Veri bölütü Boyu
+--------+--------+---------+--------+
|00000010|00000100|    azm vb boyu   |
+--------+--------+---------+--------+
  Çeşit=2   Uzunluk=4

Azami Veri bölütü Boyu Seçenek Verisi: 16 bit

Bu seçenek mevcutsa, seçenekle bu veri bölütünü gönderen TCP'deki azami alım veri bölütü boyu nakledilir. Bu alan sadece ilk bağlantı isteğinde (örn, EŞZ denetim bitli veri bölütlerinde) gönderilmelidir. Bu seçenek kullanılmamışsa her veri bölütü boyuna izin verilir.

Dolgu: değişken

TCP başlığının 32 bitlik olmasını sağlamak için dolgu yapılır. Doldurma işleminde sıfırlar kullanılır.