使用二叉线索能否查找路由表?

  • 频分复用:频分复用的用户在同样的时间占用不同的带宽资源(频率带宽)

  • 时分复用:时分复用的用户在不同的时间占用同样的频带宽度,每个用户占用的时隙周期性(时分复用帧的长度)出现。可能造成线路资源的浪费。

  • 波分复用:光的频分复用

  • 码分复用:各用户使用经过挑选的不同码型,彼此不干扰

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

  • >例子:S站的8bit码片序列是
    发送比特1时,发送序列
    发送比特0时,发送序列(发送比特1时的二进制反码)
    码片序列的正交关系:向量S和向量T规格化内积为0

  • ADSL(非对称数字用户线):
    用数字技术对现有的模拟电话用户线改造,使它能够承载宽带业务。把0~4kHz低端频谱留给传统电话使用,把原来没有被利用的高端频谱留给用户上网使用。用户线越细,信号传输时的衰减就越大。所能得到的最高数据传输速率与实际的用户线上的信噪比密切相关。
    上行(从用户到ISP)和下行(从ISP到用户)带宽部队称。ADSL在用户线两端各自安装一个ADSL调制解调器。
    采用自适应调制技术使用户线能够传送尽可能高的数据率
    ADSL启动时,用户线两端的调制解调器测试可用频率,各子信道受到的干扰情况以及在每个频率上测试信号的传输质量。
    ADSL不能保证固定的数据率。

  • DSL(数字用户线):ISDN用户线。

采用无缝速率自适应技术SRA,可在运营中不中断通信,不产生误码,自适应调整数据率,提高调制效率得到更高数据率。改善线路质量评测和障碍定位功能。
用户接口盒UIB提供三种连接:

  • 使用同轴电缆连接到机顶盒,再连接到用户电视机
  • 使用双绞线连接到用户电话机
  • 使用电缆调制解调器连接到用户计算机

数据链路层使用的信道:

  • 广播信道:一对多的广播通信,使用专用共享信道协议
  • 局域网:网络为一个单位所拥有,地理范围和站点数目有限
    具有广播功能,一个站点访问全网,主机可共享连接局域网上各种软硬件资源。便于系统扩展和演变,各设备位置可灵活调整改变,提高系统可靠性,可用性,残存性。
  • 逻辑链路控制LLC子层:不管采用何种协议的局域网对LLC来说都是透明的
    媒体介入控制MAC子层

无源的点到点物理线路段,中间没有任何其他的交换结点。

把实现了通信协议(控制数据传输)的硬件和软件加到链路上构成了数据链路。数据链路层传送的是帧。

包括数据链路层和物理层的功能

  • 封装成帧:在一段数据前后添加首部和尾部构成一个帧,首部和尾部的作用是进行帧定界。
  • 解决:数据中出现控制字符SOH或EOT的前面插一个转义字符ESC;字节填充或字符填充(接收端的数据链路层将数据送往网络层之前删除插入的转义字符,若转义字符也出现在数据中,应在转义字符前插一个转义字符,接收端收到两个连续转义字符时删掉前面的一个)
  • 差错控制(保证数据传输的可靠性)
    传输过程中可能产生比特差错:1可能变成0,0可能变成1
    误码率与信噪比有很大关系

发送端把数据划分为组,在待传送的数据后添加供差错检验用的n位冗余码一起发送。若得出余数R=0则此帧无错,接受。否则有错丢弃。凡是能接受的帧都能以接近于1的概率认为此帧传输过程中没有产生差错。但要做到可靠传输(发送什么收到什么)必须再加上确认和重传机制。

余数作为冗余码添加在数据M后发送出去


循环冗余检验(CRC)不等于帧检验序列(FCS)

CRC是常用检错方法,FCS是冗余码,可以用CRC的方法得出,但CRC并非用来获得FCS的唯一方法

应满足:简单(首要要求),封装成帧,透明性,多种网络层协议,多种类型链路,差错监测,监测连接状态,最大传送单元,网络层地址协商,数据压缩协商。
不需要的功能:纠错,流量控制,序号,多点线路,半双工或单工链路

  • 一个将IP数据包封装到串行链路的方法。
  • 地址字段A只置为0xFF
  • 控制字段C通常置为0x03
  • PPP面向字节,所有PPP帧长度是整数字节
  • PPP有一个2字节的协议字段:
    当协议字段为0x0021,PPP帧的信息字段是IP数据报
    当协议字段为0xC021,PPP帧的信息字段是PPP链路控制数据
    当协议字段为0x8021,则表示是网络控制数据

用户拨号接入ISP,路由器的调制解调器确认拨号,建立物理连接。PC机向路由器发送LCP分组(封装成多个PPP帧),LCP分组及其响应选择PPP参数,进行网络层配置。NCP给新接入的PC机分配临时IP地址使PC机成为因特网上的一个主机,通信完毕NCP释放网络层连接,收回IP地址,释放数据链路层连接,释放物理层连接。

计算机通过适配器和局域网进行通信


为通信简便,以太网采用的措施:

  • 采用较灵活的无连接工作方式,不必先建立连接可直接发送数据
  • 对发送的数据帧不编号,不要求对方发回确认
  • 丢弃收到有差错的数据帧
  • 数据重传时以太网当做新的数据帧来发送

以太网规定最短有效帧长为64字节,凡小于64字节的帧都是由于冲突而异常终止的无效帧。

  • 以太网信道被占用的情况:
    争用期长度为端到端传播时延的两倍,检测到碰撞后不发送干扰信号。
    帧长为L(bit),数据发送速率为C(b/s),因而帧的发送时间为L/C=T0(s)

a -> 0表示一碰撞就能监测出来并立即停止发送,a越小信道利用率越高

适配器检查MAC地址:
适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址。若是发往本站的帧就收下,否则丢弃。

单播帧(一对一),广播帧(一对全体),多播帧(一对多)

以太网的MAC帧格式:


类型字段标志上一层用的是什么协议,以便把收到的MAC帧的数据交给上一层的这个协议。
MAC客户数据字段的最小长度=最小长度64字节-18字节的首部和尾部

当数据字段长度小于46字节,应在数据字段的后面加入整数字节的填充字段来保证以太网MAC帧长不小于64字节。

  • 数据字段长度与长度字段的值不一致
  • 帧的长度不是整数个字节
  • 用收到的帧检验序列FCS查出有差错
  • 数据字段的长度不在46~1500字节之间
  • 有效的MAC帧长度为64~1518字节之间
  • 对于检查出无效MAC帧就简单丢弃,以太网不负责重传丢弃的帧

在数据链路层扩展局域网:
使用网桥(过滤:根据MAC帧的目的地址对收到的帧进行转发)。
网桥不改变它转发的帧的源地址。
网桥每收到一个帧就几下其进入该网桥的时间,其源地址和进入网桥的接口作为转发表中的一个项目。

