习题答案
第四章 应用层
3.假设在Internet上有一台FTP服务器,其名称为,IP地址为202.12.66.88,FTP服务器进程在默认端口守候并支持匿名访问(用户名:anonymous,口令:guest)。如果某个用户直接用服务器名称访问该FTP服务器,并从该服务器下载文件File1和File2,请给出FTP客户进程与FTP服务器进程之间的交互过程。
(1)FTP客户进程访问FTP服务器,首先要完成对该服务器域名的解析,最终获得该服务器的IP地址202.12.66.88;
(2)FTP的客户进程与服务器进程之间使用TCP建立起一条控制连接,并经过它传送包括用户名和口令在内的各种FTP命令;
(3)控制连接建立之后,客户进程和服务器进程之间使用TCP建立一条数据连接,通过该数据连接进行文件File1的传输;
(4)当文件File1传输完成之后,客户进程与服务器进程释放数据连接。 (5)客户进程和服务器进程之间使用TCP建立一条数据连接,通过该数据连接进行文件File2的传输;
(6)当文件File2传输完成之后,客户进程与服务器进程分别释放数据连接和控制连接。
4.在Internet上有一台WWW服务器,其名称为,IP地址为213.67.145.89,HTTP服务器进程在默认端口守候。如果某个用户直接用服务器名称查看该WWW服务器的主页,那么客户端的WWW浏览器需要经过哪些步骤才能将该页显示在客户端的屏幕上?(9分)
答:客户端的WWW浏览器获得WWW服务器的主页并显示在客户端的屏幕上的过程 如下:
(1) WWW的浏览器直接使用名称访问该WWW服务器,
首先需要完成对该服务器的域名解析,并最终获得该服务器对应的IP地址为213.67.145.89;(2分)
(2)然后,浏览器将通过TCP协议与服务器建立一条TCP连接;(2分) (3)当TCP连接建立之后,WWW浏览器就向WWW服务器发送要求获取该主 页的HTTP请求;(2分)
(4)WWW服务器在接收到浏览器的HTTP请求后,将构建所请求的Web页必 须的各种信息,并将信息(由HTML描述)通过Internet传送给客户端的浏览器。(2分)
(5)浏览器将收到的信息进行解释,然后将Web页面显示在用户的屏幕上。
5.某大学校园网上有一台主机,其IP地址为202.113.27.60,子网掩码为255.255.255.224。默认路由器配置为202.113.27.33,DNS服务器配置为202.113.16.10。现在,该主机需要解析主机域名。请逐步写出其域名解析过程。
参考答案:
该主机所在的网络为C类网,通过该子网的掩码最后一个字节224(对应的二进制为11100000)可知主机号的前3位是子网号。另外主机IP地址60字节和路由器IP地址33字节的二进制表示均为001,所以主机与默认路由器处于同一个子网中;但该主机与DNS服务器显然不处于同一子网中。下面给出域名解析过程的步骤:
(1)主机首先通过本机上的域名解析器构造一个域名请求报文,其内容是解析域名对应的IP地址,并把该报文发送给其首选的DNS服务器202.113.16.10。
(2)默认路由器收到封装有该报文的IP分组后,将根据路由表信息将该分组转发出去,直至到达DNS 服务器202.113.16.10。
(3)DNS 服务器收到该域名请求报文后,将首先查询所管辖的域名信息,如果在该信息中存在域名对应的IP地址,则把转换的IP地址以报文的形式发送给主机202.113.27.60。该响应报文最后将经过路由器202.113.27.33转发给主机202.113.27.60。本次域名解析结束。 (4)如果在所管辖的域名信息中不存在域名,则DNS服务器202.113.16.10将域名请求报文转发给与com.cn根域名服务器,由该服务器从根开始往相应的分支一级级地查找,并把最终结果经过路由器202.113.27.33转发给主机202.113.27.60。
第五章 传输层
3.TCP和UDP在传输报文时都是用了端口号来标识目的实体。试说明为什么这两个协议不使用进程号来标识?
答:进程号与操作系统相关,因此会使协议与操作系统相关;一个进程可建立多个通信信道;无法在熟知进程号上侦听。
5.在一个1Gb/s的TCP连接上,发送窗口的大小为65535B,发送方和接收方的单程延迟时间为10ms,那么,可以获得的最大吞吐率是多少?线路效率是多少?(5分)
答:由于发送窗口的大小为65535B,因此在一个RTT内可以传输一个窗口大小的数据,即最大吞吐率为65535×8/(10×2)=26214(kb/s)=26.214 Mbit/s.(3分)
而线路的效率为26.21Mb/s÷1Gb/s≈2.6%。(2分)
7.如果TCP协议使用的最大窗口尺寸为64KB,即64*1024字节,TCP报文在网络上的平均往返时间为20ms,问TCP协议所能得到的最大吞吐量是多少?(假设传输信道的带宽不受限的)(5分)
答:最大吞吐量=64*1024*8bit/20ms=26.2144Mbps
*主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100。请问: 1)第一个报文段携带了多少字节的数据?
2)主机B收到第一个报文段后发回的确认中的确认号应当是多少?
3)如果B收到第二个报文段后发回的确认中的确认号是180,请问A发送的第二个报文段中的数据有多少个字节?
4)如果A发送的第一个报文段丢失了,但第二个报文段到达了B。B在第二个报文段到达后向A发送确认。请问这个确认号应为多少? 答:30,100,80,70
第七章 网络层和IP协议
4.现有一个公司需要创建内部的网络,该公司包括工程技术部、市场部、财务部、和办公室4个部门,每个部门约有20-30台计算机。试问:
(1)若要将几个部门从网络上进行分开。如果分配该公司使用的地址为一个C类地址,网络地址为192.168.161.0,要采用什么方法,将几个部门分开?(2分)
(2)确定各部门的网络地址和子网掩码,并写出分配给每个部门网络中的主机IP地址范围。(8分) 答:
(1)可以采用划分子网的方法对该公司的网络进行划分。由于该公司包括4个部门,共需要划分为4个子网。(2分)
(2)已知网络地址为192.168.161.0是一个C类地址,所需子网数为4个,每个子网的主机数为20-30个。由于子网号和主机号不允许是全0和全1,因此,子网号的比特数为3,即最多有23-2=6个可分配的子网,主机号的比特数为5即每个子网最多有2^5-2=30个可分配的IP地址。(2分)
4个子网的网络地址分别为:192.168.161.32、192.168.161.64、192.168.161.96、192.168.161.128 。 子网掩码为255.255.255.224。(2分)
子网192.168.161.32的主机IP范围为:191.168.161.33—62 。(1分) 子网192.168.161.65的主机IP范围为:192.168.161.65—94。(1分) 子网192.168.161.96的主机IP范围为:192.168.161.97—126。(1分) 子网192.168.161.128的主机IP范围为:192.168.161.129—158。(1分)
5.假定有两台主机,主机A的IP地址为208.17.16.165,主机B的IP地址为208.17.16.185,它们的子网掩码为255.255.255.224,默认网关为208.17.16.160 。试问:
(1) 主机A能否和主机B直接通信?(2分)
(2) 主机B不能和IP地址为208.17.16.34的DNS服务器通信,为什么?(2 分)
(3) 如何只做一个修改就可以排除(2)中的故障?(2分) 答:
1)将主机A和主机B的IP地址分别与子网掩码进行与操作,得到的子网地址为208.17.16.160。因此主机A和主机B处在同一个子网中,可以直接通信。(2分)
2)主机B不能与DNS服务器通信的原因在于默认网关被错误的设置为子网地址,不是一个有效的主机地址。(2分)
3)只要将主机A和主机B的默认网关修改为108.17.16.161,就可以解决问题。(2分)
6.假设在以太网上运行IP协议,源主机A要和IP地址为192.168.1.250的主 机B通信,请问A如何得到主机B的MAC地址?(说明采用的协议以及查找 过程) 解答:
主机A采用地址解析协议ARP获得主机B的MAC地址,具体过程如下: (1)主机A首先很据主机B的IP地址192.168.1.250,在自己的ARP高速缓存 表查找与之对应的MAC地址。如果可以找到,不再进行地址解析;否则,则 以广播方式发送一个ARP请求分组,该请求分组中包含主机A的IP地址、 MAC地址以及主机B的主机地址。
(2)主机B在接收到ARP请求分组时,将完成地址解析,并发送ARP应答分 组,该分组包含了主机B的MAC地址。
(3)主机A收到来自主机B的ARP应答分组时,将提取主机B的IP地址和MAC 地址加入到ARP高速缓存表中,然后将具有完整的源IP地址、目的IP地址、 目的MAC地址和数据作为一个发送分组,传送给数据链路层并封装成帧。 4.假设一个主机的IP地址为192.55.12.120,子网掩码为255.255.255.240,求出其子网号、主机号以及直接的广播地址。
8.已知某个C类网,现要将这个网分成几个子网,其中每个子网中的主机数不小于30,如何设计子网及子网掩码使其满足题目的要求?被分成多少子网?每个子网的实际主机ID是多少?IP地址损失多少个?
解:要使主机可用ID数不少于30,加上每个子网都不能使用的全0和全1,子网实际的ID数应不少于32。而32≤2^5,所以作为主机地址的位数可选为5,因为C类网IP地址中原主机地址位数为8,用于作为主机ID号需要5位,所以子网地址的位数只乘下三位,共有8种状态,但全0和全1都不用作子网号,故实际只能分成6个子网,子网掩码为255.255.255.224。每个子网的
实际主机ID是30个。IP地址损失个数为2×32+6×2-2=74。
10.假设一个IP数据报,头部长度为20B,数据部分长度为2000B。现该分组从源主机到目的主机需要经过两个网络,这两个网络说允许的最大传输单元 MTU为1500B和576B,请问该数据报如何分片?(8分)
答:头部长为20B,数据部分长为2000B的IP数据报在经过MTU为1500B的第一个网络时进行分片,分为2个分片,分片1携带1480B的数据,分片二携带520B的数据。(4分)
在经过MTU为576B的第二个网络时,分片1仍需要分片,分为3个分片,分片3和分片4都携带556B的数据,分片5携带368B的数据。因此,目的主机收到4个分片,即分片2,分片3,分片4,分片5。(4分)
第八章 数据链路层协议
11.在数据传输过程中,若接收方收到的二进制比特序列为10110011010,接收双方采用的生成多项式为G(x)=x^4+x^3+1,则该二进制比特序列在传输中是否出现了差错?如果没有出现差错,发送数据的比特序列和CRC校验码的比特序列分别是什么?
解答:已知接收方收到的二进制比特序列为10110011010;生成多项式G(x=x4+x3+1,所对应的二进制比特序列为11001。进行如下的二进制除法,被除数为10110011010,除数为11001:得余数为0,因此该二进制比特序列在传输过程中没有出现差错。发送数据的比特序列是1011001,CRC校验码的比特序列是1010。
12.要发送的数据比特序列为1010001101,CRC校验采用协商多项式为G(x)=x^5+x^4+x^2+1,计算CRC校验码?(10分) 解答:
除数是:110101
被除数是:1010001101 00000 (除数6位减1得到5个0)
即为:1010001101 00000模2运算规定相除时采用异或操作,如下所示: