重點
一、UDP:(用戶數據報協議)
1》將數據及源和目的封裝在數據包中,不需要建立連接
2》每個數據包得大小限制在64KB之內
3》因為無需連接,因此是不可靠協議
4》不需要建立連接,速度快
5》需要的系統(tǒng)資源較少,結構較簡單
二、TCP(傳輸控制協議)
1》需要建立連接,形成傳輸數據的通道
2》在連接中進行大數據傳輸(數據大小不受限制)
3》通過三次握手完成連接,是可靠協議,安全送達,一旦失敗,會由發(fā)送方重新發(fā)送
4》必須建立連接,效率會稍低
5》需要的系統(tǒng)資源較多,結構較為復雜。
三、 TCP 連接時三次握手、斷開時四次揮手
TCP(Transmission Control Protocol,傳輸控制協議)是面向連接的協議,也就是說,在收發(fā)數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常復雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發(fā)出連接請求數據包:“我想給你發(fā)數據,可以嗎?”,這是第一次對話;主機B向主機A發(fā)送同意連接和要求同步(同步就是兩臺主機一個在發(fā)送,一個在接收,協調工作)的數據包:“可以,你什么時候發(fā)?”,這是第二次對話;主機A再發(fā)出一個數據包確認主機B的要求同步:“我現在就發(fā),你接著吧!”,這是第三次對話。三次“對話”的目的是使數據包的發(fā)送和接收同步,經過三次“對話”之后,主機A才向主機B正式發(fā)送數據。
TCP三次握手過程
- 主機A通過向主機B 發(fā)送一個含有同步序列號的標志位的數據段給主機B ,向主機B 請求建立連接,通過這個數據段,主機A告訴主機B 兩件事:我想要和你通信;你可以用哪個序列號作為起始數據段來回應我.
- 主機B 收到主機A的請求后,用一個帶有確認應答(ACK)和同步序列號(SYN)標志位的數據段響應主機A,也告訴主機A兩件事:我已經收到你的請求了,你可以傳輸數據了;你要用哪佧序列號作為起始數據段來回應我。
- 主機A收到這個數據段后,再發(fā)送一個確認應答,確認已收到主機B 的數據段:"我已收到回復,我現在要開始傳輸實際數據了
這樣3次握手就完成了,主機A和主機B 就可以傳輸數據了.3次握手的特點沒有應用層的數據SYN這個標志位只有在TCP建產連接時才會被置1握手完成后SYN標志位被置0
TCP建立連接要進行3次握手,而斷開連接要進行4次
- 當主機A完成數據傳輸后,將控制位FIN置1,提出停止TCP連接的請求
- 主機B收到FIN后對其作出響應,確認這一方向上的TCP連接將關閉,將ACK置1
- 由B 端再提出反方向的關閉請求,將FIN置1
- 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束.
由TCP的三次握手和四次斷開可以看出,TCP使用面向連接的通信方式,大大提高了數據通信的可靠性,使發(fā)送數據端和接收端在數據正式傳輸前就有了交互,為數據正式傳輸打下了可靠的基礎名詞解釋ACK TCP報頭的控制位之一,對數據進行確認.確認由目的端發(fā)出,用它來告訴發(fā)送端這個序列號之前的數據段都收到了.比如,確認號為X,則表示前X-1個數據段都收到了,只有當ACK=1時,確認號才有效,當ACK=0時,確認號無效,這時會要求重傳數據,保證數據的完整性.SYN 同步序列號,TCP建立連接時將這個位置1FIN 發(fā)送端完成發(fā)送任務位,當TCP完成數據傳輸需要斷開時,提出斷開連接的一方將這位置1。