传输层的TCP和UDP
傳輸層的TCP和UDP
- TCP和UDP協議
- TCP報文段
- TCP的三次握手
- TCP的四次斷開
- TCP的常用端口號及其功能
- UDP的常用端口號及其功能
TCP和UDP協議
TCP(Transmission Control Protocol)傳輸控制協議
UDP(User Datagram Protocol)用戶數據報協議
TCP協議
■TCP是面向連接的,可靠的進程到進程通信的協議
■TCP提供全雙工服務,即數據可在同一時間雙向傳輸
TCP是面向連接的,可靠的進程到進程通信的協議,TCP提供全雙工服務,即數據可在同一時間雙向傳輸,每一個TCP都有發送緩存和接收緩存,用來臨時存儲數據。
UDP協議
●無連接、不可靠的傳輸協議
●花費的開銷小
UDP協議是無連接,不保證可靠性的傳輸層協議。發送端不關心發送的數據是否到達目標主機,數據是否出錯等,收到數據的主機也不會告訴發送方是否接收到了數據,它的可靠性由上層協議來保障。傳輸數據更快,效率更高。
面向連接網絡協議,是指通信雙方之間在進行通信之前要先建立連接。比如打電話,雙方通話前需要先建立連接。
無連接網絡協議,是指通信雙方不需要事先建立一條通信線路,而是把每個帶有目的地址的包送到網絡線路上,有系統自主選定路線進行傳輸。比如qq,微信發送信息。
TCP報文段
TCP報文段
●TCP將若干個字節構成一個分組,叫報文段
●TCP報文段封裝在IP數據報中
源端口號:發送方進程的端口號。
目標端口號:接收端進程的端口號。接收端收到數據段后,根據這個端口號來確定把數據送給哪個應用程序的進程。
序號:發送端將每個字節進行編號,便于接收方正確重組。
當TCP從進程接收數據字節時,把它們分片成數據段存儲在發送緩存中,并對每一個字節進行編號。當數據達到目的地后,接收端會按照這個序號把數據重新排列,保證數據正確。
確認號:對發送方的確認消息。
接收端響應消息的時候會用它來告訴發送端這個序號的數據段都已經收到,如果確認號是X,就是表示前X-1個數據段都已收到。
首部長度:用來表示TCP數據包頭長度,一般20字節,但是首部長度最多可以擴大到60字節(根據選項來擴展)。
控制位:
URG: 緊急位。緊急指針有效位,配合緊急指針使用。
ACK: 確認位。當ACK=1時,確認序列號字段才有效,為0時,無效。
PSH: 急迫位。標志位為1時,要求接收方盡快將數據段送達應用層。
RST:重置位。當RST值為1時,通知重新建立TCP連接。
SYN:同步(連接)位。同步序號位,TCP需要建立連接時將這個值設為1。
FIN: 斷開位。當TCP完成數據傳輸需要斷開連接時,提出斷開連接的一方將這個值設為1。
窗口大小:說明本地可接受數據段的數目。這個值的大小是可變的,當網絡通暢時接收端響應消息會將這個窗口值變大以加快傳輸速度,當網絡不穩定時減小這個值可保證網絡數據的可靠傳輸,TCP中的流量控制就是依靠變化窗口大小來實現的。比如下載速度從一開始的幾KB逐漸升到幾MB的過程。控制網速用的。
校驗和:用來做差錯控制。字段檢驗的范圍包括首部和數據這兩部分。數據段在發送時和到達目的地時會進行校驗和計算,若值不一致,會認為該數據被破壞,接收端將丟棄該數據。
緊急指針:和URG配合使用,當URG=1時有效。
選項:在TCP首部可以有多達40字節的可選信息。例如,最大報文段長度MSS(Maximum Segment Size)。MSS告訴對方TCP:我的緩存所能接收的報文段的數據字段最大是MSS個字節。
TCP的三次握手
TCP握手協議 :
1.發送SYN報文(seq=x,SYN=1)
2.發送SYN+ACK報文(seq=y,ACK=x+1,SYN=1,ACK=1)
3.發送ACK報文(seq=x+1,ACK=y+1,ACK=1)
TCP的四次斷開
TCP斷開協議 :
1.發送FIN/ACK(FIN=1,ACK=1)
2.發送ACK報文(ACK=1)
3.發送FIN/ACK報文(FIN=1,ACK=1)
4.發送ACK報文(ACK=1)
TCP的常用端口號及其功能
UDP的常用端口號及其功能
總結
以上是生活随笔為你收集整理的传输层的TCP和UDP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 显卡elpida内存:游戏新世界的秘密武
- 下一篇: 内存大小选择:4GB?8GB?16GB以