www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]把TCP首部想象成一封信的信封,每個字段對應(yīng)信封上的不同信息。源端口和目的端口就像寄信人和收信人的門牌號,序列號和確認號相當(dāng)于書信的頁碼編號和回執(zhí)編號。數(shù)據(jù)偏移量可以比作信封上留出的貼郵票位置,保留字段就像信封上預(yù)留的空白區(qū)域。

源端口號 (Source Port - 16 bits)

寄件人的門牌號。 發(fā)送數(shù)據(jù)的應(yīng)用程序在發(fā)送方電腦上的“門牌號”(端口號)。就像快遞單上的寄件人地址,接收方知道這個數(shù)據(jù)是從哪個程序發(fā)來的,好把回信發(fā)給正確的“門牌號”。

目的端口號 (Destination Port - 16 bits)

收件人的門牌號。 接收數(shù)據(jù)的應(yīng)用程序在接收方電腦上的“門牌號”(端口號)。就像快遞單上的收件人地址,接收方的網(wǎng)絡(luò)設(shè)備(TCP/IP協(xié)議棧)根據(jù)這個門牌號,把數(shù)據(jù)包交給正確的程序(比如瀏覽器)。

序列號 (Sequence Number - 32 bits)

包裹的頁碼編號(從第幾頁開始)。 想象你要郵寄一本很厚的書,不得不拆成很多個小包裹。這個編號告訴你當(dāng)前包裹里裝的是這本書的第幾頁(或者第幾塊數(shù)據(jù)), 接收方收到一堆零散的包裹(數(shù)據(jù)包)后,能按照這個編號把它們按順序拼回那本完整的書(原始數(shù)據(jù))。同時,它也用于識別重復(fù)的包裹或丟失的包裹(編號不連續(xù)了)。

確認號 (Acknowledgment Number - 32 bits)

回執(zhí)單上的“下一張期待頁碼”。 當(dāng)收件人收到包裹并檢查無誤后,會發(fā)一個回執(zhí)給寄件人?;貓?zhí)上寫著:“我已收到到第 X 頁(確認號)為止的所有包裹了,請寄下一頁(X+1)給我吧!”,確認對方已收到數(shù)據(jù),并告訴對方接下來希望收到哪個編號的數(shù)據(jù)包。這是 TCP 可靠傳輸?shù)暮诵臋C制!只有當(dāng) ACK 標(biāo)志位(見下面)為 1 時,這個字段才有效。

數(shù)據(jù)偏移 (Data Offset / Header Length - 4 bits)

這張“發(fā)貨單”本身有多長? 單位是 4 字節(jié)。比如,固定部分 20 字節(jié)就是 5 (20/4=5),如果加上選項部分,這個值會變大,告訴接收方,“發(fā)貨單”(TCP 首部)在哪里結(jié)束,后面真正的“貨物”(應(yīng)用層數(shù)據(jù))從哪里開始。

保留 (Reserved - 6 bits)

預(yù)留的空白格子。 暫時沒用,填 0。留給未來可能的新功能,控制位 (Flags - 6 bits, 每個占1) - 最重要的部分之一!這是 6 個獨立的開關(guān)(標(biāo)志位),每個開關(guān)要么開(1)要么關(guān)(0),表示這個 TCP 包的特殊意圖:

URG (Urgent):緊急開關(guān)。 “包裹里有加急物品!” 當(dāng)它打開(1)時,表示這個數(shù)據(jù)包里有需要優(yōu)先處理的緊急數(shù)據(jù)。這時緊急指針字段(見下面)才有效?,F(xiàn)在用的比較少。

ACK (Acknowledgment):確認開關(guān)。 “這是個回執(zhí)單!” 當(dāng)它打開(1)時,表示這個包是用來確認對方發(fā)來的數(shù)據(jù)的。這時確認號字段才有效。絕大多數(shù) TCP 包(除了第一個握手包)這個開關(guān)都是開著的!

