1. 程式人生 > 資訊 >京東自營發貨:五糧國賓酒 2 瓶 340 元(雙重優惠疊加)

京東自營發貨:五糧國賓酒 2 瓶 340 元(雙重優惠疊加)

UDP特點:

1.UDP是無連線的,直接進行連線傳輸資料,不需要建立三次握手。

2.UDP是面向報文的

3.UDP沒有擁塞控制

TCP特點:

1.面向連線,傳輸通訊之前需要建立連線。

2.每一條tcp連線只能是點對點

3.tcp提供全雙工通訊,雙方可以同時傳送和接收資料。

4.tcp提供可靠交付,可靠有序,不丟不重

5.tcp面向位元組流

TCP如何實現可靠傳輸:

1.流量控制:控制傳送方的傳送速率,讓接收方能來得及接收。

實現方法:利用滑動視窗機制,接收方根據接收資料的大小,動態調整發送方的傳送視窗的大小,通過設定ack中視窗大小來通知傳送方。

2.擁塞控制:防止過多的資料注入到網路中造成擁塞情況。

TCP三次握手與四次揮手:

三次握手:

第一次握手:客戶端傳送syn以及seq資料包,表示想建立連線。客戶端進入syn_sent狀態。

第二次握手:服務端收到syn包後,傳送ack確認包(syn+1),表示收到連線請求資訊,服務端進入syn_rcvd狀態。

第三次握手:客戶端收到ack確認資訊後,傳送資料,兩邊進入establelish狀態。

四次揮手:

客戶端傳送FIN包,表示斷開連線,客戶端進入time_wait_1狀態。

服務端收到FIN包後,傳送ack確認包,表示收到斷開連線請求,服務端進入close_wait狀態。客戶端接收到進入time_wait_2狀態

過一會後

服務端傳送FIN包,表示斷開連線,服務端進入last_ack狀態。

客戶端傳送ack確認包,表示收到斷開資訊,進入time_wait狀態。服務端收到ack確認包後,就會關閉連線。客戶端需要等待2MSL之後,沒有收到任何資訊,則說明服務端已經關閉連線。就會關閉連線。

為什要三次握手?

如果客戶端傳送的連線請求在網路中延遲了,知道連線建立後才到服務端,服務端會認為是一個新的請求,會發送應答資訊到客戶端,但是客戶端此時並沒有傳送資訊,因此不會應答,服務端收不到則會一直髮送,造成浪費。三次握手,則服務端沒有收到確認資訊的話,就認為客戶端沒有傳送請求。

為什麼四次握手?

服務端傳送確認斷開請求後,會繼續傳送沒有傳送完的資料到客戶端,傳送完成後會發送FIN斷開請求資訊,因此需要四次握手。

為什麼等待2SML時間?

1.保證全雙工通訊的連線能夠可靠關閉。當server端沒有收到客戶端傳送的ack確認斷開連線資訊,會在超時之後重新發送FIN包,那麼如果不等待2MSL時間,關閉連線的話,會收不到server端傳送的資料。造成server端一直重傳,不能關閉的狀態。因此要等待2MSL時間,這個時間內,如果server端傳送資料的話,client端會響應。