谢希仁《计算机网络》笔记

【自用】转自:https://blog.csdn.net/weixin_43093481/article/details/86684274

 

1.计算机网络在信息时代的作用

互联网基本特点:

    连通性:互联网上用户不管距离多远,都能通信,就像这些用户终端都彼此连通

    共享性:指资源共享,包含信息、软件、硬件等共享,就像资源在用户身边

 

计算机网络(网络)的组成:由若干结点和连接这些结点的链路组成;结点可以是计算机、集线器、交换机、路由器等

互连网:网络之间通过路由器连接,构成更大的网络,就是互连网,是网络的网络

主机(host):与网络相连的计算机

 

2.互联网的组成

    从其工作方式上,分成两大部分:

        边缘部分:由互联网上的主机组成,是用户直接使用的部分,用来进行通信和资源共享

        核心部分:由大量网络和连接这些网络的路由器组成,是为边缘部分提供服务的,提供连通性和交换

2.1边缘部分:

 

端系统:主机

计算机之间的通信:主机A上的进程与主机B上的进程进行通信

 

端系统间通信方式:

*    1.客户-服务器方式:

        概述:是最常用与传统的方式,一方请求服务,一方提供服务,通信可以是单向的,也可以是双向的

        客户和服务器:指通信中涉及的两个应用进程

        主要特征:客户是服务请求方,服务器是服务提供方

        主要特点:

            客户程序:

               (1)用户调用后,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址

               (2)不需要特殊的硬件和很复杂的操作系统

            服务器程序:

                (1)是一种专门提供服务的程序,可同时处理多个客户的请求

                (2)系统启动后即自动调用不断运行,被动等待接受客户的通信请求。因此,服务器程序不需要知道客户程序的地址

                (3)一般需要强大的硬件和操作系统支持

 

*   2.对等连接方式(P2P):

        概述:两台主机不区分服务器和客户,只要都运行p2p软件,就可以进行平等对等连接通信,双方都可访问对方硬盘中的共享文档。可支持大量对等用户同时工作

2.2核心部分

 

路由器的重要性:路由器是一种专用计算机,是实现分组交换的关键部件,其任务是转发收到的分组,这是网络核心部分最重要的功能

交换:按照某种方式动态分配传输线路的资源

三种交换方式:

    (1)电路交换:

        工作方式:在两用户端间建立一条专用的物理通路,保证了双方通信所需的通信资源,而这些资源在双方通信时也不会被其他用户占用

        三个步骤:建立连接(占用通信资源)->通话(一直占用通信资源)->释放连接(归还通信资源)

        重要特点:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源

    (2)报文交换:

        特点:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发给下一个结点

*  (3)分组交换:

        工作方式:采用存储转发技术,把一个报文划分为几个分组后进行传送

        报文:要发送的整块数据

        分组:把较长的报文分成更小的等长数据段,再加上必要的控制信息组成的首部后,就构成一个分组;分组又称包,分组的首部又称包头

        首部的重要性:包含了诸如目的地址和源地址等重要控制信息,使每一个分组才能独立的选择传输路径,并正确交付到终点

        存储转发技术:路由器收到分组后,先暂时存储,检查其首部,查找转发表,按照首部中目的地址,选择合适的接口转发出去

        优点:

            高效:在分组传输过程动态分配传输带宽,对通信链路逐段占用

            灵活:为每个分组独立选择最合适的转发路由

            迅速:以分组为单位传输,不用建立和释放连接

            可靠:保证可靠性的网络协议;分布式多路由器的分组交换网,有很好的生存性

 

三种交换的特点概述:

    (1)电路交换:整个报文的比特流连续的从源点直达终点,好像在管道中传送

    (2)报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发给下一个结点

    (3)分组交换:单个分组传送到相邻结点,存储下来后查找转发表,转发给下一个结点

 

 

3.计算机网络的类别

 

*按照网络的作用范围分类:

    广域网(WAN):作用范围几十到几千公里,是互联网的核心部分,其任务是通过长距离运送主机所发送的数据,广域网各结点采用高速链路,有较大通信容量

    城域网(MAN):作用范围一个城市,用来将多个局域网进行互联,多采用以太网技术

    局域网(LAN):作用范围1km左右,一般用微机或工作站通过高速通信线路相连

    个人区域网(PAN):作用范围10m左右,把个人工作的地方属于个人的设备用无线技术相连,也叫无线个人区域网(WPAN)

按照网络的使用者分类:

    公用网:电信公司出资建造的大型网络,任何人都可付费使用,也称公众网

    专用网:为满足特殊业务需要建立的网络,不向外人提供服务

用来把用户进入到互联网的网络:

    接入网:又称本地接入网或居民接入网

 

4.计算机网络性能

*计算机网络的性能指标:

    (1)速率:

        定义:数据的传送速率;常指额定速率或标称速率,并不是实际的速率

        单位:bit/s(比特每秒)

    (2)带宽:

        定义:表示网络中某通道传送数据的能力,即单位时间内网络中某信道能通过的最高数据率

        单位:bit/s

    (3)吞吐量:

        定义:单位时间内通过某网络的实际的数据量

        单位:bit/s

    (4)时延:

        定义:数据从网络的一段传送到另一端所需的时间;又称延迟或迟延

        组成:

            (1)发送时延:是主机或路由器发送数据帧所需要的时间

                发生位置:在机器内部的发送器中,即网络适配器中,与信道长度无关

                计算公式:

                    

            (2)传播时延:是电磁波在信道中传播一定距离所需要的时间

                    发生位置:在机器外部的传输信道媒体上,与信号的发送速率无关,只与信号传送的距离有关

                    计算公式:

                        

                        电磁波在在不同介质中传播速率不同,在自由空间中为光速3*10^5 km/s;在铜线中为2.3*10^5 km/s;在光纤中为2.0*10^5 km/s

            (3)处理时延:主机或路由器收到分组后处理分组所用的时间;如分析首部、提取数据、差错检验、转发路由查找等

            (4)排队时延:分组经过路由器时,在路由器中经历输入和输出的排队等待时间

                    发生位置:各中转路由器中;取决于网络的通信量,通信量很大时会发生队列溢出,使分组丢失,相当于时延无限大

            总时延=发送时延+传播时延+处理时延+排队时延

    (5)时延带宽积:

        定义:

    (6)往返时间RTT:

        定义:双向交互一次所需的时间;包含中间各结点的处理时延、排队时延、转发数据时的发送时延

    (7)利用率:

        信道利用率:指某信道有百分之几的时间是被利用的

        网络信道利用率:全网络的信道利用率的加权平均数

        D=D0/1-U    其中D是网络时延、D0是空闲时网络时延、U是利用率

        特点:信道或网络利用率过高会产生非常大的时延

 

计算机网络的非性能指标:

    (1)费用

    (2)质量

    (3)标准化

    (4)可靠性

    (5)可扩展性和可升级性

    (6)易于管理和维护

 

5.计算机网络体系结构

 

5.1协议与划分层次

 

网络协议(协议):为进行网络中的数据交换而建立的规则、标准或约定

计算机网络体系结构:计算机网络各层及其协议的集合

网络协议的三要素:

    (1)语法:数据与控制信息的结构或格式

    (2)语义:需要发出何种控制信息,完成何种动作以及做出何种响应

    (3)同步:事件实现顺序的详细说明

分层的优点:

    (1)各层之间是独立的:某一层不需要知道下一次如何实现,只需要知道接口提供的服务

    (2)灵活性高:当一层发生变化时,只要保证接口不变,就能方便修改

    (3)结构上可分割:各层都可以采用最合适的技术实现

    (4)易于实现和维护:这种结构使实现和调试一个庞大复杂的系统更容易,因为整个系统以被分解成若干相对独立的子系统

    (5)促进标准化:因每一层的功能及其提供的服务都已精确说明

各层要完成的主要功能:

    (1)差错控制:使相应层次对等方的通信更可靠

    (2)流量控制:发送端的发送速率必须使接收端来得及接受

    (3)分段和重装:发送端将要发送的数据块划分为更小单位,在接收端将其还原

    (4)复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用

    (5)连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接

 

5.2各协议的体系结构

 

各层功能概述:

    (1)应用层:

        作用:通过应用进程间的交互来完成特定网络应用,应用层协议定义的是应用进程间通信和交互的规则

        常见协议:DNS、HTTP、SMTP等

        报文:应用层交互的数据单元

    (2)运输层:

        作用:负责向两台主机中进程之间的通信提供通用的数据传输服务,应用进程利用该服务传送应用层报文;通用指多种应用可以使用同一运输层服务;有复用和分用功能

        分用和复用:复用是多个应用层进程可同时使用下面运输层的服务,分用是运输层把收到的信息分别交付上面应用层中的相应进程

        主要协议:

            传输控制协议TCP:提供面向连接的、可靠的数据传输服务,数据传输的单位是报文段

            用户数据报协议UDP:提供无连接的、尽最大努力的数据传输服务,数据传输的单位是用户数据报

    (3)网络层:

        作用:负责为分组交换网上不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送;选择合适路由,使运输层传下来的分组能通过网络中的路由器找到目的主机

        主要协议:IP协议、多种路由选择协议

    (4)数据链路层:

        作用:负责两主机间链路上的传输;将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上传送帧,帧中包含数据和必要的控制信息;在接收数据时,提取出数据部分交给网络层;通过控制信息监测差错,丢弃差错帧或纠正错误

    (5)物理层:

        作用:考虑用多大电压代表0或1,如何识别对方发送的比特;确定电缆插头的物理结构

 

数据在各层间传递过程:

    

 

5.3实体、协议、服务、服务访问点

 

实体:表示任何可发送或接受信息的硬件或软件进程;很多情况下,实体就是一个特点的软件模块

协议:控制两个或多个对等实体进行通信的规则的集合

服务:由下层向上层通过层间接口提供的功能

服务访问点:在同一系统相邻两层的时间进行交互的地方

协议与服务:在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面层提供的服务;

                     协议是"水平的",即协议是控制对等实体间通信的规则,服务是"垂直的",即服务是由下层向上层通过接口提供的

 

5.4TCP/IP体系结构

 

 

    TCP/IP协议可为各式各样的应用提供服务(everthing over IP);TCP/IP也允许IP协议在各式各样的网络构成的互联网上运行(IP over everthing)

 


习题:

 

17.收发两端间的传输距离为1000km,信号在媒体上的传播速率为2*10^8 m/s。计算以下两种情况的发送时延和传播时延

    (1)数据长度为10^7 bit,数据发送速率为100 kbit/s

    (2)数据长度为10^3 bit,数据发送速率为1 Gbit/s

    解:

        (1)发送时延=数据长度/发送速率=10^7/100*10^3=100s

            传播时延=距离/传播速率=1000*10^3/2*10^8=5*10^-3 s

        (2)发送时延=10^3/10^9=1*10^-6 s

            传播时延=5 ms

 

18.假设信号在媒体上的传播速率为2.3*10^8 m/s。媒体长度L分别为:

    (1)10cm

    (2)100m

    (3)100km

    (4)5000km

    计算当前数据率为1Mbit/s和10Gbit/s时在以上媒体中正在传播的比特数

    解:即求带宽时延积

        (1)传播时延=长度/传播速率=10*10^-2 / 2.3*10^8 = 4.35*10^-10

            数据率为1Mbit/s时:带宽时延积=带宽*传播时延=1*10^6*4.35*10^-10=4.35*10^-4

            数据率为10Gbit/s时:带宽时延积=10*10^9*4.35*10^-10=4.35

        (2)(3)(4)......

29.有一个点对点链路,长度为50km。若数据在此链路上传播速度为2*10^8 m/s,求链路的带宽应为多少才能使传播时延和发送100字节的分组发送时延一样大?如果发送的是512字节长的分组,结果又如何?

    解:

        传播时延=长度/传播速率=50*10^3/2*10^8 = 2.5*10^-4 s

        发送时延=数据长度/发送速率=100*8/ x = 2.5*10^-4 ;x=3.2*10^6 bis/s = 3.2 Mbit/s

        若发送512字节分组:

            发送时延=数据长度/发送速率 = 512*8/ x = 2.5*10^-4 

            x=16.38*10^6 bit/s = 16.38 Mbit/s

 

 

0.本章思维导图:

1.物理层的基本概念

 

物理层的功能:怎样在连接各种计算机的传输媒体上传输数据比特流,屏蔽不同传输媒体和通信手段的差异

规程:用于物理层的协议

传输媒体接口的特性:

    (1)机械特性:接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等

    (2)电气特性:接口电路的各条线上出现的电压范围

    (3)功能特性:某条线上出现某一电平电压的意义

    (4)过程特性:对于不同功能的各种可能事件的出现顺序

 

2.数据通信的基础知识

 

2.1数据通信系统模型:

 

 

数据通信系统划分:源系统、传输系统、目的系统

 

