计算机网络原理(第三章) 传输层 课后习题

发布时间:2026/7/29 17:08:42
计算机网络原理(第三章) 传输层 课后习题 1、实现可靠数据传输的主要措施有哪些?这些措施主要用于解决哪些问题P98差错检测利用差错编码实现数据包传输过程中的比特差错检测确认确认方向发送方反馈接收状态重传发送方重新发送接收方没有正确接收的数据序号确保数据按序提交定时器解决数据丢失问题2、UDP和TCP分别如何实现复用和分解P97在Internet网络中唯一标识套接字的基本信息是IP地址和端口号。UDP基于目的IP地址和目的端口号二元组唯一标识一个UDP套接字从而可以实现精确分解TCP则需要基于源IP地址、源端口号、目的IP地址、目的端口号四元组唯一标识一个TCP套接字即一个TCP连接从而实现精确分解。3、请画出TCP报文段结构并简要说明各个字段的主要作用P1130----------------------------16-----------------------------31源端口号(16) 目的端口号(16)序号(32)确认序号(32)首部长度(4) 保留(6)UAPRSF(各1) 接收窗口(16)校验和(16) 紧急指针(16)选项(长度可变) 填充字段(0-3字节 全0)1.源端口号与目的端口号各占16位标识发送该报文段的源端口和目的端口用于多路复用/分解来自或送到上层应用的数据。2.序号字段与确认序号字段分别占32位。TCP的序号是对每个应用层数据的每个字节进行编号因此每个TCP报文段的序号是该段所封装的应用层数据的第一个字节的序号。确认序号是期望从对方接收数据的字节序号即该序号对应的字节尚未收到该序号之前的字节已全部正确接收也就是说TCP采用累积确认机制3.首部长度字段占4位指出TCP段的首部长度以4个字节为计算单位例如该字段值为5时表示TCp首部长度为20字节。由于TCP选项字段的原因TCP首部的长度是可变的。当该字段取最大值15时表示TCP端的最大首部长度即60个字节。可见TCP段的选项字段最多为40字节。4.保留字段占6位保留为今后使用目前值为05.URG、ACK、PSH、RST、SYN、FIN字段各占1位共占6位为6位标志位。URG1时表明紧急指针字段有效通知系统此报文段中有紧急数据应尽快上送。ACK1时标识确认序号字段有效ACK0时确认序号字段无效。TCP收到PSH1的报文段时就尽快将报文段中的数据交付接收应用进程而不再等到整个缓存都填满了后再向上交付。RST1时表明TCP连接中出现严重差错(如由于主机崩溃或其他原因)必须释放连接然后重新建立TCP连接SYN1时表示此TCP报文段是一个建立新连接请求控制段或者是同意建立新连接的确认段(此时ACK1)FIN用于释放一个TCP连接FIN-1时表示该TCP报文段的发送端数据已发送完毕并请求释放TCP连接6.接收窗口字段占16位用于向对方通告接收窗口大小(单位为字节)表示接收方愿意接受的应用层数据字节数量其值是本端接收对方数据的缓存剩余空间用于实现TCP流量控制7.校验和字段占16位。校验和字段检验的范围类似于UDP包括TCP伪首部、TCP首部和应用层数据3部分计算方法与UDP校验和的计算方法相同8.紧急指针字段占16位该字段只用URG1时才有效。该字段指出本TCP报文段中紧急数据共有多少字节紧急数据放在本报文段数据的最前面即指出紧急数据最后一个字节在数据中的位置。9.选项字段长度可变。最大段长度MSS、接收窗口扩大选项(3字节)、时间戳选项(10字节)、选择性确认(SACK)选项10.填充字段长度为0-3字节取值全为0目的是为了使整个首部长度是4字节的整数倍。4、TCP为何采用三次握手来建立连接若采用二次握手可以吗为什么P115TCP之所以采用三次握手建立连接是为了确保连接双方彼此完全清楚双方状态比如初始序列号和接收窗口大小等从而可靠、稳定的建立连接同时通过三次握手建立连接还可以有效预防过期、失效的连接请求到达后导致无效连接的建立。三次握手缺一不可因为网络存在数据丢失第二次握手控制段可能丢失这样主动发起连接的一方没有接收到第二次握手的控制段则无法建立连接而接受连接建立的一方则认为连接已建立从而出现无效链接。另外二次握手建立连接也无法避免失效连接请求。5、请说明TCP建立连接与断开连接的过程并给出主要状态转移P117建立连接第一次握手客户端作为连接建立的发起端选择客户端初始序列号x向服务器发送SYN1seqx的SYN段。客户状态由LISTEN进入SYN_SEND状态等待服务器确认。第二次握手服务端收到客户端发送的SYN段后选择服务器的初始序列号y向客户端发送SYN1ACK1seqyack_seqx1的SYNACK段。同时服务器状态由LISTEN进入SYN_RCVD状态。第三次握手客户端收到服务器的SYNACK段后向服务器发送ACK1seqx1,ack_seqy1的ACK段同时客户端进入ESTABLISHED状态客户端确认连接已建立。服务的收到ACK段后也进入ESTABLISHED状态也确认连接已建立。断开连接第一次挥手当客户向服务器发送完最后一个数据段后可以发送一个FIN段FIN1sequ请求断开客户到服务器的连接其状态又ESTABLISHED进入FIN_WAIT_1,该状态只能接受服务器发送的数据而不能发送数据。第二次挥手服务器接收到客户的FIN段后向客户发送一个ACK段ACK1seqvack_sequ1ACK段可封装应用层数据。服务器状态由ESTABLISHED进入CLOSE_WAIT该状态服务器仍可发送数据但不再接收数据。客户端收到ACK段后状态由FIN_WAIT_1进入FIN_WAIT_2仍然可以接收来自于服务器的数据。此时TCP连接已经关闭了客户端向服务器方向的数据传输故称半关闭。第三次挥手服务器发送完最后一个数据段后服务器向客户发送FIN段FIN1seqwack_sequ1服务器状态由CLOSE_WAIT进入LAS_ACK此时服务器不再发送数据。第四次挥手客户收到服务器发送的FIN段后向服务器发送ACK段ACK1seqU1ack_seqw1状态由FIN_WAIT_2进入TIME_WAIT等待2MSL时间进入CLOSE状态最终释放连接服务器接收到最后一次ACK段状态由LAST_ACK进入CLOSE最终释放连接。6、TCP如何保证可靠数据传输P119TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器等。序列号是每个字节编号确认序号为期望接收的字节序号TCP通常采用累积确认通常采用单一的重传计时器计时器超时时间采用自适应算法设置超时时间重传数据段主要针对两类事件计时器超时或三次重复确认。7、请分别简述GBN协议和SR协议的工作过程GBN协议的发送窗口大于1接收窗口等于1GBN协议的发送方如果超时则重发所有已经发送单未收到确认的分组GBN协议采用累积确认。SR协议采用每个分组单独确认每个已发送的分组需要独立计时如果某个分组超时只需重发该分组SR协议的发送窗口和接收窗口都大于1。滑动窗口协议的窗口大小与序号空间需要满足一个约束条件发送窗口大小与接收窗口大小之和不大于分组序号空间大小。8、说明TCP滑动窗口机制对比TCP滑动窗口与GBN协议的异同一、TCP滑动窗口机制说明TCP滑动窗口是传输层实现流量控制、可靠传输的核心机制它以字节为单位对数据传输进行动态管控核心逻辑如下双窗口协同管理‌通信双方分别维护独立的发送窗口和接收窗口发送窗口规定了未收到确认时发送方最多可连续发送的字节总数接收窗口由接收端根据自身缓冲区剩余空间动态设置通过TCP报文头的窗口字段通告给发送方直接决定发送窗口的上限。窗口滑动规则‌发送窗口的后沿仅能在收到新的确认报文时向前移动不会向后退缩无法撤销已收到的确认前沿可根据接收端的通告动态调整TCP不支持窗口前沿向后退缩避免引发数据传输错误。当发送窗口内的所有可发送字节都已发出且未收到确认时发送方会暂停发送直到收到新的确认推动窗口滑动释放新的可发送字节区间。动态窗口计算‌TCP的实际可用发送窗口并非仅由接收端通告窗口决定而是取接收端通告窗口和网络拥塞窗口的最小值以此同时适配接收端处理能力和当前网络负载避免网络拥塞。当接收窗口为0时TCP会启动持续计时器定期发送1字节的探测报文避免双方因窗口通知报文丢失陷入死锁。配套可靠性机制‌窗口内所有已发送但未收到确认的字节都会被暂存在缓冲区中用于超时重传同时TCP采用累积确认机制确认号代表接收端下一个期望收到的字节序号意味着该序号之前的所有字节都已被正确接收。二、TCP滑动窗口与GBN后退N帧协议的异同相同点二者都属于滑动窗口类的可靠传输协议核心思路都是通过窗口机制允许发送方在未收到确认时连续发送多个数据单元避免停等协议的低效率大幅提升信道利用率。二者都采用累积确认机制接收方仅返回最后一个按序正确接收的数据的确认信息确认号之前的所有数据都默认已被正确接收无需对每个数据单独返回确认。二者都通过超时重传机制保障传输可靠性发送方会为已发出但未确认的数据维护重传缓存超时未收到确认就触发重传流程。不同点编号粒度不同‌GBN协议以帧/分组为单位进行编号窗口大小对应可连续发送的分组数量而TCP滑动窗口以字节为单位进行编号窗口大小代表可连续发送的字节总数粒度更细适配字节流的传输特性。乱序处理逻辑不同‌GBN协议的接收窗口大小固定为1收到乱序到达的分组时会直接丢弃仅保留按序接收的最新数据TCP滑动窗口的接收端会缓存乱序到达的合法字节等待缺失的字节补齐后再按序交付给上层应用不会直接丢弃乱序数据。重传策略不同‌GBN协议仅维护一个全局超时定时器一旦某个分组超时未确认发送方必须重传当前发送窗口内所有已发出但未确认的N个分组也就是“后退N帧”的核心逻辑TCP滑动窗口除了基础超时重传还支持快速重传机制当连续收到3个重复的冗余ACK时无需等待超时就直接重传对应的丢失字节无需重传整个窗口的所有数据重传效率远高于GBN。窗口灵活性不同‌GBN协议的发送窗口大小是预先固定的无法根据接收端能力和网络状态动态调整TCP滑动窗口的窗口大小是完全动态可变的同时结合接收端通告窗口和拥塞窗口进行实时调整同时实现流量控制和拥塞控制适配复杂的互联网传输环境。定时器机制不同‌GBN协议仅为整个发送窗口维护一个统一的超时定时器TCP虽然也采用类似GBN的单定时器逻辑但结合字节级的序列号和快速重传机制避免了GBN中大量不必要的全窗口重传问题。9、TCP和UDP的主要区别是什么TCP和UDP作为TCP/IP体系中传输层的两大核心协议核心区别集中体现在连接特性、传输可靠性、运行机制、传输效率和适用场景等多个维度具体差异如下连接特性差异‌TCP是面向连接的协议正式传输数据前必须通过三次握手在两端建立专属通信通道传输结束后还要通过四次挥手释放连接通信全程维持一对一的专属连接关系。UDP是无连接协议不需要提前建立连接发送数据时直接向目标地址推送报文支持一对一、一对多、多对多的灵活通信模式。传输可靠性差异‌TCP通过确认应答、超时重传、乱序重排序等完整机制严格保证数据完整、按序到达接收端几乎不会出现丢包、重复或乱序问题。UDP没有任何可靠性保障机制既不会对收到的报文返回确认应答也不会在报文丢失后触发重传数据可能出现丢失、乱序、重复的情况需要由上层应用自行处理差错问题。核心运行机制差异‌TCP内置了滑动窗口实现的流量控制、以及慢启动等算法实现的拥塞控制能力可以根据接收端处理能力和当前网络负载动态调整发送速率避免接收方过载或网络拥塞。同时TCP是面向字节流的传输模式数据会被视为连续的无边界字节序列容易出现粘包、分包问题。UDP没有流量控制和拥塞控制机制发送速率完全由应用层决定。它是面向数据报的传输模式每个报文自带明确的数据边界应用层读取时会直接返回完整的独立报文不会出现粘包问题。传输效率差异‌TCP由于需要维护连接状态、执行各类可靠性控制逻辑协议头部开销更大整体传输流程复杂额外耗时更多传输效率相对更低。UDP协议头部结构极简没有连接维护、确认重传等额外流程整体开销极低传输延迟小、速度快资源占用更少。典型适用场景差异‌TCP适合对数据准确性要求高、对实时性容忍度较高的场景比如文件传输、网页浏览HTTP/HTTPS、电子邮件、远程登录等业务。UDP适合对实时性要求极高、允许少量丢包的场景比如实时音视频通话、直播、在线多人游戏、DNS域名查询等业务。10、TCP如何实现拥塞控制慢启动拥塞避免快速重传快速恢复11、假设甲乙双方采用GBN协议发送报文段甲已经发送了编号0-7的报文段。当计时器超时时若甲只收到0号和3号报文段的确认则甲需要重发的报文段有哪些因为GBN协议采用累积确认所以甲需要重发的报文段是4-7.12、主机甲乙通过128kbit/s卫星信道互连采用滑动窗口协议发送数据链路单向传播时延为250ms分组长度为1000字节。不考虑确认分组的开销为使信道利用率不小于80%分组序号的位数至少要达到多少位传输时延dL/R(81000)(bit)/(1281000)(bit/s)0.0625s62.5ms 传播时延250ms RTT2250ms500ms信道利用率UWsL/R/RTTL/R62.5/(50062.5)0.8 Ws7.2 Ws最小取8 WsWr2K wr最小取1 k至少需要4位13、若甲乙之间已建立一条TCP连接拥塞控制处于拥塞避免阶段阈值为8MSS当甲的拥塞窗口大小为24MSS时发生了超时则甲的拥塞窗口和阈值将分别调整为多少阈值24/212拥塞窗口114、主机甲与主机乙之间已建立一条TCP连接主机甲向主机乙发送了两个连续的TCP段分别包含300字节和500字节的有效荷载第一个段的序列号是200主机乙正确接收到两个段后发送给主机甲的确认序列号是多少第一个报文段的确认序列号是200300500 第二个报文段的确认序列号是500500100015、主机甲和主机乙之间已建立一条TCP连接主机甲向主机乙发送了3个连续的TCP报文段分别包含300字节、400字节和500字节的有效荷载第3个段的序号为900若主机乙仅正确接收到第1和第3个报文段则主机乙向主机甲的确认序号是多少50016、主机甲与主机乙之间已建立一条TCP连接双方持续有数据传输且数据无差错与丢失。若甲收到一个来自于乙的TCP报文段该段的序号为1913确认序号为2046有效荷载为100字节则甲立即发送给乙的报文段的序号和确认序号分别为多少序号2046确认序号1913100201317、主机甲和主机乙已建立了TCP连接甲始终以MSS1KB大小的报文段发送数据并一直有数据发送乙每收到一个报文段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB则从t时刻起不再发生超时的情况下经过10RTT后甲的发送窗口是多少t时刻ssthresh设置为8KB/24KB 拥塞窗口设置为1KB 经过10个RTT后拥塞窗口分别为1,2,4,5,6,7,8,9,10,11,12 发送窗口取拥塞窗口和接收窗口的最小值。所以选10KB 124为慢启动阶段5-12位拥塞避免阶段18、主机甲和主机乙之间已经建立了一个TCP连接TCP最大段长度为1000字节。若主机甲的当前拥塞窗口为4000字节此时主机甲向主机乙连续发送两个最大段后成功收到主机乙发送的对第一个段的确认确认段中通告的接收窗口大小为2000字节则随后甲还可以继续向主机乙发送的最大字节数是多少1000