传输层协议简介
傳輸層協議簡介
- 一、傳輸層
- 1、簡介
- 2、基本功能
- 二、傳輸層協議
- 三、TCP協議
- 1、TCP報文段
- 2、三次握手
- 3、四次揮手
- 4、常用端口及功能
- 四、UDP協議
- 常用端口
- 五、協議對比
- 總結
一、傳輸層
1、簡介
傳輸層是國際標準化組織提出的開放系統互連(OSI)參考模型中的第四層。該層協議為網絡端點主機上的進程之間提供了可靠、有效的報文傳送服務。其功能緊密地依賴于網絡層的虛擬電路或數據報服務。傳輸層定義了主機應用程序之間端到端的連通性。傳輸層只存在于端開放系統中,是介于低3層通信子網系統和高3層之間的一層,但是很重要的一層,因為它是源端到目的端對數據傳送進行控制從低到高的最后一層。
傳輸層的服務一般要經歷傳輸連接建立階段,數據傳送階段,傳輸連接釋放階段3個階段才算完成一個完整的服務過程。而在數據傳送階段又分為一般數據傳送和加速數據傳送兩種形式。傳輸層中最為常見的兩個協議分別是傳輸控制協議TCP(Transmission Control Protocol)和用戶數據報協議UDP(User Datagram Protocol) 。
傳輸層提供邏輯連接的建立、傳輸層尋址、數據傳輸、傳輸連接釋放、流量控制、擁塞控制、多路復用和解復用、崩潰恢復等服務。
2、基本功能
-
分割與重組數據
-
按端口號尋址
-
連接管理
-
差錯控制和流量控制,糾錯的功能
傳輸層主要是向上層提供可靠的通信服務,避免報文丟失、出錯等。
二、傳輸層協議
主要分為兩大類:
-
面向連接網絡協議(TCP):
面向連接網絡協議是指通信雙方之間在通信之前先建立連接。
TCP協議提供可靠的交付服務:傳送的數據無差錯。不丟失,不重復,且順序與與源數據一致。 -
無連接網絡協議:
無連接網絡協議是指通信雙方不需要事先建立一條通信線路,而是把每個帶有目的地址的數據包送到網絡線上,由系統自主選定線路進行傳輸。
UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據報協議,是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
三、TCP協議
傳輸控制協議(TCP,Transmission Control Protocol)是為了在不可靠的互聯網絡上提供可靠的端到端字節流而專門設計的一個傳輸協議。
互聯網絡與單個網絡有很大的不同,因為互聯網絡的不同部分可能有截然不同的拓撲結構、帶寬、延遲、數據包大小和其他參數。TCP的設計目標是能夠動態地適應互聯網絡的這些特性,而且具備面對各種故障時的健壯性。
1、TCP報文段
- 16位源端口號:16位的源端口中包含初始化通信的端口。源端口和源IP地址的作用是標識報文的返回地址。
- 16位目的端口號:16位的目的端口域定義傳輸的目的。這個端口指明報文接收計算機上的應用程序地址接口。
- 32位序號:32位的序列號由接收端計算機使用,把重新分段的報文重組成最初形式。當SYN出現,序列碼實際上是初始序列碼(Initial Sequence Number,ISN),而第一個數據字節是ISN+1。這個序列號(序列碼)可用來補償傳輸中的不一致。
- 32位確認序號:32位的序列號由接收端計算機使用,重組分段的報文成最初形式。如果設置了ACK控制位,這個值表示一個準備接收的包的序列碼。
- 4位首部長度:4位包括TCP頭大小,指示何處數據開始。一般為20字節,可擴張為60字節。
- 保留(6位):6位值域,這些位必須是0。為了將來定義新的用途而保留。
- 控制位:
| URG緊急位 | 緊急指針有效位 |
| ACK確認位 | 只有當ACK=1,確序列號才有效;當ACK=0時,確認序列無效 |
| PSH急迫位 | 標志位為1時,要求接收方盡快將數據送至應用層 |
| RST重置位 | 當RST值為1時,通知重新建立TCP連接 |
| SYN同部/連接位 | 同步序列號,TCP需要建立連接時將這個值設為1 |
| FIN斷開位 | 當TCP完成數據傳輸時需要斷開連接時,提出斷開連接的一方將FIN設為1 |
- 16位窗口大小:用來表示想收到的每個TCP數據段的大小。值得大小是可變的,網絡通暢時窗口值變大以加快傳輸速度,網絡不穩定時,減小窗口值,保證可靠傳輸。
- 16位校驗和:16位TCP頭。源機器基于數據內容計算一個數值,收信息機要與源機器數值 結果完全一樣,從而證明數據的有效性。檢驗和覆蓋了整個的TCP報文段:這是一個強制性的字段,一定是由發送端計算和存儲,并由接收端進行驗證的。
- 16位緊急指針:指向后面是優先數據的字節,在URG標志設置了時才有效。如果URG標志沒有被設置,緊急域作為填充。加快處理標示為緊急的數據段。
- 選項:長度不定,但長度必須為1個字節。如果沒有選項就表示這個1字節的域等于0。
- 數據:該TCP協議包負載的數據。
2、三次握手
TCP三次握手的過程如下:
客戶端發送SYN(Seq=x,SYN=1)報文給服務器端,進入SYN_SEND狀態。
服務器端收到SYN報文,回應一個SYN (Seq=y)ACK(ACK=x+1)SYN=1報文,進入SYN_RECV狀態。
客戶端收到服務器端的SYN報文,回應一個ACK(ACK=y+1)報文,進入Established狀態。
三次握手完成,TCP客戶端和服務器端成功地建立連接,可以開始傳輸數據了。
3、四次揮手
TCP四次揮手的過程如下:
1、主動方首先調用close,稱該端執行“主動關閉”,發送FIN/ACK(FIN=1,ACK=1,Seq=x)報文。
2、被動方接收到這個FIN的對端執行 “被動關閉”,確認后發送ACK(ACK=x+1)報文給主動方。
3、一段時間后,接收到這個文件結束符的被動方將調用close關閉它的套接字,發送FIN/ACK(FIN=1,ACK=1,Seq=y)給主動方。
4、接收這個最終FIN的主動方確認這個FIN。
4、常用端口及功能
| 21 | FTP | FTP服務器所開放的控制端口 |
| 23 | TELNET | 遠程登錄,可遠程控制管理目標計算機 |
| 25 | SMTP | SMTP服務器開放的端口,用于發送郵件 |
| 80 | HTTP | 超文本傳輸協議,Web服務 |
| 110 | POP3 | 用于郵件的接收 |
四、UDP協議
UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據報協議,是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
UDP是一個無連接協議,傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,并盡可能快地把它扔到網絡上。在發送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。
常用端口
| 69 | TFTP | 簡單文件傳輸協議 |
| 111 | RPC | 遠程過程調用 |
| 123 | NTP | 網絡時間協議 |
五、協議對比
- TCP 是面向連接的傳輸控制協議,而UDP 提供了無連接的數據報服務。
- TCP 具有高可靠性,確保傳輸數據的正確性,不出現丟失或亂序;UDP 在傳輸數據前不建立連接,不對數據報進行檢查與修改,無須等待對方的應答,所以會出現分組丟失、重復、亂序,應用程序需要負責傳輸可靠性方面的所有工作。
- UDP 具有較好的實時性,工作效率較 TCP 協議高。
- UDP 段結構比 TCP 的段結構簡單,因此網絡開銷小。
| 是否連接 | 面向連接 | 無連接 |
| 傳輸可靠性 | 高可靠性 | 不可靠 |
| 連接對象 | 點對點 | 支持一對一、一對多、多對一和多對多 |
| 速度 | 慢 | 快 |
總結
TCP協議 和UDP協議最大的區別就是:TCP是面向連接的,UDP是無連接的。TCP協議和UDP協議各有所長、各有所短,適用于不同要求的通信環境。
總結
- 上一篇: hof 内存 chh:计算机大脑新宠,速
- 下一篇: 华硕主板用户必看!傲腾内存查看攻略大揭秘