过滤通信量,扩大物理范围,提高可靠性,可连接不同物理层,不同MAC子层,不同速率(如10

在MAC子层没有流量控制功能
具有不同MAC子层的网段桥接在一起时时延更大
只适合于用户数不太多的通信量不太大的局域网,否则有时会因为传播过多的广播信息产生网络拥塞(广播风暴)

集线器在转发帧时不对传输媒体进行检测。
网桥在转发帧之前必须执行CSMA/CD算法,若发送过程中出现碰撞必须停止发送进行退避

一种即插即用设备(透明指局域网上站点不知道发送帧经过哪几个网桥)

以太网交换机(多接口网桥):
每个接口直接与主机项链,一般工作在全双工方式,能同时连接许多对接口进行无碰撞传输数据,使用专用的交换结构芯片,拥有较高交换速率。用户通信时独占带宽。方便实现虚拟局域网。

虚拟局域网(VLAN):
由一些局域网网段构成的与物理位置无关的逻辑组。是局域网给用户提供的一种服务,不是一种新型局域网。

 这些网段具有某些共同要求
每一个VLAN的帧都有一个明确标识符,指明发送这个帧的工作站属于哪个VLAN
虚拟局域网限制了接受广播信息的工作站数,使得网络不会因传播过多的广播信息(广播风暴)而引起性能恶化。

虚拟局域网使用的以太网帧格式:

指明发送该帧的工作站属于哪个虚拟局域网

速率达到或超过100Mb/s的以太网

允许在1Gb/s下全双工(不使用CSMA/CD)和半双工(使用CSMA/CD)两种方式工作。

全双工方式:当吉比特以太网工作在全双工方式时(通信双方可同时进行发送和接收数据),不适用载波延伸和分组突发。

端到端的以太网传输优点:
成熟的技术,互操作性很好,在广域网中使用以太网时价格便宜,统一的帧格式简化了操作和管理。

以太网从10Mb/s到100Gb/s的演进证明了以太网是:

  • 灵活的(多种传输媒体、半/全双工、共享/交换)

逻辑连接,分组沿着这条逻辑连接按照存储转发方式传送,并不是真正建立了一条物理连接。

网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。

网络在发送分组时不需要先建立连接,每一个分组(IP数据包)独立发送,与其前后分组无关(不进行编号)。

网络层所传送的分组可能出错,丢失,重复和失序(不按序到达终点),也不保证分组传送的时限。

虚电路服务和数据报服务:


  • 网际控制报文协议ICMP
  • 网际组管理协议IGMP

中继系统(网络互相连接起来使用的中间设备):

  • 物理层中继系统:转发器
  • 数据链路层中继系统:网桥或桥接器
  • 网络层中继系统:路由器
  • 网桥和路由器的混合物:桥路器
  • 网络层以上的中继系统:网关
  • 互联网是指用路由器进行互联的网络。

逻辑互联网咯(利用IP协议使性能各异的网络从用户看起来好像是一个统一的网络)

    当互联网上的主机进行通信时好像在一个网络上通信一样,看不见互联的各具体的网络异构细节。

给每个连接在因特网上的主机分配一个在全世界范围是唯一的32位标识符。由因特网名字与号码指派公司ICANN进行分配。

每一类地址都由两个固定长度的字段组成(网络号net-id:标志主机或路由器所连接到的网络。主机号host-id:标志该主机或路由器)两级的IP地址可以记为:


A、B、C类地址的网络号字段net-id分别为1、2、3字节
A、B、C类地址的主机号字段host-id分别为3、2、1字节
E类地址保留为今后使用


  • IP地址管理机构在分配IP地址时只分配网络号,剩下的主机号由得到该网络号的单位自行分配,方便IP地址的管理。
  • 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑主机号),减少路由表中的项目数,见效路由表所占的存储空间。

IP地址标志一个主机(或路由器)和一条链路的接口。

一个主机同时连接到两个网络上,具有两个相应的IP地址,网络号net-id必须不同。

一个路由器至少应该连接两个网络,至少应该有两个不同的IP地址。路由器的每一个接口都有一个不同网络号的IP地址。

用转发器或网桥连接起来的若干个局域网仍为一个网络,这些局域网具有同样的网络号net-id,所有分配到网络号net-id的网络都是平等的。
在同一个局域网上的主机和路由器的IP地址中网络号必须一致。

两个路由器直接相连的接口处若指明IP地址,则这段连线构成只包含一段线路的特殊“网络”,也可不指明。

  • 网络层及以上使用IP地址
  • 链路层及以下使用硬件地址

两个路由器的IP地址并不出现在IP数据报的首部中
路由器只根据目的站的IP地址的网络号进行路由选择

不管网络层使用什么协议,在实际网络的链路上传送数据帧时最终还是必须使用硬件地址。每个主机都设有一个ARP高速缓存,里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。

例:主机A向本局域网上主机B发送IP数据报。
1.先在其ARP高速缓存总查看有无主机B的IP地址,若有,查出对应硬件地址,将其写入MAC帧
2.通过局域网将此MAC帧发往硬件地址

  • 解决同一局域网上的主机或路由器的IP地址和硬件地址的映射问题。
  • 减少网络上的通信量,主机A在发送ARP请求分组时将自己的IP地址到硬件地址的映射写入ARP请求分组,主机B收到A的ARP请求分组时将主机A的地址映射写入自己的ARP高速缓存。以后B向A发送数据报时会更方便。
  • 若要找的主机和源主机不在同一局域网就要通过ARP找到位于本局域网上某路由器的硬件地址,把分组发给路由器,让路由器把分组转发给下一个网络(做剩下的工作)。

从IP地址到硬件地址的解析是自动进行的。

为什么不直接使用硬件地址进行通信?
全世界各式各样的网络使用不同的硬件地址,使这些异构网络互相通信进行的硬件地址转换工作非常复杂。调用ARP来寻找某个路由器或主机的硬件地址是有计算机软件自动进行的,用户看不见调用过程。

一个IP数据报由首部和数据两部分组成
所有IP数据报必须具有首部,首部的前一部分是固定长度,共20字节,首部固定部分后面是可选字段,长度可变。

    指IP协议版本,目前IP协议版本号为4(即IPv4) 可表示最大数值是15个单位(一个单位4字节)
  • IP首部长度最大值是60字节。
  • 用来获得更好的服务,只有在使用区* 分服务时,这个字段才起作用,一般情况不使用此字段。 指首部和数据之和的长度,单位为字节,数据报最大长度为65535字节,本长度必须不超过最大传送单元MTU 是一个计数器,用来产生数据报的标识 标志字段的最低位是MF(MF=1表示后面还有分片,MF=0表示最后一个分片,标志字段中间的一位是DF,只有当DF=0时才允许分片) 较长分组在分片后某片在原分组中的相对位置,以8个字节为偏移单位。 TTL,数据报在网络中可通过的路由器数的最大值 指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程 只检验数据报的首部,不检验数据部分,采用简单的计算方法不采用CRC检验码。
    源地址和目的地址:各占4字节

IP数据报首部的可变部分:
一个选项字段,用来支持排错,测量以及安全等措施,内容丰富。长度可变,1~40字节不等,取决于所选项目。增加首部的可变部分是为了增加IP数据报的功能,但同时使得IP数据报的首部长度可变,增加了每个路由器处理数据报的开销。

IP层转发分组的流程:
按主机所在的网络地址来制作路由表

根据目的网络地址确定下一跳路由器

可使网络管理人员能更方便控制和测试网络,考虑某种安全问题时可采用这种特定主机路由。

减少路由表所占用的空间和搜索路由表所用的时间。适用于一个主机连接在一个小网络上,这个网络只用一个路由器和因特网连接的情况。

IP数据报首部中没有地方可以用来指明“下一跳路由器的IP地址”

当路由器收到待转发的数据报,送交下层的网络接口软件

1.提取数据报首部的目的主机IP地址D,得出目的网络地址N
2.若N与此路由器直接相连,则把数据报直接交付D,否则间接交付->3
3.若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行4
4.若路由表中有到达N的路由,则把数据报传送给路由表指明的下一跳路由器,否则执行5
5.若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器,否则执行6

在IP地址中增加一个“子网号字段”使两级的IP地址编程为三级的IP地址。

划分子网属于一个单位内部的事情,单位对外表现为没有划分子网的网络。从主机号借用若干单位作为子网号subnet-id,主机号host-id相应减少若干个位。

凡是从其他网络发送给本单位某主机的IP数据报仍然根据IP数据报的目的网络号net-id,先找到连接在本单位网络上的路由器,路由器收到IP数据报后按目的网络号和子网号找到目的子网,最后将IP数据报直接交付目的主机。

划分子网后变成了三级结构(没划分子网时IP是两级结构):
划分子网只是把IP地址的主机号进行再划分,而不改变IP地址原来的网络号。

从一个IP数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网划分。
使用子网掩码可找出IP地址中的子网部分。


子网掩码是一个网络或一个子网的重要属性。

路由器在相互交换路由信息时必须把自己所在网络或子网的子网掩码告诉对方。

路由表中每个项目除了给出目的网络地址,还要给出该网络的子网掩码。

一个路由器连接在两个子网上就拥有两个网络地址和子网掩码。


不同的子网掩码得出相同的网络地址,但不同的掩码效果是不同的。

使用子网掩码的分组转发过程:
网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。

