抓包演示TCP協議的三次握手過程

2022-06-02 16:27:04 字數 1670 閱讀 7785

written by allen iversion

第一次握手:

客戶端向伺服器問好,問咱倆能不能通訊,並告知伺服器自己的序列號為x,其中x為機器隨機產生的乙個數字。

第二次握手:

伺服器收到來自客戶端的序列號x,當伺服器認為可以與客戶端通訊,就發出回應,置確認號為x+1,並告知客戶端自己的序列號為y,其中y也是隨機生成。

第三次握手:

客戶端接收到來自伺服器的確認號x+1時,知道伺服器答應與自己通訊了,於是置下一次正式傳輸資料開始的序列號為x+1,同時置確認號為y+1,表示告知伺服器我收到你的應答了,資料傳輸可以開始。

三次握手與現實生活中的預約很相似。客人問主人有沒有空接收來訪,主人回應客戶有空就允許客戶來訪。當然,計算機世界裡更文明,主人回應有空的同時還會問客戶什麼時候方便來訪。

經過三次的溝通,大家才達成最後的約定。

下面使用抓包軟體捕捉一次訪問網頁時的資料報。其中本機位址是172.30.0.20,訪問網頁使用的是http協議,而http協議是基於tcp協議的。

注意,tcp協議的資料請求分為三次握手和資料正式傳輸。在正式傳輸資料之前,三次握手的資料報是沒有內容的。

三次握手過程中的資料報(data部分沒有內容),下面是示例

資料傳輸時的資料報(包含http協議的內容):

看第乙個資料報:

源:172.30.0.20:2845——>目的:123.58.176.137:80

序列號=0489031834,確認號=0000000000

第二個資料報:

源:123.58.176.137:80 ——>目的:172.30.0.20:2845

序列號=1527084646,確認號=0489031835(這時看到伺服器回應的確認號=上一次握手客戶端發過來序號+1=0489031834+1)

第三次握手的資料報:

源172.30.0.20:2845——>目的:123.58.176.137:80

序列號=0489031835,確認號=1527084647(這時看到本機回應的確認號=上一次握手伺服器發過來序號+1=1527084646+1)

握手完成後,就開始正式傳輸資料了。下面是本機向伺服器發出http get請求的資料報。

第四次資料報:

源:172.30.0.20:2845——>目的:123.58.176.137:80

序列號:489031835

確認號:1527084647

備註:這裡看到,正式請求資料時,本機使用的是第三次握手生成的序列號和確認號。

第五次資料報——伺服器對第四次資料報的回應:

這時看到伺服器對客戶端的http get請求有回應的資料報,其中

源:123.58.176.137:www-http——>目的:172.30.0.20:2845

序列號=1527084647(伺服器使用客戶端第四次資料報的確認號作為序列號)

確認號=0489032985(這裡的確認號是第四次客戶端的序列號489031835+http包的長度1150=0489032985.)

備註:伺服器可以**下一次序列號seq,因為當前seq加上包體長度即為下一次seq,若下一次客戶端請求資料報中的序列號不為該值,表示該資料報非法。通過序列號和確認號的機制,可以防止資料被挾持的風險。

但這裡也看到,tcp協議的每一次資料傳輸都包含請求與確認,雖然保證了傳輸可靠性,但與upd相比效率要低。upd是另一話題,這裡就不詳細介紹了。

白沙鎮小學「三抓三到位」食堂工作演示文稿

演示文稿第四十七期 白沙鎮小學二0一四年十月十六日 白沙鎮小學 三抓三到位 做好食堂工作 至營養餐開餐以來,白沙鎮小學在食堂安全工作上抓得緊抓得實,始終把食堂安全工作放在學校工作的重要位置,在 管理水平 菜餚口味 服務能力 上花大力氣,進一步提公升了該校食堂服務工作的水平。一是狠抓崗位監督,讓管理水...

客貨車使用者三包協議

部件名稱期限說明備註弓子板1年三包斷裂的給予更換。不包其它一律不給予更換。電機6個月或6000 公里三包電機電樞線燒損 線圈區域性燒損 碳刷 碳刷架 碳刷簧 換向器正常 線圈燒損程度 焦黑程度 比其餘線圈要嚴重很 多 色差較大 這些情況給予更換。不包私自加大電機輪 超載 使用與維護不當造成電機燒壞的...

單位和農戶「門前三包」協議書

協議書為促進我鄉集鎮建設和經濟濟發展,提高居民文明素質和集鎮文明程度,塑造東林形象,構建平安和諧新東林,依照省 市 縣人民 有關規定,各單位和農戶都應承擔一定的責任和義務,為了便於管理,特簽訂協議書如下 一 實行 門前三包 責任制 一 責任範圍 各單位和農戶庭院及附屬建築 臨街單位 按臨街面牆和門面...