PSH (Push):推送開關(guān)。 “別攢著了,趕緊送貨上門!” 發(fā)送方打開(1),要求接收方收到這個包后,立刻把數(shù)據(jù)交給上層應(yīng)用程序,不要等緩沖區(qū)滿了再交。接收方打開(1),表示當(dāng)前數(shù)據(jù)包里的數(shù)據(jù)是應(yīng)用程序要求立即上交的。

RST (Reset):重置開關(guān)。 “出大問題了!趕緊斷線重連!” 當(dāng)連接出現(xiàn)嚴重錯誤(如端口未打開、連接異常)時,會發(fā)送一個打開(1)RST 開關(guān)的包,強制立即終止連接。

SYN (Synchronize):同步/連接請求開關(guān)。 “你好!我想和你建立連接?!?在建立連接(三次握手)時使用。第一次握手(客戶端發(fā)起請求)和第二次握手(服務(wù)器響應(yīng))時,這個開關(guān)是開著的(1)。它用來初始化序列號。

FIN (Finish):結(jié)束開關(guān)。 “我的東西發(fā)完了,再見!” 用于正常關(guān)閉連接(四次揮手)。當(dāng)一方數(shù)據(jù)發(fā)送完畢,就會發(fā)送一個打開(1)FIN 開關(guān)的包,表示它要關(guān)閉自己這一側(cè)的連接。

窗口大小 (Window Size - 16 bits)

收件人的倉庫還有多大空位? 接收方告訴發(fā)送方:“我現(xiàn)在最多還能接收這么多字節(jié)的數(shù)據(jù)(窗口大小值),你別發(fā)多了!” 這個值在通信過程中會動態(tài)變化,TCP 流量控制的核心機制!防止發(fā)送方發(fā)得太快,把接收方的緩沖區(qū)(倉庫)塞爆。 

校驗和 (Checksum - 16 bits)

包裹的防偽封條/完整性標(biāo)簽。 發(fā)送方根據(jù)整個 TCP 包(首部+數(shù)據(jù))的內(nèi)容計算出一個“指紋”(校驗和)。接收方收到后,按照同樣的算法再算一遍,接收方比較自己算的“指紋”和包裹上貼的“指紋”(校驗和字段)。如果不一樣,說明包裹在運輸過程中損壞(比特位出錯了)或者被篡改了,這個包就會被丟棄。保證數(shù)據(jù)傳輸?shù)耐暾浴?nbsp;

緊急指針 (Urgent Pointer - 16 bits)

加急物品在包裹里的位置。 只有當(dāng) URG 開關(guān)打開(1) 時才有效。它指向當(dāng)前數(shù)據(jù)包中緊急數(shù)據(jù)最后一個字節(jié)的位置,告訴接收方應(yīng)用程序,從包的開頭到緊急指針指向的位置是緊急數(shù)據(jù),需要優(yōu)先處理。

選項 (Options - 長度可變,0-40字節(jié))

特殊要求/增值服務(wù)。 可選的附加信息,用于一些高級功能。常見的選項有:

最大報文段長度 (MSS): 在建立連接(握手)時,雙方協(xié)商每個 TCP 包最多能裝多少數(shù)據(jù)(不包括首部)。避免在傳輸路徑中被分片。

窗口縮放因子 (Window Scale): 因為基本窗口大小字段只有 16 位,最大只能表示 65535 字節(jié)。這個選項允許雙方協(xié)商一個縮放因子,將實際窗口大小放大(比如左移若干位),用于高速網(wǎng)絡(luò)。

時間戳 (Timestamp): 用于更精確地計算往返時間和防止序列號回繞,提供 TCP 的擴展功能,優(yōu)化性能或增加特性。

填充 (Padding - 長度可變)