源系统的内容:

    源点:源点设备产生要传输的数据

    发送器:源点生成的数字比特流要通过发送器编码后才能在传输系统中传输;如调制器

    接收器:结束传输系统发送来的信号,并转换成能被目的设备处理的信息;如解调器

    终点:终点设备从接收器获取传送来的数字比特流,然后把信息输出

 

常用术语:

    消息:通信的目的是传送消息,如语音、文字、图像、视频等

    数据:是运送消息的实体;使用特点方式表示的信息,通常是有意义的符号序列

    信号:数据的电气或电磁表现

        模拟信号(连续信号):代表消息的参数取值是连续的

        数字信号(离散信号):代表消息的参数的取值是离散的

            码元:代表不同离散数值的基本波形

 

2.2有关信道的基本概念

 

信道:表示向某一个方向传送信息的媒体

*信息交互的方式:

    (1)单向通信(单工通信):只能有一个方向的通信而没有反方向的交互;只需要一条信道

    (2)双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送,而是一方发送另一方接收,一段时间后可以反过来;两条信道

    (3)双向同时通信(全双工通信):通信双方可以同时发送和接收信息;两条信道;传输效率最高

基带信号:来自信源的信号;如计算机输出的代表文字或图像的数据信号都是基带信号

调制分类:

    基带调制(编码):仅对基带信号的波形进行变换,使其能与信道特性相适应,变换后的信号仍是基带信号

    带通调制:使用载波进行调制,把基带信号的频率范围移到较高频段,并转换为模拟信号,变换后的信号称为带通信号

 

常用编码方式:

    

    (1)不归零制:正电平代表1,负电平代表0

    (2)归零制:正脉冲代表1,负脉冲代表0

    (3)曼切斯特编码:位周期中心的向上跳变代表0,位周期中心的向下跳变代表1;也可反过来定义

    (4)差分曼切斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表0,位开始边界没有跳变代表1

 

基本的带通调制方法:

 

    

    (1)调幅:载波的振幅随基带数字信号而变化;如0或1分别对应无载波或有载波输出

    (2)调频:载波的频率随基带数字信号而变化;如0或1分别对应频率f1或f2

    (3)调相:载波的初始相位随基带数字信号而变化;如0或1分别对应于相位0度或180度

 

2.3信道的极限容量

 

限制码元在信道上传输速率的因素:

    (1)信道能够通过的频率范围:

        码间串扰:信号中高频分类受到衰减,在接收端收到的波形前沿和后沿不那么陡峭,每个码元所占时间界限不明确,失去了码元间的清晰界限的现象

        奈氏准则:在任何信道,码元传输的速率是有上限的,超过上限就会出现严重的码间串扰,使接收端对码元无法识别

    (2)信噪比:

        定义:信号的平均功率和噪声的平均功率之比,记作S/N

                 

        香农公式:信道的极限信息传输速率C是

                            其中W为信道带宽,S为信道内所传信号的平均功率,N为信道内部的高斯噪声功率

            香农公式表明,信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高

            香农公式的意义:只要信息传输速率低于信道的极限速率,就一定存在某种方法来实现无差错的传输

 

3.物理层下面的传输媒体

 

传输媒体:是数据传输系统中在发送器和接收器之间的物理通路

传输媒体的分类:

    引导型:电磁波被引导沿着固体媒体传播

        双绞线

        同轴电缆

        光纤

    非引导型:电磁波无线传输

 

4.信道复用技术

 

*4.1频分复用、时分复用、统计时分复用

 

复用:允许用户使用一个共享的信道进行通信,降低成本,提高利用率

频分复用:

    原理:用户在分配到一定频带后,在通信过程中自始至终都占用这个频带

    特点:所有用户在同样的时间占用不同的频率带宽

    

时分复用:

    原理:将时间划分为一段段等长的时分复用帧(TDM帧),每个时分复用的用户在每一个TDM帧中占用固定序号的时隙

    特点:所有用户在不同的时间占用同样的频带宽度

    

统计时分复用:

    原理:使用STDM帧来传送复用的数据,每一个STDM帧中的时隙数小于连接在集中器上的用户数;各用户有数据就发往集中器的输入缓存,集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,没有数据的缓存就跳过,当一个帧放满即发送,因此STDM帧不是固定分配时隙,而是按需动态分配时隙

              某用户占用的时隙不是周期性出现的,因此统计时分复用又称为异步时分复用;而时分复用又称为同步时分复用

 

    

4.2波分复用

波分复用:

    原理:就是光的频分复用,使用同一根光纤同时传输多个光载波信号

4.3码分复用

码分复用(码分多址):

    原理:各个用户使用进过特殊挑选的不同码型,因此彼此不会互相干扰

    码片:每一个比特时间划分为m个短的间隔,称为码片

    工作方式:

        每个站被指派一个唯一的mbit码片,若发送1,则发送自己的m bit码片

                                                               若发送0,则发送该码片的二进制反码

    码片实现扩频:由于一个比特可转换成m个比特的码片,因此实际发送数据率提高了m倍

    重要特点:每个站的码片必须各不相同,并相互正交

    码片正交关系:不同码片正交,就是向量S和T的规格化内积为0,(规格化内积即对应为相乘)

        正交关系的重要特征:任何码片与自己的规格化内积为1,与自己反码的规格化内积为-1

    例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站没有发送

 

5.数字传输系统

 

早期数字传输系统的缺点:

    (1)速率标准不一

    (2)不是同步传输

现代的传输网络的传输媒体:光纤

同步光纤网(SONET):各级时钟都来自一个非常精确的主时钟,为光纤传输系统定义了同步传输的线路速率等级结构

同步数字系列(SDH):由sonet为基础发展的国际标准

6.带宽接入技术

 

ADSL技术:非对称数字用户线,将原有的模拟电话线进行改造,使其能够承载宽带业务,将0-4k的低端频谱留给电话使用,将剩余部分给宽带使用,其中上行带宽小于下行带宽

    传输距离:与数据率和用户线的线径(粗细)有关

    传输速度:与实际用户线的信噪比密切相关

    数据率:采用自适应调制技术使用户线能够传输尽可能多的数据,受环境和线路条件影响较大

    特点:上行和下行带宽不对称、需要在用户线两端各安装一个调制解调器

    第二代ADSL:得到更高的数据率,采用无缝速率自适应技术,可在运营中不中断通信和不产生误码的情况下,自适应的调整数据率

光纤同轴混合网(HFC):是目前覆盖面较广的有线电视网,采用模拟技术,频分复用,主干部分使用光纤,入户部分使用同轴电缆

FTTx技术:是一种实现宽带居民接入网的方案,代表多种宽带光纤接入方式

    无源光网络PON:为有效利用光纤资源,在光纤干线和用户之间使用无源光网络PON。无源光网络无须配备电源,长期运行和管理成本低。

        最流行的无源光网络是以太网无源光网络EPON和吉比特无源光网络GPON

 

 


习题

 

2.1 物理层解决的主要问题:

    (1)尽可能屏蔽物理设备和传输媒体

    (2)怎样在连接各种计算机的传输媒体上传输数据比特流

2.2规程与协议的区别:规程就是指物理层的协议

 

2.7假定某信道受奈氏准测限制,最高码元速率为20000码元/s,采用振幅调制,把码元的振幅划分成16个不同等级来传送,求最高能获得的数据率

    C=R*log(16)=20000b/s*4=80000b/s

    16种状态用4bits表示,码元速率为20000码元/s,每个码元能表示4bits,故答案为20000*4

 

2.8假定要用3KHz带宽的电话信道传送64kb/s的数据,试问这个信道应具有多高的信噪比

    C=W*log(1+S/N),其中,W=3khz,C=64kb/s

    所以,1+S/N=2^(64/3),S/N=2.64*10^6,(S/N)=10*log10(2.64*10^6)=64.2db

 

2.9用香农公式计算,假定信道带宽为3100Hz,最大信道传输速率为35kb/s,若使最大信道传输速率增加60%,求信噪比S/N应增大多少倍?

    C=Wlog(1+S/N)

    35000=3100*log(1+S/N)

    S/N=2^(350/31)-1=2505

    35000*1.6=3100*log(1+x*S/N)

        x=109.396

    所以应增大109倍

 

2.11假定一种双绞线衰减使0.7db/km,若容许由20db的衰减,试问使用这种双绞线的链路工作距离有多长?如果工作距离要增大到100km,应使衰减降低到多少?

    (1) 20/0.7=28.6km

    (2) 20/100=0.2db

 

*2.12计算工作在1200nm到1400nm之间以及工作在1400nm到1600nm之间的光波的频带宽度,光速为2*10^8m/s

    V=V/L1 - V/L2

    1200nm~1400nm:带宽=2*10^8/1200*10^-9 - 2*10^8/1400*10^-9=23.8Thz

    1400nm~1600nm:带宽=2*10^8/1400*10^-9 - 2*10^8/1600*10^-9=17.86Thz

 

*13.为什么使用信道复用技术?常用的信道复用技术有哪些?

解:

    为了实现共享信道、最大限度提高信道利用率

    频分、时分、码分、波分

0.本章思维导图:

数据链路层使用的信道:

    点对点信道:使用一对一的点对点通信方式

    广播信道:使用一对多的广播通信方式,过程比较复杂,需要专用的协议来协调

 

1.使用点对点信道的数据链路层

    

1.1数据链路和帧

    

链路(物理链路):从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换节点

     链路是一条路径的一个组成部分:两台计算机之间的通信路径需要许多链路

数据链路(逻辑链路):把实现了这些通信协议的硬件和软件加到链路上,就构成了数据链路(物理线路+协议)

网络适配器:既有硬件也包括软件,实现了通信协议,包括了数据链路层和物理层两层的功能

规程:数据链路层中,规程等同于协议

帧:点对点信道数据链路层的协议数据单元