在划分子网的情况下路由器转发分组的算法:
1.在收到分组的首部提取目的IP地址D
2.用各网络子网掩码与D逐位相“与”,若与相应的网络地址匹配则将分组直接交付,否则间接交付,执行3
3.若路由表中有目的地址为D的特定主机路由则将分组传送给指明的下一跳路由器,否则执行4
4.对路由表中每一行子网掩码和D逐位相“与”,若结果与该行目的网络地址匹配则将分组传送给该行指明的下一跳路由器,否则执行5
5.若路由表中有一个默认路由,则将分组传送给路由表中指明的默认路由器,否则执行6

特点:消除了传统的A、B、C类地址以及划分子网的概念,因而可以更加有效的分配IPv4的地址空间

CIDR使用各种程度的网络前缀来代替分类地址中的网络号和子网号。

IP地址从三级编址(使用子网掩码)又回到了两级编址。

CIDR虽然不适用子网,但仍然使用掩码


斜线(CIDR)记法:在IP地址钱加“/”,然后写上网络前缀所占位数(对应于三级编址中子网掩码中1的个数)

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

所有地址的前n位前缀都是一样的(n是/后的数字)

全0和全1的主机号地址一般不使用
对于/n地址块,它的掩码是n个连续的1

网络前缀的后面加一个星号*表示方法

如:之前是网络前缀,*表示IP地址中的主机号,可以是任意值。

路由聚合(也称为构成超网):
一个CIDR地址块表示的很多地址的聚合,使得路由表中一个项目可以表示很多个原来传统分类地址的路由。

前缀长度不超过23位的CIDR地址块都包含了多个C类地址

这些C类地址合起来构成超网

CIDR地址块中的地址数一定是2的整数次幂
网络前缀越短,其地址块所包含的地址数就越多。

网络前缀越长,其地址块就越小,路由越具体。
在三级结构的IP地址中,划分子网使网络前缀变长。

使用CIDR时,路由表中每个项目由网络前缀和下一跳地址组成。查找路由表时可能得到不止一个匹配结果。应从匹配结果中选择具有最长网络前缀的路由。

使用二叉线索查找路由表:

将无分类编址的路由表存放在一种层次的数据结构中,自上而下按层次查找。二叉线索中的各个路径代表路由表中存放的各个地址。提高二叉线索的查找速度可使用各种压缩技术。

网际控制报文协议ICMP:
提高IP数据报交付成功的机会

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

ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发出去。

  • ICMP 差错报告报文(终点不可达,源点抑制,时间超过,参数问题,改变路由(重定向))
  • ICMP询问报文(回送请求和回答报文,时间戳请求和回答报文)

ICMP 差错报告报文


不应发送ICMP差错报告报文的情况:
1.对ICMP差错报告报文不再发送ICMP差错报告报文
2.对第一个分片的数据报片的所有后续数据报 片都不发送ICMP差错报告报文
3.对具有多播地址的数据报都不发送ICMP差错报告报文
4.对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

PING用来测试两个主机之间的连通性
PING使用了ICMP回送请求与回送回答报文
PING是应用层直接使用网络层ICMP的例子,不通过运输层的TCP或UDP

正确的,完整的,计算上简单,能适应通信量和网络拓扑的变化(自适应性),稳定性,公平,最佳。

在单一技术管理下的一组路由器使用一种AS内部路由选择协议和共同度量以确定分组在该AS内的路由,同时使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。一个AS对其他AS表现出的是一个单一的一致的路由选择策略。

RIP(适用于小型互联网):
分布式基于距离向量的路由选择协议,要求网络中每个路由器都维护从它自己到其他每一个目的网络的距离记录(最短距离)。

从路由器到直接相连的网络距离定义为1。从路由器到非直接连接的网络的距离定义为每经过一个路由,跳数+1。

RIP允许一条路径最多只能包含15个路由器。距离最大值为16时相当于不可达。

仅和相邻路由器交换信息
交换的信息是当前本路由器所知道的全部信息(即自己的路由表),按固定时间间隔交换路由信息。
所有的路由器最终都拥有了整个AS的全局路由信息,但每个路由器的位置不同,它们的路由表也不同。

在AS中所有节点都得到正确的路由选择信息的过程。

收到相邻路由器(其地址为X)的一个RIP报文:
1.修改此RIP报文中所有项目:把下一跳字段中的地址都改为X,并把所有距离字段的值加一。
2.对修改后的RIP报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中则把该项目加到路由表中。否则若下一跳字段给出的路由器地址是同样的则把收到的项目替换原路由表中的项目。否则若收到项目中的距离小于路由表中的距离,则进行更新,否则什么也不做。
3.若三分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。

RIP2协议的报文格式:


RIP2报文=首部+路由部分
路由标记填入AS的号码(使RIP有可能收到本AS以外的路由选择信息)

当网络出现故障时要经过比较长的时间才能将此信息传送到所有的路由器。限制了网络规模,它能使用的最大距离为15(16表示不可达)。
路由表之间交换的路由信息是路由表中的完整路由表,随着网络规模的扩大,开销增加。

1.不受某一家厂商控制,公开发表。
2.使用了最短路径算法SPF。
3.OSPF只是一个协议名字,并不表示其他的路由选择协议不是最短路径优先。
4.是分布式的链路状态协议。
5.对不同链路课根据IP分组的不同服务类型TOS而设置成不同的代价。对于不同类型的业务可算出不同的路由。
6.多路径间的负载平衡:到同一个目的网络有多条相同代价的路径可将通信量分配给这几条路径。
7.所有在OSPF路由器之间交换的分组都具有鉴别功能。
8.支持可变长度的子网划分和无分类编址CIDR
9.每一个链路状态都带上一个32位的序号,序号越大状态越新。
10.规定每隔一段时间刷新一次数据库中的链路状态
11.一个路由器的链路状态只涉及到与相邻路由器的联通状态,与整个互联网规模无直接联系,当互联网规模很大时,OSPF协议要比距离向量协议RIP好很多。


OSPF的五种分组类型:
4.链路状态更新分组,用洪泛法对全网更新链路状态

数据库描述(达到数据库同步)
链路状态请求(新情况下的同步)
链路状态更新(新情况下的同步)
链路状态确认(新情况下的同步)

向本AS中所有路由器发送信息使用洪泛法
发送的信息是与本路由器相邻的所有路由器的链路状态(说明本路由器和那些路由器相邻,以及该链路的度量),但这只是路由器所知道的部分信息。
只有当链路状态发生变化时路由器才用洪泛法向所有路由器发送此信息。

全网的拓扑结构图,它在全网范围内是一致的(链路状态数据库的同步)
OSPF的链路状态数据库能较快更新,使各个路由器能及时更新其路由表。

OSPF的区域(将AS划分的若干更小范围):
每个区域都有一个32位的区域标识符(用点分十进制表示)。

区域不能太大,在一个区域内的路由器最好不超过200个。

划分区域(层次结构的划分):
将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个AS,减少整个网络上的通信量。

一个区域内部的路由器只知道本区域的完整网络拓扑,不知道其他区域的网络拓扑情况。
上层区域是主干区域(标识符规定为0.0.0.0),作用:联通其他下层区域。

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

OSPF构成的数据报很短,减少路由信息的通信量,可以不必将长数据报分片传送,分片传送的数据报只要丢失一个就无法组装成原来的数据报而整个数据报必须重传。

洪泛法:将收到的封包往所有的可能连结路径上递送直到封包到达为止。

指定的路由器:代表该局域网上所有链路向连接到该网络上的各路由器发送状态信息。多点接入的局域网采用了指定的路由器方法使广播的信息量大大减少。

外部网关协议EGP(BGP-4):

若源站和目的站处在不同的AS中,当数据报传到一个AS边界时需要使用外部网关协议将路由器选择信息传递到另一个AS中。

域间路由选择:AS之间的路由选择
域内路由选择:AS内的路由选择

是不同AS的路由器之间交换路由信息的协议,力求寻找一条能够到达目的的网络且比较好的路由,而并非要寻找一条最佳路由。

1.交换路由信息的结点数量级是AS数的量级,这比这些AS中的网络数少很多。
2.每个AS中BGP发言人很少,使得AS之间的路由选择不至于过分复杂。
3.BGP支持CIDR,BGP路由表包括目的网络前缀,下一跳路由器,到达目的网络所要经过的各个AS序列。
4.BGP刚运行时的邻站是交换整个的BGP路由表,以后只需更新发生变化的部分,节省网络带宽,减少路由器的处理开销。

