传输层协议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。