数据链路层通信时的主要步骤:

    (1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧

    (2)结点A把封装好的帧发送给结点B的数据链路层

    (3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报上交给网络层;否则丢弃这个帧

特点:数据链路层不用考虑物理层如何实现,所以就相当与对等层水平传输

    

*1.2三个基本问题

        

1.封装成帧:

    封装成帧:就是在一段数据前后分别添加首部和尾部,确定帧的界限,然后就构成了一个帧

    添加首部和尾部的作用:进行帧定界(确定帧的界限);包含许多必要的控制信息

    帧长:帧的数据部分加上帧首部和帧尾部的长度

    最大传送单元MTU:链路层协议规定的所能传送的帧的数据部分长度上限

    帧格式:

            

    帧界定的方法:可用特殊的帧定界符,在ACSCII码中,用SOH表示帧的首部开始,EOT表示帧的结束

    帧界定的作用:判断收到的帧是否完整,不完整则丢弃

        

2.透明传输:

    透明传输:不管什么数据,都能完整无差错的通过这个数据链路层,数据链路层对数据没有妨碍,数据链路层对数据时透明的

    透明传输中的问题:若数据中的某个字节的二进制代码恰好组成了帧界定符,就会出现错误

    解决方法:字节填充,在控制字符和特殊字符前插入一个转义字符"ESC",而真正的首部和尾部前不加

        

3.差错检测:

    比特差错:在传输中可能会产生比特差错,1可能变0,0可能变1

    误码率:在一段时间,传输错误的比特占所有传输比特总数的比率,与信噪比有关

   *循环冗余校验(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

        帧校验序列(FCS):为差错检验而添加的冗余码;就是计算后得到的余数R 

        生成多项式:一种方便的表示循环冗余校验过程的方法

            例:P=1101->P(X)=X³+X²+1(最高位对应X³,最低位对应Xº)

    传输差错的分类:

        比特差错:1变0,0变1

        帧丢失:丢失某个帧

        帧重复:某个帧收到多次

        帧失序:后发送的帧反而先到达接收端

    CRC的局限性:只能实现无比特差错,不能实现无传输差错,只能判断收到的数据是否正确,其余均无法判断,并不是可靠传输

        无差错接受:接收端数据链路层接受的帧,都能认为在传输过程中没有产生差错

        可靠传输:发送端发送什么,接收端就收到什么

     

2.点对点协议PPP

 

对于点对点的链路,目前使用最广泛的是PPP协议

2.1PPP协议的特点

 

作用域:用户计算机和ISP通信时所使用的数据链路层协议

PPP协议应满足的需求:

    (1)简单:对数据链路层的帧,不需要纠错、序号、流量控制,简单作为首要要求;收到帧进行CRC检验,无差错则接收,反之丢弃

    (2)封装成帧:必须规定特殊的字符作为帧定界符,使接收端从收到的比特流中准确找出帧的开始和结束位置

    (3)透明性:必须保证数据传输的透明性,要能解决碰巧出现和帧定界符一样的比特组合的问题

    (4)多种网络层协议:必须能够在同一条物理链路上同时支持多种网络层协议的运行,如IP等;在局域网和路由器上同样如此

    (5)多种类型链路:必须能够在多种链路上运行

    (6)差错检验:必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧

    (7)检测连接状态:必须能够自动检测链路是否处于正常工作状态

    (8)最大传送单元:必须对每一种类型的点对点链路设置MTU的标准默认值;促进各种实现之间的互操作性,若高层协议发送的分组数据部分超过MTU值,则丢弃并返回差错

    (9)网络层地址协商:必须提供一种机制使通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址

    (10)数据压缩协商:必须提供方法来协商使用数据压缩算法

 

PPP的特点:不支持多点线路,只支持点对点的链路通信,只支持全双工链路

PPP协议不需要的功能:纠错、流量控制、序号、多点线路、半双工或单工链路(只工作在点对点链路)

PPP协议的组成:

    (1)将IP数据报封装到串行链路的方法;PPP支持异步链路,也支持面向比特的同步链路;IP数据报在PPP帧中数据部分,收到MTU限制

    (2)用来建立、配置和测试链路连接的链路控制协议LCP

    (3)网络控制协议NCP,其中每一个协议支持不同的网络层协议

2.2PPP协议的帧格式 

    

 

        首部和尾部分别为4个字段和2个字段

        标志字段F:规定为0x7E,表示一个帧的开始或结束,就是帧的定界符

        地址字段A:规定为0xFF

        控制字段C:规定为0x03

        协议字段:

            (1)当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。

            (2)当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。

            (3)当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。

        信息字段:长度可变,不超过1500字节

        帧减压序列FCS:CRC中使用的冗余码

 

        透明传输问题: 当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一言的比特组合不出现在信息字段中。

            异步传输-字符填充:

  • 当PPP使用异步传输时,它把转移符定义为0x7D,并使用字节填充。

  • RFC1662规定了如下填充方法:

    (1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。

    (2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。

    (3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x31)。

  • 由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在接收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。

           *同步传输-零比特填充:

  • 当PPP使用同步传输时,使用零比特填充。

  • 零比特填充的具体方法:

    (1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。

    (2)只要发现有5个连续的1,则立即填入一个0。

    (3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。

  • 因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1。

    

2.3PPP协议的工作状态

    

3.使用广播信道的数据链路层

 

3.1局域网的数据链路层

        

局域网的特点:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网的优点:

    (1)具有广播功能,从一个站点可方便的访问全网;局域网上主机共享局域网上各种硬件和软件资源

    (2)便于系统的扩展和演变,各设备的位置可灵活调整和改变

    (3)提高了系统的可靠性、可用性和生存性

*局域网的拓扑结构:总线网、环形网、星形网

媒体共享技术:

    静态划分信道:频分复用、时分复用、波分复用、码分复用;代价较高,不适合局域网使用

    动态媒体接入控制(多点接入):

        随机接入:所有用户可随机发送信息,若发生碰撞(冲突),会使这些发送失败,需要解决碰撞的网络协议

        受控接入:用户不能随机发送信息而必须服从一定的控制,如多点线路探询(轮询)

 

以太网的两个标准:DIX Ethernet V2;IEEE 802.3

数据链路层的两个子层:

    逻辑链路控制(LLC):靠近网络层,看不见下面的局域网,为网络层提供统一的接口,已经过时

    媒体接入控制(MAC):靠近物理层,存放与接入媒体有关的内容

        

适配器的作用:

    网络适配器又被称为网卡

    包含了数据链路层和物理层两层的功能

    适配器的重要功能:(1)进行串行\并行转换、(2)对数据进行缓存、(3)在计算机的操作系统安装设备驱动程序、(4)实现以太网协议

    计算机通过配置器和局域网通信:

        

*3.2CSMA\CD协议

  

总线的特点:当一台主机发送数据时,总线上所有主机都能检测到这个数据,就是广播通信方式

为使通信简便采取的措施:

    (1)采用无连接工作方式,不必先建立连接就可以直接发送数据;适配器对数据帧不编号,不要求发回确认;因此,以太网提供尽最大努力交付,是不可靠交付;收到差错帧则丢弃,是否重传由高层决定,和以太网无关;同一时间只允许一台主机发送数据;使用CSMA/CD协议

    (2)发送的数据使用曼切斯特编码

 

CSMA/CD协议要点:

    (1)多点接入:说明是总线型网络

    (2)载波监听:检测总线上有没有其他计算机也在发送;每个主机必须不停的检测信道,发送前检测是为了获得发送权,发送中检测是为了及时发现碰撞

    (3)碰撞检测:边发松边监听,也叫冲突检测;发生碰撞就立即停止发生,等待一段随机时间后再次发送

 

    发生碰撞的原因:电磁波在1km电缆的传播时延为5μs,在这段时间其他主机发送数据无法检测到,就会导致之后某时刻发送冲突

适用环境:双向交替通信(半双工通信)

    以太网的发送不确定性:每一个站在自己发送数据之后一段时间内,存在遭遇碰撞的可能,这段时间是不确定的,取决于离另一个发送站的距离,因此无法保证一定能把自己的数据帧成功发送出去

    *争用期(碰撞窗口):以太网端到端的往返时间2τ;经过争用期没检测到碰撞,才能肯定这次发送不会发送碰撞

    截断二进制指数退避算法:用来确定碰撞后重传的时机,不是信道空闲就立即再次发送,而是推迟一个随机的时间

        具体流程:

            (1)规定了基本退避时间为争用期2τ,具体的争用期时间是51.2μs;对于10Mbit/s以太网,争用期内能发送512bit,即64字节,也可以说争用期是512比特时间。

            (2)从离散的整数集合[0,1,...,(2^k-1)]中随机取一个数,记为r,重传应推后r倍的争用期,k=min(重传次数,10)

            (3)当重传16次仍不成功时,丢弃该帧,向高层报告

        凡长度小于64字节的帧都是由于冲突而异常终止的无效帧

    强化碰撞:当发现碰撞时,处理立即停止发送数据外,还要继续发送32bit或48bit的人为干扰信号,使所有用户都知道发生了碰撞

    帧间最小间隔:9.6μs,即96比特时间,使刚收到数据帧的站的接受缓存来得及清理,做好接收下一帧的准备

    CSMA/CD协议要点:

        (1)准备发送:适配器从网络获得一个分组,加上首部和尾部组成以太网帧,放入以太网缓存中,发送前先检测信道

        (2)检测信道:若检测到信道忙,则不停检测,直到信道转为空闲;若检测到信道空闲,并在96比特时间内保持空闲,就发送这个帧

        (3)在发送过程中仍不停检测信道,边发送边监听。这里有两种可能:

                发送成功:争用期内未检测到碰撞。这个帧一定能发送成功。发送完毕后回到(1)

                发送失败:争用期内检测到碰撞。立即停止发送,并按规定发送人为干扰信号(强化碰撞),执行指数退避算法,等待r倍512比特时间后,返回步骤(2);若重传16次仍不成功,停止重传并向上报错

 

3.3使用集线器的星形拓扑

   

*集线器的特点:

    (1)使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,还是使用CSMA/CD协议,在同一时刻只允许一个站发送数据

    (2)一个集线器有多个接口,因此一个集线器很像一个多接口转发器

    (3)集线器工作在物理层,仅简单的转发比特,不进行碰撞检测

    (4)有专用的芯片,能自适应串音回波抵消

    每次只能发送一个信号,工作在物理层,只对比特进行转发不进行检测

 

3.4以太的网信道利用率

以太网信道的利用率:由于会发生碰撞,实际利用率达不到100%

成功发送一个帧占用信道的时间:T0+τ

参数a:

    a=τ/T0    是单程端到端时延τ与帧的发送时间T0之比

    a->0表示一发生碰撞就能立即检测出来并停止发送,而a越大,争用期占比越大,使信道利用率降低

    因此a的值越小越好;当数据率一定时,以太网连线的长度受到限制,同时以太网的帧长不能太短

极限信道利用率Smax:

    Smax=T0/(T0+τ)=1/1+a

    只有参数a远小于1才能得到尽可能高的极限信道利用率

3.5以太网的MAC层

MAC地址:

    定义:又叫物理地址或硬件地址;就是适配器的标识符,用48位二进制数来标识网卡的硬件地址,表示为6个16进制数,在局域网内具有唯一性

    I/G位:地址字段第一个字节的最低位;为0表示单个站地址、为1表示组地址,用来进行多播

    G/L位:地址字段第一个字节的最低第二位;为0表示全球管理、为1表示本地管理

 

适配器的过滤功能:适配器收到MAC帧后检查帧中目的地址,若发往本站则收下,否则丢弃

    发往本站的帧:

        (1)单播帧:一对一,即收到的帧的MAC地址与本站的硬件地址相同

        (2)广播帧:一对全体,即发送给本局域网上所有站点的帧(全1地址)

        (3)多播帧:一对多,即发送给本局域网上一部分站点的帧

 

MAC帧格式:

    

以太网数据帧长度:64~1518

各字段含义:

    类型:用来标志上一层使用的是什么协议

    数据:长度在46~1500字节

    FCS:帧检验序列,使用CRC检验

填充字段:当数据字段长度小于46字节时,MAC子层会在数据字段后面加入一个整数字节的填充字段,以保证MAC帧长不小于64字节

插入的8字节:从MAC子层传到物理层时要在帧前插入8字节,由硬件生成

    前同步码:7字节;使接收端的适配器在接收MAC帧时能迅速调整时钟频率,使其和发送端时钟同步

    帧开始定界符:定义为10101011;用来表示帧开始

 

无效的MAC帧:

    (1)帧的长度不是整数个字节

    (2)用收到的帧检验序列FCS查出差错

    (3)收到的帧的MAC客户数据长度不在46~1500字节之间,或MAC帧长度不在64~1518

 

4.扩展以太网

 

物理扩展:集线器、光纤

4.2在数据链路层扩展以太网

 

网桥:对收到的帧根据MAC帧目的地址查找地址表进行转发和过滤

交换机:工作在数据链路层,实质就是一个多接口网桥

    *特点:交换机上的主机是全双工工作,不会产生冲突,交换机中存有地址表通过自学习算法建立,交换机上所有端口在同一个广播域上

帧转发方式:

    直通:收到帧之后直接转发,不必事先把整个数据帧缓存,但也不对帧进行检验

    存储转发:将所有帧都收到后进行检查,然后再发送

*交换机的自学习功能:

    地址表的形成:收到未知的地址后,存储源地址和接口的对应关系,向除来源端口的其它端口广播,目的地址不符则丢弃,否则接收并回复,收到回复后存储对应关系;地址表有有效时间,超过有效时间则失效

生成树协议STP:解决无限循环的问题

    

4.3虚拟局域网

    

虚拟局域网(VLAN):是一些局域网网段构成的与物理位置无关的逻辑组

*VLAN标记:在MAC帧的源地址和类型间插入4字节的VLAN标记,交换机收到帧后只向所属VLAN转发,而不进行广播

最大帧长变为1522字节(1518+4)

 

 


习题

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

解:适配器是用来实现数据链路层和物理层这两层的协议的硬件和软件;工作在数据链路层和物理层

 

4.数据链路层的三个基本问题为什么必须解决?

解:帧定界是分组交换的必然要求;透明传输避免消息符号与帧定界符混淆;差错检验防止差错的无效帧浪费后续路由上的传输和处理资源

 

14.常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不是星形拓扑结构,但现在却改为使用星形拓扑结构?

解:星形网、总线网、环形网、树形网;现在最流行星形结构的拓扑;因为早期可靠的星形拓扑结构较贵,人们都认为无源的总线结构更可靠

 

*19.以太网使用的CSMA/CD协议是以争用方式接入到共享信道。这与传统的时分复用TDM相比优缺点如何?

解:传统时分复用是静态时隙分配,均匀高负荷时信道利用率高,低负荷或负荷不均匀时资源浪费较大;CSMA/CD动态使用空闲资源,低负荷时信道利用率高,但控制复杂,高负荷时信道冲突大

 

20.假定1km长的CSMA/CD网络的数据率为1Gb/s。设信号在网络上的传播速率为200000km/s。求能够使用此协议的最短帧长。

解:对于1km长的电缆,单程传播时间为1/200000=5μs,来回传播时间即为10μs,所以最小帧的发射时间不能小于10μs,以1Gb/s速率工作,10μs能发送的比特数为10*10^-6*1*10^9=10000.因此,最短帧长是10000位

 

27.有10个站连接到以太网上。试计算一下三种情况下每一个站所能得到的带宽。(1)10个站都连接到一个10Mb/s以太网集线器;(2)10个站都连接到一个100Mb/s以太网集线器;(3)10个站都连接到一个10Mb/s以太网交换机。

解:(1)10个站共享10MB/s    (2)10个站共享100MB/s    (3)每个站独享10MB/s

 

29.以太网交换机有何特点?用它怎样组成虚拟局域网?

解:以太网交换机工作在数据链路层,可实现透明交换;虚拟局域网是由一些局域网网段组成的与物理位置无关的逻辑组,这些网段具有某些共同需求。虚拟局域网协议允许在MAC帧中插入一个4字节的VLAN标记,用来指明发送该帧的工作站属于哪一虚拟局域网

 

30.

解:最大吞吐量为1100Mbit/s。三个系中各有一台主机分别访问两个服务器和通过路由器上网。其他主机在系内通信。9+2=11

 

33.如图,以太网交换机有6个接口,分别连接5台主机和一个路由器,完成下表

    

    

 

解:

动作

交换表

转发

A发送给D

(A,1)

2,3,4,5,6

D发送给A

(D,4)

1

E发送给A

(E,5)

1

A发送给E

不变

5

 

 

 

0.本章思维导图:

1.网络层提供的两种服务

   *网络层提供服务的特点:网络层向上只提供简单的、无连接的、尽最大努力交付的数据报服务,不保证可靠通信

    虚电路服务:保证可靠通信,必须建立连接

        思路:可靠通信由网络保证

        连接的建立:必须有

        终点地址:仅在连接建立阶段使用,每个分组使用短虚电路号

        分组转发:属于同一条虚电路的分组均按照统一路由进行转发

        当节点出故障:所有通过故障的结点的虚电路均不能工作

        分组的顺序:总是按发送顺序到达终点

        端到端的差错处理:可以由网络负责,也可以由用户主机负责

    数据报服务:尽最大努力发送,不保证可靠通信

        思路:可靠通信由用户主机保证

        连接的建立:不需要

        终点地址:每个分组都有终点的完整地址

        分组转发:每个分组独立选择路由器进行转发

        当结点出故障:出故障结点可能会丢失分组,一些路由可能会发生变化

        分组的顺序:到达终点的时间不一定按发送顺序

        端到端的差错控制:由用户主机负责

        

2.网际协议IP

   

与IP配套使用的三个协议: 

   地址解析协议ARP

    网际控制报文协议ICMP

    网际组管理协议IGMP

    

    

2.1.虚拟互连网络:

虚拟互联网络:逻辑互连的网络,可以由多种异构网络互连组成,在网络层上看起来像一个统一的网络

中间设备:用来将网络互相连接

    (1)物理层的中间设备:转发器

    (2)数据链路层的中间设备:网桥

    (3)网络层的中间设备:路由器

    (4)网络层以上的中间设备:网关

    

2.2.分类的IP地址

        

IP地址的编址方法:

        分类的IP地址:是最基本的编址方法

        子网的划分:对最基本编址方法的改进

        构成超网:比较新的无分类编址方法

        

*分类的IP地址:

            将IP地址划分为若干个固定类,每一类地址都由网络号(net-id)和主机号(host-id)构成

            一个IP地址再整个互联网范围内是唯一的

            A、B、C类地址都是单播地址

            D类地址用于多播

 

IP地址的记法:点分十进制记法

        

常用的三类IP地址:

            A类:

                最大可指派网络数:126(2^7-2)    8位除去1个固定位剩7位,减2因为要除去全0和全1位

                第一个可指派的网络号:1

                最后一个可指派的网络号:126

                每个网络中最大主机数:16777214(2^24-2(网络地址+广播地址))

            B类:

                最大可指派网络数:16383(2^14-1)    16位除去2个固定位,减1因为有两个固定位为10,所以不存在全0或全1,但规定128.0.0.0不使用,所以减去

                第一个可指派的网络号:128.1

                最后一个可指派的网络号:191.255

                每个网络中最大主机数:65534(2^16-2(网络地址+广播地址))

            C类:

                最大可指派网络数:2097151(2^21-1)    24位除去3个固定位,减1同B类,192.0.0.0规定不使用

                第一个可指派的网络号:192.0.1

                最后一个可指派的网络号:223.255.255

                每个网络中最大主机数:254(2^8-2(网络地址+广播地址))

IP地址的指派范围:

        

*一般不使用的特殊IP地址:

        

IP地址的重要特点:

        (1)每一个IP地址都由网络号和主机号两部分组成,是一种分等级的地址结构

        (2)实际上IP地址是标志一个主机或(路由器)和一条链路的接口

        (3)用转发器或网桥连接起来的若干给局域网仍为一个网络,因为这些局域网都具有同样的网络号net-id

        (4)所有分配到网络号的网络都是平等的

        

网络上的IP地址:

        (1)同一局域网上的各IP地址的网络号都是相同的

        (2)用网桥互连的网段仍是一个局域网,只有一个网络号

        (3)一个路由器有多个接口,每个接口对应的网络号不同

        (4)两路由器直接相连时,可以不给两端接口分配IP,这样的特殊网络也叫无编号网络或无名网络

        

2.3.IP地址与硬件地址

            

IP地址与硬件地址区别:从层次看,硬件地址或物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址

 

            

        

2.4.地址解析协议ARP

 

IP地址与MAC地址:源IP地址和目的IP地址始终不变;而源MAC地址和目的MAC地址在每条链路上都要变化            

作用:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址

工作方式:每个主机里都设有一个ARP高速缓存,里面有所在局域网上各主机和路由器的IP地址到硬件地址的映射表,且这个映射表经常动态更新

*工作流程:当主机A向局域网上某个主机B发送IP数据报时,先在ARP高速缓存中查看有无主机B的IP地址,若有,就可查出对应的硬件地址,反之,执行ARP请求分组:

                (1)ARP请求分组:在局域网广播一个ARP请求分组,包含发送方硬件地址,发送方IP地址,目的方硬件地址(未知时填0),目的方IP地址

                (2)本地广播ARP请求,路由器不转发ARP请求

                (3)ARP响应分组:某主机收到广播,发现本机IP与查询IP一致,就回复ARP响应分组,包含发送方硬件地址,发送方IP地址;同时将请求分组中IP与硬件地址对应关系保存

                (4)收到回复的ARP响应分组后,将对应IP和硬件地址存入ARP高速缓存中,方便下次使用

生存时间:ARP高速缓存中每条映射都只存在一段时间,超过时间后就被删除

*特点:

    ARP协议只解决同一局域网上IP地址和硬件地址映射问题,不在同一局域网则无法解决 

    ARP工作过程对用户来说是透明的

       

四种使用ARP的典型情况:

        (1)发送方是主机,要把IP数据报发送到本网络上的一个主机,这时ARP找到目的主机的硬件地址

        (2)发送方是主机,要把IP数据报发送到另一个网络上的一个主机,这时ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器完成

        (3)发送方是路由器,要把IP数据报发送到本网络上的一个主机,这时ARP找到目的主机的硬件地址

        (4)发送方是路由器,要把IP数据报发送到另一个网络上的主机,这时ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器完成

    

2.5.IP数据报格式

        

      

      

*首部各字段含义:

       1.版本:占4位,说明该IP数据报使用的IP协议的版本,通信双方必须使用同一个IP协议版本

  2.首部长度:占4位,长度20~60字节,因为IPv4中首部存在可变部分,所以需要指出首部的长度以划分首部与数据部分;以4字节为单位,不是4的整倍数时要填充至整倍数

  3.区分服务:占8位,只在区分服务时才起作用,一般不用

  4.总长度:占16位,说明该IP数据报的总长度(首部+数据)。IP数据报封装为MAC帧时受限于MAC帧的长度上限,所以IP数据报还存在“分片”操作,即将IP数据报分为多片,封装进多个MAC帧。因此IP数据报最大长度2^16-1=65535字节

  5.标识:占16位,IP数据报若存在分片,则接收方需要将各分片组合出原IP数据报,相同标识号的IP数据报就说明它们其实是同一个源IP数据报。

  6.标志:占3位,目前只有前两位有意义,最低位为MF(More Fragment),若MF=1则说明该数据报后面“还有分片”。中间一位为DF(Don't Fragment),若DF=1则不能分片,只有DF=0才可以分片

  7.片偏移:占13位,用于说明该IP数据报(已分片)在源IP数据报中的相对位置(相对于数据字段的起点),单位是8字节,每个分片一定是8字节的整倍数

  8.生存时间:IP分组在网络中传递时有可能出现“兜圈子”的情况,所以需要对IP数据报进行一定的限制,生存时间的单位是“跳数”,最大值为255,每经过一个路由器,路由器便将IP数据报的生存时间-1,当IP数据报中的生存时间为0时,路由器丢弃该分组。

  9.协议:说明该IP数据报的上层协议类型,如IP对应4,TCP对应6,UDP对应17

  10.首部校验和:验证首部是否存在传输错误,只检验首部,不包括数据部分

  11.源地址

  12.目的地址

 

  可变部分:长度为1~40字节,IP地址中的可变部分可用于支持很多操作,但很多情况都用不上,而且会增加路由器处理分组的开销,所以IPv6中的数据报首部做成了固定长度

 

    

2.6.IP层转发分组的流程:

        每个路由器路由表表项数:每有一个网络就要有一个路由表项

        接口所在网络为直连网络,直接交付

        特定主机的路由:给特定主机指定路由表,通过指定路线访问目标主机

        默认路由:可以减少路由表所占用的空间和搜索路由表所用的时间,将不在路由表中的网络都连向默认路由

        路由表:只有目标网络和对应的下一跳地址,并不储存到某个网络的完整路径

 *     分组转发算法:

            (1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。

            (2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就要执行(3)进行间接交付。

            (3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(4)。

            (4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(5)。

            (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(6)。

            (6)报告转发分组出错。

 

3.划分子网和构造超网

 

3.1.划分子网

 

两级IP地址的问题:

    IP地址空间利用率有时很低

    给每个屋里网络分配一个网络号会使路由表变得很大,因此是网络性能变坏

    两级IP地址不够灵活

 

划分子网的基本思路:借用主机号若干位作为子网地址

划分子网后的IP地址:| 网络号 | (子网) | 主机号 |

    

子网掩码:

    作用:用来找出IP地址中的子网部分,长度为32位,原IP中网络号和子网部分置为1,主机号部分置为0

    (IP地址)and(子网掩码)=网络地址

    默认子网掩码:在不进行子网划分时,也要给出子网掩码,就用默认子网掩码

        

    子网掩码是一个网络或一个子网的重要属性,路由表中的每一项还要给出该网络的子网掩码

    子网数:2^k-2,k表示子网号的位数,减去全0和全1,就是可用子网数,虽然现在全0和全1地址也可以使用,但不推荐

    子网划分方法

        固定长度划分:所划分的所有子网的子网掩码都是相同的,取所用最大的主机数进行划分

        变长划分:根据需求灵活划分

    

3.2.使用子网时的分组转发:

    子网划分后的路由表:包含目的网络地址、子网掩码、下一跳地址

    子网划分后的路由器转发分组算法:

        1)从收到的数据报首部提取目的IP地址D

        2)先判断是否为直接交付。对路由器直接相连的网络进行逐个检查:用各网络的子网掩码和D逐位相与,看结果是否和相对应的网络地址匹配。若匹配,则把分组进行直接交付,转发任务结束。否则就是间接交付,执行(3)。

        3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由:否则执行(4)。

        4)对路由表的每一行,用其中的子网掩码和D逐位相与,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则执行(5)。

        5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行(6)。

        6)报告转发分组出错。

    

3.3.无分类编址CIDR(构造超网):

 

概述:它最最主要的一点是消除了A,B,C类地址和划分子网的概念.它重新将IP地址划分为两个部分即,”网络前缀”和”主机号”.注意这里的网络前缀再也没有位数的限制,即没有A,B,C类之分.

CIDR的主要特点:

    (1)消除了传统A、B、C类地址及划分子网的概念,重新将IP地址划分为两个部分即,”网络前缀”和”主机号”.注意这里的网络前缀再也没有位数的限制,即没有A,B,C类之分.

    (2)把网络前缀相同的连续IP地址组成一个CIDR地址块,只要知道任一个地址,就可以知道这个地址块的起始地址和最大地址以及地址数

 

格式:使用网络前缀代替网络号和子网号,使IP地址变回两级格式

斜线表示法:/24表示子网掩码前24位为1,即网络前缀的位数

CIDR地址块:把网络前缀都相同的连续IP地址组成CIDR地址块

路由聚合:一个CIDR地址块能表示很多地址,这种地址的聚合称为路由聚合,也称为构成超网;有利于减少路由器之间的路由选择信息的交换,从而提高整个互联网的性能

 

*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开始

        

*最长前缀匹配:

    用收到的目的地址与路由表中的每条掩码依次相与,取最长前缀匹配项的地址作为下一跳

    因为前缀越长,其地址块就越小,因而路由就越具体

 

二叉线索树:

        将路由表中各IP地址构成一个01字典树,也称为二叉线索树,能极大优化路由表匹配过程

 

4.网际控制报文协议ICMP

   作用:ICMP允许主机或路由器报告差错和提供有关异常情况的报告

    报文格式:

    

4.1.ICMP报文种类

*报文种类:差错报告报文,询问报文

    

常见差错报告报文:终点不可达、时间超过、参数问题、改变路由(重定向)

ICMP差错报告报文封装过程:

    

    

*不发送ICMP差错报告报文的情况:

        (1)对ICMP差错报告报文,不再发送ICMP差错报告报文

        (2)对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文

        (3)对具有多播地址的数据报,都不发送ICMP差错报告报文

        (4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不发生ICMP差错报告报文

 

常用的ICMP询问报文:

        (1)回送请求和回答:

            ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文,这种询问报文用来测试目的站是否可达以及了解其状态

        (2)时间戳请求和回答:

            ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间,再ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900.1.1到当前时刻一共多少秒,用于时钟同步和时间测量

 

4.2.ICMP的应用:

        PING: PING即Packet InterNet Groper,用于探测两台主机间是否连通,源主机向目标主机发送ICMP的回送请求报文(封装在IP数据报中),目标主机若接收到该报文则返回回送回答报文

        路由探测: 路由探测即源主机向目标主机发送无法交付的UDP数据报(封装于IP数据报,若目标主机接收到该数据报,则会返回ICMP终点不可达报文),第一次发送时将IP数据报的生存时间设为1,这样一来第一个路由器接收到后将生存时间-1就会直接判断该IP分组需要丢弃,并返回ICMP时间超过报文,源主机接下来发送第二个IP数据报(依然为不可交付UDP数据报),此次将生存时间设为2……以此类推,直至接收到ICMP终点不可达报文,或生存时间达到上限为止。

 

5.互联网的路由选择协议

   

5.1.路由选择协议基本概念

 

分层次的路由选择协议:

        互联网采用分层次的路由选择协议,自适应的(动态的)、分布式路由选择协议

*自治系统AS:

        在单一技术管理下的一组路由器,在AS内部使用内部网关协议,AS之间使用外部网关协议

路由选择协议分类:

    内部网光协议IGP:在一个自治系统内部使用。如RIP、OSPF协议

    外部网光协议EGP:在不同自治系统之间使用。如BGP协议

 

5.2.内部网关协议RIP

 

概述:是一种分布式,基于距离的路由选择协议

距离:直连网络距离为1,每过一个非直连网络距离加1,距离也称为跳数,每经过一个路由器跳数就加1,距离实际上指最短距离

                        RIP允许一个路径最多包含15个路由器,也就是距离最大值为16,故RIP适合小型互联网使用;RIP不能在两个网络之间同时使用多条路由

 

工作流程:每个路由器每隔一段时间向外广播,每个路由器收到广播后更新自己的路由表

刚开始时只知道直连网络的距离,路由表为空,以后,每个路由器只和数目有限的相邻路由器交互并更新路由信息,经过若干次更新后,所有路由器最终会知道到达本自治系统其他路由器的最短距离和下一跳地址,此时称该网络收敛

 

*RIP协议的特点:

    (1)仅和相邻路由器交换信息,不相邻的路由器不交换信息

    (2)交换的信息是当前本路由器所知道的全部信息,即其现在的路由表

    (3)按固定时间间隔交换信息

            

距离向量算法:

            (1)路由器收到地址为X的相邻路由器的一个RIP报文,修改报文中所有项目,把下一跳地址改为X,把距离字段值都+1

            (2)对修改后的RIP报文中的每个项目重复以下步骤

                    若项目中目的地址不在路由表中,则加入路由表;

                    若下一跳给出的路由器地址与RIP报文传来地址相同,则用收到的项目替换原路由表中的项目

                    若收到项目中的距离小于路由表中的距离,进行更新

            (3)若超过3分钟未收到相邻路由信息,则将其标记为不可达,即把距离置为16

            (4)返回

            

*    例:路由表更新

                

        解:

            先将收到的路由表进行修改:

            

            将修改后的表与路由表对比:

                net1:原路由表中没有,故加入

                net2:原表中有,且下一跳相同,替换原有

                net3:原表中有,但下一跳不同,比较距离,选择较小的

 

RIP协议报文格式:

                

    各字段含义:

        命令:指出报文的意义;1表示请求路由信息,2表示对请求路由信息的响应或路由更新报文

        地址族标识符:标志所使用的的地址协议;如IP地址就置为2

        路由标记:填入自治系统号,因为RIP可能受到本自治系统以外的路由选择信息

        

RIP报文最大长度:4+20*25=504字节

*RIP2改动:支持变长子网掩码和无分类域间路由选择CIDR;提供简单的鉴别过程支持多播

RIP存在的问题:当网络出现故障时,要经过较长时间才能将此信息传送到所有路由器

*RIP协议特点:

        好消息传播快,坏消息传播慢,网络出故障的传播时间需要较长时间

        优点:实现简单,开销较小;

        缺点:限制了网络的规模,出故障时传播时间较长

 

        

5.3.OSPF协议:

 

主要特征:使用分布式的链路状态协议,而不像RIP使用距离向量协议

*OSPF的要点:

    (1)向本自治系统中所有路由器发送信息。使用洪泛法,向所有相邻路由发送信息,每个相邻路由又再将此信息发给所有相邻路由

    (2)发送信息就是与本路由器相邻的所有路由器的链路状态,说明与哪些路由相邻,以及该链路的"度量";而不是发生路由表

    (3)只有当链路状态发生变化时,才使用洪泛法发生信息;不是定期更新           

*度量:费用、距离、时延、带宽

链路状态数据库:实际就是全网的拓扑结构图,它在全网范围内是一致的,能较快的更新,收敛较快

OSPF的区域:

    为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干各更小的范围,叫做区域;必须要有一个主干区域,其它区域一般都和主干区域直接相连;每个区域都有一个32位的区域标识符;区域不能太大,一个区域路由器数量不超过200个;

 

优点:使用泛洪法交换链路信息时,仅在一个区域内而不是整个自治系统中,这减小了整个网络上的通信量

*OSPF的特点:

    使用层次结构的区域划分

    OSPF直接用IP数据报传送,而不用UDP

    支持可变长度的子网划分和无分类编址CIDR

    OSPF对于不同类型的业务可计算出不同的路由

    到达同一目的网络可有多条代价相同的路径,多路径间的负载平衡

    所有在OSPF路由器之间交换的分组都具有鉴别功能

 

OSPF报文:

                

                

OSPF报文的5种分组类型:

        类型1:问候分组;

        类型2:数据库描述分组;

        类型3:链路状态请求分组;

        类型4:链路状态更新分组,用泛洪法对全网更新链路状态;

        类型5:链路状态确认分组

指定路由器法:指定一个代表路由器,将信息都传送给指定的路由,再由其向其他路由器转发,减小网络上的通信量

             

    

5.4.外部网关协议EGP

EGP协议的作用:寻找一条能够到达目的网络且比较好的路由,不一定是最佳路由,采用路径向量路由选择协议

5.5.路由器的构成          

路由器:路由器是一种由多个输入端口和多个输出端口的专用计算机

路由器两大部分:

    路由选择部分:路由选择处理机,路由选择协议,路由表

    分组转发部分:交换结构,一组输入端口,一组输出端口

            转发与路由选择:转发根据转发表,转发表由路由表而来,路由选择根据路由表,路由表由路由选择协议及相关算法而来

            分组丢弃:由于没有足够存储空间

                交换结构:交换结构是路由器的关键部件、把分组从一个输入端口转到一个输出接口

                    三种交换方式:通过存储器、通过总线、通过互连网络

 

6.IPv6

    

6.1.IPv6的基本首部

主要变化:

        更大的地址空间:将地址从32位增大到128位

        扩展的地址层次结构

        灵活的首部格式:定义了很多可选的扩展首部

        改进的选项:允许数据报包含有选项的控制信息,其选项放在有效载荷中

        允许协议继续扩充

        支持即插即用:自动配置,不需要使用DHCP

        支持资源的预分配

        首部改为8字节对齐

IPv6数据报格式:

       

    首部长度固定位40字节

 

    基本首部:

        

        各字段含义:

            版本:占4位。指明协议的版本

            通信量类:占8位。为了区分不同的IPv6数据报的类别或优先级

            流标号:占20位。标明数据报所属的流,在流经过的路径上的路由器都保证服务质量

            有效载荷长度:占16位。指明除基本首部外的字节数,最大值是64KB

            下一个首部:占8位。相当于IPv4的协议字段或可选字段。当没有扩展首部时,指明首部后面的数据应交付IP上层哪个协议;有扩展首部时,就标识后面第一个扩展首部的类型

            跳数限制:占8位。防止数据报在网络中无限期存在,最大255跳,每转发一次就-1,为0就将这个数据报丢弃

            源地址:占128位。是数据报发送端的IP地址

            目的地址:占128位。是数据报接收端的IP地址

 

6.2.IPv6地址 

 

结点与接口:将实现IPv6的主机和路由器均称为结点

 

   *IPv6的表示:

        冒号16进制记法:用8段,每段4个16进制数组成,允许将数据前的0省略

            例:68E6:8C64:FFFF:FFFF:0:1180:FFFF:FFFF

        零压缩:一串连续的零可用一对冒号所代替,在一个地址中只能使用一次,若多次压缩将导致地址无法还原

            例:FF05:0:0:0:0:0:0:0:03 => FF05::03

        点分十进制记法的后缀:可将IPv4地址前添加6组0,使其变成IPv6的地址

            例如:0:0:0:0:0:0:128.10.2.1  = ::128.10.2.1

    IPv6地址分类:

 

    全球单播地址的3种划分方法:

    

*6.3.IPv4向IPv6过渡:

        

双协议栈:在完全过渡到IPv6前,使一部分主机或路由器装有两个协议栈,使其可与不同网络通信时采用不同的协议,将IPv6数据报报头改为IPv4数据报形式

隧道技术:在IPv6协议进入IPv4网络时,更改源地址为隧道起点,目的地址变为隧道终点,建立隧道,使整个原IPv6数据报作为IPv4数据报的数据部分,在出隧道时改回原来的源地址和目的地址,还原为IPv6数据报

 

6.4.ICMPv6

ICMPv6:地址解析协议ARP和IGMP都集合到ICMPv6中

分类:差错报文,信息报文,邻站发现报文,组成员关系报文

 

7.IP多播(略)

8.虚拟专用网VPN和网络地址转换NAT(了解)

   

8.1.虚拟专用网VPN:

概述:用于机构内部的通信,而不是用于和网络外非本机构的主机通信,但没有真正使用通信专线,VPN只是在效果上和真正的专用网一样

VPN的构建:

    所有通过互联网传送的数据都必须加密,要构建VPN必须为它的每一个场所配置专门的硬件和软件,使每一个场所的VPN系统都知道其他场所的地址        

远程接入VPN:可以满足外部流动员工访问公司网络的需求

    

8.2.网络地址转换NAT:

        要在路由器上安装NAT软件,装有NAT软件的路由器称为NAT路由器,它至少有一个有效的外部全球IP地址,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换为全球IP地址,才能和互联网连接

        网络转换的过程:

            在内部主机与外部主机通信时,在NAT路由器上进行了两次转换

            离开专用网时:替换源地址,将内部地址替换为全球地址

            进入专用网时:替换目的地址,将全球地址替换为内部地址

        通过NAT路由器的通信必须由专用网内的主机发起,专用网内部的主机不能充当服务器用,因为互联网上的用户无法请求专用网内的服务器提供服务

     网络地址与端口号转换NAPT:

        可以使多个本地主机共用一个全球IP地址

        NAPT地址转换过程:

            NAPT把专用网内不同的源IP地址,都转换为同样的全球IP地址,但对源主机所采用的TCP端口号,则转换为不同的新的端口号,因此,当NAPT路由器收到从互联网发来的应答时,就可以从IP数据报的数据部分找出运输层的端口号,然后根据不同的目的端口号,从NAPT转换表中找到正确的目的主机

9.多协议标记交换MPLS(了解)

    多协议标识MPLS的上层可以采用多种协议,可以使用多种数据链路层协议

    为实现交换,可以利用面向连接的概念,使每一个分组携带一个叫做标记的小整数

 

 


习题

 

17.一个3200位长的TCP报文传到IP层,加上160位的首部后成为数据报,下面的互联网由两个局域网通过路由器组成,但第二个局域网所能传送的最长数据帧中的数据部分只有1200位,因此数据报在路由器必须进行分片。问第二个局域网向其上层要传送多少比特的数据?

    第二个局域网所能传的最长数据帧中数据部分只有1200bit,即每个IP数据片的数据部分<1200-160=1040bit,由于片偏移是以8字节即64bit位单位的,所以IP数据片的数据部分最大不超过1040bit,这样3200bit的报文要分成4个数据片,所以第二个局域网向上传送的比特数等于3200+4*160,共3840bit

解析:每个IP数据部分长度=1200-160=1040bit,因此3200/1040=3......80,因此要分成4片,每片首部160位,所以总共向上传送的比特数为3200+4*160=3840bit

 

19.主机A发送IP数据报给主机B,途中经过了5个路由器。问在IP数据报的发送过程中总共使用了几次ARP?

    6次,主机用一次,每个路由器各用一次

 

20.某路由器路由表如下,现收到5个分组,其目的地址分别为,计算其下一跳

    

    (1)128.96.39.10:接口m0

    (2)128.96.40.12:R2

    (3)128.96.40.151:R4

    (4)192.253.17:R3

    (5)192.4.153.90:R4

 

22.一个数据报长度为4000字节,现在经过一个网络传送,此网络能够传送的最大数据长度为1500字节,求应该划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和、MF标志应为什么?

    IP数据报固定首部长度为20字节

    数据报                总长度        数据长度            MF            片偏移

    原始数据报           4000            3980                0                 0

    数据报片1            1500            1480                1                  0

    数据报片2            1500            1480                1                185

    数据报片3            1040            1020                0                370

解析:3980/1480=2......1020;因此分3片,前两片数据部分1480字节,最后一片数据部分1020字节

 

25.以下4个子网掩码,哪些是不推荐使用的?为什么?

    (1)176.0.0.0;(2)96.0.0.0;(3)127.192.0.0;(4)255.128.0.0

解:

    只有(4)推荐使用,因为是连续的1和连续的0组成

 

26.有如下4个/24地址块,求能进行的最大聚合

    (1)212.56.132.0/24

    (2)212.56.133.0/24

    (3)212.56.134.0/24

    (4)212.56.135.0/24

解:

    公共前缀有22位,最大聚合的CIDR地址是212.56.132.0/22

 

*28.已知路由器R1的路由表如图所示,画出各网络和必要的路由器的连接拓扑,标注必要的IP地址和接口

 

*29.一个自治系统有5个局域网,其连接如图所示,LAN2至LAN5上的主机数分别为91、150、3和15.该自治系统分配到的IP地址块为30.138.118/23。给出每个局域网的地址块包括前缀

    LAN3:30.138.118.0/24           2^8=256

    LAN2:30.138.119.0/25           2^7=128

    LAN5:30.138.119.128/26       2^6=64  

    LAN1:30.138.119.192/29       2^3=8

    LAN4:30.138.119.200/29       2^3=8

 

    

 

30.一个大公司有一个总部和三个下属部门,公司分配到的网络前缀是192.77.33/24.公司的网络布局如图所示,总部共有五个局域网,其中LAN1-LAN4都连接到路由器R1上,R1再通过LAN5与路由器R5相连,R5和远地的三个部门的局域网LAN6-LAN8通过广域网相连,每一个局域网旁标明局域网上的主机数,试给每一个局域网分配一个合适的网络前缀

LAN1:/26     2^6=64>50 192.77.33.0 (0~63)

LAN3:/27     2^5=32>30 192.77.33.64 (64~95)

LAN6:/27     2^5=32>20 192.77.33.96 (96~127)

LAN7:/27     2^5=32>20 192.77.33.128 (128~159) 

LAN8:   /27    2^5=32>25 192.77.33.160 (160~191) 

LAN2:/28     2^4=16>10 192.77.33.192 (192~207)

LAN4:/28     2^4=16>10 192.77.33.208 (208~223)

LAN5:/29     2^3=8>4     192.77.33.224 (224~231)

 

 

WAN1:/30   2^2=4 =4 192.77.33.232 (232~235)

WAN2:/30   2^2=4 =4 192.77.33.236 (236~239)

WAN3:/30   2^2=4 =4 192.77.33.240 (240~243)

 

按子网大小,从大到小划分,注意上一个子网末地址和下一个子网首地址的关系,+1的关系

 

32.以下的地址前缀中哪些与2.52.90.140匹配

解:前缀(1)和其匹配

 

*35.已知地址块中的一个地址是140.120.84.24/20,求该地址块中最小地址和最大地址?掩码是什么?地址块中共有多少地址?相当于多少个C类地址?

解:

    最小地址:140.120.80.0/20

    最大地址:140.120.95.255/20

    地址数是4096,相当于16个C类地址

 

*41.假定网络中的路由器B的路由表如下,现B收到C发来的路由信息,求B更新后的路由表

    B中路由表:

    N1    7    A

    N2    2    C

    N6    8    F

    N8    4    E

    N9    4    F

    C发来的信息:

    N2    4    

    N3    8

    N6    4

    N8    3

    N9    5

    更新后路由表:

    N1    7    A    无新信息,不变

    N2    5    C    相同的下一跳,必须更新

    N3    9    C    新信息,加入更新

    N6    5    C    距离更短,更新

    N8    4    E    距离相同,不更新

    N9    4    F    距离变大,不更新

 

51.给出某地址块的一个地址为73.22.17.25(A类地址).求该地址块的地址数及首地址和末地址

解:

    地址数为2^24;首地址是73.0.0.0/8;某地址是73.255.255.255

52.有一个地址167.199.180.82/27,求这个网络的网络掩码、网络前缀长度、网络后缀长度

解:

    网络掩码是255.255.255.224;网络前缀长度27;网络后缀长度5

53.一个地址是167.199.170.82/27,求这个地址块的地址数,首地址和末地址

解:

    首地址:167.199.170.01000000

    末地址:167.199.170.01011111

    地址数:2^5

54.某单位分配一个起始地址14.24.74.0/24的地址块。该单位用到三个子网,子网N1要120个地址,子网N2要60个地址,子网N3要10个地址,给出分配方案

    LAN1:14.24.74.0/7 (0~127)

    LAN2:14.24.74.128/6 (128~191)

    LAN3:14.24.74.192/4 (192~207)

解:

    LAN1:    14.24.74.0/25~14.24.74.127/25

    LAN2:    14.24.74.128/26~14.24.74.191/26

    LAN3:    14.24.74.192/28~14.24.74.207/28

 

*64.把下列IPv6地址用零压缩方法简写

    (1)0000:0000:0F53:6382:AB00:67DB:BB27:7732 = ::F53:6382:AB00:67DB:BB27:7332

    (2)0000:0000:0000:0000:0000:0000:004D:ABCD = ::4D:ABCD

    (3)0000:0000:0000:AF36:9328:0000:87AA:0396 = ::AF36:7328:0:87AA:396

    (4)2819:00AF:0000:0000:0000:0035:0CB2:B271 = 2819:AF::35:CB2:B271

 

*65.把下列零压缩的IPv6地址恢复

    (1)0::0 = 0000:0000:0000:0000:0000:0000:0000:0000

    (2)0:AA::0 = 0000:00AA:0000:0000:0000:0000:0000:0000

    (3)0:1234::3 = 0000:1234:0000:0000:0000:0000:0000:0003

    (4)123::1:2 = 0123:0000:0000:0000:0000:0000:0001:0002

 

*66.从IPv4过渡到IPv6的方法

解:

    双协议栈:在完全过渡到IPv6前,使一部分主机或路由器装有两个协议栈,使其可与不同网络通信时采用不同的协议,将IPv6数据报报头改为IPv4数据报形式

    隧道技术:在IPv6协议进入IPv4网络时,更改源地址为隧道起点,目的地址变为隧道终点,建立隧道,使整个原IPv6数据报作为IPv4数据报的数据部分,在出隧道时改回原来的源地址和目的地址,还原为IPv6数据报

 

0.本章思维导图:

1.运输层协议概述

   

    1.进程间的通信

       概述:

            运输层向它上面的应用层提供通信服务运输层属于面向通信部分的最高层,同时也是用户功能中的最底层;只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发时只用到下三层的功能

        通信:

            真正进行通信的实体是在主机中的进程,是一台主机中的进程和另一台主机中的进程在交换数据,严格来讲,两台主机进行通信就是两台主机中的应用进程互相通信

        运输层的作用:

 

    

        网络层与运输层的区别:网络层为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信

        基于端口的复用和分用功能:

            复用:在发送方不同的应用进程都可以使用同一个运输层协议传送数据

            分用:接收方的运输层在剥去报文的首部后能把这些数据正确交付目的应用进程

        屏蔽作用:运输层向高层屏蔽了网络核心的细节,使应用进程看见的就好像在两个运输层实体之间有一条端到端的逻辑通信信道

     *  两种不同的运输协议:

            当运输层采用TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道

            当运输层采用无连接的UDP协议时,这种逻辑信道仍是一条不可靠信道

    2.运输层的两个主要协议

        两个主要协议:

             (1)用户数据报协议(UDP)

             (2)传输控制协议(TCP) 

        两种协议在协议栈中的位置:

            

        UDP:

            在传送数据之前不需要先建立连接,远地主机收到UDP报文后,不需要给出确认,UDP不提供可靠交付,但某些情况却是最有效的工作方式

        TCP:

            提供面向连接的服务,在传送数据前先建立连接,数据传送结束后要释放连接;TCP不提供广播或多播服务;TCP提供可靠的、面向连接的运输服务,因此增加了很多开销

        UDP与IP数据报的区别:

            IP数据报要经过互联网中许多路由器的存储转发

            UDP用户数据报是在运输层的端到端抽线的逻辑信道中传送的

            TCP报文是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道

 

  

  * 3.运输层的端口

        目的:把特定主机上运行的进程作为互联网上通信的终点不可行,因为进程的创建和撤销是动态的,因此使用协议端口号作为识别的终点,而不需要知道具体进程

        协议端口号(端口):虽然通信的终点是应用进程,但只要把报文交到目的主机的某个目的端口,剩下的工作就由TCP或UDP来完成

        两种端口区别:

            硬件端口:不同硬件设备进行交互的接口

            软件端口:应用层的各种协议进程与运输实体进行层间交互的一种地址,此处的端口都是指软件端口

         端口的表示:用16位的端口号来标志一个端口;端口号只具有本地意义,只标志本计算机应用层中各进程和运输层交互时的层间接口

  *     端口号的分类:

            服务器端口号:

                熟知端口号:0~1023,这些端口号被指派给TCP/IP最重要的以下应用程序,让所有用户都知道

                

                登记端口号:1024~49151,为没有熟知端口号的应用程序使用

            客户端端口号:49152~65535,仅在客户进程运行时才动态选择,因此又叫短暂端口号

 

2.用户数据报协议UDP

    1.UDP概述:

   UDP的主要特点:

        (1)UDP是无连接的:发生数据之前无需建立连接,减少了开销和发送数据之前的时延

        (2)UDP使用尽最大可能交付:不保证可靠交付,因此主机不需要维持复杂的连接状态表

        (3)UDP是面向报文的:UDP对应用层交下来的报文不做处理,直接加上首部后就转发,若报文过长,IP层会进行分片,可能使IP层效率降低

            

        (4)UDP没有拥塞控制:因此网络出现拥塞不会使源主机发送速率降低,对实时应用很重要

        (5)UDP支持一对一、一对多、多对一和多对多的交互通信

        (6)UDP的首部开销小:只有8字节,比TCP的20字节首部短

  * 2.UDP的首部格式:

        

        

             *  伪首部:只在计算校验和时使用,不参与数据传输

                 源端口:源端口号;在需要对方回信时选用;不需要时用全0

                目的端口:目的端口号;在终点交付报文时必须使用

                长度:UDP用户数据报的长度,最小值是8(仅有首部)

                校验和:检测UDP用户数据报在传输过程中是否有错。有就丢弃 

 

            计算UDP校验和:与IP首部检验相似,但UDP的检验和把首部和数据部分一起都检验

                

3.传输控制协议TCP概述

   * 1.TCP的主要特点:

            (1)TCP是面向链接的运输层协议:在使用TCP协议之前,必须先建立连接

            (2)每一条TCP链接只能有两个端点,每一条TCP连接只能是点对点的

            (3)TCP提供可靠交付的服务:保证数据无差错、不丢失、不重复、按序到达

            (4)TCP提供全双工通信:允许通信双方任何时候都能发送数据

            (5)面向字节流:

                流指的是流入到进程或从进程流出的字节序列;TCP把应用程序交下来的数据仅看作一串无结构的字节流

                

                TCP连接是一条虚连接(逻辑连接),并不是真正的物理连接

    2.TCP的连接:

    *  套接字:套接字=(IP地址:端口号)    IP地址拼接上端口号,例如(192.168.1.1:80)

        每一条TCP连接唯一被通信两个端点(两个套接字)所确定:

            TCP连接::={socket1,socket2} = {(IP1:port1),(IP2:port2)}

        TCP连接的端点不是进程,而是套接字

        同一个IP地址可以由多个不同的TCP连接,而同一个端口也能出现在多个不同TCP连接中

 

4.可靠传输的工作原理:

    理想传输条件:

        传输信道不产生差错

        不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据

            

    1.停止等待协议:

        停止等待:每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组

        (1)无差错情况:

            

        (2)出现差错:

          

                A只要超过一段时间每收到确认,就默认发送的分组丢失而重传之前的分组,就是超时重传

                注意:

                    (1)A发送完一个分组后,必须暂时保留已发送分组的副本,只有在收到相应确认后才删除

                    (2)分组和确认都需要编号,才能明确哪个分组收到确认,哪个没收到

                    (3)超时计时器的重传时间应比数据在分组传输的平均往返时间更长一些

        (3)确认丢失和确认迟到:

            确认丢失:

                

            确认迟到:

                

            

    2.连续ARQ协议:

        发送方维持发送窗口,位于发送窗口内的分组都可以连续发送出去,而不需要等待对方确认,这样信道利用率就提高了

        工作原理:

                

                ARQ规定,发送方每收到一个确认,就把发送窗口滑动一个分组位置,接收方采用累积确认方式,在收到几个分组后,对按序到达的最后一个分组发送确认

        优点:容易实现,确认丢失也不必重传

        缺点:不能向发送方反映出接收方已经正确收到的所有分组信息

 

5.TCP报文段的首部格式

        首部格式:

            

            (1)源端口和目的端口:各占2字节,分别是源端口号和目的端口号

            (2)序号:占4字节,TCP中传输的数据流中的每一字节都有一个编号。序号字段的值是本报文段所发送的数据的第一个字节的序号

            (3)确认号:占4字节,是期望收到对方下一个报文段的第一个数据字节的序号

                    确认号=N,则表明到序号N-1为止所有数据都正确收到

            (4)数据偏移:占4位,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远

            (5)保留:占6位,保留为今后使用

            (6)紧急URG:当URG=1时,表明紧急指针字段有效,告诉系统此报文中有紧急数据,应尽快传送,而不采用原来的按排队顺序来传送

            (7)确认ACK:当ACK=1时确认号字段有效,TCP规定,在连接建立后所有数据报文段都把ACK置为1

            (8)推送PSH:当收到PSH=1的报文时,就尽快交付接收应用进程,而不再等到整个缓存都填满后再向上交付

            (9)复位RST:当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后重新建立连接

            (10)同步SYN:在连接建立时用来同步序号;当SYN=1而ACK=0时,表明这是一个连接请求报文,对方若同一建立连接,则应在响应报文中使SYN=1,ACK=1

            (11)终止FIN:用来释放一个连接,当FIN=1时,表示此报文段的发送方已经发送完毕,并要求释放连接

            (12)窗口:占2字节,指的是发送本段报文段的一方的接收窗口,窗口值作为接收方让对方设置其发送窗口的依据;窗口字段明确指出了现在允许对方发送的数据量,窗口值经常动态变化

            (13)校验和:占2字节,检验和字段检验的范围包括首部和数据两部分

            (14)紧急指针:占2字节,在URG=1时才有意义,指出本报文段中的紧急数据的字节数

            (15)选项:长度可变,最长40字节

        

        最大报文段长度(MSS):

            是每一个TCP报文段中的数据字段的最大长度,并不是整个TCP报文段的最大长度,是TCP报文段长度-TCP首部长度

 

*6.TCP可靠传输的实现

        1.以字节为单位的滑动窗口:

            根据B给出的窗口值,A构造自己的发送窗口

            

            发送窗口表示:在没有收到B的确认时,A可以连续把窗口内的数据都发送出去

            发送窗口中的序号表示允许发送的序号,窗口越大,发送方就可以在收到对方确认前连续发送更多的数据,因此可能获得更高的传输效率

            收到新的确认后发送窗口前沿向前移动,没有收到新的确认或收到新的确认但对方通知的窗口缩小了,会使发送窗口前沿不动

            TCP的缓存和窗口的关系:

                

            发送缓存存放:

                发送应用程序发送给发送方TCP准备发送的数据

                TCP已发送出但尚未收到确认的数据

            接收方缓存存放:

                按序到达的、但尚未被接受应用程序读取的数据

                未按序到达的数据

            

        2.超时重传时间的选择:

            加权平均往返时间RTTs:

                新的RTTs=(1-a)*(旧的RTTs)+a*(新的RTT样本)

            超时重传时间RTO:

                RTO=RTTs+4*RTTd

            RTT的偏差的加权平均值RTTd:

                新的RTTd=(1-b)*(旧的RTTd)+b*|RTTs-新的RTT样本|    其中b=0.25

            Karn算法:

                在计算加权平均RTTs时,只要报文段重传了,就不采用其往返时间样本,这样得出的加权平均RTTs和RTO就较准确

        3.选择确认SACK:

            选择确认的工作原理:   

                接收方在接受对方发送过来的数据字节流的序号不连续,结构就形成了一些不连续的字节块,如果这些字节的序号都在接受窗口内,接收方就先收下这些数据,但要把这些信息告诉发送方,使发送方不再重复发送这些已收到的数据

            

                左边界为闭,右边界为开;左边界指向字节块第一个字节序号,右边界指向字节块最后一个序号+1

7.TCP的流量控制

   *     1.利用滑动窗口实现流量控制:

            流量控制:让发送方发送速率不要太快,让接收方来得及接收

            滑动窗口的单位:字节

            滑动窗口流量控制流程:

                    开始时rwnd=400,每个报文段长100字节

                

            

            持续计时器:解决盲等死锁。只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器,若计时器到期,就发送一个零窗口探测报文段,而对方就在确认这个报文段时给出了现在的窗口值,若窗口值仍是零,那么收到报文的一方就重新设置持续计时器,若不是零,那么死锁就被打破

        2.TCP的传输效率:

            Nagle算法:

                若发送应用进程要把发送的数据逐个字节地送到TCP发送缓存,则发送方就把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来。当发送方收到对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文发送出去,同时继续对后到达的数据进行缓存。只有在收到对前一个报文段的确认后才继续发送下一个报文段

            糊涂窗口综合征:接收缓存每次只能释放出1字节空间,然后把窗口设为1,向发送方发送确认,发送方又发来1字节数据,接收方发回确认,仍将窗口设为1字节,这样会使网络效率降低

                解决方法:让接收方等待一段时间,使得接收缓存有足够空间容纳一个最大的报文段,或等接收缓存中有一半空闲空间。此时再发送确认报文

 

8.TCP的拥塞控制

        1.拥塞控制的一般原理:

            拥塞:某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种现象称为拥塞

            出现拥塞的原因:对资源的需求>可用资源

            增加资源解决拥塞:不能。拥塞由多种因素引起,不能单纯通过增加资源解决

            拥塞的恶化:如果路由器没有足够缓存空间,就会丢弃一些新到的分组,当分组被丢弃时,发送方就会重传,甚至多次重传,这样会导致更多分组流入网络和被网络中的路由器丢弃

            拥塞控制与流量控制的区别:

                拥塞控制就是防止过多的数据注入到网络,这样可以使网络中的路由器或链路不致过载,拥塞控制的前提是网络能够承受现有的网络负荷,拥塞控制是一个全局性过程

                流量控制是指对点对点通信量的控制,是端到端的问题,流量控制就是抑制发送端发送数据的速率,以便使接收端来得及接收

            拥塞控制的一般原理:

            开环控制:就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不发生拥塞

            闭环控制:基于反馈回路概念;检测网络系统以便检测到拥塞在何时、何处发生;把拥塞发生的信息传送到可采取行动的地方;调整网络系统的运行以解决出现的问题

            检测网络拥塞的指标:

                由于缺少缓存空间而被丢弃的分组的百分数

                平均队列长度

                超时重传分组数

                平均分组时延

                分组时延的便准差

   *    2.TCP的拥塞控制方法

            拥塞控制算法:

                慢开始

                拥塞避免

                快重传

                快恢复

            慢开始和拥塞避免:

                拥塞窗口:大小取决于网络的拥塞程度,并且动态的变化,发送方让自己的发送窗口等于拥塞窗口

                判断拥塞的依据:出现了超时

                发送方控制拥塞窗口的原则:

                    只要没有出现拥塞,拥塞窗口就可以再增大一些,以便把更多分组发送出去,提高网络利用率;只要发生拥塞,就把拥塞窗口减小一些,以减少注入到网络种的分组数,以缓解网络出现的拥塞

                拥塞的判断:重传定时器超时、收到三个相同的ACK

 

                慢开始算法:

                    算法思路:由小到大逐渐增大拥塞窗口数值

                    初始拥塞窗口:初始拥塞窗口设置为1至2个发送方的最大报文段的数值

                    拥塞窗口的控制:在每收到一个对新报文段的确认后,可以把拥塞窗口增加多一个SMSS(发送方最大报文段)的数值,即拥塞窗口cwnd每次的增加量 = min(N,SMSS),N是原先未被确认、现在被刚收到的确认报文确认的字节数

                    算法流程:

                    

                        每经过一个传输轮次,拥塞窗口cwnd就加倍

                        传输轮次:一个传输轮次所经历的时间就是往返时间RTT;即发送n个报文段并受到n个报文段确认总共经历的时间

                            传输轮次更加强调:把拥塞窗口所允许发送的报文段都连续发送出去,并收到对已发送的最后一个字节的确认

                    慢开始:不是指cwnd的增长速度慢,而是在TCP开始发送报文段时先把cwnd设置为1,然后再逐步增大cwnd

                    慢开始门限:防止拥塞窗口增长过大引起网络拥塞

                        用法: 当cwnd<ssthresh时,使用慢开始算法

                                   当cwnd>ssthresh时,停止使用慢开始而改用拥塞避免算法

                                   当cwnd=ssthresh时,既可用慢开始,也可用拥塞避免

 

                拥塞避免算法:

                    算法思路:让拥塞窗口缓慢的增大,每经过一个RTT就把发送方的拥塞窗口+1,而不是像慢开始加倍增长

                    拥塞避免特点:加法增大,拥塞窗口按线性规律缓慢增长,比慢开始的拥塞窗口增长速率慢得多

                    拥塞避免不能完全避免拥塞,只是控制拥塞窗口按线性规律增长,使网络不易出现拥塞

 

            快重传算法

                特点:可以让发送方尽早知道发生了个别报文段的丢失

                算法思路:要求接收方不等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认

                算法启动:发送方只要一连收到3个重复确认,就立即进行重传(即快重传)

                算法流程:

                

            快恢复算法

                发送方只是丢失个别报文,不启动慢开始而用快恢复算法,发送方调整门限值ssthresh=cwnd/2,同时设置拥塞窗口cwnd=ssthresh,并开始执行拥塞避免算法

 

            拥塞控制流程图:

            

            发送方窗口的上限值:发送方的发送窗口一定不能超过对方给出的接收方窗口值rwnd;上限值应取接收方窗口和拥塞窗口这两个变量中较小的一个,即发送方窗口的上限值= min(rwnd,cwnd)

            主动队列管理AQM

                略

 

9.TCP的运输连接管理

        运输连接的三个阶段:连接建立、数据传送、连接释放

        客户-服务器方式:TCP连接建立采用客户服务器方式,主动发起连接建立的应用叫客户,而被动等待连接建立的应用进程叫服务器

        1.TCP的连接建立:

            三报文握手:

                

                    流程:

                        最初两端TCP进程都处于关闭状态,开始时B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求,然后进入收听状态;

                        A的TCP客户进程也先创建TCB,然后打算建立TCP连接时,向B发送连接请求报文,这是首部中同步位SYN=1,同时选择一个初始序号seq=x,TCP规定,SYN报文段不能携带数据,但要消耗一个序号,这时TCP客户进程进入同步已发送状态;

                        B收到连接请求报文后,若同意建立连接,则向A发送确认。在确认报文中将SYN位和ACK位都置1,确认号时ACK=x+1,同时也为自己选择一个初始序号seq=y。这个报文段也不能携带数据,但同样消耗一个序号,这时TCP服务器进程进入同步收到状态

                        TCP客户进程收到B的确认后,还要向B给出确认。确认报文的ACK置1,确认号ack=y+1,而自己的序号seq=x+1。TCP规定,ACK报文段可以携带数据,但如果不携带数据则不消耗序号,这种情况,下一个数据报文段序号仍是seq=x+1。这时TCP连接已经建立,A进入已建立连接状态

                        B收到A的确认后,也进入已建立连接状态

 

        2.TCP连接的释放:

            四报文握手:

                

                    流程:

                        起始时A和B都处于已建立连接状态

                        A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接,A把连接释放报文段首部的终止控制位FIN置1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号+1。这时A进入终止等待状态。FIN报文段即使不携带数据,也消耗一个序号

                        B收到连接释放报文后发出确认,确认号是ack=u+1,而这个报文自己的序号是v,等于B前面已传送过的数据的最后一个字节的序号+1。然后B进入关闭等待状态,TCP服务器进程通知高层应用进程,因而从A到B这个方向的连接就释放了,这时的TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接受

                        A收到来自B的确认后,进入终止等待2状态,等待B发送的连接释放报文段

                        若B已经没有要向A发送的数据,应用进程就通知TCP释放连接,此时B发出的连接释放报文段FIN=1,假定现在B的序号为w,B还必须重复上次已发送过的确认号ack=u+1,此时B进入最后确认状态,等待A的确认

                        A在收到B的链接释放报文后,必须对此发出确认,在确认报文段中把ACK置1,确认号ack=w+1,而自己的序号时seq=u+1,然后进入时间等待状态。此时TCP连接还没有释放,必须经过时间等待计时器设置的时间2MSL后,A才进入关闭状态。

                    A等待2MSL时间的原因:

                        保证A发送的最后一个ACK报文段能够到达B   

                        防止已失效的连接请求报文段出现在本连接中

                

        TCP的有限状态机

            略

 

 


习题

 

 

9.端口的作用是什么?为什么端口划分为三种?

解:端口是对进程进行的一种标识,使不同操作系统的应用进程能互相通信

        数值端口:0~1023,标记常规的服务进程;

*考:服务对应的端口是对的,常规的熟知端口号对应服务

 

10.伪首部的作用

解:计算运输层数据报校验和

*考:udp在计算校验和的时候,除了……还要伪首部

 

*13一个UDP用户数据的数据字段为8192字节。在数据链路层使用以太网来传送,应当划分为几个IP数据片?说明每一个IP数据报段长度和片偏移字段的值

解:6个;数据字段长度:前5个是1480字节,最后一个是800字节。片偏移字段的值是:0,1480/8=185,2960/8=370,4440/8=555,5920/8=740,7400/8=925

    |8|8192|    ->UDP数据报

20|  8200 |    ->IP数据报

20| 1480  |    ->MAC帧          8200/1480=5......800    所以分成6片

解析:8192的数据+8字节UDP首部=8200;在MAC帧中,数据部分最大长度1500字节,而UDP还要封装进IP数据报中,IP数据报首部最小20字节,所以一次能传输最多的数据即1500-20=1480;8200/1480=5......800,因此分成6片,前5片数据字段长1480字节,最后一片长800字节;片偏移字段分别为0、185、370、555、740、925

 

*22.主机A向主机B发送一个很长的文件,其长度为L字节,假定TCP使用的MSS有1460字节

    (1)在TCP的序号不重复使用的条件下,L的最大值是多少?

    (2)假定使用上面计算出文件长度,而运输层、网络层和数据链路层使用的首部开销共66字节,链路的数据流位10mb/s,求这个文件所需的最短发送时间

解:

    (1)L_max=2^32=4GB    因为序号字段32位,最大就是2^32

    (2)满载分片数:Q={L_max/MSS}=2941758 发送的总报文数

        总字节数:N=Q*(MSS+66)+{(L_max-Q*MSS)+66}=4489122708+682=4489123390

        发送所需时间:N*8/(10*10^6)=3591.3秒

 

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字节;180-100=80

    (4)70

 

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

解:

    慢开始:开始时将拥塞窗口设为一个很小的值,如一个最大报文段MSS,在每收到一个对新的报文段的确认后,将拥塞窗口增加最多一个MSS的值,这样逐步增大发送端的拥塞窗口

    拥塞避免:当拥塞窗口大于拥塞门限时,停止使用慢开始而改用拥塞避免算法。每次使拥塞窗口每经过一个RTT就增加一个MSS的大小

    快重传:发送端收到连续三个重复ACK即判定有分组丢失,不等待超时而直接重传报文

    快恢复:当发送端收到连三个重复ACK时,就重新设置慢开始门限,同时将拥塞窗口设置为慢开始门限,然后执行拥塞避免

    

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

    加法增大:执行拥塞避免后,在收到对所有报文段的确认后,就把拥塞窗口增大一个MSS大小,使拥塞窗口缓慢增大,防止网络过早出现拥塞 

 

41.用TCP传送512字节的数据。设窗口为100字节,而TCP报文段每次也传送100字节数据。再设发送方和接收方的起始序号分别选为100和200,画出类似图5-28的工作示意图。从连接建立阶段到连接释放都画上

解:

    

 

 

0.本章思维导图:

    应用层协议:每个应用层协议都是为了解决一类应用问题,而解决问题需要通过位于不同主机的多个应用进程之间的通信和协同来完成,应用层的具体内容就是定义这些通信规则

1.域名系统DNS

        1.域名系统概述:

            域名系统DNS:是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址

            许多应用层软件经常使用域名系统DNS,但计算机的用户只是间接而不是直接使用DNS

            互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS

            DNS使大多数名字都在本地进行解析,仅少量解析需要互联网上通信

            域名的解析过程:当需要把主机名解析成IP地址时,应用进程调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器,本地域名服务器查找域名后,把对应的IP地址放在回答报文中返回,应用进程获得目的主机的IP地址后即可进行通信

        2.互联网的域名结构:

            互联网采用了层次树状结构的命名方法

            任何一个连接在互联网上的主机或路由器都有一个唯一的层次结构名字,即域名

            域是名字空间中一个可被管理的划分,域还可以划分为子域,而子域还可继续划分

            域名的组成:由标号序列组成,各标号之间用点隔开

            标号的规定:域名中的标号由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写;级别低的域名写在左边,级别高的写在右边;由多个标号组成的完整域名总共不超过255个字符

            域名是逻辑概念,并不代表计算机所在的物理地点

            顶级域名的分类:

                国家顶级域名:如cn、us

                通用顶级域名:如com、net、org、edu

                基础结构域名:只有arpa,用于反向域名解析,又称为反向域名

            二级域名:

                类别域名:ac、com、edu、gov

                行政区域名:bj、js

            互联网的域名空间:

                

        3.域名服务器:(小题)

            目的:为每一级的域名都设置一个对应的域名服务器,数量太多,效率低下。因此DNS采用划分区的办法

            区:一个服务器所负责的范围

            权限域名服务器:每一个区都设有,用来保存区中所有主机的域名到IP地址的映射

            互联网上的DNS域名服务器树状结构:

                

            域名服务器分类:

                根域名服务器:是层次最高的域名服务器,也是最重要的。所有根域名服务器都知道所有顶级域名服务器的域名和IP地址。任何本地域名服务器只要自己无法解析,就首先求助于根域名服务器

                顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答

                权限域名服务器:负责一个区的域名服务器。当权限域名服务器还不能给出回答时,就会告诉发出查询请求的DNS客户,下一步应找哪一个权限域名服务器

                本地域名服务器:并不属于域名服务器层次结构,但很重要。当主机发出DNS查询请求时,这个查询请求报文发给本地域名服务器

 

            提高域名服务器可靠性:

                DNS域名服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其余是辅助域名服务器。当主域名服务器出现故障时,辅助域名服务器就可以保证DNS的查询工作不会中断

     *      域名的解析过程:

                主机向本地域名服务器查询,采用递归查询:如果本地域名服务器不知道查询域名的IP,则本地域名服务器以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。因此,递归查询返回的查询结构是查询的IP地址或报错,即无法查询到IP

                本地域名服务器向根域名服务器查询,采用迭代查询:当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询

 

2.文件传送协议FTP

    1.FTP概述

       文件传输协议FTP:时互联网上使用最广泛的文件传送协议,提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限

        特点:要存取一个文件,必须先获得一个本地的文件副本,要修改文件,只能对副本进行修改,然后将修改后的文件副本传回原节点

     2.FTP的基本工作原理

 *    FTP的特点:只提供文件传送的基本服务,使用TCP可靠性运输服务,FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性

        FTP工作流程:FTP使用客户服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务,FTP的服务进程分为两大部分:主进程,负责接受新的请求;若干从属进程,负责处理单个请求

        主进程的工作步骤:

            (1)打开熟知端口(21),使客户进程能够连接

            (2)等待客户进程发出连接请求

            (3)启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建一些子进程

            (4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的

 

  *     FTP的两个TCP连接:

            控制连接:在整个会话期间一直打开,FTP客户发出的传送请求,通过控制连接发送给服务器端;端口号21

            数据连接:用于传输文件;端口号20

            由于FTP使用两个不同的端口号,所以数据连接与控制连接不会发生混乱

            服务器端控制进程收到FTP客户发来的文件传输请求后,就创建数据传送进程和数据连接,用来连接客户端和服务端的数据传送进程

 

    3.简单文件传送协议TFTP

        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字节,可作为文件结束的标志

    

 

4.万维网WWW

    1.万维网概述

        万维网:是一个大规模联机式的信息储存所,用连接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动按需获得信息;是一个分布式的超媒体系统,是超文本系统的扩充

        页面:在客户程序(浏览器)主窗口上显示出的万维网文档就是页面

        统一资源定位符URL:标志万维网上各种文档,使每个文档在互联网范围具有唯一标识符URL

        超文本传送协议HTTP:是一个应用层协议,使用TCP进行可靠传送

 

     2.统一资源定位符URL

        URL作用:用来表示从互联网上得到的资源位置和访问这些资源的方法

        URL的格式:<协议>://<主机>:<端口>/<路径>

            协议:指出使用什么协议来获得该文档,常用HTTP或FTP

            主机:指出文档在哪台主机上,主机就是指该主机在互联网上的域名

            端口和路径:为了进一步定位,有事可省略

        

    3.超文本传送协议HTTP

        HTTP作用:定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器;是面向事物的应用层协议

      *HTTP的主要特点:

            (1)HTTP本身是无连接的:虽然使用TCP连接,但通信双方在交换HTTP报文前不需要建立HTTP连接

            (2)HTTP是无状态的:同一个客户第二次访问同一服务器上的页面时,服务器的响应与第一次被访问时相同

 

        请求一个万维网文档所需时间:是该文档的传输时间+两倍往返时间RTT

 

  *    HTTP/1.0的主要缺点:每请求一个文档就要有两倍的RTT的开销;这种非持续连接会使万维网服务器负担很重

        HTTP/1.1的改进:使用了持续连接;服务器在发送响应后仍在一段时间内保持连接,使同一个客户能继续在这条连接上传送后续HTTP请求报文和响应报文

        HTTP/1.1持续连接的两种工作方式:

            非流水线方式:客户在收到响应报文之后才能继续发送

            流水线方式:客户收到响应报文之前也可以继续发送

 

代理服务器:略

HTTP的报文结构:略

 

6.动态主机配置协议DHCP

 

        DHCP作用:提供一种机制,称为即插即用连网,允许一台计算机加入网络和获取IP而不用手工参与

        协议配置:在协议软件中给参数赋值的动作叫做协议配置

        需要配置的项目:

            IP地址

            子网掩码

            默认路由器的IP地址

            域名服务器的IP地址

 

  *    DHCP工作方式:

            (1)DHCP使用客户服务器方式

            (2)需要IP地址的主机在启动时向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户

            (3)本地网络上所有主机都能收到该报文,但只有DHCP服务器才回复此报文

            (4)DHCP服务器先在其数据库中查找该计算机的配置信息,若找到,则返回找到的信息,若找不到,则从服务器IP地址池中取一个地址分配给该计算机

            (5)DHCP服务器的回答报文叫提供报文,表示提供了IP地址等配置信息

 

        DHCP中继代理:并不是每个网络上都有DHCP服务器,因为这样会使DHCP服务器数量过多,因此现在是使每个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息

            DHCP中继代理工作流程:

                当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答

                收到DHCP服务器回应的提供报文后,DHCP中继代理再把此提供报文发回给主机A

                

        DHCP工作流程:

            

 

            1:DHCP服务器被动打开UDP端口67,等待客户端发来的报文

            2:DHCP客户从UDP端口68发送DHCP发现报文

            3:所有收到DHCP发现报文的服务器都会发出DHCP提供报文,因此客户可能收到多个DHCP提供报文

            4:客户从几个DHCP服务器中选择一个,并向其发送DHCP请求报文

            5:被选中的服务器发送确认报文DHCPACK,此时客户就可以使用这个IP地址了,这种状态叫已绑定状态;DHCP客户现在要根据服务器提供的租用期T设置两个计时器T1和T2,它们的超时时间分别为0.5T和0.875T,当超时时间到了就要请求更新租用期

            6:租用期过半,DHCP发送请求报文,要求更新租用期

            7:服务器若同意,则发回确认报文。客户得到了新的租用期,重置计时器

            8:服务器若不同意,则发回否认报文。这是客户停止使用原来的IP地址,而重新申请新IP地址(回到步骤2)

            9:客户可以随时提前终止服务器所提供的租用期,这时只需向DHCP服务器发送释放报文即可

            


习题

 

*10.假定要从已知的URL获得一个万维网文档,若该万维网服务器的IP地址开始不知道。问除HTTP外,还需要什么应用层协议和运输层协议?

解:DNS->UDP,HTTP->TCP

 

*14.当点击一个万维网文档时,若该文档除了有文本外,还有一个本地gif图像,和两个远地gif图像,试问:需要使用哪个应用程序,以及需要建立几次UDP连接和几次TCP连接?

解:HTTP/1.0:建立4次TCP连接,不需要UDP;HTTP/1.1:建立1次TCP连接,不需要UDP

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值