傳輸層協議TCP、UDP
1、TCP和UDP報文格式
傳輸層協議TCPvsUDP
- 傳輸層主要兩個傳輸協議,分別是TCP和UDP,負責提供流量控制、排序服務和錯誤校驗。
- (1)TCP是面向連接的,一般用于傳輸數據量比較少,且對可靠性要求高的應用。【文件】
- (2)UDP是一種不可靠的、無連接的協議。用于傳輸數據量大,可靠性要求不高,但要求速度快的場景。【音視頻】
在OSI參考模型中,(22)在物理線路上提供可靠的數據傳輸服務。
A.物理層
B.數據鏈路層
C.網絡層
D.傳輸層
簡單理解:物理鏈路之上是數據鏈路層,OSI模型的數據鏈路層有很多可靠性保障機制,TCP/IP模型主要把可靠性保障通過傳輸層實現。
深入理解:數據鏈路層與傳輸層的區別,比如有3個節點是123,1到3是端到端,可靠性通過傳輸層協議保障,1到2或者2到3是物理鏈路,可靠性通過數據鏈路層保障,那么這題明顯問的是物理鏈路上的可靠性。
選B
在OSI參考模型中,負責提供可靠的端到端數據傳輸的是()的功能
B.網絡層
C.傳輸層
D.應用層
A.數據鏈路層
端到端的可靠性服務由傳輸層提供,注意對比區別上一題。
TCP報文格式
- URG(緊急):當URG=1時,表明緊急指針字段有效,告訴系統此報文段中有緊急數據,應盡快傳送(相當于高
優先級的數據),不需要按排隊順序來傳送。 - ACK(確認):三次握手過程中,確認幀ACK=1。TCP中只有第1個數據包ACK=0,在連接建立后所有傳送的報文
段都必須把ACK置為1。 - PSH(推送):當兩個應用進程進行相互交互的通信時,有時在一端的應用進程希望在鍵入一個命令后立即就能夠
收到對方的響應。在這種情況下,TCP就可以使用推送PUSH操作。 - RST(復位):表示TCP連接中出現較為嚴重的差錯,必須釋放連接,然后再重新建立連接。【非正常的差錯】
- SYN(同步):TCP三次握手建立時用來同步序號。
- FIN(終止):用于TCP四次揮手釋放連接。當FIN=1時,表明此報文段的發送方的數據已發送完畢,并要求釋放
連接。【正常的結束】
若有帶外數據需要傳送,TCP報文中(22)標志字段置“1”。
A.PSH
B.FIN
C.URG
D.ACK
URG緊急字段:通知系統此報文段中有緊急數據,應盡快傳送,用來傳送帶外數據,
PUSH:發送方使用該標志通知接收方將所收到的數據全部提交給接收進程。這里的數據包括接收方已經
接收放在接收緩存的數據和剛剛收到的PUSH位為1的TCP報文中封裝的應用數據。如下圖所示:
FIN/ACK:用于TCP握手。
UDP報文格式
與TCP相比,做了很大精簡,省略諸多控制字段。
UDP頭部的大小為(26)字節。
B.16
C.20
D.32
A.8
IP報頭20-60字節(默認20字節),TCP報頭20-60字節(默認20字節),
UDP報頭8字節。
2、TCP三次握手
TCP序列號及確認號
假設主機A通過Telnet連接了主機B,連接建立后。在命令行輸入“C”。如圖所示,主機B收到字符"C"
后,用于運輸回送消息的TCP段的序列號seq應為(36),而確認號ack應為(37)。
ack號:期望接收到對方下一個報文段的第一個數據字節的序號,A發送的ack=79,故希望B回送的序號是79,那么B回送的Seq=79;A已經發了Seq=42,B則希望他下一個發序號43的數據,則ack=43。
TCP三次握手建立連接
TCP四次揮手斷開連接
在TCP協議連接釋放過程中,請求釋放連接的一方(客戶端)發送連接釋放報文段,該報文段應該將(20)。
A.FIN置1
B.FIN置O
C.ACK置1
D.ACK置0
4次揮手斷開連接,FIN置1。
當TCP一端發起連接建立請求后,若沒有收到對方的應答,狀態的跳變為(23)。
A.SYNSENT-CLOSED
B.TIMEWAIT-CLOSED
C.SYNSENT-LISTEN
D.ESTABLISHED-FINWAIT
選A
當TCP一端發起連接建立請求后,如果超時后沒有收到對端的應答,會從同步已發送狀態變為關閉狀態。
TCP狀態變化如下圖:
3、流量控制和擁塞控制
TCP流量控制
- 流量控制:為了防止發送方發送速度過快,導致接收方處理不過來,造成丟包重傳,浪費網絡資源。
- TCP流量控制機制:可變大小的滑動窗口。
TCP使用的流量控制協議是(65)。
A.停等ARQ協議B.選擇重傳ARQ協議C.后退N幀ARQ協議D.可變大小的滑動窗口協議
在實際運行中,TCP滑動窗口大小可以隨時調整,所以是可變大小的滑動窗口協議。
TCP使用的流量控制協議是(21),TCP頭中與之相關的字段是(22)。
(21)A.停等應答 B.可變大小的滑動窗口協議 C.固定大小的滑動窗口協議 D.選擇重發ARQ協議
(22)A.端口號 B.偏移 C.窗口 D.緊急指針
選擇B C
TCP擁塞控制
- 有了流量控制,可以調節發送端和接收端的節奏,為什么還要有擁塞控制?
- 流量控制:在A、B兩個端點進行。
- 擁塞控制:在A、B和所有網絡節點中進行。
以下關于TCP擁塞控制機制的說法中,錯誤的是(21)。
A.慢啟動階段,將擁塞窗口值設置為1
B.慢啟動算法執行時擁塞窗口指數增長,直到擁塞窗口值達到慢啟動門限值
C.在擁塞避免階段,擁塞窗口線性增長
D.當網絡出現擁塞時,慢啟動門限值恢復為初始值
出現擁塞,擁塞窗口恢復為初始值,門限值設置為發生擁塞時的一半。選擇D
TCP采用慢啟動進行擁塞控制,若TCP在某輪擁塞窗口為8時出現擁塞,經過4輪均成功收到應答,此時
擁塞窗口為(21)。
A.5 B.6 C.7 D.8
擁塞窗口為8時發生擁塞,那么門限值(拐點)為4。那么4輪應答擁塞窗口分別是:1-2-4-5,完成4輪以后,那么擁塞窗口是6。
TCP采用擁塞窗口(cwnd)進行擁塞控制。以下關于cwnd的說法中正確的是(25)。
A.首部中的窗口段存放cwnd的值
B.每個段包含的數據只要不超過cwnd值就可以發送了
C.cwnd值由對方指定
D.cwnd值存放在本地
滑動窗口:是TCP的流控措施,接收方通過通告發送方自己的可以接受緩沖區大小,從而控制發送方的發送速度。
擁塞窗口(cwnd):TCP擁塞控制措施,發送方維持一個(congestionwindow)的狀態變量。擁塞窗口的大小取決于網絡的擁塞程度,并且動態地在變化,發送方讓自己的發送窗口等于擁塞。TCP首部的窗口是指滑動窗口,AB選項都在說滑動窗口。
以下網絡控制參數中,不隨報文傳送到對端實體的是(22)。
B.上層協議
D.擁塞窗口大小
C.接收緩存大小
A.接收進程
接收進程、上層協議和接受緩存大小(滑動窗口)需要通告給對方,擁塞窗口本地有效。
若TCP最大段長為1000字節,在建立連接后慢啟動,第1輪次發送了1個段并收到了應答,應答報文中window字段為5000字節,此時還能發送(25)字節。
A.1000
C.3000
D.5000
B.2000
假如TCP最大段長為1000B,在建立連接后慢啟動,第1輪發送了一個段并收到了應答,按照慢啟動指數增長,那么把擁塞窗口擴大到2000字節(表示網絡最大允許通信量是2000字節),而應答報文中win字段為5000字節(表示客戶端最大緩存是5000字節),此時可以發送的最大數據為min[2000,5000]=2000字節。
4、重點協議端口號總結(非常重要)
TCP/UDP端口號
- 源端口隨機分配,目標端口使用知名端口。
- 應用客戶端使用的源端口一般為系統中未使用的且大于1024。
- 目的端口號為服務器端應用服務器的進程,如telnet為23。
Web訪問中,下面哪一種情況不可能出現()。
A.源端口80,目的端口1028
B.源端口1028,目的端口80
C.源端口65532,目的端口8080
D.源端口4000,目的端口4000
Web訪問中源端口是大于1024的隨機端口,目的端口常規是80/8080/443,也可以自定義為大于1024的非知名端口。
下列()協議使用TCP作為其傳輸層協議?
A.ICMP
B.IP
C. E-mail
D.SNMP
ICMP是封裝在IP里面,IP可以封裝在UDP或者TCP,SNMP是UDP封裝。
郵件相關協議:
SMTP TCP/UDP 25 通常使用TCP
POP3 TCP 110
IMAP TCP143
郵件客戶端需監聽(38)端口及時接收郵件。
A.25 B.50 C.100 D.110
選擇D
使用電子郵件客戶端從服務器下載郵件,使實現郵件的移動、刪除等操作在客戶端和郵箱上更新同步,所使用的電子郵件接收協議是(30)。
A.SMTP
B.POP3
C.IMAP4
D.MIME
SMTP是郵件發送,POP3是郵件下載,IMAP是跟POP3類似的協議。不同的是,開啟了IMAP后,在電子郵件客戶端收取的同時在客戶端上的操作都會反饋到服務器上如:刪除郵件,標記已讀等,服務器上的郵件也會做相應的動作,故選C更佳。
用戶使用ftp://zza.com訪問某文件服務,默認通過目標端口為(37)的請求建立(38)鏈接。
(37)A.20 B.21 C.22 D.23
(38)A.TCP B.UDP C.HTTP D.FTP
選擇B A
FTP控制端口是21,數據端口是20,基于TCP。
下列不屬于快速UDP互聯網連接(QUIC)協議的優勢是(29)。
A.高速且無連接
B.避免隊頭阻塞的多路復用
C.連接遷移
D.前向冗余糾錯
QUIC(QuickUDPInternet Connection,快速UDP網絡連接)是谷歌制定的一種基于UDP的低時延的互聯網傳輸層協議,已被IETF采納為標準。特點:
1.減少了TCP三次握手及TLS握手時間。
2.改進的擁塞控制。
3.避免隊頭阻塞的多路復用。
4.連接遷移。
5.前向冗余糾錯。
可以把QUIC理解成具備TCP特性的UDP。