每一个AS的管理员选择至少一个路由器作为该AS的BGP发言人。两个BGP发言人通过一个共享网络连接在一起,BGP发言人一般是BGP边界路由器,但也可以不是。

一个BGP发言人与其他AS中的BGP发言人交换路由信息要先建立TCP连接,在此连接上交换BGP报文建立BGP会话,利用BGP会话交换路由信息。(使用TCP连接能提供可靠服务,简化路由选择协议,使用TCP连接交换路由的两个BGP发言人成为彼此的邻站或对等站)

BGP交换的网络可达性信息要达到某个网络所要经过的一系列AS,当BGP发言人互相交换了网络可达性信息后,各BGP发言人根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。


BGP-4共使用四种报文:
1.OPEN报文:跟相邻BGP发言人建立关系
2.UPDATE报文:发送某一路由的信息,列出要撤销的多条路由
3.KEEPALIVE报文:确认打开报文和周期性证实邻站关系

BGP报文具有通用的首部:


具有多个输入端口和输出端口的专用计算机,其任务是转发分组。输入端口收到分组,处理分组(数据链路层剥去帧首部和尾部,将分组送到网络层队列中排队等待(产生时延),查表和转发),输出端口(先缓存分组,数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路)根据目的网络把分组发送到下一跳路由器。下一跳路由器按同种方法处理分组直到该分组到达终点。
分组丢弃:若路由器处理分组速率赶不上分组进入队列的速率则队列的存储空间最终减少到0,使后面再进入队列的分组由于没有存储空间只能被丢弃。
路由器中输入或输出队列产生溢出是造成分组丢失的重要原因。

转发和路由选择的区别:
转发:路由器根据转发表将用户IP数据报从合适的端口转发出去。
路由选择:按照分布式算法根据从各相邻路由器得到的关于网络拓扑的变化情况动态改变所选择的路由。
路由表根据路由选择算法得出,转发表从路由表得出。

可明显减少网络资源消耗
1.使用组地址———IP使用D类地址支持多播,多播地址只能用于目的地址,不能用于源地址
2.永久组地址———由因特网号码指派管理局IANA负责指派

网际组管理协议IGMP(使路由器知道多播组成员信息)
多播路由选择协议(局域网上的多播路由器和因特网上其他多播路由器协同工作以便把多播数据报用最小代价传送给所有组成员)。

IGMP的本地使用范围:
IGMP并非在因特网范围内对所有多播组成员进行管理。
IGMP不知道IP多播组包含的成员数和他们都分布在哪些网络上。
IGMP协议让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。

IGMP使用IP数据报传递其报文(IGMP报文加IP首部构成IP数据报),IGMP应被看成是属于整个网际协议IP的一个组成成分。

当某主机加入新的多播组时,应向多播组的多播地址发送IGMP报文声明自己要成为该组成员。本地多播路由器收到IGMP报文后将组成员关系转发给因特网上其他多播路由器。
组成员关系是动态的,本地多播路由器要周期性探询本地局域网上的主机以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,多播路由器就认为这个组是活跃的。一个组在经过多次探询后仍然没有主机响应则不再将该组成员关系转发给其他多播路由器。

多播转发必须动态适应多播组成员的变化(这时网络拓扑并未发生变化)。单播路由选择通常在网络拓扑发生变化时才需要更新路由。多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

在主机和多播路由器之间所有通信都使用IP多播。
多播路由器在探询组成员关系时只需要对所有组发送一个请求信息的询问报文,默认询问速率是每125秒发送一次。
当同一网络上连接几个多播路由器时,他们能迅速有效选择其中一个来探询主机的成员关系。
IGMP询问报文中有一个数值N,指明一个最长响应时间,当收到询问时主机在0到N之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
同组内每个主机都要监听响应,本组只要有其他主机先发送了响应自己就可以不再发送响应了。

找出以源主机为根节点的多播转发树。
多播组成员动态变化,随时有主机加入或离开。
多播转发树上的路由器不会收到重复的多播数据报。
不同的多播组对应于不同的多播转发树,同一个多播组对不同的源点也会有不同的多播转发树。

转发多播数据报使用的方法:
1.洪泛与剪除(适合较小多播组,所有组成员接入的局域网相邻接):为避免兜圈子采用反向路径广播RPB策略。
路由器收到多播数据报时先检查是否从源点经最短路径传送而来,若是,向所有除进入方向的其他方向转发此多播数据报,否则丢弃不转发。若存在几条同样长度的最短路径,只能选择其中一条,选择其中相邻路由器IP地址最小的那一条。



3.基于核心的发现技术(适用于多播组大小在较大范围内变化的情况):对每一个多播组G指定一个核心路由器,给出它的IP单播地址,核心路由器创建出对应于多播组G的转发树。

距离向量多播路由选择协议DVMRP
基于核心的转发树CBT
开放最短通路有限的多播扩展MOSPF
协议无关多播-稀疏方式PIM-SM
协议无关多播-密集方式PIM-DM

本地地址:仅在机构内部使用的IP地址,可由本机构自行分配,不需要向因特网管理机构申请。
全球地址:全球唯一IP地址,必须向因特网管理机构申请。
在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。

由部门A和B的内部网络所构成的虚拟专用网VPN,表示部门A和B都在同一个机构的内部。

一个机构和某些外部机构共同建立的虚拟专用网VPN

外联网和内联网都基于TCP/IP协议。

在外地工作的员工拨号接入因特网,驻留在员工PC机中的VPN软件可在员工的PC机和公司主机之间建立VPN隧道,通信内容保密。

需要在专用网连接到因特网的路由器上安装NAT软件,装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球地址。所有使用本地地址的主机在和外界通信时都要在NAT路由器上将其本地地址转换成外部全球地址才能和因特网连接。

应用层、表示层、会话层、运输层、网络层、数据链路层、物理层。

应用层、运输层、网络层、数据链路层、物理层。

特性:机械特性、电气特性、功能特性、过程特性。 
数据通信系统:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接受端、接受方)

  • 源点:源点设备产生要传输的数据。源点又称为源站或者信源
  • 发送器:通常,源点生成的数字比特流要通过发送器编码后才能够在传输系统进行传输。典型的发送器就是调制器。现在很多PC实用内置的调制解调器。
  • 接收器:接受传输系统传送过来的信号,并把它转换为能够被目的设备处理的信息。典型的接收器就是解调器,它把来自传输路线上的模拟信号进行解调,提取出在发送端置入的信息,还原出发送端产生的数字比特流。
  • 终点:终点设备从接收器获取传送来的数字比特流,然后把信息输出。终点又称目的站,或信宿。

信号:模拟信号(连续信号)、数字信号(离散信号) 
通信方式:单向通信(单工通信)、双向交替通信(半双工通信)、双向同时通信(双全工通信) 
香农公式:信道的极限信息传输速率C为:

式中:B是信道带宽(赫兹),S是信号功率(瓦),N是噪声功率(瓦)。该式即为著名的香农公式,显然,信道容量与信道带宽成正比,同时还取决于系统信噪比以及编码技术种类。香农定理指出,如果信息源的信息速率R小于或者等于信道容量C,那么,在理论上存在一种方法可使信息源的输出能够以任意小的差错概率通过信道传输。该定理还指出:如果R>C,则没有任何办法传递这样的信息,或者说传递这样的二进制信息的差错率为1/2。 
信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。

物理层下面的传输媒体 
传输媒体可分为两大类:导引型传输媒体(有线传输铜线或者光纤)和非导引型传输媒体(自由空间,无线传输)


