前言
傳輸層位於網絡七層協議中的第四層,用來完成不同用戶之間進程的通信,由端到端,使用TCP/UDP協議,根據不同數據選擇不同的用戶進程
TCP/IP協議族的傳輸層協議
- TCP(Transmission Control Protocol)
傳輸控制協議 - UDP(User Datagram Protocol)
用戶數據報協議
TCP協議介紹
1、TCP協議
- TCP是面向連接的、可靠的進程到進程通信的協議
- TCP提供全雙工服務,即數據可在同一時間雙向傳輸
- TCP報文段
TCP將若干個字節構成一個分組,叫做報文段
TCP報文段封裝在IP數據包中
2、TCP報文段
主要名詞解釋:
- 序號:發送端爲每個字節進行編號,便於接收端正確重組
- 確認號:用於確認發送端的信息
- URG:緊急指針位,優先從緩存區提取發送,1表示啓動,0表示不啓動
- ACK:確認位
- PSH:不經過緩存,直接將數據送到應用層
- RST:重新建立連接
- SYN:連接位
- FIN:斷開標識
- 窗口大小:用於說明本地可以接收數據段的數目,窗口大小是可變的
3、TCP連接(三次握手與四次揮手)
(1)TCP建立的連接過程稱爲三次握手
- 客戶端發送SYN報文(Seq=x,SYN=1)到服務器,請求建立連接,等待服務器確認
- 服務器收到SYN報文,確認客戶的SYN(Ack=x+1,ACK=1),同時自己也發送一個SYN包(Seq=y,SYN=1),即SYN+ACK包
- 客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(Seq=x+1,Ack=y+1,ACK=1),此包發送完畢,TCP連接成功,完成三次握手
(2)TCP斷開連接的過程稱爲四次揮手
- 客戶端發送FIN、ACK報文到服務器,請求斷開連接,等待服務器確認
- 服務器收到客戶端的報文後,返回ACK確認報文,此時服務可能還會存在對客戶端發送數據的連接,不會立即斷開連接
- 服務器確認無數據傳輸到客戶端後,會發送一個斷開連接FIN、ACK報文,等待客戶端確認
- 客戶端收到後,返回確認ACK報文到服務器,此時TCP連接斷開,完成四次揮手
4、常用的TCP端口號及其功能
UDP協議介紹
1、UDP協議
- 無連接、不可靠的傳輸協議
- 花費的開銷小
2、UDP報文的首部格式
- UDP長度:用來指出UDP的總長度,爲首部加上數據
- UDP校驗和:用來完成對UDP數據的差錯校驗,它是UDP協議提供的唯一的可靠機制
3、常用的UDP端口號及其功能