计算机网络基础知识 二

1、试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?

       运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务

       运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信。

       各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。    

2、当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是面向无连接的?

       都是。这要在不同层次来看,在运输层是面向连接的,在网络层则是无连接的。

3、试举例说明有些应用程序愿意采用不可靠的UDP,而不用采用可靠的TCP。

       VOIP:由于语音信息具有一定的冗余度,人耳对VOIP数据报损失由一定的承受度,但对传输时延的变化较敏感。有差错的UDP数据报在接收端被直接抛弃,TCP数据报出错则会引起重传,可能带来较大的时延扰动。因此VOIP宁可采用不可靠的UDP,而不愿意采用可靠的TCP。

4、 如果应用程序愿意使用UDP来完成可靠的传输,这可能吗?请说明理由

       可能,但应用程序中必须额外提供与TCP相同的功能。

5、某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?

       不可跳过UDP而直接交给IP层

       IP数据报IP报承担主机寻址,提供报头检错;只能找到目的主机而无法找到目的进程。

       UDP提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。

6、一个应用程序用UDP,到IP层把数据报在划分为4个数据报片发送出去,结果前两个数据报片丢失,后两个到达目的站。过了一段时间应用程序重传UDP,而IP层仍然划分为4个数据报片来传送。结果这次前两个到达目的站而后两个丢失。试问:在目的站能否将这两次传输的4个数据报片组装成完整的数据报?假定目的站第一次收到的后两个数据报片仍然保存在目的站的缓存中。

       不行。重传时,IP数据报的标识字段会有另一个标识符。仅当标识符相同的IP数据报片才能组装成一个IP数据报。前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。

7、在停止等待协议中如果不使用编号是否可行?为什么?

       分组和确认分组都必须进行编号,才能明确哪个分则得到了确认。

8、在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什么也没做)是否可行?

       收到重复帧不确认相当于确认丢失

9、 主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100。试问:    

(1) 第一个报文段携带了多少个字节的数据?

       第一个报文段的数据序号是70到99,共30字节的数据。

(2) 主机B收到第一个报文段后发回的确认中的确认号应当是多少?

       确认号应为100

(3) 如果主机B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有多少字节?

       80字节

(4)如果A发送的第一个报文段丢失了,但第二个报文段到达了B。B在第二个报文段到达后向A发送确认。试问这个确认号应为多少?

       70

10、为什么在TCP首部中要把TCP端口号放入最开始的4个字节?

       在ICMP的差错报文中要包含IP首部后面的8个字节的内容,而这里面有TCP首部中的源端口和目的端口。当TCP收到ICMP差错报文时需要用这两个端口来确定是哪条连接出了差错。

11、 为什么在TCP首部中有一个首部长度字段,而UDP的首部中就没有这个这个字段

       TCP首部除固定长度部分外,还有选项,因此TCP首部长度是可变的。UDP首部长度是固定的。

12、如果用户要传送的数据的字节长度超过TCP报文字段中的序号字段可能编出的最大序号,问还能否用TCP来传送

       数据的字节长度超过TCP报文段中的序号字段可能编出的最大序号,通过循环使用序号,仍能用TCP来传送。

13、在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确认报文段对应的数据的重传。试说明理由。

       还未重传就收到了对更高序号的确认。 

14在TCP的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每一种算法各起什么作用?  “乘法减小”和“加法增大”各用在什么情况下?

       慢开始:在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送端的拥塞窗口cwnd,可以分组注入到网络的速率更加合理拥塞避免:当拥塞窗口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。

       拥塞避免算法使发送的拥塞窗口每经过一个往返时延RTT就增加一个MSS的大小。

       快重传算法规定:发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应该立即重传丢手的报文段而不必继续等待为该报文段设置的重传计时器的超时。

       快恢复算法:当发送端收到连续三个重复的ACK时,就重新设置慢开始门限 ssthresh 与慢开始不同之处是拥塞窗口 cwnd 不是设置为 1,而是设置为ssthresh

若收到的重复的AVK为n个(n>3),则将cwnd设置为ssthresh;若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段;若收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh

       乘法减小:是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。

       加法增大:是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞

15、设TCP的ssthresh的初始值为8(单位为报文段)。当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免。试分别求出第1次到第15次传输的各拥塞窗口大小。你能说明拥塞控制窗口每一次变化的原因吗?

       拥塞窗口大小分别为:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9.

16、TCP在进行流量控制时是以分组的丢失作为产生拥塞的标志。有没有不是因拥塞而引起的分组丢失的情况?如有,请举出三种情况。

       当Ip数据报在传输过程中需要分片,但其中的一个数据报未能及时到达终点,而终点组装IP数据报已超时,因而只能丢失该数据报;

       IP数据报已经到达终点,但终点的缓存没有足够的空间存放此数据报;

       数据报在转发过程中经过一个局域网的网桥,但网桥在转发该数据报的帧没有足够的存储空间而只好丢弃。

