计算机网络第三章习题(谢希仁)

2024-01-25 13:12

本文主要是介绍计算机网络第三章习题(谢希仁),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据链路层

  • 1. 数据链路(即逻辑链路)与链路(即物理链路)有何区别? “电路接通了”与“数据链路接通了”的区别何在?
  • 2. 数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。
    • 功能
    • 优点和缺点
  • 3. 网络适配器的作用是什么? 网络适配器工作在哪一层?
    • 网络适配器的作用:
  • 4. 数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决 ?
  • 5. 如果在数据链路层不进行封装成帧,会发生什么问题 ?
  • 6. 点对点PPP协议的主要特点是什么 ? 为什么 PPP 不使用的编号?PPP 适用于什么情况 ? 为什么PPP协议不能使数据链路层实现可靠传输?
    • 特点
    • 为什么不使用帧编号 ?
    • 适用情况
    • 为什么 PPP 协议不能使数据链路层实现可靠传输 ?

1. 数据链路(即逻辑链路)与链路(即物理链路)有何区别? “电路接通了”与“数据链路接通了”的区别何在?

  1. 链路: 指的是两个结点之间的物理线路,链路的传输介质有双绞线、同轴电缆、光纤、微波等。分为有线和无线链路。

  2. 数据链路:在链路的基础的上,给加上一些必要的通信协议来控制数据的传输。现在常用的方法是网络适配器(网卡)来实现这些协议。一般适配器都包含数据链路层和物理层这两层的功能。

  3. 电路接通了:表明物理连接已经能够传送比特流,但是数据传输并不可靠。

  4. 数据链路接通了:在物理连接的基础上,再建立数据链路连接。数据链路连接具有检测、确认和重传功能,使不可靠的物理链路变为可靠的物理链路,进行可靠的数据传输,当数据链路断开时,物理链路不一定跟着断开。

2. 数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。

功能

  1. 链路管理:负责建立、维护和释放数据链路层的连接。
  2. 封装成帧: 给IP数据报加上帧开始、帧结束,就确定了帧的界限。
  3. 透明传输:数据链路层对上层协议隐藏了数据传输的细节,使得上层协议在发送或接受收据时,感觉不到数据链路层的存在。
    传输的过程中,IP数据报里面可能会出现帧结束符,如果出现的话,给前面加入转义字符。
  4. 差错控制:在数据传输过程中数据可能由于信号的干扰或者别的原因,导致数据不正确,使用差错控制是为了确保数据的正确性。 一般使用的CSC检验的方法。(可能也会出现问题)
  5. 流量控制:调节发送方的数据发送速率,以适应接收方的接收能力,防止数据丢失或缓冲区溢出。

优点和缺点

  1. 数据链路层做成可靠的链路层,就表示从源主机到目的主机的整个通信路径中的每一段链路的通信都是可靠的。这样做的优点是可以使网络中的某个结点及早发现传输中出了差错,因而可以通过数据链路层的重传来纠正这个差错。

如果数据链路层不是做成可靠的链路层,那么当网络中的某个结点发现收到的帧有差错时(不管数据链路层是否做成是可靠的,这个检查差错的步骤总是要有的),就仅仅丢弃有差错的帧,而并不通知发送结点重传出现差错的帧。只有当目的主机的高层协议(例如,运输层协议TCP)发现了这个错误时,才通知源主机重传出现差错的数据, 但这时已经较迟了,可能要重传较多的数据(包括没有出差错的数据),对网络资源有些浪费。

但是,有时高层协议使用的是不可靠的传输协议UDP。UDP并不要求重传有差错的数据。在这种情况下,如果数据链路层做成是可靠的链路层,那么在某些情况下这并不会带来更多 的好处(例如,当高层传送实时音频或视频信号时)。换言之,增加了可靠性,牺牲了实时性,有时反而是不合适的。

3. 网络适配器的作用是什么? 网络适配器工作在哪一层?

网络适配器的作用:

  1. 进行数据串行传输和并行传输的转换;
  2. 对数据进行缓存,对接收速率进行匹配;
  3. 对接收的数据进行差错检测;
  4. 跟主机当中的存储器、CPU等部件进行协调;
  5. 实现以太网协议,如数据的封装、发送、地址的检查、接收、有效判断、校验等等。

一般网络适配器包含物理层和数据链路层,通常工作在物理层和数据链路层。

