tcp/ip協(xié)議筆記

tcp和ip協(xié)議中三次握手,因?yàn)榭蛻舳撕头?wù)端之間請求,當(dāng)客戶端發(fā)起請求的時(shí)候都會給出序列號,而在服務(wù)端接收到信號之后會給出確認(rèn)號(之前的序列號+1),并且給出自己生成的另外一個(gè)序列號。

在三次握手的過程中一直都是按照雙方生成的序列號來通訊的。每次握手的時(shí)候確認(rèn)號都是在對方的給出的序列號上加一,并且將自己的序列號返回出去。總之,自己不在自己的序列號上加,只在別人的序列號上加,加了的就叫做確認(rèn)號。

然后有時(shí)候網(wǎng)絡(luò)比較忙,對方?jīng)]有回復(fù),可能會再發(fā)一次請求。但是可能存在你發(fā)過去之后對方的就發(fā)信心過來了,存在是否需要重新傳的問題。解決辦法就是在有效時(shí)間中不去重傳。這就是重傳計(jì)時(shí)器的作用

而在tcp報(bào)文中序列號是32bit,確認(rèn)號也是32位的。
確認(rèn)號+序列號+首部長度 +保留位+ 標(biāo)志位
標(biāo)志位:
1.緊急位URG,標(biāo)記為1時(shí),表示這個(gè)報(bào)文是緊急的,為0表示無效,這個(gè)位和緊急指針有關(guān)(為0時(shí)無效)
2.確認(rèn)號有效否ACK,如果為0表示無效,縱觀三次握手中,只有第一次發(fā)起請求的時(shí)候才為0,因?yàn)闆]有確認(rèn)號可以確認(rèn)

  1. 推送位???push
  2. RES重置位,一般不使用,因?yàn)橛酗L(fēng)險(xiǎn)
  3. 同步位為1,表示序列號開始有效,為0表示無效,所以SYN為1,ACK為0,表示第一次握手。但是之后SYN就都為0了,有點(diǎn)容易搞錯(cuò)。所以服務(wù)端和客戶端發(fā)出請求地第一次都是SYN為1
  4. FIN結(jié)束位 因?yàn)樵诰W(wǎng)絡(luò)上,斷開是需要兩邊都斷開,服務(wù)端向客戶端地?cái)嚅_/客戶端向服務(wù)端斷開,所以一方向另外一方發(fā)出斷開請求的時(shí)候,另外一方除了需要確認(rèn)斷開請求,還需要發(fā)送自己的斷開請求

16位窗口大小,其記錄的是雙方的接受能力,比如一次接受5個(gè),但是發(fā)15個(gè)報(bào)文,后面10個(gè)就丟失了。因?yàn)榇翱诖笮兓ɑ瑒哟翱冢孕枰粩啻_認(rèn),并且協(xié)商用最小的。只要在窗口大小合適,報(bào)文就不會丟失。但是窗口大小是什么呢?在計(jì)算機(jī)中能夠處理的能力是有限的,多余的報(bào)文會被儲存在計(jì)算機(jī)的某塊內(nèi)存中,也就是內(nèi)核的緩存區(qū)---沒能夠處理的報(bào)文都放在這里,一一等著處理,也就是網(wǎng)絡(luò)緩存區(qū)(不只是接受,還有發(fā)送也需要緩存 )。

16位TCP校驗(yàn)和 校驗(yàn)整個(gè)TCP報(bào)文
16位緊急指針
選項(xiàng)
數(shù)據(jù)

主機(jī)到主機(jī)

  • 主機(jī)將要請求的進(jìn)程包裝成TCP首部,說明白原進(jìn)程地址和目標(biāo)進(jìn)程地址(保證進(jìn)程間通信)
  • IP首部,說明這個(gè)是哪個(gè)主機(jī)來的,要去哪里(保證網(wǎng)絡(luò)間通信)
  • 原mac地址,和目標(biāo)mac地址 交換機(jī)(保證本地通信)
  • 前導(dǎo)碼,標(biāo)記即將傳導(dǎo)報(bào)文
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容