首页 > 试题广场 >

TCP可靠传输的实现中,不包括( )。

[单选题]

TCP可靠传输的实现中,不包括(    )。

  • 以字节为单位的滑动窗口
  • 超时重传时间的选择
  • TCP报文的紧急指针字段
  • TCP报文选项部分的选择确认(SACK)字段

选C

紧急指针并不是确保TCP可靠传输的组成部分

TCP如何保证数据传输的可靠性?
1. 序列号,ACK信号:发送方按照顺序给要发送的数据包的每个字节都标上编号。接收方接收到发送方的数据包之后,回传一个ACK信号,标识下一个需求的数据包初始字节编号。
2. 超时重发:在等待接收方回传的ACK信号超时后,发送方重发数据包。一旦开始重传,下一次等待的时间间隔指数增长,重发一定次数后还是收不到ACK信号,将强制终止连接。【B✔】
3. TCP的连接管理:建立连接的三次握手和断开连接的四次挥手。
4. 以段为单位发送数据包:在建立TCP连接的同时,两端协商发送数据包的单位,称为“最大消息长度”:MSS。 [TCP数据(MSS字节)][TCP首部(20字节)][IP首部(20字节)]
5. 滑动窗口:以段为单位发送数据包,每发送一个数据包需要等待一个ACK信号,当数据包往返时间越长效率越低。滑动窗口中窗口前端为已发送但为收到ACK的数据,后端为待发送数据。发送端一次发送多个数据,接收端回传收到的连续数据的ACK信号,缓存缺失数据之后的数据包(保持顺序)。发送端当收到ACK信号时,窗口向前依次移动,直到遇到有数据未确认时停止。一段时间后启动超时重传,接收端若收到缺失数据,则和缓存数据一起发送ACK信号,否则,移除缓存数据。【A✔】
6. 流量控制:TCP首部有一个字段来通知窗口的大小,接收端通过设置来主动控制传输流量。
7. 拥塞控制:发送端通过拥塞窗口主动控制传输流量。慢启动:防止双方通信刚开始就传送大量数据包,发送端拥塞窗口初始设置为1MSS,每接受一个ACK信号,窗口扩大为两倍。发送数据时,取拥塞窗口和滑动窗口的较小值。同时设定一个慢启动阈值,当拥塞窗口大小超过阈值时,改为线性增长,直到网络拥塞。拥塞时将慢启动阈值设置为当前窗口的的一半,并将拥塞窗口的值设置为1,然后再次重复操作。
拓展:
8.SACK选择确认字段:
TCP收到乱序数据后会将其放到乱序序列中,然后发送重复ACK给对端。对端如果收到多个重复的ACK,认为发生丢包,TCP会重传最后确认的包开始的后续包。这样原先已经正确传输的包,可能会重复发送,降低了TCP性能。为改善这种情况,发展出SACK技术,使用SACK选项可以告知发包方收到了哪些数据,发包方收到这些信息后就会知道哪些数据丢失,然后立即重传丢失的部分.【D✔】

那么紧急指针有什么用呢?
当发送端把紧急信息放到TCP报文中进行传输的时候,接受端识别URG置1,就需要通过紧急指针优先访问紧急数据。
【C✖】
TCP提供了“紧急方式(urgentmode)”,它使连接的一端可以告诉另连接的一端有些 “紧急数据”已经被放置在数据流中。紧急数据的处理方式由接收方决定。
要发送紧急数据需要设置TCP首部中的两个字段来。URG比特被置1,并且要将16bit的紧急指针设置为一个正的偏移量,该偏移量必须与TCP首部中的序号字段相加,以便得出紧急数据的最后一个字节的序号。

编辑于 2019-08-01 15:57:36 回复(0)
更多回答
推荐
C。考察的是TCP可靠传输的几种机制
理想可靠的传输有以下特点: 传输信道不产生差错不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。
  • 以字节为单位的滑动窗口:TCP连接的每一端都必须设有两个窗口,一个发送窗口,一个接收窗口。TCP的可靠传输机制用字节的序号进行控制,TCP所有的确认都是基于序号而不是基于报文段。TCP两端的四个窗口经常处于动态变化中。
  • 超时重传的选择
  • 选择确认SACK:接收方收到了和前面的字节流不连续的两个字节块,如果这些字节序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。

编辑于 2019-08-02 14:48:27 回复(0)
C
发表于 2019-08-01 20:09:34 回复(0)