TCP三次握手與四次揮手與UDP內部工作機制

2021-09-20 03:18:58 字數 995 閱讀 8940

**:

圖中這是乙個網路層的資料報結構,從它已經有ip報頭看得出來。本文主講傳輸層中tcp與udp的報頭格式,先來看tcp的報頭。從源埠與目標埠,基礎的在前面的文章中都有講解。下乙個sequence number序列號,它用於將我們的文字等序列化成二進位制位元流傳輸時在目標端進行反序列化所使用的。acknowledge number是確認號,是tcp獨有的,因為其特殊的機制而存在。每次tcp報文傳送過去之後需要對端返回acknowledge確認號才可以繼續傳輸。window用來表示針對於對端能夠接收的流量大小的多少以起到最大網路頻寬利用率的效果。

那麼tcp協議中雙方的埠是由誰來指定的呢,乙個tcp的會話本機埠通常為自動分配的,目標埠也是對應受訪問的服務。埠的範圍是1~65535,通常1~10000左右的埠現在是已經被常見應用程式所占用的,1~1023則被系統服務所使用。

看tcp三次握手工作原理,如圖所示。主機a想要與主機b進行tcp通訊,首先他需要向b傳送乙個syn同步序列編號syncsynchronized squsequence number用來標記保持同步,到這裡第一次握手就結束了。第二次握手開始,主機b向a傳送乙個syn同步序列號和ack確認號確認號為a主機傳送的syn號+1,到這裡第二次握手結束。第三次握手開始主機a向主機b傳送ack確認碼為主機b的syn號+1,到此為止三次握手結束進入established狀態,開始進行資料傳輸。

主機a想要向主機b結束tcp長連線,第一次揮手傳送fin請求,第一次揮手結束。第二次揮手開始,主機b向主機a傳送ack確認碼,為fin號+1到這裡第二次揮手結束。第三次握手開始主機b向a傳送fin號結束。第四次揮手開始主機a向b傳送ack號為fin+1,這時tcp連線結束。

tcp連線同樣具備快取機制,這裡叫緩衝。當a向b傳送的報文超過b的win_size時,溢位的資料報將被廢棄,此時b需要向a返回乙個接收到最新的資料報序列號的ack,a收到後將會從ack起始位置開始傳輸,此時傳輸數量就是b的ack號減去已經發包數量,這也就是b的緩衝區所能容納的資料報的大小。這就是tcp中的視窗滑動機制,通俗的說就是自適應緩衝區大小。

Tcp三次握手與四次揮手

tcp三次握手 四次揮手 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 syn 同步序列編號 synchronize sequence numbers 第二次...

TCP三次握手與四次揮手

也許三次握手你會經常聽到,但你知道三次握手的真正意義嗎,為什麼需要三次握手呢?首先我們必須明白tcp是面向連線的協議,無論哪乙個方向在傳送資料之前,都必須先在雙方之間建立連線。這一點與udp協議是不一樣的,udp在傳送資料報之前是不需要建立連線的。建立tcp連線的過程中,通訊的雙方需要互相發報文進行...

tcp三次握手與四次揮手

一.tcp三次握手 簡述 a傳送乙個請求給b,b發回確認,然後a再加以確認,來回共3次 1 第一次握手 客戶端傳送syn包 syn x 到伺服器,並進入syn send狀態,等待伺服器確認。2 第二次握手 伺服器收到syn包之後,必須確認客戶的syn ack x 1 同時自己也傳送乙個syn syn...