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