填空格,湊整。 因為 TCP 首部長度必須是 32 (4 字節(jié)) 的整數(shù)倍。如果選項部分的長度不是 4 字節(jié)的整數(shù)倍,就需要在最后用 0 填充一些位,把整個首部長度湊齊,確保首部對齊,便于硬件處理。

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在工業(yè)自動化領(lǐng)域,Modbus協(xié)議憑借其開放性和易用性成為設(shè)備通信的"通用語言"。然而,當(dāng)工程師面對Modbus RTU、ASCII和TCP三種變體時,如何根據(jù)具體場景做出最優(yōu)選擇?本文將從編碼機制、通信效率、錯誤檢測等...

關(guān)鍵字: Modbus協(xié)議 TCP

TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)是指能夠在多個不同網(wǎng)絡(luò)間實現(xiàn)信息傳輸?shù)膮f(xié)議簇。TCP/IP協(xié)議不僅僅指的是TCP 和I...

關(guān)鍵字: TCP IP

三次握手的目的,確保雙方都能正常通信,確認雙方的發(fā)送和接收能力正常??赡芘e一個生活中的例子,比如打電話時的確認過程。

關(guān)鍵字: TCP 通信

服務(wù)器接收請求是一個涉及網(wǎng)絡(luò)層(IP/端口綁定)、傳輸層(UDP/TCP/TLS 適配)、應(yīng)用層(SIP 協(xié)議解析)

關(guān)鍵字: 服務(wù)器 TCP UDP

在TCP(傳輸控制協(xié)議)網(wǎng)絡(luò)通信中,粘包問題一直是開發(fā)者需要面對和解決的難題。TCP粘包,即發(fā)送方多次寫入的數(shù)據(jù)在接收方被讀取時,多個數(shù)據(jù)包粘合在一起,導(dǎo)致接收方難以正確解析和處理數(shù)據(jù)。這種問題的出現(xiàn),主要源于TCP的傳...

關(guān)鍵字: TCP 粘包

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是互聯(lián)網(wǎng)中廣泛使用的可靠傳輸協(xié)議,它通過三次握手過程來確保通信雙方能夠建立一個可靠的連接。然而,在復(fù)雜的網(wǎng)絡(luò)環(huán)境中,TCP三次握手過程可能...

關(guān)鍵字: TCP 傳輸控制協(xié)議

舊金山2024年7月22日 /美通社/ -- 百度國際旗下基于深度學(xué)習(xí)技術(shù)的智能廣告平臺MediaGo今天宣布,對平臺的SmartBid智能出價產(chǎn)品進行全面升級,推出了最大轉(zhuǎn)化出價模式,旨在保證成本可控的同時,最大限度提...

關(guān)鍵字: MEDIA GO TCP PERFORMANCE

本次直播活動旨在紀念那些為現(xiàn)代互聯(lián)網(wǎng) 奠定基礎(chǔ)的發(fā)展 新澤西州皮斯卡特維2024年5月13日 /美通社/ -- 旨在通過推動技術(shù)進步以造福人類的全球最大技術(shù)專業(yè)組...

關(guān)鍵字: IEEE 互聯(lián)網(wǎng) TCP GOOGLE

TCP 是基于連接的數(shù)據(jù)流的協(xié)議,先建立連接再進行通信,而且在通信過程中會檢查數(shù)據(jù)是否發(fā)送成功。優(yōu)點就是保證數(shù)據(jù)的完整性和準(zhǔn)確性,缺點就是效率較低。

關(guān)鍵字: TCP 數(shù)據(jù)流 協(xié)議

在進行socket通信開發(fā)時,一般會用到TCP或UDP這兩種傳輸層協(xié)議,UDP(User Datagram Protocol)是一種面向無連接的協(xié)議,在數(shù)據(jù)發(fā)送前,不需要提前建立連接,它可以更高效地傳輸數(shù)據(jù),但可靠性無法...

關(guān)鍵字: socket TCP UDP
關(guān)閉