1. 程式人生 > >網路基礎—TCP協議簡介

網路基礎—TCP協議簡介

TCP協議

TCP協議全稱 “傳輸控制協議” ,顧名思義,要對資料的傳輸有一個詳細的控制。
TCP協議段格式
這裡寫圖片描述

1.16位埠號(port number) 源埠號和目的埠號
2.32位序號(sequence number) 第一個、序號值被初始化為某個隨機值ISN(initial sequence number) TCP報文是位元組流第1025~2048位元組,序號值是ISN+1025
3.32位確認號(acknowledgement number) 用作另一方TCP報文段相應。其值是收到TCP報文段序號值加1
4.4位頭部長度(header length)標識TCP頭部有多少個32bit字,最大為15,所以TCP頭部最長60位元組。
5.6位標誌位
URG標誌,表示緊急指標(urgent poinnter)是否有效
ACK標誌,表示確認號是否有效
PSH標誌,提示接收端應用程式應該立即從TCP接收緩衝區中讀走資料,騰衝空間
RST標誌,表示要求對方重新建立連線。 帶此標誌的報文段稱為復位報文段
SYN標誌,表示請求建立一個連線。帶此標誌的報文段稱為同步報文段
FIN標誌,表示通知對方本端要關閉連線了。帶此標誌的報文段稱為結束報文段
6.16位視窗大小(window size) 流量控制 告訴對方還能容納多少個位元組資料
7.16位校驗和(TCP checksum)CRC校驗頭部和資料部分
8.16位緊急指標(urgent pointer) 正偏移量。他和序號欄位的值相加表示最後一個緊急資料的下一位元組的序號.傳送緊急資料的方法。

TCP協議特點

(面向連線、位元組流、可靠傳輸)
1.傳輸層主要的兩個協議 、 UDP協議 和 TCP協議
2.TCP協議通訊,雙方必須建立連線,才開始資料讀寫。雙方要為該連結分配必要的核心資源,用來管理連線的狀態和連線上資料的傳輸。TCP連線是全雙工的(雙方資料讀寫可以通過一個連線),完成後,斷開連線,釋放系統資源。
3.TCP是一對一連線的,廣播多播不能使用TCP服務。 UDP適合廣播
4.TCP模組傳送的TCP報文段個數和應用程式執行寫操作沒有數量關係,可能傳送的資料分片處理。
5.應用程式讀的次數和TCP報文段個數也沒關係。讀的大小,取決於讀緩衝區的大小,TCP按照報文段的序號排好依次放入TCP接受緩衝區中噠。
6.應用程式對資料的傳送和接受是沒有邊界限制的。UDP傳送一次就要讀一次,否則要丟包的,沒有足夠大小的讀緩衝區,那UDP資料會被截斷//
7.TCP採用傳送應答機制,即傳送端傳送的每個TCP報文段必須得到接收方的應答,才認為TCP報文段傳輸成功。
8.TCP採用超時重傳機制,傳送一個TCP報文段後啟動定時器,在定時器時間內未收到應答,則再次傳送。
9.TCP報文段最終是以IP資料報傳送的,而IP資料報到接收端很大可能是無序的重複的,TCP協議將對TCP報文重排,整理,再交給應用層。