TCP定義
TCP代表 傳輸控制協議。它是一種傳輸層協議,有助于將數據包從源傳輸到目標。它是一種面向連接的協議,這意味著它在網絡中的計算設備之間發生通信之前建立連接。此協議與IP協議一起使用,因此它們一起稱為 TCP/IP。
TCP的主要功能是從應用層獲取數據。然后,它將數據分成幾個數據包,為這些數據包提供編號,最后將這些數據包傳輸到目的地。另一方面,TCP將重新組裝數據包并將其傳輸到應用層。眾所周知,TCP是一種面向連接的協議,因此連接將保持建立狀態,直到發送方和接收方之間的通信未完成。
TCP的工作原理
為了確保每條消息完好無損地到達其目標位置,TCP/IP 模型將數據分解成小包,然后在另一端將這些包重新組裝成原始消息。與一次性發送所有內容相比,以小塊信息的形式發送信息可以更輕松地保持效率。
將特定消息分解為數據包后,如果一條路線堵塞但目的地保持不變,則這些數據包可能會沿多條路線傳輸。
我們可以看到消息被分解,然后在目的地以不同的順序重新組裝
例如,當用戶在世界某個地方的互聯網上請求網頁時,服務器會處理該請求并將 HTML 頁面發送回該用戶。服務器使用稱為 HTTP 協議的協議。然后 HTTP 請求 TCP 層設置所需的連接并發送 HTML 文件。
TCP協議的特點
以下是TCP協議的功能:
傳輸層協議
TCP是一種傳輸層協議,因為它用于將數據從發送方傳輸到接收方。
可靠
TCP是一種可靠的協議,因為它遵循流和錯誤控制機制。它還支持確認機制,該機制檢查數據的狀態和聲音到達。在確認機制中,接收方向發送方發送正確認或負確認,以便發送方可以了解數據包是否已收到或需要重新發送。
維護數據的順序
此協議確保數據以發送的相同順序到達預期的接收器。它對每個段進行排序和編號,以便目標端的TCP層可以根據它們的順序重新組裝它們。
面向連接
它是一種面向連接的服務,這意味著數據交換僅在連接建立后發生。數據傳輸完成后,連接將終止。
全雙工
它是全雙工意味著數據可以同時在兩個方向上傳輸。
面向流
TCP是一種面向流的協議,因為它允許發送方以字節流的形式發送數據,也允許接收方以字節流的形式接受數據。TCP創建了一個環境,其中發送方和接收方都通過稱為虛擬電路的假想管連接。這個虛擬電路在互聯網上傳輸字節流。
需要傳輸控制協議
在網絡模型的分層架構中,整個任務被劃分為較小的任務。每個任務都分配給處理該任務的特定層。在 TCP/IP模型中,有五層是應用層、傳輸層、網絡層、數據鏈路層和物理層。傳輸層在為直接應用程序進程提供端到端通信方面起著關鍵作用。它創建65,000個端口,以便可以同時訪問多個應用程序。它從上層獲取數據,并將數據分成較小的數據包,然后將它們傳輸到網絡層。
技術合作計劃的工作
在TCP中,連接是使用三次握手建立的??蛻舳税l送帶有序列號的段。作為回報,服務器使用自己的序列號以及確認序列發送其段,確認序列比客戶端序列號多一個。當客戶端收到其段的確認時,它會將確認發送到服務器。這樣,在客戶端和服務器之間建立了連接。
技術合作計劃的優勢
它提供面向連接的可靠服務,這意味著它保證了數據包的傳遞。如果數據包在網絡上丟失,則TCP將重新發送丟失的數據包。
它提供了一種使用滑動窗口協議的流控制機制。
它通過使用校驗和提供錯誤檢測,并使用返回或ARP協議提供錯誤控制。
它通過使用網絡擁塞避免算法來消除擁塞,該算法包括各種方案,例如加性增加/乘法減少(AIMD)、慢啟動和擁塞窗口。
TCP的缺點
它增加了大量的開銷,因為每個分段都有自己的TCP標頭,因此路由器的分段會增加開銷。
TCP標頭格式
源端口:它定義發送數據的應用程序的端口。因此,此字段包含源端口地址,即16位。
目標端口:它定義接收端應用程序端口。因此,此字段包含目標端口地址,即16位。
序列號:此字段包含特定會話中數據字節的序列號。
確認編號:設置ACK標志后,它包含數據字節的下一個序列號,并用作對先前接收數據的確認。例如,如果接收方收到段號“x”,則它會響應“x+1”作為確認號。
赫倫:它指定標頭中4字節字指示的標頭的長度。標頭的大小介于20到60字節之間。因此,此字段的值將介于5和15之間。
保留:它是一個保留供將來使用的4位字段,默認情況下,所有字段都設置為零。
標志 有六個控制位或標志:
URG:它代表一個緊急指針。如果已設置,則緊急處理數據。
ACK:如果ACK設置為0,則表示數據包不包含確認。
PSH:如果設置了此字段,則它請求接收設備將數據推送到接收應用程序,而不對其進行緩沖。
RST:如果已設置,則它請求重新啟動連接。
SYN:它用于在主機之間建立連接。
FIN:它用于釋放連接,不會發生進一步的數據交換。
WINDOW大小
這是一個16位字段。它包含接收器可以接受的數據大小。此字段用于發送方和接收方之間的流量控制,還確定接收方為段分配的緩沖區量。此字段的值由接收方確定。
校驗和
這是一個16位字段。此字段在UDP中是可選的,但在TCP/IP的情況下,此字段是必填字段。
緊急指針它是指向緊急數據字節的指針
(如果URG標志設置為1)。它定義一個值,該值將添加到序列號中,以獲取最后一個緊急字節的序列號。
選項它提供了其他選項??蛇x字段以32位表示。如果此字段包含的數據小于32位,則需要填充才能獲取剩余位。