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.
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ğerEŞ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.