数据链路层使用信道种类:点对点信道、广播信道 
链路:从一个结点到相邻结点的一段物理路线(有线或无线),而中间没有任何其他的交换点。 
数据链路:当在一条线路上传输数据时,除了必须有一条物理路外,还必须有一些必要的通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上就构成了数据链路。现在最常用的是使用网络适配器来实现这些协议。 
帧:点信道的数据链路层的协议数据单元。 
数据链路层,把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出来并上交给网络层。在因特网中,网络协议数据单元就是IP数据报(简称数据报、分组或包)。 
数据链路层三个基本问题: 
封装成帧、透明传输、差错检测。

  • 封装成帧,就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界(确定帧的界限)。帧定界可以使用特殊的帧定界符。帧开始字符SOH,帧结束字符EOT
  • 透明传输,当传送的帧是文本文件组成的帧时。其数据部分不会出现SOH和EOT这样的帧定界控制字符。不管从键盘上输入什么字符都能传输过去,这样的传输就是透明传输。“透明”某一个实际存在的事物看起来是好像不存在一样。为了解决不透明问题在接收端的数据链路层吧数据送网络层之前删除这个插入的转义字符,这种方法称为字节填充或字符填充。
  • 差错检测,比特传输过程中可能会出现差错,1可能会变成0,0可能会变成1.这就叫做比特差错。在一段时间内传输错误的比特占所传输比特总数的比率称为误码率。目前在数据链路层广泛使用了循环冗余检测CRC( Cyclic Redundancy Check)的检错技术。CRC运算就是在数据M后面添加供差错检测用的n位冗余码。为了检错而添加的冗余码常称为帧检验序列FCS(Frame Check Sequence).在CRC检测的基础上增加帧编号、确认、重传机制

点对点协议PPP(高级数据链路控制HDLC)

1.PPP协议满足的需求

(4)多种网络层协议 在同一物理链路上同事支持多种网络协议 
(5)多种类型的链路 
(7)检测链接状态 
(8)最大传送单元 
(9)网络层地址协商 

(1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检测的8比特数据),也支持面向比特的同步链路。IP数据报在平PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。 
(2)一个用来建立、配置和测试数据链路的链路控制协议LCP。 
(3)一套网络控制协议NCP,其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层。。。。 
PPP帧首部和尾部分别为四个字段和两个字段

3.PPP协议的工作状态

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

1.局域网的数据链路层

星形网、环形网、总线网。 
共享信道分为两种: 
(1)静态划分信道 
(2)动态媒体接入控制,又称为多点接入。

  • 随机接入 所有的用户可随机的发送信息
  • 受控接入 用户不能随机的发送信息必须服从一定的控制。
  • 载波监听 不管在发送前,还是发送中,每个站都必须不停的检测信道。

电磁波在1km电缆的传播时延约为5us 
一个站不可能同时进行发送和接受(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。 
以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。 
凡是长度小于64字节的帧都是由于冲突而异常终止的无效帧。以太网还规定了帧间最小间隔为9.6us,相当于96比特时间。

5.使用广播信道的以太网

1.使用集线器的星型拓扑

集线器:在星形拓扑的中心增加了一种可靠性非常高的设备。 
集线器的特点: 
(1)使用集线器的以太网在逻辑上仍是一个总线网,个站共享逻辑上的总线,使用的还是CSMA/CD协议。网络中的各占必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。 
(2)一个集线器有很多接口,一个集线器就像一个多接口的转发器。 
(3)集线器工作在物理层,他的每个接口仅仅简单地转发比特~~接收到1就转发1,接收到0就转发0,不进行碰撞检测。 
(4)集线器采用了专门的芯片,进行自适应串音回波抵消。这样就可以使接口转发出去的较强信号不致对该接口接收到的较弱的信号产生干扰。

实际上就是适配器地址或适配器标识符 
发往本站的帧:单播(unicast)帧(一对一),即受到的帧的MAC地址与本站硬件地址相同。 
广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧。 
多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。

3.1网络层提供的两种服务

网络层提供的服务: 
(1)虚电路服务。(2)数据报服务 
(网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务)**

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

  • 物理层使用的中间设备转发器(repeater)
  • 数据链路层使用的中间设备网桥或桥接器(bridge)
  • 网络层使用的中间设备路由器(router) 
    *在网络层以上使用的中间设备叫网关(gateway)

IP地址的编址方法三个阶段:

  • 分类的IP地址 就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。网络号必须是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)
  • IP地址并不仅仅指明一个主机,而是还指明了主机所连接到的网络。

  • 每一个IP地址都是由网络号和主机号组成。IP地址是一个分等级的地址结构。第一,IP地址管理机构在分配IP地址时只分配网络号(第一级),剩下的主机号(第二级)由得到该网络号的单位自行分配。第二,路由器仅根据目的主机所连接的网络号转发分组,这样就可以使路由器表中的项目数大幅度减少,从而减少了路由表所占的存储空间以及查找路由表的时间。
  • 实际上IP地址是标志一个主机和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。这种主机称为多归属主机。由于一个路由器至少连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。
  • 用转发器或网桥连接起来的若干个局域网仍为一个网络
  • 在IP地址中,所有分配到的网络号的网络都是平等的。

物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址。IP地址放在IP数据报的首部,硬件地址放在MAC帧的首部。 
(1)在IP层抽象的互联网上只能看到IP数据报。 
(2)虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。 
(3)在局域网的链路层,只能看到MAC帧。 
(4)皮层抽象的互联网屏蔽了下层复杂的细节,使用统一的、抽象的IP地址研究主机和主机或者路由器之间的通信。

IP数据报首部的固定部分中的各字段

  • 版本 占4位,IP协议的版本。
  • 首部长度 占4位,可表示最大十进制数值是15.
  • 区分服务 占8位,用来获得更好的服务
  • 总长度 总长度字段为16位

在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU。

  • 标志 占3位,标志字段中的最低位记为MF(More Fragment)。MF = 1 表示后面“还有分片”的数据报。MF= 0 表示这已经是数据报中的最后一个。标志字段中间的一位记为DF(Don’t Fragment),意思“不能分片”,只有当DF = 0时才允许分片。
  • 片偏移 占13位,片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移一8个字节为偏移单位,每个分片的长度一定是8字节的整数倍。
  • 协议 占8位,表示数据报使用何种协议。
  • 首部检验和 占16位,检验数据报的首部,不包括数据部分。

3.4划分子网和构造超网

(1)从两级IP地址到三级IP地址

从IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行子网的划分。32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。所以使用子网掩码(subnet mask). 
使用子网掩码的好处:不管网络有没有子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND),就能立即得出网络地址来。这样在路由器处理到来的分组是就可以采用同样的算法。 
(现在因特网的标准规定:所有的网络必须使用子网掩码,路由表中也必须有子网掩码这一栏。如果不划分子网掩码,使用默认子网掩码。) 
子网掩码是一个网络或一个子网的重要属性。划分子网增加了灵活性,但却减少了能够连接在网络上的总计数。

2.使用子网时分组转发

路由表必须包含三项内容:目的网络地址、子网掩码和下一跳地址。

3.无分类编址CIDR(构成超网)

(1)CIDR消除了传统的A类、B类、C类地址以及划分子网的概念,可以更加有效的分配IPv4的地址空间。使用“网络前缀”,从三级变回无分类的两级编址。