17、解释为什么突然释放运输连接就可能会丢失用户数据,而使用TCP的连接释放方法就可保证不丢失数据。

       当主机1和主机2之间连接建立后,主机1发送了一个TCP数据段并正确抵达主机2,接着主机1发送另一个TCP数据段,这次很不幸,主机2在收到第二个TCP数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP报文段会丢失。

       而使用TCP的连接释放方法,主机2发出了释放连接的请求,那么即使收到主机1的确认后,只会释放主机2到主机1方向的连接,即主机2不再向主机1发送数据,而仍然可接受主机1发来的数据,所以可保证不丢失数据。

18、试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。

       3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。

       假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组,在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

19、MIME与SMTP的关系是什么的?什么是quoted-printable编码和base64编码?

       MIME全称是通用因特网邮件扩充MIME。它并没有改动或取代SMTP。MIME的意图是继续使用目前的RFC 822格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。也就是说,MIME邮件可以在现有的电子邮件程序和协议下传送。

       quoted-printable编码:对于所有可打印的ASCII码,除特殊字符等号外,都不改变。等号和不可打印的ASCII码以及非ASCII码的数据的编码方法是:先将每个字节的二进制代码用两个十六进制数字表示,然后在前面再加上一个等号。

       base64编码是先把二进制代码划分为一个24位长的单元,然后把每个24位单元划分为4个6位组。每一个6位组按以下方法替换成ASCII码。6位的二进制代码共有64种不同的值,从1到63。用A表示0,用B表示1,等等。26个大写字母排列完毕后,接下去再排26个小写字母,再后面是10个数字,最后用+表示62,而用/表示63。再用两个连在一起的等号==和一个等号=分别表示最后一组的代码只有8位或16位。回车和换行都忽略,它们可在任何地方插入。

20、试将数据 11001100 10000001 00111000进行base64编码,并得到最后传输的ASCII数据。

       对应的ASCII数据为zIE4,对应的二进制代码为:

       01111010  01001001  01000101  00110100

21、基于万维网的电子邮件系统有什么特点?在传送邮电时使用什么协议?

       特点:不管在什么地方,只要能上网,在打开万维网浏览器后,就可以收发电子邮件。这时,邮件系统中的用户代理就是普通的万维网。

       电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。

       两个邮件服务器之间的传送使用 SMTP。

       邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。

22、连接在Internet上的主机名必须是惟一的吗?

       主机名在因特网中必须是惟一的,IP地址在因特网中也必须是惟一的,但一个主机名却可以对应多个IP地址。 

23、一个单位的DNS服务器可以采用集中式的一个DNS服务器,也可以采用分布式的多个DNS服务器,哪一种方案更好些?

        从解析域名的速度来看,在集中式的一个DNS服务器上进行域名解析应当比在多个分布式的DNS服务器要快些。

        从管理的角度看,分层次的多级结构和分布式的DNS服务器要方便得多。

        计算速度方面来考虑,一个服务器若负荷过重就会使计算速度变慢。一个小单位如果很少发生同时请求域名的解析,那么一个单个的域名服务器就能很好地工作。

24、对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址都不一样,这可能吗?

        可能。例如,对域名www.yahoo.com进行解析就会出现这样的结果。产生这样的结果是为了使Yahoo这个万维网服务器的负载得到平衡(因为每天访问这个站点的次数非常多)。因此这个网站就设有好几个计算机,每一个计算机都运行同样的服务器软件。这些计算机的IP地址当然都是不一样的,但它们的域名却是相同的。这样,第一个访问该网址的就得到第一个计算机的IP地址,而第二个访问者就得到第二个计算机的IP地址,等等。这样可使每一个计算机的负荷不会太大。

25、简述FTP的工作原理。

        FTP采用客户/服务器工作模式,在客户与服务器之间利用TCP建立可靠连接,但与一般客户/服务器模式不同的是,FTP客户端与服务器之间要建立双重TCP连接,一个是控制连接,另一个是数据连接。

        控制连接传输控制信息(文件传输命令);数据连接则是真正用来传输文件数据。

        FTP服务是一种交互式服务,客户每次调用FTP便与服务器建立一个会话,并利用控制连接向服务器发送控制命令来维持会话,直到FTP关闭。FTP客户进程每提出一个请求,服务器便与客户建立一个数据连接,进行文件数据传输,一旦数据传输结束,数据连接就被撤除。

26、简述电子邮件的工作过程。

       电子邮件服务基于客户/服务器模式。

       发送方将编辑完毕的电子邮件发送给当地的邮件服务器

       邮件服务器收到客户送来的邮件,根据收件人的邮件地址发送到对方的邮件服务器中

       对方的邮件服务器接收到其他邮件服务器发来的邮件,并根据邮件地址分发到相应的电子邮箱中,这样接受方可通过电子邮箱来读取邮件,并对他们进行相关的处理。

 

展开阅读全文

没有更多推荐了,返回首页