运输层的主要功能有( 应用进程寻址 )、( 数据可靠传递 )、( 流量控制 )和( 拥塞控制)。
TCP/IP 的运输层有两个协议,分别是( TCP )和( UDP )。
运输层使用( 端口 )机制来实现多路复用和多路分解。
UDP 首部中的源端口代表( 发送方进程的端口号 ),目的端口代表( 接收方进程的端口号 )。
TCP 首部中的( 窗口大小 )字段用来进行流量控制。
TCP 建立连接的过程称为( 三次握手 )。
在运输层上,( UDP )协议实现的是无连接的协议。
UDP 校验增加的伪首部长度为( 12 )字节。
UDP 在 IP 数据报中的协议字段值为( 17 )。
TCP 有效载荷的最大长度称为( MSS )。
如果想使当前 TCP 报文段的数据传送到接收方后,不被缓存立即被上传到应用层,可将 TCP 首部中的( PSH )置 1。
TCP 中接收方一旦有空的缓冲区就通告发送方,这一策略可能会引起( 糊涂窗口 )问题。
TCP 流量控制中窗口大小的单位是( 字节 )。
应用层的 DNS 服务使用的是运输层的( UDP )协议提供的服务。
TCP 拥塞控制中,如果定时器超时,拥塞窗口的大小应设置为( 1 ),如果收到重复确认,拥塞窗口的大小应设置为( 收到重复确认时拥塞窗口的一半 )
传输层为应用层提供( C )的逻辑通信。
A.点到点 B.点到多点
C.端到端 D.多端口之间
有关 TCP,论述错误的是( A )。
A.TCP 是无连接的协议 B.TCP 能提供流量控制的功能
C.TCP 能保证数据的可靠性 D.TCP 能提供拥塞控制的功能
有关 UDP,论述正确的是( A )。
A.UDP 是无连接的协议 B.UDP 为 HTTP 协议提供服务
C.UDP 报文中的校验是必需的 D.UDP 能保证数据的可靠性
运输层与应用层的接口上所设置的端口是( B )位的地址。
A.8 位 B.16 位
C.32 位 D.64 位
UDP 校验的范围是( D )。
A.首部+伪首部 B.首部
C.首部+数据 D.伪首部+首部+数据
UDP 伪首部中的 IP 地址内容和编排顺序是( C )。
A.源 IP 地址 B.目的 IP 地址
C.源 IP 地址+目的 IP 地址 D.目的 IP 地址+源 IP 地址
TCP 报文段中序号字段指的是( A )。
A.数据部分第一个字节 B.数据部分最后一个字节
C.报文首部第一个字节 D.报文首部最后一个字节
TCP 报文段中的数据序号是 35-150,如果正确到达,则接收方的确认序号可能是( D )。
A.36 B.150
C.35 D.151
TCP 重传计时器设置的重传时间( C )。
A.等于往返时间 B.等于平均往返时间
C.大于平均往返时间 D.小于平均往返时间
TCP 拥塞避免时,拥塞窗口增加的方式是( B )。
A.随机增加 B.线性增加
C.指数增加 D.不增加
TCP 利用( C )来进行流量控制。
A.三次握手 B.首部序号字段
C.首部窗口大小字段 D.MSS
下列关于运输层实现的功能描述不正确的是( A )。
A.IP 主机寻址 B.进程寻址
C.拥塞控制 D.流量控制
UDP 协议是面向无连接的协议,它不能提供可靠的数据传输,并且没有差错检验。×
TCP 是面向连接的协议。√
运输层为应用层提供端到端的逻辑通信。√
TCP 属于运输层协议,而 UDP 属于网络层协议。×
在整个连接过程持续期间,TCP 接收窗口的大小是不会改变的。×
MSS 是指包括首部的 TCP 报文段的最大值。×
TCP 报文段中的确认号是期望收到的下一个字节的编号。√
TCP 报文段中窗口字段的含义是要求接收方预留的接收缓冲区的大小。×
TCP 报文校验时也需要像 UDP 协议那样增加一个伪首部。√
TCP 每发送一个报文段,就启动一个定时器。×
TCP 传输数据时,如果一个报文段丢失了,不一定会引起与该报文段对应的数据重传。×
流量控制是为了防止发送方缓冲溢出。 ×
TCP 只支持流量控制,不支持拥塞控制。×
电子邮件应用使用的是 UDP 协议提供的服务。×
文件传输 FTP 使用的是 TCP 协议提供的服务。√
TCP 报文首部中的源端口字段对应发送方的 IP 地址。×
TCP 报文首部中的确认号字段是告诉对方 TCP 已经收到的数据字节的编号。×
TCP 流量控制中,落在发送窗口内的数据都是还没有被发送出去的。×
TCP 拥塞控制中,慢启动算法是以指数次的方式增大拥塞窗口的大小。√
TCP 拥塞控制中,当拥塞窗口值降为 1 时,就采用拥塞避免算法。×
4-4 简答题
简述 TCP 和 UDP 各自的特点。
答:
? ?? ?UDP 是无连接的,是一种尽力而为的服务方式,是高效的传输协议,没有拥塞控制和流量控制。
? ?? ?TCP 是面向连接的运输层协议,提供可靠的数据传输服务,提供流量控制和拥塞控制,提供全双工通信,是面向字节流的。
TCP/IP 的运输层是如何实现应用进程寻址及运输层的多路复用的?
答:
? ?? ?TCP/IP 的一个应用进程绑定到运输层协议的一个端口上,这样通过端口号就能确定对应的应用进程。同时运输层通过端口来实现多路复用和多路分解,发送方不同的应用进程可以使用同一个运输层协议传送数据,接收方的运输层在剥去报文的首部后能够把应用层报文交付给正确的目的应用进程。
图示 TCP 建立和关闭连接的过程。
答:
? ?? ?建立连接的三次握手如下图:
? ?? ?关闭连接的四次握手如下图:
简述 TCP 流量控制的原理。
答:
? ?? ?流量控制的基本原理是接收方通过首部中的窗口大小字段告诉发送方还可以发送多少字
节的数据,由接收方来控制发送方发送数据量,这样接收缓存就不会溢出了。
TCP 是如何保证数据的可靠性的?
答:
? ?? ?(1)对发送的每个字节进行编号。
? ?? ?(2)对收到的字节进行确认。
? ?? ?(3)设定重传定时器。
? ?? ?基于以上的三个措施,TCP 采取了带有定时器的确认和重传机制实现了数据可靠传输。
为什么要进行拥塞控制?TCP 是怎样进行拥塞控制的?
答:
? ?? ?当大量的数据涌入网络时,中间网络的路由器就会产生“拥塞”。同时,发送方会因为定时器超时重传,从而引起更严重的拥塞,使整个网络陷入瘫痪。
? ?? ?TCP 处理拥塞时,使用了两个控制变量和两个算法。两个控制变量是拥塞窗口和门限值。两个算法是慢启动算法和拥塞避免算法。
TCP 协议用到了几个定时器?它们各有什么作用?
答:
? ?? ?(1) 时间等待定时器:在关闭连接过程中,客户端对服务器的 FIN 报文回应ACK后,TCP 连接并没有真正释放掉,而是启动一个时间等待定时器。
? ?? ?(2) 保活定时器:服务器通过设置“保活定时器(keepalive timer)”来确定客户端是否已经关闭或是重启,需要确认是否有必要继续保留这个连接。
? ?? ?(3) 重传定时器:在确认和重传机制中,重传定时器用来对报文确认与等待重传时间的计时。
? ?? ?(4) 坚持定时器:为了避免零窗口通告问题的发生,当收到一个零窗口通告时,发送端需要启动一个“坚持定时器。
在 TCP 建立连接的过程中,双方会交换哪些信息?
答:字节流的起始编号、窗口大小、MSS
列举几种使用 UDP 的服务的应用层协议。
答: DNS,SNMP,RIP,TFTP,NFS
应用进程 A 用 TCP 传送 512 字节的数据给应用进程 B,B 用 TCP 传送 640 字节的数据给 A。假设 A、B 的 TCP 窗口大小都是 200 字节,TCP 报文段每次传送 200 字节的数据,发送端和接收端的起始序号分别为 100 和 200,由 A 发起建立连接,数据和确认没有丢失和超时的情况。请画出建立连接、数据传输到释放连接的示意图,并标明标志位,序列号,确认号,窗口大小字段的值。
答:
客户端和服务器 TCP 三次握手和传递数据过程如下图所示,请给出图中问号所代表的值。
答:
第二行 ack=101
第三行 seq=101 , ack=201
第四行 seq=101 , ack=201
第五行 seq=201 , ack=201
第六行 seq=201 , ack=401
客户端和服务器使用 TCP 连接传递数据如下图所示,请给出图中问号所代表的数值。
答:
第二行 seq=600 , ack=200
第三行 seq=200 , ack=1100
第四行 seq=200 , ack=1100
第五行 seq=1100 , ack=400
客户端和服务器使用 TCP 连接传递数据如下图所示,请给出图中问号所代表的数值。
答:
第二行 seq=200 , ack=600
第三行 seq=600 , ack=200
第四行 seq=200 , ack=600
第五行 seq=600 , ack=200
第六行 seq=200 , ack=800
客户端和服务器使用 TCP 连接传递数据如下图所示,请给出图中问号所代表的数值。
答:
第二行 seq=300
第三行 seq=100
第四行 seq=300
第五行 seq=100
客户端和服务器使用 TCP 连接传递数据如下图所示,请给出图中问号所代表的数值。
答:
第二行 seq=100
第三行 ack=300
第四行 seq=300 , ack=450