4. 数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决 ?

  1. 封装成帧就是在一段数据的前后分别添加首部和尾部(在首部和尾部里面有许多必要的控制信息)这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
  2. 透明传输就是上层交下来的数据,不管是什么形式的比特组合,都必须能够正确传送。由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何比特组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。数据链路层不应当对要传送的数据提出限制,即不应当规定某种形式的比特组合不能 够传送。
  3. 如果数据链路层没有差错检测 那么当目的主机收到其他主机发送来的数据时,在交给高层后,如果应用程序要求收到的数据必须正确无误,那么目的主机的高层软件可以对收到的数据进行差错检测。如果发现数据中有差错,就可以请求源主机重传这些数据。这样做就可以达到正确接收数据的目的。但这种工作方式有一个很大的缺点,就是一些在传输过程中出现了错误的数据(请注意,这些已经是没有用处的数据)还会继续在网络中传送,这样就浪费了网络的资源。例如,源主机到目的主机的路径中共有20个结点。在传送数据时,第一个结点就检测出了差错。如果数据链路层有差错检测的功能,就可以把这个有差错的帧丢弃,以后就不再传送了。否则这个没有用处的帧还要在网络上继续传送,还要陆续通过后面19个结点,这就造成了网络资源的浪费。
    像网络设备也会对帧进行检验,只不过比较简单,如果发现帧长度不对,会把该帧丢弃。这些节点通常不会像发送端和接收端那样对帧内容进行深入的差错检测。

5. 如果在数据链路层不进行封装成帧,会发生什么问题 ?

数据链路层在收到数据时,就无法知道对方传送的数据中哪些是数据,哪些是信息,甚至数据中有没有差错也不清楚(因为无法进行差错检测)。

6. 点对点PPP协议的主要特点是什么 ? 为什么 PPP 不使用的编号?PPP 适用于什么情况 ? 为什么PPP协议不能使数据链路层实现可靠传输?

特点

只检测差错,如果有差错就会丢弃,而不是去改正;也不使用序号;不进行流量控制;可同时支持多种网络层协议。

为什么不使用帧编号 ?

因为帧的编号是为了出错时可以有效地重传,而PPP并不需要实现可靠传输。

适用情况

PPP协议适用于用户使用拨号电话线接入因特网的情况。

为什么 PPP 协议不能使数据链路层实现可靠传输 ?

因为PPP没有编号和确认机制,这样就必须靠上层的协议(有编号和重传机制)才能保证数据传输正确无误,这样就会使数据的传输效率降低。

是出于以下考虑:

  1. 若使用能够实现可靠传输的数据链路层协议(如HDLC),开销就要增大。在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理。

  2. 在因特网环境下,PPP的信息字段放入的数据是IP数据报。假定我们采用了能实现可靠传输但十分复杂的数据链路层协议,然而当数据帧在路由器中从数据链路层上升到网络层后,仍有可能因网络授拥塞而被丢弃。因此,数据链路层的可靠传输并不能保证网络层的传输也是可靠的。

  3. PPP协议在帧格式中有帧检验序列FCS安段。对每一个收到的帧,PPP都要使用硬件进行CRC检验。若发现有差错,则丢弃该帧(一定不能把有差错的帧交付给上一层)。端到端的差错检测最后由高层协议负责。因此,PPP协议可保证无差错接受。

这篇关于计算机网络第三章习题(谢希仁)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643366

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形

【C++ Primer Plus习题】12.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "String.h"using namespace std;int main(){String s1(" and I am a

CCF推荐C类会议和期刊总结(计算机网络领域)

CCF推荐C类会议和期刊总结(计算机网络领域) 在计算机网络领域,中国计算机学会(CCF)推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结,包括全称、出版社、dblp文献网址以及所属领域。 目录 CCF推荐C类会议和期刊总结(计算机网络领域) C类期刊 1. Ad Hoc Networks 2. CC 3. TNSM 4. IET Com

c++习题30-求10000以内N的阶乘

目录 一,题目  二,思路 三,代码    一,题目  描述 求10000以内n的阶乘。 输入描述 只有一行输入,整数n(0≤n≤10000)。 输出描述 一行,即n!的值。 用例输入 1  4 用例输出 1  24   二,思路 n    n!           0    1 1    1*1=1 2    1*2=2 3    2*3=6 4

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心

C语言程序与设计第四版课后习题 - 1~8章大合集

前言 本文章是一个大合集,按照课后习题的命名方式命名,方便寻找,只需要在目录上点相对应的题号即可在这里插入图片描述 第一章课后习题 1.1 编写一个C程序 题目概述: 请参照本章例题,编写一个C程序,输出一下信息: *****************************Very good!***************************** 代码实现: #define

【C++ Primer Plus习题】12.1

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "Cow.h"using namespace std;int main(){Cow c1;Cow c2("老母牛", "喝奶"

[计算机网络]-计网学习笔记-计网知识点总结(附完整笔记)

本笔记是跟着 b站 湖科大教书匠 视频做的笔记,其中图片为视频中的 PPT,加上了自己的注释。         这是原视频链接。大家可以参照着笔记看原视频。视频中的 PPT 做的非常好。         【计算机网络微课堂(有字幕无背景音乐版)】https://www.bilibili.com/video/BV1c4411d7jb?vd_source=1146b07cc2d66