源埠(source port),目標埠(destination port) 各2位元組
源埠號,標識主機上發起傳送的應用程式;目的埠標識主機上傳送要到達的應用程式。源端和目的端的埠號,用於尋找發端和收端應用程序。這兩個值加上i p首部中的源端i p位址和目的端i p位址唯一確定乙個tcp連線。乙個i p位址和乙個埠號有時也稱為乙個插口(socket),插口對(socket pair)(包含客戶i p位址、客戶端口號、伺服器 i p位址和伺服器端口號的四元組 )可唯一確定網際網路絡中每個tcp連線的雙方。ip+tcp埠唯一確定乙個tcp連線。
tcp協議通過使用"埠"來標識源端和目標端的應用程序。 埠號可以使用0到65535之間的任何數字。在收到服務請求時,作業系統動態地為客戶端的應用程式分配埠號。在伺服器端,每種服務在"眾所周知的端 口"(well-know port)為使用者提供服務。
封包序號(sequence number) 4位元組
由於 tcp 封包必須要帶入 ip 封包當中,所以如果 tcp 資料太大時(大於 ip 封包的容許程度), 就得要進行分段。這個 sequence number 就是記錄每個封包的序號,可以讓收受端重新將 tcp 的資料組合起來。
序號欄位的值則指的是本報文段所傳送的資料的第乙個位元組的序號。
確認號(acknowledge number) 4位元組
為了確認主機端確實有收到我們 client 端所送出的封包資料,我們 client 端當然希望能夠收到主機方面的響應,那就是這個 acknowledge number 的用途了。 當 client 端收到這個確認碼時,就能夠確定之前傳遞的封包已經被正確的收下了。這個號是期望收到對方的下乙個報文段的資料的第乙個位元組的序號。
資料偏移(data offset)4位元
和ip資料報頭部一樣,也有個options欄位,長度是不固定的,而為了要確認整個tcp封包大小,就需要這個標誌來說明整個封包區段的起始位置。
這個字段指出tcp報文段的資料起始處距離 tcp報文段的起始處有多遠。「資料偏移」的單位不是位元組而是32bit字(4位元組為計算單位)。
沒有任何選項欄位的tcp頭部長度為20位元組;最多可以有60位元組的tcp頭部。
保留字段(reserved) 佔6位元
保留為今後使用,但目前應置為0。
狀態控制碼(code,control flag)
標誌位欄位(u、a、p、r、s、f):佔6位元。各 位元的含義如下:
滑動視窗(window) 佔2位元組
視窗字段用來控制對方傳送的資料量,可以告知對方目前本身有的緩衝器容量(receive buffer) 還可以接收封包。當 window=0 時,代表緩衝器已經額滿,所以應該要暫停傳輸資料。單位為位元組。tcp連線的一端根據設定的快取空間大小確定自己的接收視窗大小,然後通知對方以確定對方的傳送視窗的上限,這個值是本機期望一次接收的位元組數。
tcp校驗和(checksum) 佔2位元組
當資料要由傳送端送出前,會進行乙個檢驗的動作,並將該動作的檢驗值標註在這個欄位上; 而接收者收到這個封包之後,會再次的對封包進行驗證,並且比對原傳送的 checksum 值是否相符,如果相符就接受,若不符就會假設該封包已經損毀,進而要求對方重新傳送此封包!在計算檢驗和時,要在tcp報文段的前面加上12位元組的偽首部。
緊急指標(urgent pointer) 佔2位元組
這個欄位是在 code 欄位內的 urg = 1 時才會產生作用。可以告知緊急資料所在的位置(緊急指標指出在本報文段中的緊急資料的最後乙個位元組的序號)。
選項(options) 長度可變。
tcp首部可以有多達40位元組的可選資訊,用於把附加資訊傳遞給終點,或用來對齊其它選項。
目前此字段僅應用於表示接收端可以接收的最大資料區段容量,若此字段不使用, 表示可以使用任意資料區段的大小。 這個欄位較少使用。
tcp首部的主要選項:
最大報文段長度mss(maximum segment size)是tcp報文段中的資料字段的最大長度。mss告訴對方tcp:「我的快取所能接收的報文段的資料字段的最大長度是mss個位元組。」
填充字段(padding)
如同 ip 封包需要有固定的 32bits 表頭一樣, options 由於欄位為非固定, 所以也需要 padding 欄位來加以補齊才行。同樣也是 32 bits 的整數。
這是為了使整個首部長度是4位元組的整數倍。
IP資料報首部格式
1.ip資料報首部的固定部分中的各欄位 1 版本佔4位,指ip協議的版本。通訊雙方使用的ip協議的版本必須一致。目前廣泛使用的ip協議版本號為4 即ipv4 關於以後要使用的ipv6 即版本6的ip協議 我們將在後面的4.6節討論。2 首部長度佔4位,可表示的最大十進位制數值是15。請注意,首部長度...
ip首部TCP首部
ip資料報的首部 version 版本號 如ipv4,ipv6 ihl inernet header length,ip包頭的長度 4位元組為1個單位來記錄 type of service 服務型別 d 若為0表示一般延遲,若為1表示為低延遲,t 若為0表示一般傳輸量,若為1表示高傳輸量 r 若為0...
TCP資料報格式
tcp 提供一種面向連線的 全雙工的 可靠的位元組流服務。在乙個tcp 連線中,僅有兩方進行彼此通訊。廣播和多播不能用於tcp。tcp 的接收端必須丟棄重複的資料。tcp 對位元組流的內容不作任何解釋。對位元組流的解釋由tcp 連線雙方的應用層解釋。tcp 通過下列方式來提供可靠性 應用資料被分割成...