第 7章 网络互连
路由器在网际互连中的作用
因特网的网际协议 IP
划分子网和构造超网
因特网控制报文协议 ICMP
因特网的路由选择协议
IP多播和因特网组管理协议
下一代的网际协议 IPv6( IPng)
§ 7.1 路由器在网际互连中的作用一、路由器的构成直接交付:主机 A向主机 B发送数据报时,先检查目的主机 B是否与源主机 A连接在同一个网络中,
若是,就直接发送给主机 B而不需通过路由器。
间接交付:若目的主机 C或 D与源主机 A不在同一个网络中,则必须将数据报发送到本网络上的一个路由器上,再由该路由器按照转发表将数据报发给下个路由器。直到最后一个路由器。
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,
按照分组要去的目的地址,将该分组从某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组,直到该分组到达目的地为止。
路由器工作在网络层。
路由器结构
整个路由器结构可划分为两大部分,路由器选择 部分和 分组转发 部分。(见书 P167,图 7-2)
路由器选择部分是控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
分组转发部分由三部分组成,交换构件,一组输入端口 和一组 输出端口 。
交换构件 的作用是根据转发表对分组进行处理,
将某个输入端口进入的分组从一个合适的输出端口转发出去。
路由器的输入和输出端口中有三个处理模块,分别负责 物理层,数据链路层 和 网络层 的数据处理。当数据通过输入端口进入路由器时,物理层进行比特的接收,数据链路层则按照链路层协议接收传送分组的帧,然后将帧的首部和尾部剥去,
分组就被送入网络层的处理模块。若接收到的分组是路由器之间交换的路由信息,就将这种分组送交路由器的路由选择部分中的路由选择处理机。
若接受到的分组是数据分组,则按照分组首部中的目的地址查找转发表,根据结果,交到相应的输出端口转发出去。
为了匹配速度,分组在发送和接收时都要在缓冲区中排队。
二、互联网与因特网
将网络互相连接起来要使用一些中间设备,ISO中称为中继 ( Relay)系统。根据中继系统工作所在的层次,
分为 5类:
⑴ 物理层,转发器 ( Repeater)或 集线器 ( HUB)。
⑵ 数据链路层,网桥 ( Bridge),交换机 。
⑶ 网络层,路由器 ( Router)。
⑷ 网桥和路由器的混合物 桥路器 ( Brouter)。
⑸ 网络层以上,网关 ( Gateway)。
用于 1,2这二层的并不称之为网络互连,仅仅是把一个网络扩大的,而这仍然是一个网络。
一般讨论的互连网是指用路由器进行互连网络。
注意:有许多有关 TCP/IP的文献将网络层使用的路由器称为网关。
物理层:在 电缆段 之间复制 比特信号(无地址)
网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层中继器、集线器网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层网桥、交换机数据链路层在 网段 之间转发 数据帧(根据物理地址)
数据链路层网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层路由器数据链路层网络层在 网络 之间转发 报文分组(根据逻辑地址)
网络层:
更高层:
连接不同体系结构的网络网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层网关数据链路层网络层
因特网在 IP层采用了标准化协议。许多计算机网络通过一些路由器进行互连。由于参加互连的计算机网络都使用相同的网际协议 IP,
因此可以将互连以后的计算机网络看成一个虚拟互联网络 ( internet) 。
所谓虚拟互联网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是利用 IP协议可以使这些性能各异的网络从用户看起来好像是一个统一的网络。使用虚拟互联网络的好处是,当互联网上的主机进行通信时,就好像在一个网络上通信一样,它们看不见互连的各具体网络的异构细节 。
§ 7.2 因特网的网际协议 IP
与 IP协议配套使用的还有四个协议
地址解析协议 ARP( Address Resolution
Protocol)
反向地址解析协议 RARP( Reverse Address
Resolution Protocol )
因特网控制报文协议 ICMP( Internet Control
Message Protocol)
因特网组管理协议 IGMP( Internet Group
Management Protocol )
物理硬件与各种网络的接口
RAR PARP
ICMP IGMP
TCP,UDP
各种应用协议以太网、广域网等
TELNET,FTP,SMTP
1 物理层
2 网络接口层
3 网络层
( Internet层)
4 运输层应用层
IP
7.2.1分类 IP地址
1,IP 地址 及其表示方法
IP地址就是给每个连接在因特网上的主机分配一个在全世界范围是唯一的 32位的标识符。 IP地址现在由因特网名字与号码指派公司 ICANN进行分配。
IP地址的编址方法经历了三个阶段:
① 分类 IP地址,最基本的编址方法。
② 子网的划分,对最基本编址方法的改进。
③ 构成超网,较新的无分类编址方法。
,分类”方法是将 IP地址分成两个字段,一个是 网络号
net-id,标识主机所连接到的网络,另一个是 主机号
host-id,标识该主机。
IP地址 ∷ = {<网络号 >,<主机号 >}
网络地址 主机地址
0
第几位,31 30 29 0
网络地址 主机地址
1 0
网络地址
1 1 0
A 类地址
B 类地址
C 类地址主机地址第几位,31 30 0
第几位,31 0
多播标识 组播地址
1 1 1 0
1 1 1 1 0
E类地址 标识
D 类地址
E 类地址第几位,31.,28 0
第几位,31.,,27 0
保留地址路由器转发分组过程
为了转发过程简化而且迅速,对重复的路由做了简化。具体做法,转发表只使用 IP地址中的网络号 net-id来查找路由 。只要 IP数据报能够正确到达目的网络,就可以在这个网络上直接交付给目的主机而不再需要经过其它路由器进行转发。
路由器转发分组步骤,
①先按所要找的 IP地址中的网络号 net-id 把目的网络找到
②当分组到达目的网络后,在利用主机号
host-id将数据直接交付给目的主机。
将 IP地址划分为三个类型,当初是这样考虑的。
各种网络的差异很大,有的网络拥有很多主机,
而有的网络的主机则很少。将 IP地址划分为 A类、
B类,C类可更好地满足不同用户的要求。 A类 IP
地址的网络号数目不多。现在能够申请到的 IP地址只要 B类和 C类。 当某个单位申请到一个 IP地址时,实际是只是获得了一个网络号 net-id。具体的各个主机号 host-id则由该单位自行分配,只要做到该单位管辖的范围内无重复的主机号即可。
由于 IP地址没有得到充分利用,造成浪费;计算机数目增加,IP地址逐渐不够用,于是提出 IPv6
( 128位)。
IP地址点分十进制记法
在主机或路由器中存放的 IP地址都是 32位的二进制代码。为了提高可读性,在写出给人看的
IP地址时,往往每隔 8位用其等效的十进制数字表示,并且在这些数字之间加上一个点。这就是 点分十进制记法 ( dotted decimal notation)。
例:
10000000000010110000001100011111
10000000 00001011 00000011 00011111
128 11 3 31
128.11.3.31
特殊 IP地址
1,网络号为全 0为保留地址,表示,本网络,,
例 0.1.1.35表示在本网络上的主机 35
2,第一个字节 127(即 01111111)为测试地址,表示本主机。如,127.0.0.1
3,主机号全 0表示主机所在的网络地址例:主机 212.111.44.136
– 所在网络的地址为 212.111.44.0
4,主机号全 1表示广播地址,用于向某个网络的所有主机广播
– 例:主机 212.111.44.136
所在网络的广播地址为 212.111.44.255
网络类别 网络数主机数
/
网络号的取值范围网络规模
A 类 224- 2 1 - 126 大型
B 类 214 216- 2 128.0 – 191.255 中型
C 类 221 28- 2 192.0.0 – 223.255.255小型
27- 2
IP地址的使用范围
IP地址的特性
在同一个局域网上的主机或路由器的 IP地址的网络号必须相同
用网桥互连的网段仍然是一个局域网,只能有一个网络号。
路由器的两个或两个以上的 IP地址。
见书 P175 图 7- 9
IP地址与硬件地址首部 应用层数据
TCP报文首部 数据
IP数据报首部 尾部
MAC帧
IP地址硬件地址网络层及以上使用 IP地址
Data link及以下使用硬件地址
( 1) IP地址放在 IP数据报的首部(在网络层以上使用)。
( 2)硬件地址放在 MAC帧的首部(在链路层以下使用)。
IP数据报首部的 MAC帧首部的源地址 目的地址 源地址 目的地址从 H1到 R1 IP1 IP2 HA1 HA3
从 R1到 R2 IP1 IP2 HA4 HA5
从 R2到 H2 IP1 IP2 HA6 HA2
地址解析协议 ARP和反向地址解析协议 RARP
1.为什么需要地址解析协议 ARP
在因特网中,IP地址是所有数据分组传输的逻辑地址。
数据链路层必须使用物理( MAC)地址进行数据通信。
当计算机更换网卡时,将计算机从一个网络移到另一个网络时,MAC地址和 IP地址应如何变化?
地址解析协议工作过程
ARP用于 IP地址映射到 MAC地址 。方法:
1)检查 ARP高速缓存表;
2)若地址不包含在表中,就向网上发广播来寻找。具有该 IP地址的目的站用其 MAC地址作为响应。
A C
我需要 10.1.0.5
的 MAC地址
IP = 10.1.0.5
MAC =
我就是。
这是我的 MAC地址
IP = 10.1.0.5
MAC = 0800.0020.2C0A
B
10.1.0.1 10.1.0.510.1.0.2
需要指出的是,ARP是解决同一个局域网上的主机或路由器的 IP地址和硬件地址的映射问题。若两台主机不在同一网络中,则只能逐段解析。
2.反向地址解析协议 RARP
一台计算机的 IP地址保存在其辅存中,系统启动时找到这个地址。那么对于没有磁盘的机器如何确定自己的 IP地址呢?
RARP协议可以实现 MAC地址到 IP地址的转换。 无盘工作站 在启动时,只知道自己网络接口 MAC地址,而不知道自己的 IP地址。它首先要使用 RARP
得到自己的 IP地址后,才能和其它服务器通信。
在一台无盘工作站启动时,工作站首先以广播方式发出 RARP请求。网络中的 RARP服务器就会根据提供的 MAC地址为该工作站分配一个 IP地址,组织一个 RARP响应包发送回去。
IP数据报的格式版本号 首部长度 服务类型 总长度
DF MF 片偏移
0 3 7 15 19 31
标识生存时间 TTL 协议 首部校验和源 IP地址目的 IP地址选项和填充(最大为 40字节)
数据区
IP数据报首部的固定部分的各字段版本号,4bit,目前版本号为 4,处理报文之前,先检验版本号,保证正确。
首部长度,4bit,它是以 4字节为单位表示长度。 IP报头分为固定部分和选项部分,固定部分正好是 20个字节,而选项部分为变长。如果选项部分长度不为 4
的倍数,则需要填充 1~ 3个字节。
服务类型,8bit,规定了对数据报的处理方式。前 3个比特表示优先级;第 4比特 D,表示要求更低时延;
第 5比特 T,表示要求更高吞吐量;第 6比特 R,表示要求更高可靠性;第 7比特 C,表示要求更低廉路由;
最后一个比特位没用。
总长度,16bit,指首部和数据之和的长度,单位为字节。
报文的分段和重组
不同物理网络数据帧的最大长度不同。因此,IP协议通过分段机制将报文分成小的分段。分段可在任何中间路由器上进行,而重组仅在目的主机上进行。
标识,16bit,使得目的主机来确定新到的分段属于哪一个报文。
标志,3bit,包括禁止分段标志 DF和最后分段标志 MF。
片位移,13bit,指出本分段的第一个字节在初始的 IP
报文中的偏移值,以 8字节为单位。主机
A
MTU= 1500
R1 MTU=
620
R2
主机
B
MTU= 1500
生存时间 TTL( Time To Live ),8bit,为了防止路由表状态出错而导致报文在网络中无休止地传输,则每一个新的 IP报文产生一个生存时间,每经过一个路由器,
其值就减 1,直到为 0,丢弃该报文。
协议,8bit,指示 IP数据部分是由哪一种协议发送的,
接收端则根据该协议类型确定应该把 IP报文中的数据部分交给那一个上层协议处理。(如,TCP 6,UDP 17等)
首部校验和,16bit,用于保证头部数据的完整性。 IP协议没有提供对数据部分的校验。
源地址,4字节,源站的 IP地址。
目的地址,4字节,目的的 IP地址。
IP数据报首部的可变部分,就是一个选项字段。选项字段用来支持排错、测量以及安全措施,内容很丰富。
7.2.5IP层处理数据报的流程
在路由表中,对每一条路由最主要的是:
(目的网络地址,下一跳地址)
数据报的流程:
( 1) IP数据报首先要设法找到目的主机所在目的网络上的路由器(间接交付);
( 2)只有到达最后一个路由器时,才试图向目的主机进行直接交付。
网 1
10.0.0.0
网 2
20.0.0.0
网 3
30.0.0.0
网 4
40.0.0.0R1 R2 R3
R2 的路由表目的主机所在的网络 下一跳路由器的地址
20.0.0.0 直接交付,接口 0
30.0.0.0 直接交付,接口 1
10.0.0.0 20.0.0.7
40.0.0.0 30.0.0.1
当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的 IP地址后,不是将下一跳路由器的 IP地址填入 IP数据报中,而是将下一跳路由器的 IP地址转换成 MAC地址,并将此硬件地址放在链路层的 MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。
§ 7.3 划分子网和构造超网
7.3.1子网的划分
1、划分子网的概念和思路
IP地址设计不合理之处:
⑴ IP 地址空间的利用率有时很低 。
①有些网络对所连主机的数目有限制,不可能达到
IP地址中的主机数目。
②再者从吞吐量角度考虑,过多的主机必然影响网络的吞吐量,使其降低。为了提供吞吐量,网络上的主机也不能太多。
⑵ 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏。 (存储空间和查找时间)
⑶ 两级 IP地址不够灵活 。
为了解决上述问题,从 1985年起在 IP地址中又增加了一个,子网号字段,,使 两级 IP地址 变成 三级 IP地址,它能够较好地解决上述问题,并且使用起来很灵活。这种方法叫做 划分子网 ( subnetting) 。
划分子网基本思路:
⑴一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网( subnet)。
⑵划分子网的方法是 从网络的主机号借用若干比特位作为子网号,而主机号相应减少了若干比特。
IP地址 ∷ = {<网络号 >,<子网号 >,<主机号 >}
⑶ 凡是从其它网络 发送给本单位某个主机的 IP数据报,仍然是根据 IP数据报的目的网络号找到连接在本单位网络上的路由器 。但此路由器在收到 IP数据报后,再按目的网络号和子网号找到目的子网,将 IP数据报交付给目的主机。
对于一个单位的网络,我们将其划分为若干个子网,这些子网在单位内部是不同的,
但是整个网络对外仍表现为一个网络,其网络地址都是同一个。当网络在收到数据报后,再根据数据报的目的地址将其转发到相应的子网。
划分子网前、后的数据传输见书 P188,图 7
- 17,7- 17
2.子网掩码
划分子网后就变成了三级 IP地址结构。但是划分子网只是将 IP地址的本地部分进行再划分,而不改变 IP地址的因特网部分。
那么使计算机知道子网的划分呢?使用 子网掩码
( mask) 解决这个问题。
子网掩码和 IP地址一样长,都是 32位,并且是由一串 1和一串 0组成。 子网掩码中的 1表示在 IP地址中网络号和子网号的对应比特,而子网掩码中的 0表示在 IP地址中主机号的对应比特 。
在划分子网的情况下,网络地址就是主机号臵为全 0的 IP地址。
本地部分网络号 net-id
网络号 net-id
11111111111
网络号 net-id
网络号 net-id
主机号 host-id
sub-id host-id
11111 000000
sub-id 全 0
全 0
因特网部分 本地部分因特网部分网络号 子网号 主机号
(a)两级 IP地址
(b)三级 IP地址
(c)子网掩码
(d) 划分子网时的网络地址
(e) 不划分子网的网络地址
IP地址各字段和子网掩码
掩码,11111111111111111111111100000000
IP地址,11000000101010000000000000000001
网络号 主机号
( 192.168.0) ( 1)
默认的子网掩码
A类
B类
11?1 0000?0
111 000
8bit 24bit
16bit 16bit
C类子网掩码 255.0.0.0
默认值子网掩码 255.255.0.0
默认值子网掩码 255.255.255.0
默认值默认子网掩码,子网掩码中,1” 的长度就是网络号的长度:
111 00?0
24bit 8bit
注意:
子网号越多,每个子网可容纳的主机就越少。
子网号不能为全 0或全 1,若子网号采用 n位,可表示多少个子网?
2n-2
例:对于一个 B类 IP,若要划分为 8个子网,则子网号应占多少位,每个子网可容纳多少台主机,
子网掩码应如何设臵?
4位
212- 2
255.255.240.0
例:对一个 C类地址,若子网掩码为
255.255.240.0,则子网号为多少位?
例:一分组首部中的目的地址为 130.50.15.6
子网掩码为 255.255.252.0,求目的主机的网络号和子网号?
1) 先求网络地址:
130.50.15.6 Λ 255.255.252.0 = 130.50.12.0
2) 求子网号:
12.0 00001100 00000000
子网号目的地址中的子网号为 3
7.3.2使用子网时分组的转发目的网络地址 子网掩码 下一跳地址
128.30.33.0 255.255.255.128 接口 0
128.30.33.128 255.255.255.128 接口 1
128.30.36.0 255.255.255.0 R2(128.30.33.129)
R1的路由表
路由器收到分组后将目的 IP地址与子网掩码相与,取出 IP中的目的网络地址,
将其与路由表的目的网络地址进行比较,
决定如何转发。
7.3.3无分类编址 CIDR(构造超网)
1、网络前缀因特网面临的问题,
1) B类 IP地址已快分配完
2)路由表数目的急剧增长方法是采用 CIDR,特点:
1) CIDR消除了 IP地址分类及划分子网的概念,
用网络前缀来取代网络号和子网号,前缀可为一定的比特数。
IP地址:= {<网络前缀 >,<主机号 >}
也可 采用,/”记法,如 128.14.46.34/20,表示前缀长 20位,后面 12位为主机号。
2) CIDR将网络前缀都相同的连续的 IP地址组成,CIDR”地址块。如 128.14.32.0/20
表示的最小地址和最大地址为:
最小地址
128.14.32.0 10000000 00001110 00100000 0..0
最大地址
128.14.47.255 10000000 00001110 00101111 1..1
在不使用 CIDR时,ISP向客户分配 IP地址时,
只能以 /8,/16,/24来分配。现在没有这种限制。
例某 ISP已拥有地址块 206.0.64.0/18(相当于 64个
C类网络 )。现在某大学需要 800个 IP地址。在不使用 CIDR时,ISP可分配一个 B类地址(浪费很多),或 4个 C类地址(路由表中有 4个项目)。
采用 CIDR后 ISP分配 206.0.68.0/22,相当于 4个 C
类地址块。好处?
地址块 二进制表示 地址数
ISP 206.0.64.0/18 11001110.0~0.01* 16384
大学 206.0.68.0/22 11001110.0~0.010001* 1024
一系 206.0.68.0/23 11001110.0~0.0100010* 512
二系 206.0.70.0/24 11001110.0~0.01000110.* 256
三系 206.0.71.0/25 11001110.0~0.01000111.0* 128
四系 206.0.71.128/25 11001110.0~0.01000111.1* 128
2、最长前缀匹配路由表应为:目的网络地址、网络前缀、下一跳,
前缀越长匹配越具体,当路由表中有多个匹配记录时,应按长的匹配记录转发。
ISP /22大学
/25四系
§ 7.4 因特网控制报文协议 ICMP
一,ICMP报文分类
ICMP( Internet Control Message Protocol)
是一种差错和控制报文协议,用于主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP报文封装在 IP数据报中进行传输。
类型 代码 检验和
(这 4个字节取决于 ICMP报文的类型)
ICMP数据部分
ICMP数据部分
ICMP数据部分IP首部
如何识别一个 IP数据报传送的是 ICMP报文?
IP报文首部中的协议为 1时表示报文的数据部分 ICMP报文。
虽然 ICMP报文由 IP报文传输,但是并不能认为 ICMP是 IP的上层协议,而是 IP协议的补充。
按照协议的功能来分,ICMP报文分为两种:
ICMP差错报告报文和 ICMP询问报文。
ICMP报文格格式:
1、类型见下表:
ICMP报文种类类型值 ICMP报文的含义差错报告报文
3 目的站不可达
4 源站抑制
11 时间超过
12 参数问题
5 改变路由询问报文
8或 0 回送请求或回答
13或 14 时间戳请求或回答
17或 18 地址掩码请求或回答
10或 9 路由器询问或通告
2、代码:进一步区分某种类型中的几种不同情况。
3、检验和:检验整个 ICMP报文。
4、数据部分:由 IP数据报的首部 和 IP数据报的数据字段的前 8个字节 组成。
1、目的站不可达
2、源站抑制:路由器拥塞,请求源站放慢发送。
3.超时报告如果路由表出现错误,可能会出现循环路由,报文会在其中无休止地传输。为了避免这种情况,IP
协议在报文首部中加入了 TTL字段,限制了数据报在网络中的最长停留时间。如果超时,则路由器会把报文丢弃,并产生一个超时报告,发送给源端。
4.参数出错报告当数据报首部中有错误的情况,就丢弃该数据报,
并向源端发送参数出错报告。
5.改变路由报文
N2
① 主机 A→ B 发送 IP数据报,经过 R1
C发送 IP数据报,经过 R2;
但是:主机 A启动后,其路由表中只有默认 R1;
当 A→C 发送数据时,被送到 R1;
② R1 向主机 A发送 ICMP改变路由报文。
指出此数据报应经过的下一个路由器的 R2的 IP地址,主机 A根据收到的信息更新其路由表 。
B
C N3
R1
R2
N1 A
三,ICMP询问报文
ICMP询问报文有 4种:
1.请求 /应答报文该类报文用于测试网络的可达性。
命令,ping 目的站的 IP地址。
ICMP工具程序
PING
PING工具程序可用来发出 ICMP 回送请求包,
以初步排查网络联网异常。
TRACERT
TRACERT工具可找出至目的 IP地址所经过的路有器。
A B
Echo Request
Echo Reply
A BR1 R2
利用 PING来诊断网络问题
1.Ping 127.0.0.1—— 用于测试 TCP/IP协议是否运行正常
2.Ping 本机地址 —— 测试网络设臵(网卡)是否正常
3.Ping 对外连接的路由器(网关) —— 测试内部网络与对外连网的路由器是否正常
4.Ping Internet上计算机的 IP地址 —— 随便找一台 Internet上的计算机,如果有响应,代表 IP设臵全部正常。
5.Ping Internet上计算机的网址 —— 例如 ping
www.sina.com.cn,如果有响应,代表 DNS设臵无误。
2.时间戳请求与应答报文使用时间戳可以让两台机器上的时钟同步和测量时间。
3.掩码地址请求和回答报文主机通过该类报文可从子网掩码服务器得到某个接口的地址掩码。
4.路由器询问和通告报文主机通过该类报文可了解连接在本网络上的路由器是否正常工作。
7.5因特网的路由选择协议
7.5.1有关路由选择协议的几个基本概念
1、理想的路由选择算法
( 1)算法必须是正确的和完整的
( 2)算法在计算上应简单
( 3)算法应能适应通信量和网络拓扑的变化
( 4)算法应具有稳定性
( 5)算法应是公平的
( 6)算法是最佳的:费用最低费用是一个包括:链路长度、数据率、链路容量等因素的综合指标。
路由选择静态路由选择动态路由选择内部网关协议
( RIP,OSPF)
外部网关协议( BGP)
静态路由选择缺点:需手工配置和修改路由表,
不灵活;优点:节省网络带宽和 CPU时间,适全小规模网络。
动态路由选择则相反。因特网采用动态路由选择协议。
2、分层次的路由选择协议
因特网的规模很大,如不分层的话则路由表将非常大,影响路由选择的速度。
因特网被划分为许多小的自治系统 AS。每个自治系统有权决定采用何种路由选择协议。一个自治系统属于一个行政单位来管辖。
AS内采用内部网关协议,AS间采用外部网关协议,见书 P201图 7- 24
7.5.2 RIP
路由信息协议 RIP,是基于距离向量的路由选择协议。距离即“跳数”,直接相连的跳数为 1,RIP中最大跳数只能为 15,16即为不可达。
因此只适合于小型互联网。
RIP的特点:
1)仅和相邻路由器交换信息
2)交换的信息是当前路由器的路由表。
3)按固定的时间间隔交换路由信息,例 30s.
RIP交换路由表的关键是找到到目的网络的最小跳数。
距离向量算法
收到相邻路由器(其地址为 X)的 RIP报文(目的网络,
距离,下一跳):
1)先修改此 RIP报文中的所有记录:将“下一跳” 都设为 X,并将所有的距离+ 1。
2)重复以下步骤:
若项目中的目的网络不在路由表中,则添加。
否则,
若下一跳字段给出的目的地址相同,则更新。
否则,
若收到的项目中的距离<路由表中的距离,则更新
否则什么也不做。
3)若 3分钟内相邻路由器的更新路由表,则认为不可达。
4)返回
RIP的缺点:
1)最大跳数 15跳,限制了网络规模
2)路由器之间交换完整路由表,开销大
3)好消息传得快,坏消息传得慢。
Net1
10.0.0.0 R1 R2 R3
R1告诉 R4,Net1,16,-
R4,Net1,16,R1
R4,Net1,4,R3
R3告诉 R4,Net1,3,R1
R4
7.5.3 OSPF
OSPF( Open Shortest Path First)即开放最短路径优先,又称链路状态协议。
1,OSPF协议的基本特点:
1)向本自治系统内的所有路由器发送信息。即洪泛法。
2)发送的信息是与本路由器相邻的所有路由器的链路状态,即费用、距离、时延、带宽等。
3)只有当链路状态发生改变时,才用洪泛法向所有路由器发送此信息。
OSPF路由表的形成:
链路状态数据库路由表链路状态最小生成树
SPF算法根据分析可见,OSPF能看到一个全网拓扑结构图,并且知道每一条链路的费用,由此构造出路由表。更新过和收敛很快。而 RIP由于看不到全网拓扑结构图,可能出现路径循环问题。
2,OSPF的五种分组类型
1)问候分组( Hello),用于发现和维持邻站的可达性。
2)数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3)链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。
4)链路状态更新分组:用洪泛法向全网发送更新的链路状态。
5)链中状态确认分组:对链路更新分组的确认。
见书 P208图 7- 26
7.5.4 外部网关协议 BGP
BGP是不同自治系统的路由器之间交换路由信息的协议。
使用 BGP协议的原因:
1)因特网的规模太大,使得域间路由选择非常困难。
2)由于各自治系统采用各自独立的路由选择协议,路径费用的算法也各不相同。因此,域间路由选择只可能交换“可达性”的信息。例,“到达目的网络可经过自治系统 A”,寻找最佳路由是不现实的。
3)域间路径选择必须考虑有关策略。例,经过自治系统 C是最好路径,但 C不允许经过。再如,自治系统 A为了安全不希望自己的信息经过某一自治系统。
因此,BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。
AS1 AS2
AS3
BGP
发言人
BGP
发言人
BGP
发言人
每个自治系统至少要设置一个路由器作为该自治系统的 BGP发言人,用以和其它 AS的发言人交换路由信息。
每个 BGP发言人除了运行 BGP外,还运行该 AS
内的内部网关协议。
BGP发言人相互交换了可达性信息后,根据各自采用的策略找出到达各自治系统的较好路由,
构造出自治系统连通图,它是树形,无环路。
BGP支持 CIDR。路由表包括:目的网络前缀、
下一跳、要经过的自治系统序列。
AS
AS AS
AS
AS
AS
§ 7.6 IP多播和因特网组管理协议一,IP多播的引入
多播是指向一个主机组发送 IP数据报。
由于有许多的应用需要由一个源点发送到许多各终点,即一对多的通信。例如,实时的信息交付,
(如股市行情),交互式会议,远程教学等。
多播的数据报仅在传送到路径分岔时才将数据报复制后继续转发。若不是多播,源站一开始就要发送多个数据报。见书 P212,图 7- 39
因此 IP多播的引入节省了网络资源。路由器要运行多播协议。
IP多播的特点
⑴ 多播使用组地址
IP使用 D类地址支持多播。地址前缀为 1110,地址范围:
224.0.0.0-239.255.255.255,每个 D类地址标识一组主机,可以标识 228个主机组。
多播地址只能用于目的地址,而不能用于源地址。
⑵ 永久组地址因特网号码指派管理局分配了一些永久组地址。
如,224.0.0.1 表示在一定范围内网上的所有系统
224.0.0.2 表示在一定范围内网上的所有路由器
⑶ 动态的组成员主机组中的成员是动态的。当一个主机新加入某一个主机组时,它就向多播地址中所有主机发送报文,声明其组员关系。本地的多播路由器收到此报文后,就将此报文转发给其他的多播路由器。
⑷使用硬件进行多播以太网具有硬件多播能力,当网卡地址的第 1
字节中的最低位为 1时表示多播。当多播数据报传到以太网时,以太网就利用硬件进行多播,交付属于该组成员的主机。
四,IGMP协议
IGMP( Internet Group Management Protocol)
是在多播环境下使用的协议。它位于网际层。
IGMP就是用来帮助多播路由器识别加入到一个多播组的成员主机。
IGMP工作两个阶段:
①当某个主机加入新的多播组时,该主机应向多播组的多播地址发送一个 IGMP报文,声明自己要成为该组成员。本地的多播路由器收到 IGMP报文后,
将组成员关系转发到因特网上的其它多播路由器。
②因为组成员关系是动态的,因此,多播路由器要周期性地向探询,以发现某主机是否继续是组的成员。主机收到询问后,作出响应,报告它所属的主机组。
隧道技术( tunneling)
当多播数据报在传输的过程中,若遇到有不运行多播软件的路由器或网络,那么就采用 隧道技术 。
当要通过不运行多播软件的路由器或网络时,路由器首先对多播数据报进行封装,使之成为向单一目的站发送的 单播( unicast) 数据报,然后通过,隧道”( tunnel) 发送到对方路由器,对方路由器恢复数据报为原来的多播数据报,继续向多个目的站转发。
网 1 网 2
R1 R2
例,网 1向网 2中的一些主机进行多播但 R1和 R2并不支持多播。
不支持多播的网络首部 数据首部 数据网 1和网 2中的多播数据报隧道中的单播数据报
§ 7.7 下一代网际协议 IPv6
IPv6 是,互联网协议第六版,的缩写。 IPv6是由 IETF设计的下一代互联网协议,目的是取代现有的互联网协议第四版( IPv4)。
现在大多数使用的互联网协议 IPv4已有 20年的历史。 IPv4在过去的应用具有辉煌的业绩,但是现在看来已经露出很多弊端。最为重要的是地址短缺的问题。
IPv6能够解决 IPv4的许多问题,例如地址短缺。
同时,IPv6还对 IPv4作了大量的改进,包括路由和网络自动配臵等。 IPv6和 IPv4将在过渡期内共存几年,并由 IPv6渐渐取代 IPv4。
IPv6特性
IPv6协议的特性:
更大的地址空间
简化了首部格式:将首部长度固定为 40个字节,称为基本首部,首部字段数减少为 8个,取消了检验和。
灵活的协议:将 IPV4的选项中的功能和分片功能放在可选的扩展首部中,而路由器不处理扩展首部,
因而提高了效率。
允许对网络资源的预分配:以支持实时视像等
允许协议继续演变和增加新的功能:以适应未来技术的发展。
IPV6数据报的格式如下:
1)版本,6
2)通信量类:优先级
3)流标号:对数据报,路由器上预分配的资源标识。
4)有效载荷长度:除基本首部外的字节数。
5)下一个首部:相当于 IPV4的可选字段
当没有扩展首部时,指定上层协议,TCP为 6。
当有扩展首部时,指明下一个首部的类型,
如分片首部,协议包含在最后一个扩展首部中。
6)跳数限制:相当于 IPV4的 TTL
7)源地址
8)目的地址
7.7.2 IPV6的扩展首部
1、扩展首部及下一个首部基本首部 路由选择首部 分片首部
TCP报文下一个首部=分片 下一个首部= TCP( 6)
下一个首部=路由选择
2、分片扩展首部格式
IPV6中分片由源站完成。源站可以采用保证的最小 MTU字节,或者在发送数据前完成最大传送单元发现,以确定沿着该路径到达目的站的最小 MTU。当需要分片时,源站在发送数据前先将数据报分片,保证每个数据报片都小于此路径的 MTU,中间的路由器不再分片。
下一个首部 保留 片偏移 保留 M
标 识 符
M= 1表示后面还有分片,标识符用来标识数据报。
分片扩展首部的格式:
因特网原来被设计为允许改变路由,当某一个路由器发生故障时,可另选路由,而路由的改变,将改变原来的最小 MTU。
IPV6采用隧道技术来解决这一问题。
当中间路由器需要分片时,路由器将创建一个全新的数据报。
基本首部 有效载荷新的基本首部分片 1
扩展首部
F1
新的基本首部分片 3
扩展首部
F3
新的基本首部分片 2
扩展首部
F2
F1 F3F2
7.7.3 IPv6的地址空间
IPV6使用冒号十六进制记法,如
12AB,0000,0000,CD30,0000,0000,0000,0000/60
对一连串的 0可用一对冒号取代,上例可简写为:
12AB::CD30:0:0:0:0/60
12AB:0:0:CD30::/60
7.7.4 从 IPv4到 IPv6的过渡
如何完成从 IPv4到 IPv6的转换是 IPv6发展需要解决的第一个问题。现有的几乎每个网络及其连接设备都支持 IPv4,因此要想一夜间就完成从 IPv4到 IPv6的转换是不切实际的。
可以预见,IPv4向 IPv6的过渡需要相当长的时间才能完成。
过渡策略:双协议栈技术和隧道技术
1.双协议栈技术双协议栈是指在一部分主机和路由器同时装有
IPv6和 IPv4两种协议,该主机既能和 IPv4的主机通信,又能与 IPv6的主机通信。
双协议栈主机或路由器应当同时具有两个 IP地址,一个 IPV4地址和一个 IPV6地址。
目的主机采用哪种地址,可以通过 DNS来查询。
2.隧道技术
随着 IPv6网络的发展,出现了许多局部的 IPv6网络,
但是这些 IPv6网络需要通过 IPv4骨干网络相连。将这些孤立的,IPv6岛,相互联通必须使用隧道技术。利用隧道技术可以通过现有的运行 IPv4协议的 Internet
骨干网络(即隧道)将局部的 IPv6网络连接起来,因而是 IPv4向 IPv6过渡的初期最易于采用的技术。
路由器将 IPv6的数据分组封装入 IPv4,IPv4分组的源地址和目的地址分别是隧道入口和出口的 IPv4地址。
在隧道的出口处,再将 IPv6分组取出转发给目的站点。
隧道技术只要求在隧道的入口和出口处进行修改,对其他部分没有要求,因而非常容易实现。但是隧道技术不能实现 IPv4主机与 IPv6主机的直接通信。
源地址,B
目的地址,E
IPV6 IPV6IPV4 IPV4双协议栈
IPV6/IPV4
双协议栈
IPV6/IPV4
A B
流标号,X
源地址,A
目的地址,F
….
流标号,X
源地址,A
目的地址,F
….
IPv6
数据报
IPV4数据报IPV6数据报 IPV6数据报源地址,B
目的地址,E
IPv6
数据报
IPV4数据报
…
本章小结
1.路由器的构成
2.IP地址(分类、与 MAC地址关系)
3.ARP和 RARP
4.划分子网和子网掩码、超网
5.IP隧道作业:
P224 2,23,25,27
路由器在网际互连中的作用
因特网的网际协议 IP
划分子网和构造超网
因特网控制报文协议 ICMP
因特网的路由选择协议
IP多播和因特网组管理协议
下一代的网际协议 IPv6( IPng)
§ 7.1 路由器在网际互连中的作用一、路由器的构成直接交付:主机 A向主机 B发送数据报时,先检查目的主机 B是否与源主机 A连接在同一个网络中,
若是,就直接发送给主机 B而不需通过路由器。
间接交付:若目的主机 C或 D与源主机 A不在同一个网络中,则必须将数据报发送到本网络上的一个路由器上,再由该路由器按照转发表将数据报发给下个路由器。直到最后一个路由器。
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,
按照分组要去的目的地址,将该分组从某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组,直到该分组到达目的地为止。
路由器工作在网络层。
路由器结构
整个路由器结构可划分为两大部分,路由器选择 部分和 分组转发 部分。(见书 P167,图 7-2)
路由器选择部分是控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
分组转发部分由三部分组成,交换构件,一组输入端口 和一组 输出端口 。
交换构件 的作用是根据转发表对分组进行处理,
将某个输入端口进入的分组从一个合适的输出端口转发出去。
路由器的输入和输出端口中有三个处理模块,分别负责 物理层,数据链路层 和 网络层 的数据处理。当数据通过输入端口进入路由器时,物理层进行比特的接收,数据链路层则按照链路层协议接收传送分组的帧,然后将帧的首部和尾部剥去,
分组就被送入网络层的处理模块。若接收到的分组是路由器之间交换的路由信息,就将这种分组送交路由器的路由选择部分中的路由选择处理机。
若接受到的分组是数据分组,则按照分组首部中的目的地址查找转发表,根据结果,交到相应的输出端口转发出去。
为了匹配速度,分组在发送和接收时都要在缓冲区中排队。
二、互联网与因特网
将网络互相连接起来要使用一些中间设备,ISO中称为中继 ( Relay)系统。根据中继系统工作所在的层次,
分为 5类:
⑴ 物理层,转发器 ( Repeater)或 集线器 ( HUB)。
⑵ 数据链路层,网桥 ( Bridge),交换机 。
⑶ 网络层,路由器 ( Router)。
⑷ 网桥和路由器的混合物 桥路器 ( Brouter)。
⑸ 网络层以上,网关 ( Gateway)。
用于 1,2这二层的并不称之为网络互连,仅仅是把一个网络扩大的,而这仍然是一个网络。
一般讨论的互连网是指用路由器进行互连网络。
注意:有许多有关 TCP/IP的文献将网络层使用的路由器称为网关。
物理层:在 电缆段 之间复制 比特信号(无地址)
网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层中继器、集线器网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层网桥、交换机数据链路层在 网段 之间转发 数据帧(根据物理地址)
数据链路层网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层路由器数据链路层网络层在 网络 之间转发 报文分组(根据逻辑地址)
网络层:
更高层:
连接不同体系结构的网络网络层数据链路层物理层传输层表示层会话层应用层网络层数据链路层物理层传输层表示层会话层应用层物理层网关数据链路层网络层
因特网在 IP层采用了标准化协议。许多计算机网络通过一些路由器进行互连。由于参加互连的计算机网络都使用相同的网际协议 IP,
因此可以将互连以后的计算机网络看成一个虚拟互联网络 ( internet) 。
所谓虚拟互联网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是利用 IP协议可以使这些性能各异的网络从用户看起来好像是一个统一的网络。使用虚拟互联网络的好处是,当互联网上的主机进行通信时,就好像在一个网络上通信一样,它们看不见互连的各具体网络的异构细节 。
§ 7.2 因特网的网际协议 IP
与 IP协议配套使用的还有四个协议
地址解析协议 ARP( Address Resolution
Protocol)
反向地址解析协议 RARP( Reverse Address
Resolution Protocol )
因特网控制报文协议 ICMP( Internet Control
Message Protocol)
因特网组管理协议 IGMP( Internet Group
Management Protocol )
物理硬件与各种网络的接口
RAR PARP
ICMP IGMP
TCP,UDP
各种应用协议以太网、广域网等
TELNET,FTP,SMTP
1 物理层
2 网络接口层
3 网络层
( Internet层)
4 运输层应用层
IP
7.2.1分类 IP地址
1,IP 地址 及其表示方法
IP地址就是给每个连接在因特网上的主机分配一个在全世界范围是唯一的 32位的标识符。 IP地址现在由因特网名字与号码指派公司 ICANN进行分配。
IP地址的编址方法经历了三个阶段:
① 分类 IP地址,最基本的编址方法。
② 子网的划分,对最基本编址方法的改进。
③ 构成超网,较新的无分类编址方法。
,分类”方法是将 IP地址分成两个字段,一个是 网络号
net-id,标识主机所连接到的网络,另一个是 主机号
host-id,标识该主机。
IP地址 ∷ = {<网络号 >,<主机号 >}
网络地址 主机地址
0
第几位,31 30 29 0
网络地址 主机地址
1 0
网络地址
1 1 0
A 类地址
B 类地址
C 类地址主机地址第几位,31 30 0
第几位,31 0
多播标识 组播地址
1 1 1 0
1 1 1 1 0
E类地址 标识
D 类地址
E 类地址第几位,31.,28 0
第几位,31.,,27 0
保留地址路由器转发分组过程
为了转发过程简化而且迅速,对重复的路由做了简化。具体做法,转发表只使用 IP地址中的网络号 net-id来查找路由 。只要 IP数据报能够正确到达目的网络,就可以在这个网络上直接交付给目的主机而不再需要经过其它路由器进行转发。
路由器转发分组步骤,
①先按所要找的 IP地址中的网络号 net-id 把目的网络找到
②当分组到达目的网络后,在利用主机号
host-id将数据直接交付给目的主机。
将 IP地址划分为三个类型,当初是这样考虑的。
各种网络的差异很大,有的网络拥有很多主机,
而有的网络的主机则很少。将 IP地址划分为 A类、
B类,C类可更好地满足不同用户的要求。 A类 IP
地址的网络号数目不多。现在能够申请到的 IP地址只要 B类和 C类。 当某个单位申请到一个 IP地址时,实际是只是获得了一个网络号 net-id。具体的各个主机号 host-id则由该单位自行分配,只要做到该单位管辖的范围内无重复的主机号即可。
由于 IP地址没有得到充分利用,造成浪费;计算机数目增加,IP地址逐渐不够用,于是提出 IPv6
( 128位)。
IP地址点分十进制记法
在主机或路由器中存放的 IP地址都是 32位的二进制代码。为了提高可读性,在写出给人看的
IP地址时,往往每隔 8位用其等效的十进制数字表示,并且在这些数字之间加上一个点。这就是 点分十进制记法 ( dotted decimal notation)。
例:
10000000000010110000001100011111
10000000 00001011 00000011 00011111
128 11 3 31
128.11.3.31
特殊 IP地址
1,网络号为全 0为保留地址,表示,本网络,,
例 0.1.1.35表示在本网络上的主机 35
2,第一个字节 127(即 01111111)为测试地址,表示本主机。如,127.0.0.1
3,主机号全 0表示主机所在的网络地址例:主机 212.111.44.136
– 所在网络的地址为 212.111.44.0
4,主机号全 1表示广播地址,用于向某个网络的所有主机广播
– 例:主机 212.111.44.136
所在网络的广播地址为 212.111.44.255
网络类别 网络数主机数
/
网络号的取值范围网络规模
A 类 224- 2 1 - 126 大型
B 类 214 216- 2 128.0 – 191.255 中型
C 类 221 28- 2 192.0.0 – 223.255.255小型
27- 2
IP地址的使用范围
IP地址的特性
在同一个局域网上的主机或路由器的 IP地址的网络号必须相同
用网桥互连的网段仍然是一个局域网,只能有一个网络号。
路由器的两个或两个以上的 IP地址。
见书 P175 图 7- 9
IP地址与硬件地址首部 应用层数据
TCP报文首部 数据
IP数据报首部 尾部
MAC帧
IP地址硬件地址网络层及以上使用 IP地址
Data link及以下使用硬件地址
( 1) IP地址放在 IP数据报的首部(在网络层以上使用)。
( 2)硬件地址放在 MAC帧的首部(在链路层以下使用)。
IP数据报首部的 MAC帧首部的源地址 目的地址 源地址 目的地址从 H1到 R1 IP1 IP2 HA1 HA3
从 R1到 R2 IP1 IP2 HA4 HA5
从 R2到 H2 IP1 IP2 HA6 HA2
地址解析协议 ARP和反向地址解析协议 RARP
1.为什么需要地址解析协议 ARP
在因特网中,IP地址是所有数据分组传输的逻辑地址。
数据链路层必须使用物理( MAC)地址进行数据通信。
当计算机更换网卡时,将计算机从一个网络移到另一个网络时,MAC地址和 IP地址应如何变化?
地址解析协议工作过程
ARP用于 IP地址映射到 MAC地址 。方法:
1)检查 ARP高速缓存表;
2)若地址不包含在表中,就向网上发广播来寻找。具有该 IP地址的目的站用其 MAC地址作为响应。
A C
我需要 10.1.0.5
的 MAC地址
IP = 10.1.0.5
MAC =
我就是。
这是我的 MAC地址
IP = 10.1.0.5
MAC = 0800.0020.2C0A
B
10.1.0.1 10.1.0.510.1.0.2
需要指出的是,ARP是解决同一个局域网上的主机或路由器的 IP地址和硬件地址的映射问题。若两台主机不在同一网络中,则只能逐段解析。
2.反向地址解析协议 RARP
一台计算机的 IP地址保存在其辅存中,系统启动时找到这个地址。那么对于没有磁盘的机器如何确定自己的 IP地址呢?
RARP协议可以实现 MAC地址到 IP地址的转换。 无盘工作站 在启动时,只知道自己网络接口 MAC地址,而不知道自己的 IP地址。它首先要使用 RARP
得到自己的 IP地址后,才能和其它服务器通信。
在一台无盘工作站启动时,工作站首先以广播方式发出 RARP请求。网络中的 RARP服务器就会根据提供的 MAC地址为该工作站分配一个 IP地址,组织一个 RARP响应包发送回去。
IP数据报的格式版本号 首部长度 服务类型 总长度
DF MF 片偏移
0 3 7 15 19 31
标识生存时间 TTL 协议 首部校验和源 IP地址目的 IP地址选项和填充(最大为 40字节)
数据区
IP数据报首部的固定部分的各字段版本号,4bit,目前版本号为 4,处理报文之前,先检验版本号,保证正确。
首部长度,4bit,它是以 4字节为单位表示长度。 IP报头分为固定部分和选项部分,固定部分正好是 20个字节,而选项部分为变长。如果选项部分长度不为 4
的倍数,则需要填充 1~ 3个字节。
服务类型,8bit,规定了对数据报的处理方式。前 3个比特表示优先级;第 4比特 D,表示要求更低时延;
第 5比特 T,表示要求更高吞吐量;第 6比特 R,表示要求更高可靠性;第 7比特 C,表示要求更低廉路由;
最后一个比特位没用。
总长度,16bit,指首部和数据之和的长度,单位为字节。
报文的分段和重组
不同物理网络数据帧的最大长度不同。因此,IP协议通过分段机制将报文分成小的分段。分段可在任何中间路由器上进行,而重组仅在目的主机上进行。
标识,16bit,使得目的主机来确定新到的分段属于哪一个报文。
标志,3bit,包括禁止分段标志 DF和最后分段标志 MF。
片位移,13bit,指出本分段的第一个字节在初始的 IP
报文中的偏移值,以 8字节为单位。主机
A
MTU= 1500
R1 MTU=
620
R2
主机
B
MTU= 1500
生存时间 TTL( Time To Live ),8bit,为了防止路由表状态出错而导致报文在网络中无休止地传输,则每一个新的 IP报文产生一个生存时间,每经过一个路由器,
其值就减 1,直到为 0,丢弃该报文。
协议,8bit,指示 IP数据部分是由哪一种协议发送的,
接收端则根据该协议类型确定应该把 IP报文中的数据部分交给那一个上层协议处理。(如,TCP 6,UDP 17等)
首部校验和,16bit,用于保证头部数据的完整性。 IP协议没有提供对数据部分的校验。
源地址,4字节,源站的 IP地址。
目的地址,4字节,目的的 IP地址。
IP数据报首部的可变部分,就是一个选项字段。选项字段用来支持排错、测量以及安全措施,内容很丰富。
7.2.5IP层处理数据报的流程
在路由表中,对每一条路由最主要的是:
(目的网络地址,下一跳地址)
数据报的流程:
( 1) IP数据报首先要设法找到目的主机所在目的网络上的路由器(间接交付);
( 2)只有到达最后一个路由器时,才试图向目的主机进行直接交付。
网 1
10.0.0.0
网 2
20.0.0.0
网 3
30.0.0.0
网 4
40.0.0.0R1 R2 R3
R2 的路由表目的主机所在的网络 下一跳路由器的地址
20.0.0.0 直接交付,接口 0
30.0.0.0 直接交付,接口 1
10.0.0.0 20.0.0.7
40.0.0.0 30.0.0.1
当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的 IP地址后,不是将下一跳路由器的 IP地址填入 IP数据报中,而是将下一跳路由器的 IP地址转换成 MAC地址,并将此硬件地址放在链路层的 MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。
§ 7.3 划分子网和构造超网
7.3.1子网的划分
1、划分子网的概念和思路
IP地址设计不合理之处:
⑴ IP 地址空间的利用率有时很低 。
①有些网络对所连主机的数目有限制,不可能达到
IP地址中的主机数目。
②再者从吞吐量角度考虑,过多的主机必然影响网络的吞吐量,使其降低。为了提供吞吐量,网络上的主机也不能太多。
⑵ 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏。 (存储空间和查找时间)
⑶ 两级 IP地址不够灵活 。
为了解决上述问题,从 1985年起在 IP地址中又增加了一个,子网号字段,,使 两级 IP地址 变成 三级 IP地址,它能够较好地解决上述问题,并且使用起来很灵活。这种方法叫做 划分子网 ( subnetting) 。
划分子网基本思路:
⑴一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网( subnet)。
⑵划分子网的方法是 从网络的主机号借用若干比特位作为子网号,而主机号相应减少了若干比特。
IP地址 ∷ = {<网络号 >,<子网号 >,<主机号 >}
⑶ 凡是从其它网络 发送给本单位某个主机的 IP数据报,仍然是根据 IP数据报的目的网络号找到连接在本单位网络上的路由器 。但此路由器在收到 IP数据报后,再按目的网络号和子网号找到目的子网,将 IP数据报交付给目的主机。
对于一个单位的网络,我们将其划分为若干个子网,这些子网在单位内部是不同的,
但是整个网络对外仍表现为一个网络,其网络地址都是同一个。当网络在收到数据报后,再根据数据报的目的地址将其转发到相应的子网。
划分子网前、后的数据传输见书 P188,图 7
- 17,7- 17
2.子网掩码
划分子网后就变成了三级 IP地址结构。但是划分子网只是将 IP地址的本地部分进行再划分,而不改变 IP地址的因特网部分。
那么使计算机知道子网的划分呢?使用 子网掩码
( mask) 解决这个问题。
子网掩码和 IP地址一样长,都是 32位,并且是由一串 1和一串 0组成。 子网掩码中的 1表示在 IP地址中网络号和子网号的对应比特,而子网掩码中的 0表示在 IP地址中主机号的对应比特 。
在划分子网的情况下,网络地址就是主机号臵为全 0的 IP地址。
本地部分网络号 net-id
网络号 net-id
11111111111
网络号 net-id
网络号 net-id
主机号 host-id
sub-id host-id
11111 000000
sub-id 全 0
全 0
因特网部分 本地部分因特网部分网络号 子网号 主机号
(a)两级 IP地址
(b)三级 IP地址
(c)子网掩码
(d) 划分子网时的网络地址
(e) 不划分子网的网络地址
IP地址各字段和子网掩码
掩码,11111111111111111111111100000000
IP地址,11000000101010000000000000000001
网络号 主机号
( 192.168.0) ( 1)
默认的子网掩码
A类
B类
11?1 0000?0
111 000
8bit 24bit
16bit 16bit
C类子网掩码 255.0.0.0
默认值子网掩码 255.255.0.0
默认值子网掩码 255.255.255.0
默认值默认子网掩码,子网掩码中,1” 的长度就是网络号的长度:
111 00?0
24bit 8bit
注意:
子网号越多,每个子网可容纳的主机就越少。
子网号不能为全 0或全 1,若子网号采用 n位,可表示多少个子网?
2n-2
例:对于一个 B类 IP,若要划分为 8个子网,则子网号应占多少位,每个子网可容纳多少台主机,
子网掩码应如何设臵?
4位
212- 2
255.255.240.0
例:对一个 C类地址,若子网掩码为
255.255.240.0,则子网号为多少位?
例:一分组首部中的目的地址为 130.50.15.6
子网掩码为 255.255.252.0,求目的主机的网络号和子网号?
1) 先求网络地址:
130.50.15.6 Λ 255.255.252.0 = 130.50.12.0
2) 求子网号:
12.0 00001100 00000000
子网号目的地址中的子网号为 3
7.3.2使用子网时分组的转发目的网络地址 子网掩码 下一跳地址
128.30.33.0 255.255.255.128 接口 0
128.30.33.128 255.255.255.128 接口 1
128.30.36.0 255.255.255.0 R2(128.30.33.129)
R1的路由表
路由器收到分组后将目的 IP地址与子网掩码相与,取出 IP中的目的网络地址,
将其与路由表的目的网络地址进行比较,
决定如何转发。
7.3.3无分类编址 CIDR(构造超网)
1、网络前缀因特网面临的问题,
1) B类 IP地址已快分配完
2)路由表数目的急剧增长方法是采用 CIDR,特点:
1) CIDR消除了 IP地址分类及划分子网的概念,
用网络前缀来取代网络号和子网号,前缀可为一定的比特数。
IP地址:= {<网络前缀 >,<主机号 >}
也可 采用,/”记法,如 128.14.46.34/20,表示前缀长 20位,后面 12位为主机号。
2) CIDR将网络前缀都相同的连续的 IP地址组成,CIDR”地址块。如 128.14.32.0/20
表示的最小地址和最大地址为:
最小地址
128.14.32.0 10000000 00001110 00100000 0..0
最大地址
128.14.47.255 10000000 00001110 00101111 1..1
在不使用 CIDR时,ISP向客户分配 IP地址时,
只能以 /8,/16,/24来分配。现在没有这种限制。
例某 ISP已拥有地址块 206.0.64.0/18(相当于 64个
C类网络 )。现在某大学需要 800个 IP地址。在不使用 CIDR时,ISP可分配一个 B类地址(浪费很多),或 4个 C类地址(路由表中有 4个项目)。
采用 CIDR后 ISP分配 206.0.68.0/22,相当于 4个 C
类地址块。好处?
地址块 二进制表示 地址数
ISP 206.0.64.0/18 11001110.0~0.01* 16384
大学 206.0.68.0/22 11001110.0~0.010001* 1024
一系 206.0.68.0/23 11001110.0~0.0100010* 512
二系 206.0.70.0/24 11001110.0~0.01000110.* 256
三系 206.0.71.0/25 11001110.0~0.01000111.0* 128
四系 206.0.71.128/25 11001110.0~0.01000111.1* 128
2、最长前缀匹配路由表应为:目的网络地址、网络前缀、下一跳,
前缀越长匹配越具体,当路由表中有多个匹配记录时,应按长的匹配记录转发。
ISP /22大学
/25四系
§ 7.4 因特网控制报文协议 ICMP
一,ICMP报文分类
ICMP( Internet Control Message Protocol)
是一种差错和控制报文协议,用于主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP报文封装在 IP数据报中进行传输。
类型 代码 检验和
(这 4个字节取决于 ICMP报文的类型)
ICMP数据部分
ICMP数据部分
ICMP数据部分IP首部
如何识别一个 IP数据报传送的是 ICMP报文?
IP报文首部中的协议为 1时表示报文的数据部分 ICMP报文。
虽然 ICMP报文由 IP报文传输,但是并不能认为 ICMP是 IP的上层协议,而是 IP协议的补充。
按照协议的功能来分,ICMP报文分为两种:
ICMP差错报告报文和 ICMP询问报文。
ICMP报文格格式:
1、类型见下表:
ICMP报文种类类型值 ICMP报文的含义差错报告报文
3 目的站不可达
4 源站抑制
11 时间超过
12 参数问题
5 改变路由询问报文
8或 0 回送请求或回答
13或 14 时间戳请求或回答
17或 18 地址掩码请求或回答
10或 9 路由器询问或通告
2、代码:进一步区分某种类型中的几种不同情况。
3、检验和:检验整个 ICMP报文。
4、数据部分:由 IP数据报的首部 和 IP数据报的数据字段的前 8个字节 组成。
1、目的站不可达
2、源站抑制:路由器拥塞,请求源站放慢发送。
3.超时报告如果路由表出现错误,可能会出现循环路由,报文会在其中无休止地传输。为了避免这种情况,IP
协议在报文首部中加入了 TTL字段,限制了数据报在网络中的最长停留时间。如果超时,则路由器会把报文丢弃,并产生一个超时报告,发送给源端。
4.参数出错报告当数据报首部中有错误的情况,就丢弃该数据报,
并向源端发送参数出错报告。
5.改变路由报文
N2
① 主机 A→ B 发送 IP数据报,经过 R1
C发送 IP数据报,经过 R2;
但是:主机 A启动后,其路由表中只有默认 R1;
当 A→C 发送数据时,被送到 R1;
② R1 向主机 A发送 ICMP改变路由报文。
指出此数据报应经过的下一个路由器的 R2的 IP地址,主机 A根据收到的信息更新其路由表 。
B
C N3
R1
R2
N1 A
三,ICMP询问报文
ICMP询问报文有 4种:
1.请求 /应答报文该类报文用于测试网络的可达性。
命令,ping 目的站的 IP地址。
ICMP工具程序
PING
PING工具程序可用来发出 ICMP 回送请求包,
以初步排查网络联网异常。
TRACERT
TRACERT工具可找出至目的 IP地址所经过的路有器。
A B
Echo Request
Echo Reply
A BR1 R2
利用 PING来诊断网络问题
1.Ping 127.0.0.1—— 用于测试 TCP/IP协议是否运行正常
2.Ping 本机地址 —— 测试网络设臵(网卡)是否正常
3.Ping 对外连接的路由器(网关) —— 测试内部网络与对外连网的路由器是否正常
4.Ping Internet上计算机的 IP地址 —— 随便找一台 Internet上的计算机,如果有响应,代表 IP设臵全部正常。
5.Ping Internet上计算机的网址 —— 例如 ping
www.sina.com.cn,如果有响应,代表 DNS设臵无误。
2.时间戳请求与应答报文使用时间戳可以让两台机器上的时钟同步和测量时间。
3.掩码地址请求和回答报文主机通过该类报文可从子网掩码服务器得到某个接口的地址掩码。
4.路由器询问和通告报文主机通过该类报文可了解连接在本网络上的路由器是否正常工作。
7.5因特网的路由选择协议
7.5.1有关路由选择协议的几个基本概念
1、理想的路由选择算法
( 1)算法必须是正确的和完整的
( 2)算法在计算上应简单
( 3)算法应能适应通信量和网络拓扑的变化
( 4)算法应具有稳定性
( 5)算法应是公平的
( 6)算法是最佳的:费用最低费用是一个包括:链路长度、数据率、链路容量等因素的综合指标。
路由选择静态路由选择动态路由选择内部网关协议
( RIP,OSPF)
外部网关协议( BGP)
静态路由选择缺点:需手工配置和修改路由表,
不灵活;优点:节省网络带宽和 CPU时间,适全小规模网络。
动态路由选择则相反。因特网采用动态路由选择协议。
2、分层次的路由选择协议
因特网的规模很大,如不分层的话则路由表将非常大,影响路由选择的速度。
因特网被划分为许多小的自治系统 AS。每个自治系统有权决定采用何种路由选择协议。一个自治系统属于一个行政单位来管辖。
AS内采用内部网关协议,AS间采用外部网关协议,见书 P201图 7- 24
7.5.2 RIP
路由信息协议 RIP,是基于距离向量的路由选择协议。距离即“跳数”,直接相连的跳数为 1,RIP中最大跳数只能为 15,16即为不可达。
因此只适合于小型互联网。
RIP的特点:
1)仅和相邻路由器交换信息
2)交换的信息是当前路由器的路由表。
3)按固定的时间间隔交换路由信息,例 30s.
RIP交换路由表的关键是找到到目的网络的最小跳数。
距离向量算法
收到相邻路由器(其地址为 X)的 RIP报文(目的网络,
距离,下一跳):
1)先修改此 RIP报文中的所有记录:将“下一跳” 都设为 X,并将所有的距离+ 1。
2)重复以下步骤:
若项目中的目的网络不在路由表中,则添加。
否则,
若下一跳字段给出的目的地址相同,则更新。
否则,
若收到的项目中的距离<路由表中的距离,则更新
否则什么也不做。
3)若 3分钟内相邻路由器的更新路由表,则认为不可达。
4)返回
RIP的缺点:
1)最大跳数 15跳,限制了网络规模
2)路由器之间交换完整路由表,开销大
3)好消息传得快,坏消息传得慢。
Net1
10.0.0.0 R1 R2 R3
R1告诉 R4,Net1,16,-
R4,Net1,16,R1
R4,Net1,4,R3
R3告诉 R4,Net1,3,R1
R4
7.5.3 OSPF
OSPF( Open Shortest Path First)即开放最短路径优先,又称链路状态协议。
1,OSPF协议的基本特点:
1)向本自治系统内的所有路由器发送信息。即洪泛法。
2)发送的信息是与本路由器相邻的所有路由器的链路状态,即费用、距离、时延、带宽等。
3)只有当链路状态发生改变时,才用洪泛法向所有路由器发送此信息。
OSPF路由表的形成:
链路状态数据库路由表链路状态最小生成树
SPF算法根据分析可见,OSPF能看到一个全网拓扑结构图,并且知道每一条链路的费用,由此构造出路由表。更新过和收敛很快。而 RIP由于看不到全网拓扑结构图,可能出现路径循环问题。
2,OSPF的五种分组类型
1)问候分组( Hello),用于发现和维持邻站的可达性。
2)数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3)链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。
4)链路状态更新分组:用洪泛法向全网发送更新的链路状态。
5)链中状态确认分组:对链路更新分组的确认。
见书 P208图 7- 26
7.5.4 外部网关协议 BGP
BGP是不同自治系统的路由器之间交换路由信息的协议。
使用 BGP协议的原因:
1)因特网的规模太大,使得域间路由选择非常困难。
2)由于各自治系统采用各自独立的路由选择协议,路径费用的算法也各不相同。因此,域间路由选择只可能交换“可达性”的信息。例,“到达目的网络可经过自治系统 A”,寻找最佳路由是不现实的。
3)域间路径选择必须考虑有关策略。例,经过自治系统 C是最好路径,但 C不允许经过。再如,自治系统 A为了安全不希望自己的信息经过某一自治系统。
因此,BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。
AS1 AS2
AS3
BGP
发言人
BGP
发言人
BGP
发言人
每个自治系统至少要设置一个路由器作为该自治系统的 BGP发言人,用以和其它 AS的发言人交换路由信息。
每个 BGP发言人除了运行 BGP外,还运行该 AS
内的内部网关协议。
BGP发言人相互交换了可达性信息后,根据各自采用的策略找出到达各自治系统的较好路由,
构造出自治系统连通图,它是树形,无环路。
BGP支持 CIDR。路由表包括:目的网络前缀、
下一跳、要经过的自治系统序列。
AS
AS AS
AS
AS
AS
§ 7.6 IP多播和因特网组管理协议一,IP多播的引入
多播是指向一个主机组发送 IP数据报。
由于有许多的应用需要由一个源点发送到许多各终点,即一对多的通信。例如,实时的信息交付,
(如股市行情),交互式会议,远程教学等。
多播的数据报仅在传送到路径分岔时才将数据报复制后继续转发。若不是多播,源站一开始就要发送多个数据报。见书 P212,图 7- 39
因此 IP多播的引入节省了网络资源。路由器要运行多播协议。
IP多播的特点
⑴ 多播使用组地址
IP使用 D类地址支持多播。地址前缀为 1110,地址范围:
224.0.0.0-239.255.255.255,每个 D类地址标识一组主机,可以标识 228个主机组。
多播地址只能用于目的地址,而不能用于源地址。
⑵ 永久组地址因特网号码指派管理局分配了一些永久组地址。
如,224.0.0.1 表示在一定范围内网上的所有系统
224.0.0.2 表示在一定范围内网上的所有路由器
⑶ 动态的组成员主机组中的成员是动态的。当一个主机新加入某一个主机组时,它就向多播地址中所有主机发送报文,声明其组员关系。本地的多播路由器收到此报文后,就将此报文转发给其他的多播路由器。
⑷使用硬件进行多播以太网具有硬件多播能力,当网卡地址的第 1
字节中的最低位为 1时表示多播。当多播数据报传到以太网时,以太网就利用硬件进行多播,交付属于该组成员的主机。
四,IGMP协议
IGMP( Internet Group Management Protocol)
是在多播环境下使用的协议。它位于网际层。
IGMP就是用来帮助多播路由器识别加入到一个多播组的成员主机。
IGMP工作两个阶段:
①当某个主机加入新的多播组时,该主机应向多播组的多播地址发送一个 IGMP报文,声明自己要成为该组成员。本地的多播路由器收到 IGMP报文后,
将组成员关系转发到因特网上的其它多播路由器。
②因为组成员关系是动态的,因此,多播路由器要周期性地向探询,以发现某主机是否继续是组的成员。主机收到询问后,作出响应,报告它所属的主机组。
隧道技术( tunneling)
当多播数据报在传输的过程中,若遇到有不运行多播软件的路由器或网络,那么就采用 隧道技术 。
当要通过不运行多播软件的路由器或网络时,路由器首先对多播数据报进行封装,使之成为向单一目的站发送的 单播( unicast) 数据报,然后通过,隧道”( tunnel) 发送到对方路由器,对方路由器恢复数据报为原来的多播数据报,继续向多个目的站转发。
网 1 网 2
R1 R2
例,网 1向网 2中的一些主机进行多播但 R1和 R2并不支持多播。
不支持多播的网络首部 数据首部 数据网 1和网 2中的多播数据报隧道中的单播数据报
§ 7.7 下一代网际协议 IPv6
IPv6 是,互联网协议第六版,的缩写。 IPv6是由 IETF设计的下一代互联网协议,目的是取代现有的互联网协议第四版( IPv4)。
现在大多数使用的互联网协议 IPv4已有 20年的历史。 IPv4在过去的应用具有辉煌的业绩,但是现在看来已经露出很多弊端。最为重要的是地址短缺的问题。
IPv6能够解决 IPv4的许多问题,例如地址短缺。
同时,IPv6还对 IPv4作了大量的改进,包括路由和网络自动配臵等。 IPv6和 IPv4将在过渡期内共存几年,并由 IPv6渐渐取代 IPv4。
IPv6特性
IPv6协议的特性:
更大的地址空间
简化了首部格式:将首部长度固定为 40个字节,称为基本首部,首部字段数减少为 8个,取消了检验和。
灵活的协议:将 IPV4的选项中的功能和分片功能放在可选的扩展首部中,而路由器不处理扩展首部,
因而提高了效率。
允许对网络资源的预分配:以支持实时视像等
允许协议继续演变和增加新的功能:以适应未来技术的发展。
IPV6数据报的格式如下:
1)版本,6
2)通信量类:优先级
3)流标号:对数据报,路由器上预分配的资源标识。
4)有效载荷长度:除基本首部外的字节数。
5)下一个首部:相当于 IPV4的可选字段
当没有扩展首部时,指定上层协议,TCP为 6。
当有扩展首部时,指明下一个首部的类型,
如分片首部,协议包含在最后一个扩展首部中。
6)跳数限制:相当于 IPV4的 TTL
7)源地址
8)目的地址
7.7.2 IPV6的扩展首部
1、扩展首部及下一个首部基本首部 路由选择首部 分片首部
TCP报文下一个首部=分片 下一个首部= TCP( 6)
下一个首部=路由选择
2、分片扩展首部格式
IPV6中分片由源站完成。源站可以采用保证的最小 MTU字节,或者在发送数据前完成最大传送单元发现,以确定沿着该路径到达目的站的最小 MTU。当需要分片时,源站在发送数据前先将数据报分片,保证每个数据报片都小于此路径的 MTU,中间的路由器不再分片。
下一个首部 保留 片偏移 保留 M
标 识 符
M= 1表示后面还有分片,标识符用来标识数据报。
分片扩展首部的格式:
因特网原来被设计为允许改变路由,当某一个路由器发生故障时,可另选路由,而路由的改变,将改变原来的最小 MTU。
IPV6采用隧道技术来解决这一问题。
当中间路由器需要分片时,路由器将创建一个全新的数据报。
基本首部 有效载荷新的基本首部分片 1
扩展首部
F1
新的基本首部分片 3
扩展首部
F3
新的基本首部分片 2
扩展首部
F2
F1 F3F2
7.7.3 IPv6的地址空间
IPV6使用冒号十六进制记法,如
12AB,0000,0000,CD30,0000,0000,0000,0000/60
对一连串的 0可用一对冒号取代,上例可简写为:
12AB::CD30:0:0:0:0/60
12AB:0:0:CD30::/60
7.7.4 从 IPv4到 IPv6的过渡
如何完成从 IPv4到 IPv6的转换是 IPv6发展需要解决的第一个问题。现有的几乎每个网络及其连接设备都支持 IPv4,因此要想一夜间就完成从 IPv4到 IPv6的转换是不切实际的。
可以预见,IPv4向 IPv6的过渡需要相当长的时间才能完成。
过渡策略:双协议栈技术和隧道技术
1.双协议栈技术双协议栈是指在一部分主机和路由器同时装有
IPv6和 IPv4两种协议,该主机既能和 IPv4的主机通信,又能与 IPv6的主机通信。
双协议栈主机或路由器应当同时具有两个 IP地址,一个 IPV4地址和一个 IPV6地址。
目的主机采用哪种地址,可以通过 DNS来查询。
2.隧道技术
随着 IPv6网络的发展,出现了许多局部的 IPv6网络,
但是这些 IPv6网络需要通过 IPv4骨干网络相连。将这些孤立的,IPv6岛,相互联通必须使用隧道技术。利用隧道技术可以通过现有的运行 IPv4协议的 Internet
骨干网络(即隧道)将局部的 IPv6网络连接起来,因而是 IPv4向 IPv6过渡的初期最易于采用的技术。
路由器将 IPv6的数据分组封装入 IPv4,IPv4分组的源地址和目的地址分别是隧道入口和出口的 IPv4地址。
在隧道的出口处,再将 IPv6分组取出转发给目的站点。
隧道技术只要求在隧道的入口和出口处进行修改,对其他部分没有要求,因而非常容易实现。但是隧道技术不能实现 IPv4主机与 IPv6主机的直接通信。
源地址,B
目的地址,E
IPV6 IPV6IPV4 IPV4双协议栈
IPV6/IPV4
双协议栈
IPV6/IPV4
A B
流标号,X
源地址,A
目的地址,F
….
流标号,X
源地址,A
目的地址,F
….
IPv6
数据报
IPV4数据报IPV6数据报 IPV6数据报源地址,B
目的地址,E
IPv6
数据报
IPV4数据报
…
本章小结
1.路由器的构成
2.IP地址(分类、与 MAC地址关系)
3.ARP和 RARP
4.划分子网和子网掩码、超网
5.IP隧道作业:
P224 2,23,25,27