(*长期更新)软考网络工程师学习笔记——Section 8 传输层
目錄
- 一、傳輸層的基本協(xié)議
- 二、面向連接服務和無連接服務
- 三、TCP
- (一)TCP的基本概念
- (二)TCP的三種機制
- (三)TCP的報文首部格式
- (四)TCP三次握手
- (五)TCP釋放連接
- 四、UDP
- (一)UDP的基本概念
- (二)UDP首部結構
- (三)協(xié)議端口號
- 1、系統(tǒng)端口
- 2、登記端口
- 3、客戶端使用端口
- 結語
一、傳輸層的基本協(xié)議
傳輸層依靠的基本協(xié)議是TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議),傳輸層的相關知識由這兩部分協(xié)議展開。
二、面向連接服務和無連接服務
面向連接服務,分為三步:建立連接、使用連接和釋放連接,即首先要建立一條通信線路,然后在正式傳輸數(shù)據(jù)時,數(shù)據(jù)分組就不再需要攜帶目的地址,可靠性高,但它相比無連接服務其效率低,例如TCP協(xié)議。
無連接服務,由系統(tǒng)選定路線進行傳輸,收發(fā)方只有在傳輸數(shù)據(jù)時才處于激活狀態(tài),其下層資源動態(tài)分配,相比面向連接服務,它更加靈活、通信比較迅速且開銷小,但可靠性低,不能防止報文出錯,例如IP協(xié)議、UDP協(xié)議。
三、TCP
(一)TCP的基本概念
TCP是一種可靠的、面向連接服務的字節(jié)流服務,源主機在傳輸數(shù)據(jù)時要先與目標主機建立連接,然后被編號的數(shù)據(jù)段按順序進行收發(fā),且同時對每個數(shù)據(jù)段進行確認,從而保證了可靠性,若沒有收到確認則會再次發(fā)送。
(二)TCP的三種機制
TCP是建立在無連接服務的IP基礎上,通過三種機制實現(xiàn)面向連接服務:
1、使用序號對數(shù)據(jù)報標記,便于接收服務向高層傳遞數(shù)據(jù)之前調(diào)整錯序的數(shù)據(jù)報。
2、通過使用確認、校驗和定時器系統(tǒng)提供可靠性。
3、使用窗口機制調(diào)整數(shù)據(jù)流量,即可變大小的滑動窗口協(xié)議減小接收方緩沖區(qū)滿而造成丟失數(shù)據(jù)報文的可能性,從而實現(xiàn)流量控制。
(三)TCP的報文首部格式
TCP的報文首部格式有以下:
1、源端口
字段長度為16位,用于標識源端和目標端的應用進程,端口號取值范圍為0-65535。
2、序列號
又稱為報文段序號,字段長度為32位。
3、確認號
字段長度為32位,即對方下一個報文段的第一個數(shù)據(jù)字段的序號。
4、報頭長度
又稱為數(shù)據(jù)偏移字段,字段長度為4位,單位32位,沒有選項字段的TCP頭部長度為20字節(jié),最多可以有60字節(jié)的TCP頭部長度。
5、保留字段
字段長度為6位,通常設置為0。
6、標記
當請求方發(fā)出同步SYN連接請求后,等待對方回答同步SYN、確認ACK,這樣防止建立錯誤的連接。
(1)緊急URG:緊急有效,需要盡快傳送;
(2)確認ACK:建立連接后的報文回應,ACK置1;
(3)推送PSH:接收方應將該報文盡快交給上層協(xié)議,無需等待緩存滿;
(4)復位RST:重新連接;
(5)同步SYN:發(fā)起連接,即當TCP實體要建立連接時,其段頭中的SYN標志置1;
(6)終止FIN:釋放連接。
7、窗口大小
字段長度為16位,該字段用于進行流量控制(通過可變大小的滑動窗口協(xié)議),作為接收方讓發(fā)送方設置其發(fā)送窗口的依據(jù),該值為期望下一次接收的字節(jié)數(shù)。
8、校驗和
字段長度為16位,對整個TCP報文段進行校驗和計算,并由目標端進行驗證。
9、緊急指針
字段長度為16位,它是一個偏移量,和序號字段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號。
10、選項
字段長度可變,可變至40字節(jié),為保證報文長度是32位的倍數(shù),因此還需要填充0。
(四)TCP三次握手
TCP協(xié)議使用三次握手機制建立連接,其目的是使數(shù)據(jù)段的發(fā)送和接收同步,同時也向其它主機表明其一次可接收的數(shù)據(jù)量(窗口大小)并建立邏輯連接,雙方通信前源主機和目標主機都處于CLOSED狀態(tài)。
1、第一次握手
源主機發(fā)送一個SYN=1的TCP數(shù)據(jù)段,同時標明初始序號ISN,ISN是一個隨時間變化的隨機值,即SYN=1,SEQ=x,源主機進入SYN-SENT狀態(tài)。
2、第二次握手
目標主機收到SYN包后,發(fā)回確認數(shù)據(jù)報文,即ACK=1,同時確認序號字段,表明目標主機期待收源主機下一個數(shù)據(jù)段的序號,即ACK=x+1。
數(shù)據(jù)段中另外設置SYN=1,并包含目標主機的段初始序號y,即ACK=1,確認序號ACK=x+1,SYN=1,自身序號SEQ=y,此時目標主機進入SYN-RCVD狀態(tài),源主機進入ESTABLISHED狀態(tài)。
3、第三次握手
源主機再回送一個確認數(shù)據(jù)段,同樣帶有遞增的發(fā)送序號和確認序號,即ACK=1,確認序號ACK=y+1,自身序號SEQ+1。經(jīng)過三次握手后,源主機就可以與目標主機互相收發(fā)數(shù)據(jù)。
(五)TCP釋放連接
TCP釋放連接分為四步,此時源主機和目標主機都處于ESTABLISHED狀態(tài)。
1、第一步
源主機發(fā)送一個釋放報文,FIN=1,自身序號SEQ=x,源主機進入FIN-WAIT狀態(tài)。
2、第二步
目標主機接收到報文后發(fā)送確認報文,即ACK=1,確認序號ACK=x+1,自身序號SEQ=y,目標主機進入CLOSE-WAIT狀態(tài),此時TCP連接處于半關閉狀態(tài),源主機已經(jīng)停止發(fā)送數(shù)據(jù),但目標主機仍可發(fā)送數(shù)據(jù)。源主機在接收到ACK報文后等待目標主機發(fā)出FIN報文。
3、第三步
目標主機確認沒有數(shù)據(jù)后,發(fā)出釋放報文,即FIN=1,ACK=1,確認序號ACK=x+1,自身序號SEQ=z,此時目標主機進入LAST-ACK狀態(tài)。
4、第四步
源主機接收到釋放報文后,對目標主機發(fā)送確認報文,即ACK=1,確認序號ACK=z+1,自身序號SEQ=x+1,等待一段時間確定確認報文到達后,源主機進入CLOSED狀態(tài),目標主機在接收到確認報文后,也進入CLOSED狀態(tài)。
四、UDP
(一)UDP的基本概念
用戶數(shù)據(jù)報協(xié)議(UDP)是一種不可靠的、無連接服務的數(shù)據(jù)報服務,它在IP層之上提供了端口尋址能力,數(shù)據(jù)附加源端口號和目標端口號等UDP報頭字段后,直接發(fā)往目的主機,在傳送數(shù)據(jù)較少且較小的情況下,UDP比TCP顯得更加高效。
(二)UDP首部結構
UDP的首部格式有以下:
1、源端口號
字段長度為16位,與TCP中的端口號字段作用相同,用于標識源端的應用進程,在需給對方回信時用,不需要時為0。
2、目標端口號
字段長度為16位,與TCP中的端口號字段作用相同,用于標識目標端的應用進程,在需目標交付報文時用到。
3、長度字
字段長度為16位,用于標明UDP頭部和UDP數(shù)據(jù)的總長度字節(jié)。
4、校驗和
該字段為可選項,長度為16位,用于校驗UDP頭部和UDP數(shù)據(jù),有錯時就丟棄。
(三)協(xié)議端口號
協(xié)議端口號是用于標識目標主機進程的方法,TCP/IP協(xié)議中使用16位的端口號來標識端口,即端口號的取值為0-65535。
協(xié)議端口號可分為系統(tǒng)端口、登記端口和客戶端使用端口三種。
1、系統(tǒng)端口
常用的系統(tǒng)端口協(xié)議號有以下:
| 20 | FTP-DATA | FTP數(shù)據(jù)傳輸 |
| 21 | FTP | FTP控制 |
| 22 | SSH | SSH登錄 |
| 23 | telnet | 遠程登錄 |
| 25 | SMTP | 簡單郵件傳輸協(xié)議 |
| 53 | DNS | 域名解析 |
| 67 | DHCP | DHCP服務器開啟,用于監(jiān)聽和接收客戶請求信息 |
| 68 | DHCP | 客戶端開啟,用于接收DHCP服務器的消息回復 |
| 69 | TFTP | 簡單FTP |
| 80 | HTTP | 超文本傳輸 |
| 110 | POP3 | 郵局協(xié)議 |
| 143 | IMAP | 交互式郵件存取協(xié)議 |
| 161 | SNMP | 簡單網(wǎng)管協(xié)議 |
| 162 | SNMP(trap) | SNMP Trap報文 |
| 443 | HTTPS | 加密的超文本傳輸服務 |
2、登記端口
該端口是為沒有熟知端口號的應用程序使用的,端口號范圍為1024-49151。
3、客戶端使用端口
該端口在客戶端進程運行時動態(tài)使用,使用完后,進程會釋放端口,端口號范圍為49152-65535。
結語
記錄一下,這是2021年的最后一篇文章,希望2022新的一年,大家事業(yè)沖沖沖!!!
總結
以上是生活随笔為你收集整理的(*长期更新)软考网络工程师学习笔记——Section 8 传输层的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言程序设计——设计一个学生管理系统(
- 下一篇: (*长期更新)软考网络工程师学习笔记——