第三章课后习题1、考虑在主机A和主机B之间有一条TCP连接。假设从主机A传送到主机B的TCP报文段具有源端口号x和目的端口号y。对于从主机B传送到主机A的报文段,源端口号和目的端口号分别是多少?2、描述应用程序开发者为什么可能选择在UDP上运行应用程序而不是在TCP上运行的原因。3、假定在主机C上的一个进程有一个具有端口号6789的UDP套接字。假定主机A和主机B都用目的端口号6789向主机C发送一个UDP报文段。这两台主机的这些报文段在主机C都被描述为相同的套接字吗?如果是这样的话,在主机C的该进程将怎样知道源于两台不同主机的这两个报文段?4、在我们的rdt协议中,为什么需要引入序号?5、在我们的rdt协议中,为什么需要引入定时器?6、是非判断题:a.主机A经过一条TCP连接向主机B发送一个大文件。假定主机B没有数据发往主机A。因为主机B不能随数据捎带确认,所以主机B将不向主机A发送确认。b.在连接的整个过程中,TCP的rwnd的长度决不会变化。c.假设主机A通过一条TCP连接向主机B发送一个大文件。主机A发送但未被确认的字节数不会超过接收缓存的大小。d.假设主机A通过一条TCP连接向主机B发送一个大文件。如果对于这条连接的一个报文段的序号为m,则对于后继报文段的序号将必然是m+1。e.TCP报文段在它的首部中有一个rwnd字段。f.假定在一条TCP连接中最后的SampleRTT等于1秒,那么对于该连接的TimeoutInterval的当前值必定大于等于1秒。g.假设主机A通过一条TCP连接向主机B发送一个序号为38的4个字节的报文段。在这个相同的报文段中,确认号必定是42。7、假设主机A通过一条TCP连接向主机B发送两个紧接着的TCP报文段。第一个报文段的序号为90,第二个报文段序号为110。a.第一个报文段中有多少数据?b.假设第一个报文段丢失而第二个报文段到达主机B。那么在主机B发往主机A的确认报文中,确认号应该是多少?8、UDP和TCP使用反码来计算它们的检验和。假设你有下面3个8比特字节:01010011,01100110,01110100。这些8比特字节和的反码是多少?(注意到尽管UDP和TCP使用16比特的字来计算检验和,但对于这个问题,你应该考虑8比特和。)写出所有工作过程。UDP为什么要用该和的反码,即为什么不直接使用该和呢?使用该反码方案,接收方如何检测出差错?1比特的差错将可能检测不出来吗?2比特的差错呢?9、当数据分组和确认分组发生篡改时,给出rdt3.0协议运行的轨迹。你画的轨迹应当类似于图3-16中所用的图。10、考虑在图3-14中的rdt2.2接收方,在状态“等待来自下层的0”和状态“等待来自下层的1”中的自转换(即从某状态转换回自身)中生成一个新分组:sndpk=make_pkt(ACK,1,checksum)和sndpk=make_pkt(ACK,0,checksum)。如果这个动作从状态“等待来自下层的1”中的自转换中删除,该协议将正确工作吗?评估你的答案。在状态“等待来自下层的0”中的自转换中删除这个事件将会怎样?[提示:在后一种情况下,考虑如果第一个发送方到接收方的分组损坏的话,将会发生什么情况?]11、对下面的问题判断是非,并简要地证实你的回答:a.对于SR协议,发送方可能会收到落在其当前窗口之外的分组的ACK。b.对于GBN协议,发送方可能会收到落在其当前窗口之外的分组的ACK。c.当发送方和接收方窗口长度都为1时,比特交替协议与SR协议相同。d.当发送方和接收方窗口长度都为1时,比特交替协议与GBN协议相同。