计算机网络(网络)的组成:由若干结点和连接这些结点的链路组成。结点可以是计算机、集线器、交换机、路由器等
三大网络中发展最快并起到核心作用的:计算机网络
计算机网络向用户提供的功能:连通和共享
互连网(网络的网络):网络之间通过路由器连接,构成更大的网络
主机(host):与网络相连的计算机
从其工作方式上,分成两大部分:
(1) 边缘部分:由互联网上的主机组成,是用户直接使用的部分,来进行通信和资源共享
(2) 核心部分:由大量网络和连接这些网络的路由器组成,是为边缘部分提供服务的,提供连通性和交换
端系统:主机
计算机之间的通信:主机A上的进程与主机B上的进程进行通信
端系统间通信方式:客户-服务器方式(C/S)和对等方式(P2P)
路由器的重要性:路由器是一种专用计算机,是实现分组交换的关键部件,其任务是转发收到的分组,这是网络核心部分最重要的功能
交换:按照某种方式动态分配传输线路的资源
(1) 电路交换
工作方式:在两用户端间建立一条专用的物理通路,保证了双方通信所需的通信资源,而这些资源在双方通信时也不会被其他用户占用
特点:整个报文的比特流连续的从源点直达终点,好像在管道中传送
三个步骤:建立连接->数据通信->释放连接
重要特点:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
(2) 报文交换
特点:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发给下一个结点
(3) 分组交换
现有的公用数据网大都采用:分组交换
工作方式:采用存储转发技术,把一个报文划分为几个分组后进行传送
特点:单个分组传送到相邻结点,存储下来后查找转发表,转发给下一个结点
优点:高效、灵活、迅速、可靠
按照网络的作用范围分类: 广域网(WAN)、城域网(MAN)、局域网(LAN)、 个人区域网(PAN)
按照网络的使用者分类:公用网、专用网、接入网
定义:数据的传送速率 ,常指额定速率或标称速率,并不是实际的速率
单位:bit/s(比特每秒)
定义:数据从网络的一段传送到另一端所需的时间,又称延迟或迟延
组成:发送时延、传播时延、处理时延、排队时延
总时延=发送时延+传播时延+处理时延+排队时延
错误:在高速链路(高带宽链路)上,比特会传送的更快
分析:对于高速网络链路,提高的仅仅是数据的发送速率,而不是比特在链路上的传播速率
OSI/RM:开放系统互连参考模型
PDU:协议数据单元
网络协议(协议):为进行网络中的数据交换而建立的规则、标准或约定
计算机网络体系结构:计算机网络各层及其协议的集合
计算机网络体系结构:计算机网络及其部件所应该完成功能的精确定义
体系结构是抽象的,实现是具体的,是运行在计算机软件和硬件之上的
网络协议的三要素:
1-03:试从多个方面比较电路交换、报文交换和分组交换的主要优缺点
(1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。
(2)报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速
(3)分组交换:具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生存性能好。
1-10 试在下列条件下比较电路交换和分组交换。要传送的报文共 x(bit)。从源点到终点共经过 k 段链
路,每段链路的传播时延为 d(s),数据率为 b(b/s)。在电路交换时电路的建立时间为 s(s)。在分组
交换时分组长度为 p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时
延比电路交换的要小?(提示:画一下草图观察 k 段链路共有几个结点。)
答:线路交换时延:kd+x/b+s, 分组交换时延:kd+(x/p)(p/b)+ (k-1)(p/b),其中(k-1)(p/b)表示 K
段传输中,有(k-1)次的储存转发延迟,当 s>(k-1)(p/b)时,电路交换的时延比分组交换的时延大,当 x>>p,相反。
1-19 长度为 100 字节的应用层数据交给运输层传送,需加上20 字节的TCP 首部。再交给网络层传送,需加上20 字节的IP 首部。最后交给数据链路层的以太网传送,加上首部和尾部共18 字节。试求数据的传输效率。数据的传输效率是指发送的应用层数据除以所发送的总数据(即应用数据加上各种首部和尾部的额外开销)。若应用层数据长度为1000 字节,数据的传输效率是多少?
数据长度为100 B C B 表示字节)时,以太网的帧长: 100 B+ 20 B+20 B +18 B= 158 B 数据传输效率=
100 B / (158 B) = 63.29%≈63.3% 数据长度为1000 B 时,以太网的帧长: 1000 B+ 20 B + 20
B + 18 B= 1058 B 传输效率= 1000 B / (1058 B) = 94.52% ≈ 94.5% 。传输效率明显提高了。
1-20 网络体系结构为什么要采用分层次的结构?试举出一些与分层体系结构的思想相似的日常生活的例子。
网络体系结构采用分层次的结构,是因为“分层”可以把庞大而复杂的问题转化为若干较小的局部问题,而这些较小的局部问题比较易千研究和处理。举例如快递的运输过程。
1-21 协议与服务有何区别?有何关系?
为进行网络中的数据交换而建立的规则、标准或约定称为网络协议,或者简称为协议。网络协议是计算机网络中不可或缺的部分。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则定义了发送者或接收者所要完成的操作。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
协议和服务在概念上是很不一样的。
首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。下面的协议对上面的实体是透明的。
其次,协议是“水平的",即协议是控制对等实体之间通信的规则。但服务是"垂直的",
即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成
1-22 网络协议的三个要素是什么?各有什么含义?
网络协议主要由以下三个要素组成:
(1)语法,即数据与控制信息的结构或格式。
(2)语义,即需要发出何种控制信息、完成何种动作以及做出何种响应。
(3) 同步,即事件实现顺序的详细说明。
1-24 论述具有五层协议的网络体系结构的要点,包括各层的主要功能。
答:综合 OSI 和 TCP/IP 的优点,采用一种原理体系结构。各层的主要功能:物理层 物理层的任务就是
透明地传送比特流。(注意:传递信息的物理媒体,如双绞线、同轴电缆、光缆等,是在物理层的下面, 当做第 0 层。)
物理层还要确定连接电缆插头的定义及连接法。数据链路层 数据链路层的任务是在两个
相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。网 络层 网络层的任务就是要选择合适的路由,使
发送站的运输层所传下来的分组能够 正确无误地按照地址找到目的站,并交付给目的站的运输层。运输层 运输层的任务是向上一层的进行通
信的两个进程之间提供一个可靠的端到端服务,使它们看不见运输层以下的数据通信的细节。应用层 应 用层直接为用户的应用进程提供服务。
物理层的功能:怎样在连接各种计算机的传输媒体上传输数据比特流,以屏蔽不同传输媒体和通信手段的差异
物理层:不是指具体的传输媒体,能规定与传输媒体有关的各种特性
常用术语:
信道:表示向某一个方向传送信息的媒体
信息交互的方式:
单向通信(单工通信):只能有一个方向的通信而没有反方向的交互;只需要一条信道
双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送,而是一方发送另一方接收,一段时间后可以反过来;两条信道
双向同时通信(全双工通信):通信双方可以同时发送和接收信息;两条信道;传输效率最高
基带信号:来自信源的信号;如计算机输出的代表文字或图像的数据信号都是基带信号
调制分类:基带调制(编码)、带通调制
限制码元在信道上传输速率的因素:
复用:允许用户使用一个共享的信道进行通信,提高利用率
2-01 物理层要解决哪些问题?物理层的主要特点是什么?
答:物理层要解决的主要问题:
1)物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的协议和服务。
2)给其服务用户(数据链路层)在一条物理的传输媒体上传送和接收比特流(一般为串行按顺序传输的比特流)的能力,为此,物理层应该解决物理连接的建立、维持和释放问题。
3)在两个相邻系统之间唯一地标识数据电路
物理层的主要特点:
1)由于在 OSI之前,许多物理规程或协议已经制定出来了,而且在数据通信领域中,这些物理规程已被许多商品化的设备所采用,加之,物理层协议涉及的范围广泛,所以至今没有按 OSI的抽象模型制定一套新的物理层协议,而是沿用已存在的物理规程,将物理层确定为描述与传输媒体 接口的机械,电气,功能和规程特性。
2)由于物理连接的方式很多,传输媒体的种类也很多,因此,具 体的物理协议相当复杂。
2-06 数据在信道重的传输速率受哪些因素的限制?信噪比能否任意提高?香农公式在数据通信中的意义
是什么?“比特/每秒”和“码元/每秒”有何区别?
答:码元传输速率受奈氏准则的限制,信息传输速率受香农公式的限制 香农公式在数据通信中 的意义是:只要信息传输速率低于信道的极限传信率,就可实现无差传输。比特/s 是信息传输速率的单位 码元传输速率也称为调制速率、波形速率或符号速率。一个码元不一定对应于一个比特。
2-07 假定某信道受奈氏准则限制的最高码元速率为 20000 码元/秒。如果采用振幅调制,把码元的振幅划
分为 16 个不同等级来传送,那么可以获得多高的数据率(b/s)?
如果我们用二进制数字来表示这16 个不同等级的振幅,那么需要使用4 个二进制数字。即0000, 0001, 0010, 0011 , 0100, 0101, 0110, Olli, 1000, 1001, 1010, 1011 , 1100, 1101,1110, 1111 。可见现在用一个码元就可以表示4 个比特。
因此码元速率为20000 码元/秒时,我们得到的数据率就是4 倍的码元速率,即80000bit/s 。
2-08 假定要用 3KHz 带宽的电话信道传送 64kb/s 的数据(无差错传输),试问这个信道应具有多高的信
噪比(分别用比值和分贝来表示?这个结果说明什么问题?)
2-09 用香农公式计算一下,假定信道带宽为为 3100Hz,最大信道传输速率为 35Kb/s,那么若想使最大
信道传输速率增加60%,问信噪比S/N应增大到多少倍?如果在刚才计算出的基础上将信噪比S/N应
增大到多少倍?如果在刚才计算出的基础上将信噪比S/N再增大到十倍,问最大信息速率能否再增加2
0%?
2-16:例如,共有四个站进行码分多址通信,四个站的码片序列分别为:
A(-1-1-1+1+1-1+1+1) B(-1-1+1-1+1+1+1-1)
C(-1+1-1+1+1+1-1-1) D(-1+1-1-1-1-1+1-1)
现收到这样的码片:(-1+1-3+1-1-3+1+1),问哪些站发送了数据,发送的是0还是1?
解:
A站的内积:(-1-1-1+1+1-1+1+1)*(-1+1-3+1-1-3+1+1)/8=(+1-1+3+1-1+3+1+1)/8=1
B站的内积:(-1-1+1-1+1+1+1-1)*(-1+1-3+1-1-3+1+1)/8=(+1-1-3-1-1-3+1-1)/8=-1
C站的内积:(-1+1-1+1+1+1-1-1)*(-1+1-3+1-1-3+1+1)/8=(+1+1+3+1-1-3-1-1)/8=0
D站的内积:(-1+1-1-1-1-1+1-1)*(-1+1-3+1-1-3+1+1)/8=(+1+1+3-1+1+3+1-1)/8=1
所以A、D站发送了1,B站发送了0,C站没有发送
网络中的主机和路由器都必须实现网络链路层
数据链路层的作用:加强物理层传输原始比特流的能力,将物理层的可能出错的物理连接改造为逻辑上无差错的数据链路
数据链路层使用的信道:
点对点信道:使用一对一的点对点通信方式
广播信道:使用一对多的广播通信方式,过程比较复杂,需要专用的协议来协调
定义
在传输过程中可能会产生比特差错: 1可能会变成0,而0也可能变成1
误码率BER (Bit Error Rate):在一段时间内,传输错误的比特占所传输比特总数的比率
误码率与信噪比有很大的关系
在数据链路层传送的帧中,广泛使用了 循环冗余检验CRC的检错技术
循环冗余检验CRC技术
原理:在发送端,先把数据划分为组,假定每组k个比特,若传输一组数据M=101001(k=6),在M后添加供差错检测用的n位冗余码后一起发送,共发送(k+n)位,接收方用收到的数据除P,若余数为0则表示没有差错
冗余码计算方法:在M后面添加n个0,得到(k+n)位的数除以选定好的除数p,得出商Q,余数R,将余数R作为冗余码,添加到M后
例:k=6,M=101001,设n=3,除数P=1101,被除数是101001000,计算后得到商Q=110100,余数R=001,把余数R作为荣誉吗天剑到M后面发送出去,发送的数据即:101001000+001=101001001
帧校验序列(FCS):为差错检验而添加的冗余码;就是计算后得到的余数R
(1) 若得出的余数R= 0,则判定这个帧没有差错,就接受
(2) 若余数R≠0,则判定这个帧有差错,就丢弃
生成多项式:一种方便的表示循环冗余校验过程的方法
例:P=1101 -> P(X) = X³+X²+1(最高位对应X³,最低位对应Xº)
传输差错的分类:
(1) 比特差错:1变0,0变1
(2) 帧丢失:丢失某个帧
(3) 帧重复:某个帧收到多次
(4) 帧失序:后发送的帧反而先到达接收端
CRC的局限性:只能实现无比特差错,不能实现无传输差错,只能判断收到的数据是否正确,其余均无法判断,并不是可靠传输
对于点对点的链路,目前使用最广泛的是PPP协议
首部和尾部分别为4个字段和2个字段
标志字段F:规定为0x7E,表示一个帧的开始或结束,就是帧的定界符
地址字段A:规定为0xFF
控制字段C:规定为0x03
透明传输问题:当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一言的比特组合不出现在信息字段中
同步传输—零比特填充
(1) 在发送端,只要发现有5个连续1,则立即填入一个0
(2) 接收端对帧中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除
(3) 因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1
适配器功能:
CSMA/CD协议:
以太网采取的两种重要措施:
碰撞检测,是因为信号传播时延对载波监听产生了影响
以太网的端到端的往返时延2τ称为争用期或碰撞窗口
经过争用期还没有检测碰撞,才能肯定这次发送不会发生碰撞
二进制指数类型退避算法:
10Mbit/s 以太网争用期的长度
CSMA/CD协议的重要特性
CSMA/CD协议的要点
星形以太网 10BASE-T
(1) 适应无屏蔽的双绞线,采用星形拓扑
(2) 每个站需要两对双绞线,分别用于发送和接收
(3) 集线器使用了大规模集成电路芯片,因此集线器的可靠性提高
(4) 10BASE-T的通信距离稍短,每个站到集线器的距离不超过100m
集线器的一些特点
(1) 使用集线器的以太网在逻辑上仍然是一个总线网,各工作站使用的还是CSMA/CD协议,并共享逻辑上的总线
(2) 集线器工作在物理层
(3) 集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音。
原理:多个站在以太网上同时工作就可能会发生碰撞,当发生碰撞时,信道资源实际上是被浪费了,因此以太网总的信道利用率并不能达到100%
早期使用网桥(隔离冲突域),现在使用交换机
以太网交换机的特点
(1) 实质:多接口的网桥
(2) 每个接口一般都工作在全双工方式
(3) 以太网交换机具有并行性–能同时连通多对接口,使多对主机能同时通信
(4) 相互通信的主机都是独占传输媒体,无碰撞的传输数据(以太网交换机的每个接口是一个碰撞域)
(5) 以太网交换机使用了即插即用设备,其内部的帧交换表是通过自学习算法自动的逐渐建立起来的
以太网交换机的优点
用户独享带宽,增加了总容量
以太网的交换方式
(1) 自学习算法:基于源地址的学习,基于目的地址的转发
地址表的形成:收到未知的地址后,存储源地址和接口的对应关系,向除来源端口的其它端口广播,目的地址不符则丢弃,否则接收并回复,收到回复后存储对应关系;地址表有有效时间,超过有效时间则失效
PDU:目的物理地址
交换机使用了生成树协议STP
从总线以太网到星形以太网
(1) 总线以太网使用CSMA/CD,半双工方式工作
(2) 以太网交换机不使用CMAD/CD协议,以全双工方式工作
原理:利用以太网交换机可以很方便地实现虚拟局域网VLAN
3-01 数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与“数据链路接通了” 的区别何在?
所谓链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。在进行数据通信时,两个计算机之间的通信路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分。
数据链路则是另一个概念。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器(如拨号上网使用拨号适配器,以及通过以太网上网使用局域网适配器)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路。物理链路就是上面所说的链路,而逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
3-03 网络适配器的作用是什么?网络适配器工作在哪一层?
适配器又称为网络接口卡或简称为“网卡"。在适配器上面装有处理器和存储器(包括RAM 和ROM) 。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。由千网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。若在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或 者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。
适配器接收和发送各种帧时不使用计算机的CPU。这时CPU 可以处理其他任务。当适器收到有差错的帧时, 就把这个帧丢弃而不必通知计算机。当适配器收到正确的帧时, 它就使用中断来通知该计算机并交付协议栈中的网络层。当计算机要发送 IP数据报时,就由协议栈把IP 数据报向下交给适配器, 组装成帧后发送到局域网。
3-04 数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决?
封装成帧是指一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
透明传输就是上层交下来的数据都要能够正确传输,所以,当出现和帧定界符冲突的数据时,需要去转义消除歧义。
差错检测可以将有错误的帧丢弃,避免浪费网络资源。
3-06 PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP使用与什么情况?为什么PPP不能使数据链路层实现可靠传输?
- PPP具有如下特点
简单、 封装成帧、 透明性、 支持多种网络层协议 、支持多种类型链路
PPP不使用帧的编号,原因是帧的编号是为了出错时可以有效地重传,而PPP并不需要实现可靠传输
PPP适用于线路质量不太差的情况下,这样不使用可靠传输的话就能大幅提高传输效率
3-07要发送的数据为1101011011, 采用CRC的生成多项式是P ( X ) = X 4 + X + 1
1)试求应添加在数据后面的余数。
2)数据在传输过程中最后一个1变成0,问接收端是否能发现?
3)若数据在传输过程中最后两个1都变成0,问接收端能够发现?
4)采用CRC检验后,数据链路层的传输是否就变成了可靠的传输?
3-08 要发送的数据为101110。采用CRC 的生成多项式是P(X) = X 3+1 ,试求应添加在数据后面的余数。
3-10 PPP 协议使用同步传输技术传送比特串0110111111111100。试问经过零比特填充后变成怎样的比特串?若接收端收到的PPP 帧的数据部分是0001110111110111110110,问删除发送端加入的零比特后变成怎样的比特串?
第一个比特串0110111111111100:
零比特填充就是在一连5 个1 之后必须插入一个0 。
经过零比特填充后变成011011111011111000 (加下划线的0 是填充的)
另一个比特串0001110111110111110110: 删除发送端加入的零比特,就是把一连5 个1 后面的0
删除。因此,删除发送端加入的 零比特后就得出:000111011111-11111-110 (连字符表示删除了0) 。
3-18 试说明 10BASE-T 中的“10”、“BASE”和“T”所代表的意思。
“10” 代表这种以太网具有10 Mbit/s 的数据率, BASE 表示连接线上的信号是基带信号, T
代表双绞线(Twisted-pair) 。
3-20 假定 1 km 长的CSMA/CD 网络的数据率为1 Gbit/s。设信号在网络上的传播速率为200 000 km/s。求能够使用此协议的最短帧长。
1km长的CSMA/CD网络的端到端传播时延τ=1/200000=5×10-6s=5µs,往返传播时延为:2τ=10µs。
故为了能按照CSMA/CD工作,最短帧的发送时延不能小于10us。
以1Gb/s速率工作,10us可以发送的比特数为:1Gbit/s×10µs=1×109bit×10×10-6=10000bit。
所以,最短帧长为10000bit或10000bit/8bit=1250byte
3-22 假定在使用 CSMA/CD 协议的10 Mbit/s 以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r = 100。试问这个站需要等待多长时间后才能再次发送数据?如果是100 Mbit/s 的以太网呢?
以太网最小帧长度为64字节,也就是64*8=512bit。
1)当以太网为10Mbit时,争用期为 :
512/(10*1000000)=0.0000512秒=51.2us
现在碰撞算法R=100,则退后100个争用期,等待时间:
51.2us*100=5120us=5.12ms
2)100M以太网,争用期为:
512/(100*1000000)=0.00000512秒=5.12us
现在碰撞算法R=100,则退后100个争用期,等待时间:
5.12us*100=512us
3-24 假定站点 A 和B 在同一个10 Mbit/s 以太网网段上。这两个站点之间的传播时延为225 比特时间。现假定A 开始发送一帧,并且在A 发送结束之前B 也发送一帧。如果A 发送的是以太网所容许的最短的帧,那么A 在检测到和B 发生碰撞之前能否把自己的数据发送完毕?换言之,如果A 在发送完毕之前并没有检测到碰撞,那么能否肯定A 所发送的帧不会和B 发送的帧发生碰撞?(提示:在计算时应当考虑到每一个以太网帧在发送到信道上时,在MAC 帧前面还要增加若干字节的前同步码和帧定界符。)
设在t=0时A开始发送。在t=576比特时间,A应当发送完毕。
t=225比特时间,B就检测出A的信号。只要B在t=224比特时间之前发送数据,A在发送完毕之前就一定检测到碰撞。就能够肯定以后也不会再发送碰撞了。如果A在发送完毕之前并没有检测到碰撞,那么就能够肯定A所发送到帧不会和B发送的帧发生碰撞(当然也不会和其他的站点发送碰撞)。
3-33 在图 3-31 中,以太网交换机有6 个接口,分别接到5 台主机和一个路由器。
在下面表中的“动作”一栏中,表示先后发送了4 个帧。假定在开始时,以太网交换机的交换表是空的。试把该表中其他的栏目都填写完。
答案如下:
动作 | 交换表的状态 | 向哪些接口转发帧 | 说明 |
---|---|---|---|
A发送帧给D | 写入(A,1) | 2,3,4,5,6 | 表是空的,第一次进行广播,向所有接口转发帧 |
D发送帧给A | 写入(D,4) | 1 | A存在了,将D存入 |
E发送帧给A | 写入(E,5) | 1 | A存在,将E存入 |
A发送帧给E | 刷新(A,1) | 5 | A,E信息都已存在 |
网络互联都是指:用路由器进行网络互联和路由选择
有关虚电路和数据报:虚电路在建立连接后,分组后只需要携带连接标识(✓)
IP地址的指派范围那个图可以给一个IP地址分析出网络的类别(abc),从而了解网络上能容纳的主机数
A类:
(1)最大可指派网络数:126(2^7-2) 8位除去1个固定位剩7位,减2因为要除去全0和全1位
(2)每个网络中最大主机数:16777214(2^24-2(网络地址+广播地址))
B类:
(1)最大可指派网络数:16383(2^14-1) 16位除去2个固定位,减1因为有两个固定位为10,所以不存在全0或全1,但规定128.0.0.0不使用,所以减去
C类:
(1)最大可指派网络数:2097151(2^21-1) 24位除去3个固定位,减1同B类,192.0.0.0规定不使用
网络号取0表示本网络,主机号为1只在本网络进行广播,主机号为0是本网络的本主机,127是本地网络环回测试
首部长度:
假设4位是1111,化为10进制即15,那么首部长度=15X4B=60B,可变部分为60B-20B=40B
区分服务:占8位,只在区分服务时这个字段才起作用,一般不用
总长度:
标识:占16位,IP数据报若存在分片,则接收方需要将各分片组合出原IP数据报,相同标识号的IP数据报就说明它们其实是同一个源IP数据报。
标志:占3位,目前只有前两位有意义,最低位为MF(More Fragment),若MF=1则说明该数据报后面“还有分片”。中间一位为DF(Don’t Fragment),若DF=1则不能分片,只有DF=0才可以分片
片偏移:占13位,用于说明该IP数据报(已分片)在源IP数据报中的相对位置(相对于数据字段的起点),单位是8字节
,每个分片一定是8字节的整倍数
生存时间:IP分组在网络中传递时有可能出现“兜圈子”的情况,所以需要对IP数据报进行一定的限制,生存时间的单位是“跳数”,最大值为255,每经过一个路由器,路由器便将IP数据报的生存时间-1,当IP数据报中的生存时间为0时,路由器丢弃该分组。
协议:
TCP是面向连接,很6,UDP容易发生丢包现象,被遗弃17
首部校验和:验证首部是否存在传输错误,只检验首部,不包括数据部分
源地址:长度占32位
目的地址:长度占32位
可选字段:可有可无,长度为1~40字节,IP地址中的可变部分可用于支持很多操作,但很多情况都用不上,而且会增加路由器处理分组的开销,所以IPv6中的数据报首部做成了固定长度
填充:全0,把首部补成4B的整数倍
最大传送单元MTU:链路层数据帧可封装的数据的上限。IP分组的时候要进行封装,形成链路层的数据帧,那么就要在分组的前面加头加尾,中间部分即数据部分,即MTU不能超过上限,以太网的MTU是1500字节
那么如果所传送的数据报长度超过某链路的MTU值呢?——分片(前提是IP分组要同意进行分片)
标识:同一数据报的分片使用同一标识 一个原来的数据报长度超过链路层的MTU,就要进行分片,每分的一个小片就要和原来的数据报使用同一个标识
标志:只有两位有意义x–
只有DF=0的时候,MF才有意义
片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位
除了最后一个分片,每个分片的长度一定是8B的整数倍。
小总结:1种8片的首饰4
IP地址(逻辑地址)与MAC地址(物理地址):源IP地址和目的IP地址始终不变;而源MAC地址和目的MAC地址在每条链路上都要变化
作用:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址
工作方式:每个主机里都设有一个ARP高速缓存,里面有所在局域网上各主机和路由器的IP地址到硬件地址的映射表,且这个映射表经常动态更新
(1)ARP请求分组:在局域网广播一个ARP请求分组,包含发送方硬件地址,发送方IP地址,目的方硬件地址(未知时填0),目的方IP地址
(2)本地广播ARP请求,路由器不转发ARP请求
(3)ARP响应分组:某主机收到广播,发现本机IP与查询IP一致,就回复ARP响应分组,包含发送方硬件地址,发送方IP地址;同时将请求分组中IP与硬件地址对应关系保存
(4)收到回复的ARP响应分组后,将对应IP和硬件地址存入ARP高速缓存中,方便下次使用
生存时间:ARP高速缓存中每条映射都只存在一段时间,超过时间后就被删除
特点:
ARP协议只解决同一局域网上IP地址和硬件地址映射问题,不在同一局域网则无法解决
ARP工作过程对用户来说是透明的
最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已 解决下一跳跳到哪里的问题
路由算法的分类
静态路由算法(非自适应路由算法):管理员手工配置路由信息—广泛适应于高度安全性的军事化网络和较小的商业网络,路由更新慢,不适用大型网络
动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项,路由更新快,适用大型网络,及时响应链路费用(路由器的跳数)罗网络拓扑变化,但是算法复杂,增加了网络负担
分层次的路由选择协议
自治系统内使用的协议,外部是不知道的
路由器
)协议IGP:一个AS内使用的RIP、OSPFIP地址空间利用率有时很低
给每个屋里网络分配一个网络号会使路由表变得很大,因此是网络性能变坏
两级IP地址不够灵活
划分子网的基本思路:借用主机号若干位作为子网地址
假如有目的地址为145.13.3.0的数据报,只知道要经过该路由器,怎么传给下面的主机呢?
子网掩码:
IP地址和子网掩码逐位相与得到子网网络地址:
例题1:已知IP地址为141.14.72.24,子网掩码是255.255.192.0,求网络地址。
我们只需要看后两个即可,即24和0相与(肯定为0),72和192即可
72 化为2进制为:01001000
192化为2进制为:11000000
逐步相与操作为: 01000000,对应十进制为64
网络地址为:141.14.64.24
广播分组:提示我们目的地址是广播地址,主机号是全1,排除A
子网掩码第三个字节是:252,化为2进制:11111100
子网掩码:255.255.252.0,8B+8B+6B+(主机号:2B+8B)
IP地址180开头,属于B类地址,前面16位是作为网络号的
网络号(16位)+子网号(6)位+主机号(10)位
某主机IP地址第三个字节化为2进制:01001101
子网掩码第三个字节,化为2进制: 11111111
网络号占6位,只取前六位,广播地址,主机号是全1,所以取010011|11化为十进制:79
答案为:180.80.79.255
子网划分后的路由表:包含目的网络地址、子网掩码、下一跳地址
1)从收到的数据报首部提取目的IP地址D
2)先判断是否为直接交付。对路由器直接相连的网络进行逐个检查:用各网络的子网掩码和D逐位相与,看结果是否和相对应的网络地址匹配。若匹配,则把分组进行直接交付,转发任务结束。否则就是间接交付,执行3
3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由:否则执行4
4)对路由表的每一行,用其中的子网掩码和D逐位相与,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则执行5
5)若路由表中有一个默认路由(IP地址为0.0.0.0),则把数据报传送给路由表中所指明的默认路由器;否则执行6
6)报告转发分组出错。
令主机号全0和全1即可
只需要用主机号为全0即可,表示本网络
令前面27位全1,后面的5位全0即可
例题:某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、35.230.48.0/21、35.230.56.0/21,将该4条路由聚合后的目的网络地址为()
A 35.230.0.0/19 B 35.230.0.0/20 C 35.230.32.0/19 D 35.230.32.0/20
35.230.32.0/21 0 0 1 | 0 0 0 0 0
35.230.40.0/21 0 0 1 | 0 1 0 0 0
35.230.48.0/21 0 0 1 | 1 0 0 0 0
35.230.56.0/21 0 0 1 | 1 1 0 0 0
共同点:21位的网络前缀,第三个字节就占用了5位,所以把上面第三个字节写成2进制形式
取交集,是前三位,因此合并后网络前缀为19位,前三位后面主机号全0
D:35.230.32.0/19
CIDR地址块的划分:
该ISP由64个C类地址,若不采用CIDR技术,则在与该ISP的路由器交换路由信息的每一个路由器的路由表中,就需要由64个项目,采用地址聚合后,只需用路由聚合后的一个项目206.0.64.0/18就能找到该ISP
该大学需要800的主机地址,因2^10-2>800,所以主机位应取10位,前22位作为网络前缀,由于子网全0默认不可用,故从206.0.68.0/22开始
最长前缀匹配:
主机问“有没有DHCP服务器呀?”
试图找到网络中的服务器,服务器获得一个IP地址“有!”
服务器拟分配给主机一个IP地址及相关配置,先到先得 先发过来的IP地址,主机才会决定用
和DHCP服务器说“我用你给我的IP地址啦?”
“用吧!”
正式将IP地址分配给主机作用:ICMP允许主机或路由器报告差错和提供有关异常情况的报告
报文格式:
ICMP差错报告报文封装过程:
(1)对ICMP差错报告报文,不再发送ICMP差错报告报文
(2)对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文
(3)对具有多播地址的数据报,都不发送ICMP差错报告报文
(4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不发生ICMP差错报告报文
(1)回送请求和回答:
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文,这种询问报文用来测试目的站是否可达以及了解其状态
(2)时间戳请求和回答:
ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间,再ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900.1.1到当前时刻一共多少秒,用于时钟同步和时间测量
PING: PING即Packet InterNet Groper,用于探测两台主机间是否连通,源主机向目标主机发送ICMP的回送请求报文(封装在IP数据报中),目标主机若接收到该报文则返回回送回答报文
路由探测: 路由探测即源主机向目标主机发送无法交付的UDP数据报(封装于IP数据报,若目标主机接收到该数据报,则会返回ICMP终点不可达报文),第一次发送时将IP数据报的生存时间设为1,这样一来第一个路由器接收到后将生存时间-1就会直接判断该IP分组需要丢弃,并返回ICMP时间超过报文,源主机接下来发送第二个IP数据报(依然为不可交付UDP数据报),此次将生存时间设为2……以此类推,直至接收到ICMP终点不可达报文,或生存时间达到上限为止。
概述:是一种分布式,基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单
距离:直连网络距离为1,每过一个非直连网络距离加1,距离也称为跳数,每经过一个路由器跳数就加1,距离实际上指最短距离
RIP允许一个路径最多包含15个路由器,也就是距离最大值为16,距离为16表示网络不可达,故RIP适合小型互联网使用;RIP不能在两个网络之间同时使用多条路由
工作流程:每个路由器每隔一段时间向外广播,每个路由器收到广播后更新自己的路由表
RIP协议的特点:
(1)仅和相邻路由器交换信息,不相邻的路由器不交换信息
(2)交换的信息是当前本路由器所知道的全部信息,即其自己的路由表
(3)按固定时间间隔每30s交换信息
刚开始时只知道直连网络的距离,路由表为空,以后,每个路由器只和数目有限的相邻路由器交互并更新路由信息,经过若干次更新后,所有路由器最终会知道到达本自治系统其他路由器的最短距离和下一跳地址,此时称该网络收敛
距离向量算法:
例题1:已知路由器R6的路由表,现收到相邻路由器R4发来的路由更新信息,试更新路由器R1的路由表:
解: 先将收到的路由表进行修改:
将修改后的表与路由表对比:
net1:原路由表中没有,故加入
net2:原表中有,且下一跳相同,替换原有
net3:原表中有,但下一跳不同,比较距离,选择较小的
RIP2改动:支持变长子网掩码和无分类域间路由选择CIDR;提供简单的鉴别过程支持多播
RIP协议特点:
好消息传播快,坏消息传播慢,网络出故障的传播时间需要较长时间
优点:实现简单,开销较小;
缺点:限制了网络的规模,出故障时传播时间较长
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了Diikstra提出的最短路径算法SPF。
OSPF最主要特征:采用分布式链路状态协议
三个要点:
了解:为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干各更小的范围,叫做区域;必须要有一个主干区域,其它区域一般都和主干区域直接相连;每个区域都有一个32位的区域标识符;区域不能太大,一个区域路由器数量不超过200个
OSPF其他特点
BGP是不同自治系统AS之间使用的协议,合理做法是“交换可达性信息”
边界网关协议BGP只是力求一条能够到达目的的网络比较好的路由(不要出现环路,兜圈子),而并非要寻找一条最佳路由
每一个自治系统选至少一个路由器作为BGP发言人(跑两套协议:BGP协议和内部网关协议)
BGP协议报文格式
BGP协议在交换路由信息之前,两个路由器要先建立路由器TCP连接,通过BGP报文建立BGP会话,建立之后的BGP发言人也被称为对等站
BGP是应用层协议,借助TCP传送
路由器是一种典型的网路层设备
分组丢弃:路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
最简单的策略就是队尾丢弃
交换结构(了解):是路由器的关键构建
IPv6支持无连接的传送
新增加的类型,一组中选择一个最近最方便的路由器,由他发给大家
第一台路由器发一个IPv6数据报,第二台路由器把IPv6协议作为数据部分,前面封装个IPv4的首部,伪装是一个IPv4地址通过第三台IPv4路由器,到最后一段的时候,进入了IPv6的网络,于是吧IPv4的部分去掉,继续发送,交付主机。其中第二台—第三台路由器间的部分为一个隧道
1.网络层向上提供的服务有哪两种?是比较其优缺点。
网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务前者预约了双方通信所需的一切网络资源。优点是能提供服务质量的承诺。即所传送的分组不出错、丢失、重复和失序(不按序列到达终点),也保证分组传送的时限,缺点是路由器复杂,网络成本高;后者无网络资源障碍,尽力而为,优缺点与前者互易
5.IP地址分为几类?各如何表示?IP地址的主要特点是什么?
分为ABCDE 5类;每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。各类地址的网络号字段net-id分别为1,2,3,0,0字节;主机号字段host-id分别为3字节、2字节、1字节、4字节、4字节。特点:(1)IP 地址是一种分等级的地址结构。分两个等级的好处是:第一,IP 地址管理机构在分配 IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
(2)实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
7.试说明IP地址与硬件地址的区别,为什么要使用这两种不同的地址?
IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。从而把整个因特网看成为一个单一的、抽象的网络在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
MAC地址在一定程度上与硬件一致,基于物理、能够标识具体的链路通信对象、IP地址给予逻辑域的划分、不受硬件限制。
17.一个3200位长的TCP报文传到IP层,加上160位的首部后成为数据报。下面的互联网由两个局域网通过路由器连接起来。但第二个局域网所能传送的最长数据帧中的数据部分只有1200位。因此数据报在路由器必须进行分片。试问第二个局域网向其上层要传送多少比特的数据(这里的“数据”当然指的是局域网看见的数据)?
答:第二个局域网所能传送的最长数据帧中的数据部分只有1200bit,即每个IP数据片的数据部分<1200-160(bit),由于片偏移是以8字节即64bit为单位的,所以IP数据片的数据部分最大不超过1024bit,这样3200bit的报文要分4个数据片,所以第二个局域网向上传送的比特数等于(3200+4×160),共3840bit。
18.(1)有人认为:“ARP协议向网络层提供了转换地址的服务,因此ARP应当属于数据链路层。”这种说法为什么是错误的?(2)试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题?(3)至少举出两种不需要发送ARP请求分组的情况(即不需要请求将某个目的IP地址解析为相应的硬件地址)。
(1)因为ARP本身是网络层的一部分,ARP协议为IP协议提供了转换地址的服务,数据链路层
使用硬件地址而不使用IP地址,无需ARP协议数据链路层本身即可正常运行。因此ARP不再数据链路层。
(2)答:考虑到IP地址和Mac地址均有可能是变化的(更换网卡,或动态主机配置)
10-20分钟更换一块网卡是合理的。超时时间太短会使ARP请求和响应分组的通信量太频繁,而超时时间太长会使更换网卡后的主机迟迟无法和网络上的其他主机通信。
(3)在源主机的ARP高速缓存中已经有了该目的IP地址的项目;源主机发送的是广播分组;源主机和目的主机使用点对点链路。
19.主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程中总共使用了几次ARP?
6次,主机用一次,每个路由器各使用一次。
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.153.17
(5)192.4.153.90
(1)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口0转发。
(2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2转发。
(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。
(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。
(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.64,经查路由表知,该分组转发选择默认路由,经R4转发。
从通信和信息处理的角度看,运输层向它上面的应用层提供逻辑通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对TCP/IP体系的应用进程进行标志。
复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
分用:传输层从网络层收到数据后交付指明的应用进程
对于一个主机,若想要把数据发送给它,我们需要知道主机的IP地址即可,在网络中可以根据IP地址寻找到它所在的网络,再根据MAC地址定位到具体哪个主机,但是还需要传输层指明交付的应用进程
由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的端口号(为了找到对方计算机中的应用进程),而且还要知道对方的IP地址(为了找到对方的计算机)。
两大类端口
套接字Socket = (主机IP地址,端口号)
在发送端
接收端
IP网络所提供的所提供的是不可靠传输,因此TCP必须采用适当的措施才能使两个传输之间的通信变的可靠
“停止等待”就是没发送一个分组就停止发送,等着对方给出确认信息,收到确认后再发送下一个分组
假如A是发送方,B是接收方
要点
累积确认
接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。
回退N
出现拥塞的条件:对资源需求的综合>可用资源
假定:
已知
发送窗口=Min{接收窗口rwnd,拥塞窗口cwnd}
TCP拥塞控制——防止过多的数据注入到网络中(全局性):
流量控制与拥塞控制的区别:
5-23 主机 A 向主机B 连续发送了两个TCP 报文段,其序号分别是70 和100。试问:
(1) 第一个报文段携带了多少字节的数据?
(2) 主机 B 收到第一个报文段后发回的确认中的确认号应当是多少?
(3) 如果 B 收到第二个报文段后发回的确认中的确认号是180,试问A 发送的第二个报文段中的数据有多少字节?
(4) 如果 A 发送的第一个报文段丢失了,但第二个报文段到达了B。B 在第二个报文段到达后向A 发送确认。试问这个确认号应为多少?
解:(1)第一个报文段的数据序号是70到99,共30字节的数据。 (2)确认号应为100.(3)80字节。 (4)70
5-24 一个TCP连接下面使用256kb/s的链路,其端到端时延为128ms。经测试,发现吞吐量只有120kb/s。试问发送窗口W是多少?
(提示:可以有两种答案,取决于接收等发出确认的时机)。
解:来回路程的时延等于256ms(=128ms×2).设窗口值为X(注意:以字节为单位),假定一次最大发送量等于窗口值,且发射时间等于256ms,那么,每发送一次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可.这样,发射时间等于停止等待应答的时间结果,测到的平均吞吐率就等于发送速率的一半,即8X÷(256×1000)=256×0.001X=8192所以,窗口值为8192.
5-37 在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 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。
5-39 TCP的拥塞窗口cwnd大小与传输轮次n的关系如下所示:
(1) 试画出如图 5-25 所示的拥塞窗口与传输轮次的关系曲线。
(2) 指明 TCP 工作在慢开始阶段的时间间隔。
(3) 指明 TCP 工作在拥塞避免阶段的时间间隔。
(4) 在第 16 轮次和第22 轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?
(5) 在第 1 轮次、第18 轮次和第24 轮次发送时,门限ssthresh 分别被设置为多大?
(6) 在第几轮次发送出第70 个报文段?
(7) 假定在第 26 轮次之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口cwnd 和门限ssthresh 应设置为多大?
答:(1)拥塞窗口与传输轮次的关系曲线如图所示(课本后答案):
(2) 慢开始时间间隔:【1,6】和【23,26】
(3) 拥塞避免时间间隔:【6,16】和【17,22】
(4) 在第16轮次之后发送方通过收到三个重复的确认检测到丢失的报文段。在第22轮次之后发送方是通过超时检测到丢失的报文段。
(5)在第1轮次发送时,门限ssthresh被设置为32 在第18轮次发送时,门限ssthresh被设置为发生拥塞时的一半,即21.
在第24轮次发送时,门限ssthresh是第18轮次发送时设置的21
(6) 第70报文段在第7轮次发送出。
(7)拥塞窗口cwnd和门限ssthresh应设置为8的一半,即4. 5—40
5-41 用TCP传送512字节的数据。设窗口为100字节,而TCP报文段每次也是传送100字节的数据。再设发送端和接收端的起始序号分别选为100和200,试画出类似于图5-31的工作示意图。从连接建立阶段到连接释放都要画上。
要传送的 512 B 的数据必须划分为 6 个报文段传送,前 5 个报文段各 100 B,最后一个报文段传送 12 B。下图是双方交互的示意图。下面进行简单的解释。
【----- 进行三报文握手 -----】
报文段 #1:A 发起主动打开,发送 SYN 报文段,除以 SYN-SENT 状态,并选择初始序号 seq = 100。B 处于 LISTEN 状态。
报文段 #2:B 确认 A 的 SYN 报文段,因此 ack = 101(是 A 的初始序号加 1)。B选择初始序号 seq = 200。B 进入到 SYN-RCVD 状态。
报文段 #3:A 发送 ACk 报文段来确认报文段 #2,ack = 201(是 B 的初始序号加 1)。A 没有在这个报文段中放入数据。因为 SYN 报文段 #1 消耗了一个序号,因此报文段 #3 的序号是 seq = 101。这样,A 和 B 都进入了 ESTABLISHED 状态。
【----- 三报文握手完成 -----】
【----- 开始数据传送 -----】
报文段 #4:A 发送 100 字节的数据。报文段 #3 是确认报文段,没有数据发送,报文段 #3 并不消耗序号,因此报文段 #4 的序号仍然是 seq = 101。A 在发送数据的同时,还确认 B 的报文段 #2,因此 ack = 201。
报文段 #5:B 确认 A 的报文段 #4。由于收到了从序号 101 到 200 共 100 字节的数据,因此在报文段 #5 中,ack = 201(所期望收到的下一个数据字节的序号)。B 发送的 SYN 报文段 #2 消耗了一个序号,因此报文段 #5 的序号是 seq = 201,比报文段 #2 的序号多了一个序号。在这个报文段中,B 给出了接收窗口 rwnd = 100。
从报文段 #6 到报文段 # 13 都不需要更多的解释。到此为止,A 已经发送了 500 字节 的数据。值得注意的是,B 发送的所有确认报文都不消耗序号,其序号都是 seq = 201。
报文段 #14:A 发送最后 12 字节的数据,报文段 #14 的序号是 seq = 601。
报文段 #15:B 发送对报文段 #14 的确认。B 收到从序号 601 到 602 共 12 字节的数据。因此,报文段 #15 的确认号是 ack = 613(所期望收到的下一个数据字节的序号)。
需要注意的是,从报文段 #5 一直到 报文段 #15,B 一共发送了 6 个确认,都不消耗序号,因此 B 发送的报文段 #15 的序号仍然和报文段 #5 的序号一样,即 seq = 201。
【-----数据传送完毕-----】
【-----进行四报文挥手------】
报文段 #16:A 发送 FIN 报文段。前面所发送的数据报文段 #14 已经用掉了序号 601 到 612,因此报文段 #16 序号是 seq = 613。A 进入 FIN-WAIT-1 状态。报文段 #16 的确认号 ack = 202。
报文段 #17:B发送确认报文段,确认号为 614,进入 CLOSE-WAIT 状态。由于确认报文段不消耗序号,因此报文段 #17 的序号仍然和报文段 #15 的一样,即 seq = 201
报文段 #18:B 没有数据要发送,就发送 FIN 报文段 #18,其序号仍然是 seq = 201。这个 FIN 报文会消耗一个报文。
报文段 #19:A 发送最后的确认报文段。报文段 #16 的序号是 613,已经消耗掉了。因此,现在的序号是 seq = 614。但这个确认报文段并不消耗序号。
【-----四报文挥手结束-----】
5-61 在本题中列出的 8 种情况下,画出发送窗口的变化。并标明可用窗口的位置。已知主机 A 要向主机 B 发送 3 KB 的数据。在 TCP 连接建立后,A 的发送窗口大小是 2 KB。A 的初始序号是 0。
(1) 一开始 A 发送 1 KB的数据。
(2) 接着 A 就一直发送数据,直到把发送窗口用完。
(3) 发送方 A 收到对第 1000 号字节的确认报文段。
(4) 发送方 A 再发送 850 B的数据。
(5) 发送方 A 收到 ack = 900 的确认报文段。
(6) 发送方 A收到对第 2047 号字节的确认报文段。
(7) 发送方 A把剩下的数据全部都发送完。
(8) 发送方 A 收到 ack = 3072 的确认报文段。
下图是发送窗口和可用窗口的变化情况。
(1)我们应当注意到,发送窗口 = 2 KB 就是 2∗1024=20482∗1024=2048 字节。因此,发送窗口应当是从 0 到第2047 字节为止,长度是 2048 字节。A 开始就发送了 1024 字节,因此发送窗口中左边的 1024个字节已经用掉了(窗口的这部分为灰色),而可用窗口是白色的,从第 1024 字节到第 2047 字节位置。请注意,不是到第 2048字节位置,因此第一个编号是 0 而不是 1。
(2)发送方 A一直发送数据,直到把发送窗口用完。这时,整个窗口都已用掉了,可用窗口的大小已经是零了,一个字节也不能发送了。
(3)发送方 A 收到对第 1000 字节的确认报文段,表明 A 收到确认号 ack = 1001 的确认报文段。这时,发送窗口的后沿向前移动,发送窗口从第 1001 字节(不是从第 1000 字节)到第 3048 字节(不是第 3047 字节)为止。可用窗口从第 2048 字节到第 3048字节。【注意,因为从 1001 起,3048 - 1001 + 1 = 2048】
(4)发送方 A 再发送 850 字节,使得可用窗口的后沿向前移动 850 字节,即移动到 2898 字节。现在的可用窗口从第 2898 字节到 3048 字节。
(5)发送方 A 收到 ack = 900 的确认报文段,不会对其窗口状态有任何影响。这是个迟到的确认。
(6)发送方 A 收到对第2047 号字节的确认报文段。A 的发送窗口再向前移动。现在的发送窗口从第 2048 字节开始到第 4095 字节。可用窗口增大了,从第 2898 字节第 4095 字节。
(7)发送方 A 把剩下的数据全部发送完。发送方 A 共有 3 KB(即 3072字节)的数据,其编号从 0 到 3071。因此现在的可用窗口变小了,从第 3072 字节到第 4095 字节。
(8)发送方 A 收到ack = 3072 的确认报文段,表明序号在 3071 和这以前的报文段都收到了,后面期望收到的报文段的序号熊 3072开始。因此新的发送窗口的位置又向前移动,从第 3072 号字节到第 5119 号字节。整个发送窗口也就是可用窗口。
74.流量控制和拥塞控制的最主要的区别是什么?发送窗口的大小取决于流量控制还是拥塞控制?
简单地说,流量控制是在一条 TCP 连接中的接收端才用的措施,用来限制对方(发送端)发送报文的速率,以免在接收端来不及接收。流量控制只控制一个发送端。
拥塞控制是用来控制 TCP 连接中发送端发送报文段的速率,以免使互联网中的某处产生过载。拥塞控制可能会同时控制许多个发送端,限制它们的发送速率。不过每一个发送端只知道自己应当怎样调整发送速率,而不知道在互联网中还有哪些主机被限制了发送速率。
我们知道,发送窗口的上限值是 Min [rwnd, cwnd],即发送窗口的数值不能超过接收窗口和拥塞窗口中娇小的一个。接收窗口的大小体现了接收端对发送端施加的流量控制,而拥塞窗口的大小则是整个互联网的负载情况对发送端施加的拥塞控制。因此,当接收窗口小于拥塞窗口时,发送窗口的大小取决于流量控制,即取决于接收端的接收能力。但当拥塞窗口小于接收窗口时,则发送窗口的大小取决于拥塞控制,即取决于整个网络的拥塞状况。
应用层对应用程序的通信提供服务
应用层功能:文件传输、访问和管理、虚拟终端、查询服务和远程作业登录
应用层的重要协议:FTP、SMTP、POP3、HTTP、DNS
域名
通用顶级域名gTLD
最早的顶级域名是∶
1. .com(公司和企业)
3. .net(网络服务机构
4. .org_(非赢利性组织)
5. .edu(美国专用的教育机构)
6. .gov(美国专用的政府部门)
7. .mil(美国专用的军事部门)
8. .int(国际组织)
域名服务器
域名服务器分类:
根域名服务器:是层次最高的域名服务器,也是最重要的。所有根域名服务器都知道所有顶级域名服务器的域名和IP地址。任何本地域名服务器只要自己无法解析,就首先求助于根域名服务器
顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答
权限域名服务器:负责一个区的域名服务器。当权限域名服务器还不能给出回答时,就会告诉发出查询请求的DNS客户,下一步应找哪一个权限域名服务器
本地域名服务器:并不属于域名服务器层次结构,但很重要。当主机发出DNS查询请求时,这个查询请求报文发给本地域名服务器
提高域名服务器可靠性:
DNS域名服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其余是辅助域名服务器。当主域名服务器出现故障时,辅助域名服务器就可以保证DNS的查询工作不会中断
主机向本地域名服务器查询,采用递归查询:如果本地域名服务器不知道查询域名的IP,则本地域名服务器以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。因此,递归查询返回的查询结构是查询的IP地址或报错,即无法查询到IP
本地域名服务器向根域名服务器查询,采用迭代查询:当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询
提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
FTP是基于客户/服务器(C/S)的协议。
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
FTP工作原理
FTP工作流程
FTP使用客户服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务,FTP的服务进程分为两大部分:
主进程,负责接受新的请求
主进程的工作步骤:
(1)打开熟知端口(21),使客户进程能够连接
(2)等待客户进程发出连接请求
(3)启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建一些子进程
(4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的
若干从属进程,负责处理单个请求
FTP的两个TCP连接:
控制连接:在整个会话期间一直打开,FTP客户发出的传送请求,通过控制连接发送给服务器端;端口号21
数据连接:用于传输文件;端口号20
由于FTP使用两个不同的端口号,所以数据连接与控制连接不会发生混乱
服务器端控制进程收到FTP客户发来的文件传输请求后,就创建数据传送进程和数据连接,用来连接客户端和服务端的数据传送进程
TFTP:是很小且易于实现的文件传送协议,使用客户服务器方式,但使用UDP数据报,因此,TFTP需要有自己的差错改正措施,TFTP只支持文件传输而不支持交互。TFTP没有庞大的命令集,没有列目录功能,不能对用户进行身份识别
优点:TFTP可用于UDP环境;TFTP代码所占的内存小
TFTP的主要特点:
(1)每次传送的数据报文中有512字节的数据,但最后一次可不足512字节
(2)数据报文按序编号,从1开始
(3)支持ASCII码或二进制传送
(4)可对文件进行读或写
(5)使用很简单的首部
TFTP工作流程:
TFTP客户进程发送一个请求报文给TFTP服务器进程,其熟知端口号为69。TFTP服务器进程选择一个新的端口和TFTP客户进程通信。若文件长度恰好为512字节整倍数,则文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报;若不是整倍数,则最后一个报文一定不足512字节,可作为文件结束的标志
万维网:是一个大规模联机式的信息储存所,用连接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动按需获得信息;是一个分布式的超媒体系统,是超文本系统的扩充
页面:在客户程序(浏览器)主窗口上显示出的万维网文档就是页面
统一资源定位符URL:标志万维网上各种文档,使每个文档在互联网范围具有唯一标识符URL
超文本传送协议HTTP:是一个应用层协议,使用TCP进行可靠传送
URL作用:用来表示从互联网上得到的资源位置和访问这些资源的方法
URL的格式:<协议>://<主机>:<端口>/<路径>
协议:指出使用什么协议来获得该文档,常用HTTP或FTP
主机:指出文档在哪台主机上,主机就是指该主机在互联网上的域名
端口和路径:为了进一步定位,有事可省略
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
用户浏览页面方法:
HTTP的主要特点:
HTTP本身是无连接的:虽然使用TCP连接,但通信双方在交换HTTP报文前不需要建立HTTP连接
HTTP是无状态的:同一个客户第二次访问同一服务器上的页面时,服务器的响应与第一次被访问时相同
请求一个万维网文档所需时间:是该文档的传输时间+两倍往返时间RTT
HTTP/1.0的主要缺点:每请求一个文档就要有两倍的RTT的开销;这种非持续连接会使万维网服务器负担很重
HTTP/1.1的改进:使用了持续连接;服务器在发送响应后仍在一段时间内保持连接,使同一个客户能继续在这条连接上传送后续HTTP请求报文和响应报文
HTTP/1.1持续连接的两种工作方式:
非流水线方式:客户在收到响应报文之后才能继续发送
流水线方式:客户收到响应报文之前也可以继续发送