最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

一條視頻講清楚TCP協(xié)議與UDP協(xié)議-什么是三次握手與四次揮手

2023-02-28 13:59 作者:jhfcooper  | 我要投稿

TCP、UDP都屬于傳輸層,是傳輸協(xié)議

TCP基于連接,UDP基于非連接


TCP:在不穩(wěn)定的信道上建立穩(wěn)定的連接

三次握手:

建立連接的過程:

  1. 當客戶端向服務端發(fā)起連接時,會先發(fā)一包syn包連接請求數據,進行詢問,能否建立連接。
  2. 如果服務端同意連接,則回復一包syn+ack包。
  3. 客戶端收到之后回復一包ack包,連接建立

synchronization、acknowledgement


為什么要三次握手而不是兩次握手:

服務端回復完syn+ack之后就建立連接,這是為了防止因為已失效的請求報文,突然又傳到服務器引起錯誤。

兩次握手建立連接會出現(xiàn)問題

客戶端向服務端發(fā)送了一個syn包,來請求建立連接,因為某些未知原因,并沒有到達服務器,在中間某個網絡節(jié)點產生了滯留。

為了建立連接客戶端會重發(fā)syn包。這次的數據包正常送達,服務端回復syn+ack之后建立了連接。

但是第一包數據阻塞的網點節(jié)點,突然恢復,第一包syn包又送達到服務端,這時服務端會誤認為是客戶端又發(fā)起了一個新的連接,從而在兩次握手之后,進入等待數據狀態(tài),服務端認為是兩個連接,而客戶端認為是一個連接,造成了狀態(tài)不一致。

如果在三次握手的情況下,服務端收不到最后的ack包,自然不會認為連接建立成功,所有三次握手本質上來說,就是為了保證在不可靠的網絡鏈路中,建立起可靠的連接。如syn包阻塞重發(fā)會導致服務器創(chuàng)建多重連接,而客戶端只接受唯一連接。從而造成狀態(tài)不一致的情況。


傳輸過程:

丟失某些段,可以要求發(fā)送端重新發(fā)送,

不區(qū)分客戶端和服務端,tcp連接是全雙工,均采用以上機制


四次揮手:

處于連接狀態(tài)的客戶端和服務端,都可以發(fā)起關閉連接請求,此時需要四次揮手來進行連接關閉。

假如客戶端發(fā)起關閉請求

他需要向服務端發(fā)起一包fin包,表示要關閉連接,自己進入終止等待1狀態(tài),這是第一次揮手。

服務端收到fin包,發(fā)送一包ack包,表示自己進入了關閉等待狀態(tài),客戶端進入終止等待2狀態(tài),這是第二次揮手

服務端此時還可以發(fā)送未發(fā)送的數據,而客戶端還可以接收數據,待服務端發(fā)送完數據之后,發(fā)送一包fin包,進入最后確認狀態(tài)。這是第三次揮手。

客戶端收到之后回復ack包,進入超時等待狀態(tài),經過超時時間后關閉連接,而服務端收到ack包后,立即關閉連接。這是第四次揮手。

為什么客戶端需要等待超時時間?

這是為了保證服務端已收到ack包。

  • 因為假設客戶端發(fā)送完最后一包ack包后就釋放了連接,一旦ack包在網絡中丟失,服務端將一直停留在最后確認狀態(tài)。
  • 如果客戶端發(fā)送最后一包ack包后,等待一段時間,這時服務端因為沒有收到ack包,會重發(fā)fin包,客戶端會響應這個fin包,重發(fā)ack包并刷新超時時間。
  • 保證在不可靠的網絡鏈路中,進行可靠的連接斷開確認。

為什么要四次揮手?

  • 由于 TCP 的半關閉(half-close)特性,任何一方都可以在數據傳送結束后,發(fā)出連接關閉的通知,待對方確認后進入半關閉狀態(tài)。當另一方也沒有數據再發(fā)送的時候,則發(fā)出連接關閉通知,對方確認后就完全關閉了TCP連接。
  • 通俗的來說,兩次揮手就可以釋放一端到另一端的 TCP 連接,完全釋放連接一共需要四次揮手。

UDP

建立于非鏈接,將數據包封裝一下,即可發(fā)出

性能損耗少,CPU、內存占用遠小于TCP,穩(wěn)定性弱于TCP

TCP適合傳輸文件、發(fā)送文件、瀏覽網頁

UDP適合域名查詢、語音通話、視頻,以及隧道網絡:VPN等

一條視頻講清楚TCP協(xié)議與UDP協(xié)議-什么是三次握手與四次揮手的評論 (共 條)

分享到微博請遵守國家法律
昆明市| 石泉县| 江达县| 红安县| 清流县| 株洲市| 甘孜| 库伦旗| 海口市| 昌黎县| 修武县| 张掖市| 河源市| 井冈山市| 河东区| 潮州市| 庆元县| 凤城市| 綦江县| 五台县| 辽宁省| 黎城县| 广元市| 镇平县| 大英县| 定远县| 石林| 陆河县| 霍林郭勒市| 舟山市| 和田县| 临汾市| 平昌县| 昌吉市| 壶关县| 永福县| 庆阳市| 凌海市| 通海县| 泽库县| 崇义县|