第一章 概述
•1-02、试简述分组交换的要点。
解答:分组交换最主要的特点就是采用存储转发技术。
我们把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些必要的控制信息组成的首部后,就构成了一个分组。分组又称为“包”,而分组的首部也可称为“包头”。分组实在互联网中传送的数据单元。分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传送路径。
互联网的核心部分是由许多网络和把它们互联起来的路由器组成的,而主机处在互联网的边缘部分。主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器则是用来转发分组的,即进行分组交换的。路由器每收到一个分组,先临时存储下来,再检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把这个分组转交给下一个路由器。这样一步一步地经过若干个或几十个不同的路由器,以存储转发的方式,把分组交付最终目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和维持在路由器中的转发表,使得转发表能够在整个网络拓扑发送变化时及时更新。
•1-12、
互联网的两大组成部分(边缘与核心部分)的特点是什么?它们的工作方式各有什么特点。
解答:互联网的拓扑结构非常复杂,并且在地理上覆盖了全球,但从其工作方式上看,可以划分为以下两大块:
(1)边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
(2)核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘提供服务的(提供连通性和交换)。
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式和对等方式。
在网络核心部分起特殊作用的是路由器。路由器是实现分组交换的关键构件,互联网的核心部分的工作方式其实也就是路由器的工作方式。路由器的任务是转发收到的分组。当路由器转发分组时,必须查找路由表。因此,互联网中的各路由器必须根据路由选择协议的规定相互交换路由信息,以便使路由表更够及时反映出网络拓扑的变化。由此可见,互联网的核心部分的工作方式有两种:一种是路由器转发分组,另一种是路由器之间不断地交换路由信息。
•1-14、
计算机网络有哪些常用的新能指标。
解答:计算机网络常用的性能指标有:
(1)速率:指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率或比特率。
(2)带宽:用来表示网络的通信线路传送数据的能力,网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。
(3)吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量。
(4)时延:指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延包括发送时延、传播时延、处理时延和排队时延等。
(5)时延带宽积:是传播时延和带宽的乘积。链路的时延带宽积又称为以比特为单位的链路长度。
(6)往返时间:表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。有时,往返时间还包括网络各中间结点的处理时延、排队时延及转发数据时的发送时延。
(7)利用率:分信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时候是被利用的。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。
•1-24、简答题必考
试述具有五层协作以的网络体系结构的要点,包括各层的主要功能。
解答:OSI的体系结构是七层协议。TCP/IP的体系结构是四层协议,而真正有具体内容的只是上面三层。在学习计算机网络的原理是往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构:物理层、数据链路层、网络层、运输层和应用层。
这五层协议的各层的主要功能如下:
(1)物理层。物理层的任务就是透明地传送比特流。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。
(2)数据链路层。数据链路层将网络层交下来的IP数据报组装成帧,在相邻结点间的链路上“透明”地传送帧中的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
(3)网络层。网络层负责为交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。
(4)运输层。运输层的任务就是负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付上面应用层中的相应的进程。运输层主要使用以下两种协议:一个是传输控制协议TCP,是面向连接的,数据传输的单位是报文段,能够提供可靠的交付。另一个是用户数据报协议UDP,是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能“尽最大努力交付”。
(5)应用层。应用层是体系结构中的最高层。应用层直接为用户的应用进程提供服务。在互联网中的应用层协议很多,如支持万维网应用的HTTP协议、支持电子邮件的SMTP协议,支持文件传送的FTP协议,等等
•1-17、
收发两端之间的传输距离为1000km,信号在媒体上的传播速率为 m/s。
试计算以下两种情况的发送时延和传播时延:
•(1)数据长度为 bit,数据发送速率为100kbit/s。
•(2)数据长度为 bit,数据发送速率为1Gbit/s。
从以上计算结果可得出什么结论?
解答:两种情况分别计算如下:
(1)发送时延为 ,
传播时延为 。
发送时延远大于传播时延。
(2)发送时延为 ,
传播时延为5ms。
发送时延远小于传播时延。
若数据长度大而发送速率低,则在总的时延中,发送时延往往大于传播时延。但若数据长度短而发送速率高,则传播时延又可能是总时延中的主要成分。
•1-18、
假设信号在媒体上的传播速率为 。媒体长度 分别为:
(1)10cm(网络接口卡)
(2)100m(局域网)
(3)100km(城域网)
(4)5000km(广域网)
试计算当数据率为1Mbit/s和10Gbit/s时,在以上媒体中正在传播的比特数。
解答:计算步骤如下:
先计算10cm(即0.1m)的媒体上信号的传播时延:计算10CM线路上正在传播的比特数:
1Mbit/s数据率时为:
10Gbit/s数据率时为:
第三章 数据链路层
3-01,三个基本问题 简答题必考
数据链路层的三个基本问题
-
封装成帧
封装成帧(framing):就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
分组交换的一个重要概念:就是所有在因特网上传送的数据都是以分组(即IP数据报)为传送单位。
网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,就构成了一个完整的帧。
帧长等于数据部分长度加上帧首部和帧尾部的长度,而首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。
首部和尾部还包含许多必要的控制信息,在发送帧时,是从帧首部开始发送。
各种数据链路层协议都要对帧首部和帧尾部的格式有明确的规定。
为了提高帧的传输效率,应当使帧的数据部分长度尽可能大于首部和尾部的长度。但是,每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU(Maximum Transfer Unit)。
当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。
控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(End Of Transmission)表示帧的结束。他们的十六进制编码分别是01(二进制是00000001)和04(二进制是00000100)。
当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发完一个帧时突然出现故障,中断了发送。但随后很快又恢复正常,于是重新从头开始发送刚才未发送完的帧。由于使用了帧定界符,在接收端就知道前面收到的数据时个不完整的帧(只有首部SOH,没有传输结束符EOT),必须丢弃。而后面收到的数据有明显的帧定界符(SOH和EOT),因此这是一个完整的帧,应当收下。
-
透明传输
由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
当传送的帧使用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。
问题:当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了,如果数据中的某个字符的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地找到帧的边界,把部分帧收下(误认为是完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)。这样的帧的传输显然就不是透明传输。
问题分析:为了解决透明传输的问题,就必须设法使数据中可能出现的控制字符”SOH”和”EOT”在接收端不被解析为控制字符。
解决方法:发送端的数据链路层在数据中出现控制字符”SOH”和”EOT”的前面插入一个转义字符”ESC”(其十六进制编码是1B)。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)。如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。
-
差错检测
传输差错:可分为两大类,一类就是最基本的比特差错,另一类就是收到的帧并没有出现比特错误,但却出现了帧丢失、帧重复或帧失序。
比特差错:就是比特在传输过程中可能会产生差错,即1可能会变成0,0可能会变成1。比特差错是传输差错中的一种。
三个帧:[#1]-[#2]-[#3],假定在接收端收到的却有可能出现的情况:
(1)帧丢失:收到[#1]-[#3](丢失了[#2])。
(2)帧重复:收到[#1]-[#2]-[#2]-[#3](收到两个[#2])。
(3)帧失序:收到[#1]-[#3]-[#2](后面发的帧反而先到达了接收端,这与一般的数据链路层传输概念不一样)。
误码率BER(Bit Error Rate):就是在一段时间内,传输错误的比特占所传输比特总数的比率。例如,误码率为10(-10)时,表示平均每传送1010个比特就会出现一个比特的差错。误码率与信噪比有很大的关系,如果提高信噪比,就可以使误码率减小。
问题:实际的通信链路并非理想的,它不可能使误码率下降到零。
问题分析:为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种检测措施。
解决方法:目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检测技术。
注:在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
补充: OSI的观点是必须把数据链路层做成是可靠传输的。因此在CRC检测基础上,增加了帧编号、确认和重传机制。收到正确的帧就要向发送端发送确认。发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。
这种方法在历史上曾经起到很好的作用。但现在的通信线路的质量已经大大提高了,由通信链路质量不好引起差错的概率已经大大降低。
因特网广泛使用的数据链路层协议都不适用确认和重传机制,即不要求数据链路层向上层提供可靠传输的服务(因为这要付出的代价太高,不合算)。如果在数据链路层传输数据时除了差错并且需要进行改正,那么改正差错的任务就由上层协议(如,运输层TCP协议)来完成。实验证明,这样可以提高通信效率。
3-02、
数据链路层中的链路控制包括哪些功能?试讨论把数据链路层做成可靠的链路层有哪些优点和缺点。
解答:链路控制的主要功能有三:(1)封装成帧;(2)透明传输;(3)差错检测。
数据链路层做成可靠的链路层,就表示从源主机到目的主机的整个通信路径中的每一段链路的通信都是可靠的。这样做的优点是可以使网络中的某个结点及早发现传输中出了差错,因而可以通过数据链路层的重传来纠正这个差错。如果数据链路层不是做成可靠的链路层,那么当网络中的某个结点发现收到的帧有差错时,就仅仅丢弃有差错的帧,而并不通知发送结点重传出现差错的帧。只有当目的主机的高层协议(例如,运输层协议TCP)发现了这个错误时,才通过源主机重传出现差错的数据。但这时已经迟了,可能要重传较多的数据,对网络资源有些浪费。
但是,有时高层协议使用的是不可靠的传输协议UDP。UDP并不要求重传有差错的数据。在这种情况下,如果数据链路层做成是可靠的链路层,那么在某些情况下这并不会带来更多的好处。换言之,增加了可靠性,牺牲了实时性,有时反而是不合适的
3-08、必考
要发送的数据为101110。采用CRC的生成多项式为 。试求应添加在数据后面的余数。
解答:CRC的生成多项式为
,因此用二进制表示的除数为
P=1001。除数是4位。在数据后面要添加3个0。进行CRC运算后,得出余数R=011。
•3-28、
10Mbit/s以太网升级到100Mbit/s,1Gbit/s和10Gbit/s时,都需要解决哪些技术问题?为什么以太网能够在发展的过程中淘汰掉自己的竞争对手,并使自己的应用范围从局域网一直扩展到城域网和广域网?
解答:IEEE802.3 u的100Mbit/s以太网标准未包括对同轴电缆的支持。这意味着想从10Mbit/s细缆以太网升级到100Mbit/s快速以太网的用户必须重新布线。现在10/100Mbit/s以太网多使用无屏蔽双绞线布线。
在100Mbit/s的以太网中,保持最短帧长不变,把一个网段的最大电缆长度减少到100m。但最短帧长仍为64字节,即512比特。因此100Mbit/s以太网的争用期是5.12us,帧间最小间隔现在是0.96us,都是10Mbit/s以太网的1/10。
吉比特以太网的标准是IEEE802.3z,它有以下几个特点:
(1)允许在1Gbit/s下全双工和半双工两种工作方式。
(2)使用IEEE802.3协议规定的帧格式。
(3)在半双工方式下使用CSMA/CD协议(全双工方式不需要CSMA/CD协议)。
(4)与10BASE-T和100BASE-T技术向后兼容。
解答:吉比特以太网工作在半双工方式时,就必须进行碰撞检测。吉比特以太网仍然保持一个网段的最大长度为100m,但采用了“载波延伸”的办法,使最短帧长仍为64字节(这样可以保持兼容性),同时将争用期增大为512字节。凡发送的MAC帧长不足512字节时,就用一些特殊字符填充在帧的后面,使MAC帧的发送长度增大到512字节,这对有效载荷并无影响。接收端在收到以太网的MAC帧后,要把所填充的特殊字符删除后才向高层交付。当原来仅64字节长的短帧填充到512字节时,所填充的448字节就造成了最大的开销。
吉比特以太网还增加了分组突发的功能。当很多短帧要发送时,第一个短帧要采用上面所说的载波延伸的方法进行填充。但随后的一些短帧则可一个接一个地发送,它们之间只需要留有必要的帧间最小间隔即可。这样就形成一串分组的突发,直到达到1500字节或稍多一些为止。当吉比特以太网工作在全双工方式时,不适用载波延伸和分组突发。
解答:10G比特以太网简称为10GE,其正式标准是IEEE802.3ae,它的帧格式不变。10GE还保留了802.3标准规定的以太网最小和最大帧长。这就使用户在将其已有的以太网进行升级时,仍能和较低速率的以太网很方便地通信。
由于数据率很高,10GE不再使用铜线而只使用光纤作为传输媒体。它使用长距离的光收发器与单模光纤接口,以便能够在广域网和城域网的范围。10GE也可使用较便宜的多模光纤,但传输距离为65~300m。
10GE只工作在全双工模式,因此不存在争用问题,也不使用CSMA/CD协议。这就使得10GE的传输距离不再受进行碰撞检测的限制而大大提高了。
解答:以太网从10Mbit/s到10Gbit/s的演进,是因为以太网具有以下的一些优点:
(1)可扩展(从10Mbit/s到10Gbit/s)。
(2)灵活(多种媒体、全/半双工、共享/交换)。
(3)易于安装。
(4)稳健性好。
•3-30、
在图T-3-30中,某学院的以太网交换机有三个接口分别和学院三个系的以太网的路由器相连。图中的A,B和C都是100Mbit/s以太网交换机。假定所有链路的速率都是100Mbit/s,并且图中的9台主机中的任何一个都可以和任何一个服务器或主机通信。试计算这9台主机和两个服务器产生的总的吞吐量的最大值。为什么?
解答:这里的9台主机和两个服务器都工作时的总吞吐量是900+200=1100Mbit/s。三个系各有一台主机分别访问两个服务器和通过路由器上网。其他主机在系内通信。
第四章 网络层
•4-09、
试回答下列问题:
(1)子网掩码为255.255.255.0代表什么意思?
(2)一个网络的现在掩码为255.255.255.248,问该路由器能够连接多少台主机?
(3)一个A类网络和一个B类网络的子网号subnet-id分别为16个1和8个1,问这两个网络的子网掩码有何不同?
(4)一个B类地址的子网掩码是255.255.240.0。试问在其中每一个子网上的主机数最多是多少?
(5)一个A类网络的子网掩码为255.255.0.255,它是否为有效的子网掩码?
(6)某个IP地址的十六进制表示是C2.2F.14.81,试将其转换为点分十进制的形式。这个地址是哪一类IP地址?
(7)C类网络使用子网掩码有无实际意义?为什么?
解:(1)可以是C类地址对应的子网掩码默认值,也可以是A类或B类地址的掩码,这时主机号由最后8位决定,而路由器寻找网络由前24位决定。
(2)只有3位分配给主机号,扣除全0和全1的主机号,可用的共6个主机号。
(3)两个网络的子网掩码一样,但它们的子网数目不同。
(4)每个子网上的主机最多可有212-2=4094个。
(5)是一个有效的子网掩码,但不推荐这用使用,因为子网中的1不是连续的。
(6)194.47.20.129,是C类地址。
(7)有实际意义。对于小网络这样做还可以进一步划分几个子网。
4-19 从IPv4过渡到IPv6的方法有哪些 简答题必考
Ipv4到Ipv6的过渡的主要方法有双栈策略和隧道策略。
1、双栈策略:
是指在网元中同时具有 IPv4和IPv6两个协议栈,它既可以接收、处理、收发IPv4的分组,也可以接收、处理、收发IPv6的分组。对于主机(终端)来讲,“双栈”是指其 可以根据需要来对业务产生的数据进行IPv4封装或者IPv6封装。对于路由器来讲,“双栈”是指在一个路由器设备中维护IPv6和IPv4两套路由协议栈,使得路由器既能与IPv4主机也能与IPv6主机通信,分别支持独立的IPv6和IPv4路由协议。
2、隧道策略:
是 IPv4/v6综合组网技术中经常使用到的一种机制,所谓“隧道”,简单地讲就是利用一种协议来传输另一种协议的数据技术,隧道包括隧道入口和隧道出口 (隧道终点),这些隧道端点通常都是双栈节点。在隧道入口以一种协议的形式来对另外一种协议数据进行封装并发送。在隧道出口对接收到的协议数据解封装, 并做相应的处理。在隧道的入口通常要维护一些与隧道相关的信息,如记录隧道MTU等参数。
•4-20、必考
设某路由器建立了如下路由表:
目的网络 子网掩码 下一跳
128.96.39.0 255.255.255.128 接口m0
128.96.39.128 255.255.255.128 接口m1
128.96.40.0 255.255.255.128 R2
192.4.153.0 255.255.255.192 R3
*(默认) - R4
现共收到5个分组,其目的地址分别为:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.4.153.17
(5)192.4.153.90
试分别计算其下一跳。
解:(1)128.96.39.10与255.255.255.128相与得128.96.39.0,故从接口m0转发;
(2) 128.96.40.12与255.255.255.128相与得128.96.40.0,故从接口R2转发;
(3) 128.96.40.151与255.255.255.128相与得128.96.40.128,没有匹配的网络,只能选择默认路由,故从接口R4转发;
(4) 192.4.153.17与 255.255.255.192相与得192.4.153.0,故从接口R3转发;
(5) 192.4.153.90与255.255.255.192相与得192.4.153.64,没有匹配的网络,只能选择默认路由,故从接口R4转发。
•4-21、必考
某单位分配到一个B类IP地址,其ned-id为129.250.0.0。该单位有4000台机器,平均分布在16个不同的地点。如选用子网掩码为255.255.255.0,试给每一个地点分配一个子网号码,并算出每个地点主机号码的最小值和最大值。
解:4000/16=250,故每个网络有250台主机,主机号8位就够了。而16个不同地点需要16个子网。剔除全1和全0的子网号,因此子网号至少需要5位。题目已经给定了子网掩码为255.255.255.0,就是说,题目已经确定了采用8位的子网号,因此子网号可以选用从00000001到00010000这样16个号码。每一个地点的主机号从00000001到11111010共250个号码。
•4-41、
假定网络中的路由器B的路由有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”):
N1 7 A
N2 2 C
N6 8 F
N8 4 E
N9 4 F
现在B收到从C发来的路由信息(这两列分别表示“目的网络”和“距离”):
N2 4
N3 8
N6 4
N8 3
N9 5
试求出路由器B更新后的路由表(详细说明每一个步骤)。
解:先把收到的路由信息中的“距离” 加1:
N2 5
N3 9
N6 5
N8 4
N9 6
路由器B更新后的路由表如下:
N1 7 A 无新信息,不改变
N2 5 C 相同的下一跳,更新
N3 9 C 新的项目,添加进来
N6 5 C 不同的下一跳,距离更短,更新
N8 4 E 不同的下一跳,距离一样,不改变
N9 4 F 不同的下一跳,距离更大,不改变
第五章 运输层
•5-21、
假定使用连续ARQ协议,发送窗口大小是3,而序号范围是[0,15],而传输媒体保证在接收方能够按序收到分组。在某一时刻,在接收方,下一个期望收到的序号是5。试问:
(1)在发生方的发送窗口中可能出现的序号组合有哪些?
(2)接收方已经发送出的、但在网络中(即还未到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组。
解:(1)在接收方,下一个期望收到的序号是5。这表明序号到4为止的分组都已收到。若这些确认都已到达发送方,则发送窗口最靠前,其范围是[5,7]。
假定所有的确认都丢失了,发送方没有收到这些确认。这时,发送窗口最靠后,应为[2,4]。
因此,发送窗口可以是[2,4], [3,5], [4,6], [5,7]中的任何一个。
(2)接收方期望收到序号5的分组,说明序号2,3,4的分组都已经收到,并且发送了确认。对序号为1的分组的确认肯定被发送方收到了,否者发送方不可能发送4号分组。可见,对序号为2,3,4的分组的确认有可能仍滞留在网络中。这些确认是用来确认序号为2,3,4的分组的。
•5-22、
主机A向主机B发送一个很长的文件,其长度为L字节。假定TCP使用的MSS为1460字节。
(1)在TCP的序号不重复使用的条件下,L的最大值为多少?
(2)假定使用上面计算出的文件长度,而运输层、网络层和数据链路层所用的首部开销共66字节,链路的数据率10Mbit/s,试求这个文件所需的最短发送时间。
解:
(1)可能的序号共232=4294967296。TCP的序号是数据字段的每一个字节的编号,而不是每一个报文段的编号。这个文件L的最大值就是可能的序号数,即4294967296字节。若1GB=230B,则L的最大值是4GB。
(2)232/1460=2941758.422,需要发送2941759个帧。
帧首部的开销是66× 2941759=194156094字节。
发送的总字节数是=232+194156094=4489123390字节。
数据率10Mbit/s=1.25MB/s=1250000字节/秒。
发送4489123390字节所需时间为:4489123390/1250000=3591.3秒。
即59.85分,约1小时。
•5-23、
主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100。试问:
(1)第一个报文段携带了多少字节的数据?
(2)主机B收到第一个报文段后发回的确认中的确认号应当是多少?
(3)如果B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有多少字节?
(4)如果A发送的第一个报文段丢失了,但第二个报文段到了B。B在第二个报文段到达后向A发送确认。试问这个确认号应为多少?
解:
(1)第一个报文段的数据序号是70到99,共30字节的数据。
(2)B期望收到下一个报文段的第一个数据字节的序号是100,因此确认号应为100。
(3)A发送的第二个报文段中的数据中的字节数是180-100=80字节。
(4)B在第二个报文段到达后向A发送确认,其确认号应为70。
•5-27、
一个TCP报文段的数据部分最多为多少个字节?为什么?如果用户要传送的数据的字节长度超过TCP报文段中的序号字段可能编出的最大序号,问还能否用TCP来传送?
解:一个TCP报文段的数据部分最多为65495字节。数据部分加上TCP首部的20字节,再加上IP首部的20字节,正好是IP数据报的最大长度65535字节。当然,若IP首部包含了选项,则IP首部长度超过20字节,这时TCP报文段的数据部分的长度将小于65495字节。
如果用户要传送的数据的字节长度超过TCP报文段中的序号字段可能编出的最大序号,仍可用TCP来传送。编号用完后再重复使用。但应设法保证不出现编号的混乱。
•5-39、必考
TCP的拥塞窗口cwnd大小与传输轮次n的关系如下所示:
cwnd | 1 | 2 | 4 | 8 | 16 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
cwnd | 40 | 41 | 42 | 21 | 22 | 23 | 24 | 25 | 26 | 1 | 2 | 4 | 8 |
n | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
(1)试画出如图5-25所示的拥塞窗口与传输轮次的关系曲线。
(2)指明TCP工作在慢开始阶段的时间间隔。
(3)指明TCP工作在拥塞避免阶段的时间间隔。
(4)在第16轮次和第22轮次之后发送方是通过三个重复的确认还是通过超时检测到丢失了报文段?
(5)在第1轮次、第18轮次和第24轮次发送时,门限ssthread分别被设置为多大?
(6)在第几轮次发送出第70个报文段?
(7)假定在第26轮次之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口cwnd和门限应设置为多大?
解:(1)
解:(2)慢开始时间间隔:[1,6]和[23,26]。
(3)拥塞避免时间间隔[6,16]和[17,22]。
(4)在第16轮次之后发送方通过收到三个重复的确认检测到丢失了报文段,因此题目给出,下一个轮次的拥塞窗口减半了。在第22轮次之后发送方是通过超时检测到丢失了报文段,因为题目给出,下一个轮次的拥塞窗口下降到1了。
(5)在第1轮次发送时,门限ssthresh被设置为32,因此从第6轮次起就进入了拥塞避免状态,拥塞窗口每个轮次加1。在第18轮次发送时,门限ssthresh被设置为发生拥塞时拥塞窗口42的一半,即21。在第24轮次发送时,门限ssthresh被设置为发生拥塞时拥塞窗口26的一半,即13。
(6)第1轮次发送报文段1 (cwnd=1) 。第2轮次发送报文段2,3 (cwnd=2) 。第3轮次发送报文段4~7 (cwnd=4) 。
第4轮次发送报文段8~15 (cwnd=8) 。第5轮次发送报文段16~31 (cwnd=16) 。第6轮次发送报文段32~63 (cwnd=32) 。第7轮次发送报文段64~94 (cwnd=33) 。因此第70报文段在第7轮次发送出。
(7)检测出了报文段的丢失时拥塞窗口cwnd是8,因此拥塞窗口cwnd的数值应当减半,等于4,而门限ssthresh应设置为检测出报文段丢失时拥塞窗口8的一半,即4。
第六章 传输层
DNS解析过程
当一个用户在地址栏输入www.taobao.com时,DNS解析有大致十个过程,如下:
\1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。
\2. 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。
但是这种操作系统级别的域名解析规程也被很多黑客利用,通过修改你的hosts文件里的内容把特定的域名解析到他指定的ip地址上,造成所谓的域名劫持。所以在windows7中将hosts文件设置成了readonly,防止被恶意篡改。
\3. 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。
\4. 如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析
\5. 根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址
\6. 此时LDNS再发送请求给上一步返回的gTLD
\7. 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器
\8. Name Server根据映射关系表找到目标ip,返回给LDNS
\9. LDNS缓存这个域名和对应的ip
\10. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束