CIDR还使用“斜线记法”,在IP地址后面增加“/”,然后写上网络前缀所占的位数。 
(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中的任何一个地址,就可以知道之歌地址块的起始地址(最小地址)和最大地址,以及地址块中的地址树。(斜线记法中,斜线后面的数字就是地址掩码中1的个数) 
由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合。路由聚合也称构成超网。 
网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀边长。

网络前缀,应当从匹配结果中选择具有最长网络前缀的路由,叫做最长前缀匹配。

3使用二叉线索查找路由表(为了提高二叉线索的查找速度,使用压缩技术)

3.5网际控制报文协议ICMP

1.ICMP报文种类有两种,ICMP差错报告报文和ICMP询问报文

ICMP差错报告报文:

  • 终点不可达 当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
  • 源点抑制 当路由器或主机由于拥塞而丢弃数据报时,就向源点抑制报文,使源点知道应当把数据报的发送速率放慢
  • 时间超长 当路由器接收到生存时间为0的数据报时,除了丢弃数据报外,还要向源点发送时间超过报文。
  • 参数问题 当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就该丢弃该数据报,并向源点发送参数问题报文。
  • 改变路由(重定向) 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器
  • 回送请求和回答 ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
  • 时间戳请求和回答 ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。

3.6因特网的路由器选择协议

(1)算法必须是正确的和完整的。 
(2)算法应能适应通信量和网络拓扑的变化。 
(3)算法在计算上应简单。 
(4)算法应具有稳定性。 
(5)算法应是公平的。 
(6)算法应是最佳的。“最佳”只能是相对于某一种特定要求得出的较为合理的选择而已。

2.分层次的路由选择协议

因特网将整个互联网划分为许多较小的自治系统(autonomous system),记为AS。一个AS对其他AS表现出的是一个单一和一致的路由选择策略。 
在目前的因特网中,一个大的ISP就是一个自治系统。因特网把路由选择协议划分为两类:

  • 内部网关协议IGP(Interior Gateway Protocol) 在一个自治系统内部使用的路由选择协议,与在互联网中的其他自治系统选用什么路由选择协议无关。如RIP和OSPF协议。
  • 外部网关协议EGP(External Gateway Protocol) 若源主机和目的主机处在不同的自治系统中(这两个自治系统可能使用不同的内部网关协议)。当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。

    自治系统之间的路由选择也叫域间路由选择(interdomain routing),而在自治系统内部的路由选择叫做域内路由选择(intradomain routing)

RIP(Routing Information Protocol)是内部网关协议中最先的到广泛使用的协议,叫路由信息协议。RIP是一种分布式的基于距离向量的路由选择协议,最大特点就是简单。 
RIP协议“距离”:从一路由器到直接连接的网络的距离定义为1.从一路由器到非直接连接的网络的距离定义为所经过的路由器数加1. 
RIP协议的“距离”也成为“跳数”(hop count),因为每经过一个路由器,跳数就加1。RIP认为好的路由就是通过的路由器的数目少,即距离短。RIP允许一条路径最多只能包含15个路由器。RIP只适用于小型互联网。 

  • 仅和相邻路由器交换信息。
  • 路由器交换的信息是当前本路由所知道的全部信息,即自己的路由表。
  • 按固定的时间间隔交换路由信息

路由表中最重要的信息就是:到某个网络的距离最短,下一跳地址。路由表更新的原则是找出到每个目的网络的最短距离。这种更新叫做距离向量算法。

(1)对地址X的路由器发来的RIP报文,每一个项目都有三个关键数据:到目的网络N,距离d,下一跳路由器是X。 
(2)对修改后的RIP报文中的每一个项目,进行以下步骤: 
若原来的路由表没有目的网络N,则把该项目添加到路由表中,若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目,若收到的项目中的距离d小于路由表中的距离,则进行更新。 
(3)若3分钟黑没有收到响铃路由器的更新路由表,则把此距离路由器记为不可达的路由器,即把距离置为16. 
(4)返回。距离向量算法的基础就是Bellman-Ford算法(或Ford-Fullkerson算法):设X是结点A到B的最短路径上的一个结点。若把路径A->B拆成两段路径A->X和X->B,则每一段也都是最短路径。

2.3RIP协议的报文格式

RIP报文由首部和路由部分组成。路由标记填入自治系统号ASN(Autonomous System Number),这是考虑使RIP有可能受到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。一个RIP保温最多可包括25个路由,RIP报文最大长度4+20*25=504字节. 
RIP存在一个问题是当网络出现故障时,要经过比较常的时间才能将此信息传送到所有的路由器。这一特点叫做:好消息传播得快,而坏消息传播得慢。

它只是一个协议名字,并不表示其他的路由选择协议不是“最短路径优先”。OSPF最主要的特征就是使用分布式的链路状态协议(link state protocol),OSPF有三个要点: 
(1)向本自治系统中所有路由器发送信息。使用洪泛法(flooding),路由器通过所有输出端口向所有相邻的路由器发送信息。 
(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。链路状态就是说明本路由器都和那些路由器相邻,以及该链路的“度量”(metric)。用来表示费用、距离、时延、带宽、等等。 
(3)只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送信息。 
(1)OSPF允许管理员给每条路由指派不同的代价。OSPF对于不同类型的业务可计算出不同的路由。 
(2)若果到同一个目的网络有多条相同代价的路径,那么可以将同信量分配给这几条路径,这叫做路径间的负载均衡。 
(3)所有在OSPF路由器之间交换的分组,都具有鉴别的功能。 
(4)OSPF支持可变长度的子网划分和无分类的编址CIDR. 
(5)由于网络中的链路状态可能经常发生变化,因此OSPF让每一个链路状态都带上一个32位的序号,序号越大状态就越新。

  • 问候(hello)分组,用来发现和维持邻站的可达性。
  • 数据库描述(database description)分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  • 链路状态请求(link state request)分组,向对方请求发送某些链路状态项目的详细信息。
  • 链路状态更新(link state update)分组,用洪泛法对全网更新链路状态。

BGP采用了路径向量(path vector)路由选择协议。BGP协议交换路由信息的结点数量级是自治系统个数的量级。 
(1)open(打开)报文,用来与相邻的另一个BGP发言人建立关系,使通信初始化。版本(1字节)、本自治系统号(2字节)、保持时间(2字节)、BGP标识符(4字节)、可选参数长度(1字节)、可选参数。 
(2)update(更新)报文,用来通告某一路由的信息,以及列出要撤销的多条路由。不可行路由长度(2字节)、撤消的路由、路径属性总长度(2字节)、路径属性、网络层可达性信息NLRI 
(3)keeplive(保活)报文,用来周期性地证实邻站的连通性。只有BGP的19字节长通用首部。 
(4)notification(通知)报文,用来发送检测到的差错。差错代码(1字节)、差错子代码(1字节)、差错数据

路由器可以划分两大部分:路由选择部分和分组转发部分 
路由选择部分也叫控制部分,核心构件是路由选择处理机;分组转发部分由三部分组成:交换结构、一组输入端口、一组输出端口

通过存储器、通过总线、通过互连网络

1.IP多播的基本概念

能够运行多播协议的路由器称为多播路由器(multicast router)。在因特网上进行多播就叫做IP多播。IP多播所传送的分组需要使用多播IP地址。多播地址只能用于目的地址,而不能用于源地址。224.0.1.0至238.255.255.255 全球范围都可使用的多播地址。 
IP多播分为两种。一种是只在局域网上进行硬件多播,另一种则是在因特网的范围进行多播。

2.网际组管理协议IGMP和多播路由选择协议

(1)IP多播需要两种协议

多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。 
多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成成员接入的网络。

(2)网际组管理协议IGMP

第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给因特网上的其他多播路由器。 
第二阶段:组成员关系使动态的。本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还基础是组成员。只要有一个主机对某个组响应,那么多播路由器就认为这个组是活跃的。如果没有响应,认为本网络的主机已经离开这个组,就会转发给其他多播路由器。

(3)多播路由选择协议

多播路由选择实际上就是要找出以源主机为根节点的多播转发树。 
转发多播报时使用了以下三种方法:

  • 洪泛与剪除 采用反向路径广播RPB(reverse path broadcasting)的策略。RPB的要点是:每一个路由器在收到一个多播数据报时,先检查数据报是否从源点经最短路径传送来的。如果在多播转发树上的某个路由器发现它下游树枝已经没有该多播组的成员,就赢把它和下游的树枝一起剪除。
  • 隧道技术 隧道技术适用于多播组的位置在地理上很分散的情况。

下面是一些建议使用的多播路由选择协议: 
距离向量多播路由选择协议DVMRP 
开放最短通路优先的多播扩展MOSPF 
协议无关多播-密集方式PIM-DM

3.9虚拟专用网VPN和网络地址转换NAT

在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发 
利用公用的因特网作为机构专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN(virtual private network)。所有通过因特网传送的数据都必须加密。

2.网络地址转换NAT

4.1.1进程之间的通信

运输层向它上面的应用层提供通信服务,两个主机进行通信就是两个主机中的应用进程相互通信。通信的真正端点并不是主机而是主机中的进程。端到端的通信是应用进程之间的通信。运输层有一个重要功能:复用(multiplexing)和分用(demultiplexing)。 
复用指在发送方不同的应用进程都可以使用同一个运输层协议传送数据;分用指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。 

网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。运输层还要对收到的报文进行检测。根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP。运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,但这条逻辑信道对上层的变现却因运输层使用的不同协议而又很大的差别。当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接UDP协议时,这种逻辑通信信道任然是一条不可靠信道。 

4.1.2运输层的两个主要协议

TCP/IP运输层的两个主要协议:

按照OSI术语,两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU(transport protocol data unit);在TCP/IP协议中称为TCP报文段或UDP用户数据报。UDP在传送数据之前不需要先建立连接。TCP则提供面向连接的服务。 

4.1.3运输层的端口

运输层的复用和分用功能类似。应用程所有的应用进程都可以通过运输层再传到IP层(网络层),这就是复用。运输层从IP层收到数据后必须交付致命的应用进程,这就是分用。 
在协议栈层间的抽象的协议端口是软件端口,软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。 
TCP/IP使用源端口和目的端口两个重要字段,用一个16位端口号来标志一个端口。 
运输层端口号分为两大类: 
(1)服务器端使用的端口号

(2)客户端使用的端口号

4.2用户数据报协议UDP

(1)UDP是无连接的,发送数据之前不需要建立连接,减少了开销和发送数据之前的时延。 
(2)UDP使用尽最大努力交付 
(4)UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。 
(5)UDP支持一对一、一对多、多对一和多对多的交互同信。 
(6)UDP的首部开销小,只有8字节,TCP20字节。

IP数据报的检验和检验IP数据报的首部,UDP检验和是把首部和数据部分一起都检验的。

(1)TCP是面向连接的运输层协议。 
(2)每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能点对点的。 
(3)TCP提供可靠的交付。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达。 
(5)面向字节流。TCP中的“流”指的是流入到进程或者从进程流出的字节序列。

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

4.4可靠传输的工作原理

4.4.1停止等待协议

全双工通信的双发即使发送方也是接收方。 
上图(b)在传输过程中出现差错的情况。 
(3)确认丢失和确认迟到 
使用确认和重传机制,可实现在不可靠的传输网络上实现可靠的通信。 

4.5报文段的首部格式

4.6TCP可靠传输的实现

第一,缓存空间和序号空间都是有限的,并且都是循环使用的。第二,由于实际缓存或窗口中的字节数是非常之大的,因此无法再图中把一个个字节的位置标注清楚。 

发送缓存用来暂时存放: 
(1)发送应用程序传送给发送发TCP准备发送的数据; 
(2)TCP已发送出但尚未收到的确认的数据。 
接受缓存用来暂时存放: 
(1)按序到达的、但尚未被接受应用程序读取的数据; 
(2)未按序到达的数据。 
TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间RTT。TCP保留了RTT的一个加权平均往返时间RTTs(又称为平滑的往返时间)。

超时计时设置的超时重传时间RTO应略大于上面得出的甲醛平均往返时间RTTs。

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

流量控制(flow control)就是让发送方的发送率不要太快,要让接受方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。发送方的发送窗口不能超过接收方给出的接收窗口的数值。TCP的窗口单位是字节,不是报文段。

拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路器不致过载。拥塞控制多要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、多有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制旺旺指点对点通信量的控制,是个端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。 
图中横坐标是提供的负载(offered load),代表单位时间内输入给网络的分组数目。因此提供的负载也称为输入负载或网络负载。纵坐标是吞吐量(throughput),代表单位时间从网络输入的负载数目。拥塞控制可分为开环控制和闭环控制两种方法。开环控制方法就是在涉及网络时实现将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。 
闭环控制是基于反馈环路的概念。以下是闭环控制的具体措施: 
(1)检测网络系统以便检测到拥塞在何时、何处发生。 
(2)把拥塞发生的信息传送到可采取行动的地方。 
(3)调整网络系统的运行以解决出现的问题。

几种拥塞控制方法: 
发送方维持一个叫做拥塞窗口(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。 
慢开始算法的思路是:先探测一下,由小到大逐渐增大发送窗口,也就是说由小到大逐渐增大拥塞窗口数值。使用慢开始算法后,没经过一个传输轮次(transmission round),拥塞窗口cwnd就加倍。 
拥塞避免算法的思路是让拥塞窗口cwnd缓慢地增加,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样,拥塞窗口cwnd按现行规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。 
快重传算法首先要求接受方每收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等待自己发送数据时才进行确认。 
(1)当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把满开始门限ssthresh减半。这是为了预防网络发生拥塞。 
(2)由于发送方现在认为网络很可能没有发生拥塞,因此与慢开始不同之处是现在不执行慢开始算法,而是把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。 
在采用块回复算法时,慢开始算法只是在TCP连接建立时和网络出现超时时才能使用。发送方的发送窗口一定不能超过对方给出的接收窗口值rwnd.

A主动打开连接,B被动打开连接。 
B的TCP服务器进程先创建传输控制块TCB(transmission control block),准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求。如有,即做出响应。 
A的TCP客户进程也是首先穿件传输控制模块TCB,然后向B发出连接请求报文段,这时首部中的同部位SYN=1,同时选择一个初始序号seq=x。TCP规定,SYN报文段(即SYN = 1 的报文段)不能携带数据,但要消耗掉一个序号。这时TCP客户进入SYN-SENT(同步已发送)状态。 
B收到连接请求报文段后,如同意建议连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack = x+1 ,同时也为自己选择一个初始序号seq = y。这个报文段也不能携带数据,但要消耗掉一个序号。这时TCP服务器进程进入SYN-RCVD(同步收到)状态。 
TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置1,确认号ack = y + 1,而自己的序号seq = x +1。TCP的标准规定,ACK报文段可以携带数据。但如果不携带数据则不消耗序号,在这种情况下,下一个数据报文段的序号仍为seq = x+1。这时,TCP连接已经建立,A进入ESTABLISHED(已建立连接)状态。 

域名系统DNS(domain name system)是因特网使用的命名系统,用来把便于人们使用的机器的名字转换为IP地址。域名系统其实就是名字系统。

5.1.2 因特网的域名结构

任何一个连接在因特网上的主机或者路由器,都是有一个唯一的层次结构的名字,即域名(domain name)。域可以分为顶级域、二级域、三级域等等。DNS规定,域名中的标号都是有英文字母和数字组成,每一个标号不超过63个字符(为了方便记忆最好不要超过12个字符),也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在左右边。由多个标号组成的完整域总共不超过255个字符。 
顶级域名分为三大类: 
(3)基础结构域名(infrastructure domain):这种域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。 
(3)权限域名服务器 
域名的解析过程: 
(1)主机向本地域名服务器的查询一般都采用递归查询(recursive query)。 
(2)本地域名服务器向根域名服务器的查询通常是采用迭代查询(iterative query)。 

网络文件系统NFS,允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。

(2)TFTP代码所占内存较小。这对较小的计算机或某些特殊用途的设备是很重要的,这些设备不需要硬盘,只需要固化TFTP和UDP以及IP的小容量只读存储器即可。 
(1)每次传送的数据报文中有512字节的数据,但最后一次可不足512字节。 
(2)数据报文按序编号,从1开始。 
(3)支持ASCⅡ码或二进制传送。 
(4)可对文件进行读或写。 
(5)使用简单地首部。

TELNET又称为终端仿真协议。它定义了数据和命令应怎样通过因特网,这些定义就是所谓的网络虚拟终端NVT(network virtual terminal)。所有的通信都是用8位一个字节,在运转时,NVT使用7位ASCⅡ码传送数据,而当高位置1时用作控制命令。

 万维网是一个大规模、联机式的信息储藏所。万维网是一个分布式的超媒体(hypermedia)系统,它是超文本系统的扩充。万维网以客户-服务器方式工作。客户程序向服务器程序发送请求,服务器程序向客户程序发回客户所要的万维网文档。万维网使用统一资源定位符URL(uniform resource locator)来标志万维网上的各种文档。使用超文本传送协议HTTP实现交互。http是一个应用层协议,它使用TCP连接进行可靠的传送。使用超文本标记语言HTML显示万维网文档。

http是面向事务的应用层协议,http协议是无状态的。万维网的工作过程如下图: 
万维网的工作过程 
代理服务器(proxy server)是一种网络实体,又称为万维网高速缓存(web cache)。 

(1)请求报文–从客户向服务器发送请求报文。 
(2)响应报文–从服务器到客户的回答。 
http请求报文和响应报文都是由三部分组成: 
(1)开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行。在开始行的三个字段之间都可以空格隔开,最后的“CR”和“LF”分别代表回车和换行。 
(2)首部行,用来说明浏览器、服务器或报文主体的一些信息。首部行可以有好几行,但也可以不使用。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。 
(3)实体主体,在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段。

请求报文的主要特点:请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL,以及http的版本。 
响应报文的主要特点:响应报文的第一行就是状态行。包含三个内容,http版本,状态码,以及解释状态码的简单短语。

一个电子邮件系统有三个主要组成构件:用户代理、邮件服务器,以及邮件协议(包括邮件发送协议,如SMTP,邮件读取协议,如POP3)。用户代理和邮件服务器都要运行这两种协议。

(1)SNMP本身,负责读取和改变代理中的对象名及其状态数值。 
(2)管理信息结构SMI,定义命名对象和定义对象类型的通用规则,以及把对象和对象的值进行编码的基本编码规则BER。 
(3)管理信息库MIB,在管理的试题中穿件了命名对象,并规定其类型。

6.1 网络安全问题概述

6.1.1计算机网络面临的安全威胁

计算机网络面临两大类威胁:被动攻击和主动攻击。 
指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截获。在被动攻击中,攻击者只是观察和分析某一个协议数据单元PUD而不干扰信息流。这种攻击又称为流量分析。 
(1)篡改 攻击者故意篡改网络上传送的报文。 
(2)恶意程序 计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹 
(3)拒绝服务DoS 指攻击者向因特网上的某个服务器不停地发送大量分组,是因特网或服务器无法提供正常服务。若因特网上的成百上千的网站集中攻击一个网站,则称为分布式拒绝服务DDoS,或网络带宽攻击或连通性攻击。

6.1.2计算机网络安全内容

访问控制(access control)也叫做存取控制或介入控制。必须对介入网络的权限加以控制,并规定每个用户的接入权限。使用多级安全访问控制。

6.1.3一般的数据加密模型

图中所示的加密和解密用的密钥K(key)是一串秘密的字符串。在传送过程中可能出现密文的截取者。 
密码编码学是密码体制的设计学,而密码分析学则是在未知密钥的情况下从密文推演出明文或者密钥的技术。

6.2.1对成密钥密码体制

对成密钥密码体制,即加密密钥与解密密钥是相同的密码体制。数据加密标准DES(64位二进制数据)属于对称密钥密码体制。DES的保密性取决于对密钥的保密,而算法时公开的。在DES之后出现了国际数据加密算法IDEA(128位密钥)。

6.2.2公钥密码体制

公钥密码体制(又称为公开密钥密码体制)。公钥密码体制使用不同的加密密钥与解密密钥。公钥密码体制的产生主要是因为两个方面的原因,一是由于对称密钥密码体制的密钥分配问题,二是由于对数字签名的需求。在公钥密码体制中,加密密钥PK(public key)即公钥,是想公众公开的,而解密密钥SK(即私钥)是保密的。任何加密方法的俺去眼形取决于密钥的长度,以及攻破密文所需的计算量,

数字签名必须实现的三点功能: 
(1)接受者能够合适发送者对报文的签名。叫做报文鉴别。 
(2)接受者确信所收到的数据和发送者发送的完全一样而没有被篡改过。叫做报文的完整性。 
(3)发送者时候不能抵赖对报文的签名。叫做不可否认。

鉴别是要验证通信的对方的却是自己所要通信的对象,而不是其他的冒充者。鉴别可分为两种,一种是报文鉴别,一种是实体鉴别。

当我们传送不需要加密的报文时,应当使接受者能用很简单的方法鉴别报文的真伪。报文摘要MD(message digest)是进行报文鉴别的简单方法。

实体鉴别是在系统接入的全部持续时间内和自己通信的对方实体只需验证一次。

密钥分配采用网内分配方式。

6.6 因特网使用的安全协议

6.6.1网络层安全协议

IPsec协议中有两个重要的协议:鉴别首部AH(authentication header)协议和封装安全有效载荷ESP(encapsulation security payload)协议。AH协议提供源点鉴别、数据完整性,但不能保密。ESP协议能提供源点鉴别,数据完整性和保密。 
在发送IPsec数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连接,即安全关联SA(security association)。这样,IPsec就把传统的因特网无连接的网络层变为具有逻辑连接的一个层。安全关联是从源点到终点的单向连接,能够提供安全服务。 

6.6.2运输层安全协议

从两级 IP 地址到三级 IP 地址

早期(ARPANET 早期)的IP地址设计存在的问题:
(1) IP 地址空间的利用率有时很低。
(2) 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
(3) 两级的 IP 地址不够灵活。

  • 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。
  • 划分子网已成为互联网的正式标准协议。
  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
  • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
  • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器
  • 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
  • 最后就将 IP 数据报直接交付目的主机。

划分为三个子网后对外仍是一个网络
特点:划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。

划分子网后变成了三级结构

  • 当没有划分子网时,IP 地址是两级结构。
  • 划分子网后 IP 地址就变成了三级结构。
  • 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。
    1.减少了 IP 地址的浪费
    2.使网络的组织更加灵活

问题:假定一个数据报(目的地址是145.13.3.10)已经到达了路由器R1,那么路由器如何转发到子网145.13.3.0?(IP数据报是无法看出源主机或目的主机所连接的网络是否进行子网划分)

解决这个问题就要使用子网掩码,使用子网掩码 (subnet mask) 可以找出 IP 地址中的子网部分

  • 子网掩码长度 = 32 位
  • 子网掩码左边部分的一连串 1,对应于网络号和子网号
  • 子网掩码右边部分的一连串 0,对应于主机号


不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,立即得出网络地址。这样路由器处理到来的分组时就可以采用同样的算法。

  • 子网掩码是一个网络或一个子网的重要属性
  • 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
  • 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
  • 若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。
  • 固定长度子网变长子网两种子网划分方法。
  • 在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的
  • 虽然根据已成为互联网标准协议的 RFC 950 文档,子网号不能为全 1 或全 0,但随着无分类域间路由选择 CIDR 的广泛使用,现在全 1 和全 0 的子网号也可以使用了,但一定要谨慎使用,确认你的路由器所用的路由选择软件是否支持全 0 或全 1 的子网号这种较新的用法。
  • 划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数

B 类地址的子网划分选择(使用固定长度子网)

  • 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
  • 但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
  • 因此分组转发的算法也必须做相应的改动。

在划分子网情况下路由器转发分组的算法

  1. 从收到的分组的首部提取目的 IP 地址 D。
  2. 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
  3. 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行 (4)。
  4. 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)。
  5. 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行 (6)。

无分类编址CIDR(构成超网)

  • B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!
  • 互联网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
  • 整个 IPv4 的地址空间最终将全部耗尽。
  • 1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。

CIDR 最主要的特点

  • CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址。

无分类的两级编址的记法:
CIDR 使用“斜线记法”(slash notation),它又称为 CIDR 记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如: 220.78.168.0/24

  • CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
  • 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
  • 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
  • 全 0 和全 1 的主机号地址一般不使用。
  • 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
  • 路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
  • CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
  • 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。

CIDR 记法的其他形式

  • 10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。
  • 网络前缀的后面加一个星号 * 的表示方法,如 *,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号,可以是任意值。
  • 前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。
  • 这些 C 类地址合起来就构成了超网。
  • CIDR 地址块中的地址数一定是 2 的整数次幂。
  • 网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。
  • CIDR 的一个好处是:可以更加有效地分配 IPv4 的地址空间,可根据客户的需要分配适当大小的 CIDR 地址块。

CIDR 地址块划分举例

  • 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
  • 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
  • 网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。
  • 最长前缀匹配又称为最长匹配或最佳匹配。

使用二叉线索查找路由表

  • 当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。
  • 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索 (binary trie)。
  • IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
  • 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

用 5 个前缀构成的二叉线索
从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于IP地址中的一位。一个IP地址存入二叉线索的规则很简单。先检查IP地址左边的第一位,如为 0,则第一层的节点就在根节点的左下方;如为 1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。

我要回帖

更多关于 python 索引访问列表 的文章

 

随机推荐