主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-1
IP 数据报格式
ver length
32 bits
data
(可变长度,
一般为一个 TCP
或 UDP 数据段 )
16-bit identifier
Internet
checksum
time to
live
32 bit source IP address
IP 协议版本号
首部长度
(bytes)
余留步跳
(在经过
每个路由器后递减 )
用于
分包 /
重装
数据报长度 (bytes)
用来递交有效负荷的
上层协议
head.
len
type of
service数据“类型”
flgs fragmentoffset
upper
layer
32 bit destination IP address
Options (if any) E.g,时间戳,纪录路由标记,定义要访问
的路由器
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-2
IP 分包 & 重组
? 网络链路具有 MTU (最大传输单
位 )属性 – 是有链路层最大帧的
限制决定的,
? 不同类型的链路,不同的
MTUs
? 较大的 IP分组在网络中会被分
割 (“fragmented”)
? 一个分组就被分成了若干分

? 分组只是在最终的信宿站点
被重新“组装 -
reassembled”
? 在 IP 分组的首部有些位标记
用来确认和排序相关的组“
片”
fragmentation,
in,one large datagram
out,3 smaller datagrams
reassembly
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-3
IP 分片和重组
ID
=x
offset
=0
fragflag
=0
length
=4000
ID
=x
offset
=0
fragflag
=1
length
=1500
ID
=x
offset
=1480
fragflag
=1
length
=1500
ID
=x
offset
=2960
fragflag
=0
length
=1040
一个大的分组被划为若干较小的分组
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-4
ICMP,因特网控制报文协议 (Internet
Control Message Protocol)
? 用于主机、路由器、网关之间交
换网络层信息
? 报告错误, unreachable
host,network,port,
protocol
? 进行 request/reply 应答
(ping命令 )
? 同处于网络层但“凌驾”于 IP
之上,
? ICMP报文需要 IP分组来传

? ICMP 报文, type,code plus
first 8 bytes of IP datagram
causing error
Type Code description
0 0 echo reply (ping)
3 0 dest,network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-5
因特网中的路由选择
? 全球因特网是由诸多 Autonomous Systems (AS)互联而
成,
? 小型自治系统( Stub AS), 中小型企业
? 分区自治系统( Multihomed AS),大型企业 (非跨越的 )
? 跨越式自治系统( Transit AS), NBP等
? 两层路由选择,
? Intra-AS:由网管决定
? Inter-AS:唯一性的标准
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-6
因特网的 AS层次
Inter-AS 边界 (外部网关 ) 路由器
Intra-AS 内部 (网关 ) 路由器
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-7
Intra-AS路由选择
? 也称为内部网关协议 Interior Gateway Protocols
(IGP)
? 最常用的 IGP有,
? RIP,Routing Information Protocol(路由选择信息
协议 )
? OSPF,Open Shortest Path First(开放式最短路
径优先(协议) )
? IGRP,Interior Gateway Routing Protocol (内部
网关路由选择协议,Cisco产权 )
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-8
RIP ( Routing Information Protocol)
? 距离向量算法 (Distance vector algorithm)
? 含在 BSD-UNIX 1982版中
? 距离的度量单位, # of hops (max = 15 hops)
? Can you guess why?
? 距离向量, 通过 Response报文每隔 30秒交换一次 (也称为
广告 -advertisement)
? 每次广告, 发布最多为 25 信宿的路由
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-9
RIP (Routing Information Protocol)
Destination Network Next Router Num,of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…,….,...
w x y
z
A
C
D B
路由器 D中的路由表
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-10
RIP,链路失效和恢复
如果某条链路在 180秒内没有被听到广告 --> 相邻 结点 /链路
被申明取消 (declared dead)
?经由该结点的路由被终止
?新的广告送往所有其他相 邻 结点
?其他相 邻 结点依次发出新的广告 (如果路由表发生变化 )
?这样链路失效的信息迅速传遍整个网络
?使用抑毒措施来防止乒乓循环 (设置有限距离 = 16
hops)
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-11
RIP路由表处理
? RIP路由表通过应用层的进程 route-d (daemon-守护
程序 )来管理
? 由应用层进程管理的路由表为通过 UDP的广告调用,并
周期性重复
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-12
RIP 路由表举例
Router,giroflee.eurocom.fr
? 连接 3个 C 类网络 (LAN)
? 路由器仅仅知道所连 LAN的路由
? 默认路由器 (Default router)用于,go up(上行 )”
? 组播地址路由 (Route multicast address),224.0.0.0
? 回授接口 (Loopback interface,for debugging)
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
127.0.0.1 127.0.0.1 UH 0 26492 lo0
192.168.2,192.168.2.5 U 2 13 fa0
193.55.114,193.55.114.6 U 3 58503 le0
192.168.3,192.168.3.5 U 2 25 qaa0
224.0.0.0 193.55.114.6 U 3 0 le0
default 193.55.114.129 UG 0 143454
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-13
OSPF (Open Shortest Path First) 开放式最短
路径优先(协议)
?, open-开放”, 向公众开放
? 使用链路状态算法 (Link State algorithm)
? LS 分组传播
? 在每个结点存放网络的拓扑图
? 路由计算使用 Dijkstra算法
? OSPF 广告为每个相邻的路由器配置一个条目
? 广告弥散到 整个 AS (via flooding-泛洪法 )
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-14
OSPF,先进”性 (RIP所不具备的 )
?安全性, 所有的 OSPF 报文须经认证 (以防止各种
可能的攻击 ); 使用 TCP连接
?多 个等值 路径 允许同时存在 (而在 RIP中只能存在
一条 )
?对每条链路来说,对不同的 TOS (eg,在卫星链路
上将尽力而为的服务设成“低值” ; 而将实时应用
设成高值 )可产生多种成本计算标准
?多种成本计算标准可以支持集成化的单播和 组播
(multicast),
?组播 OSPF (MOSPF)使用与 OSPF相同的拓扑数据库
?在大型域中可以使用 层次型 OSPF
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-15
层次型 OSPF
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-16
层次型 OSPF
? 双层结构, 本地,主干,
?链路状态只是在本地范围内广告
?每个结点具有详细的本地拓扑 ; 对其他区域中的网络仅
知在某个方向 (最短路径 ),
? 区界路由器 (Area border routers):,汇总”了所在区域
中到达各网络的距离,同时向其他区界路由器发广告,
? 主干路由器 (Backbone routers),仅限于在主干上运行
OSPF 路由算法,
? 边界路由器 (Boundary routers),连接其他的 AS.
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-17
IGRP (Interior Gateway Routing Protocol)
内部网关路由选择协议
? CISCO产权 ; RIP 的后继者之一 (mid 80s)
? 路由向量算法,类似 RIP
? 采用若干成本计算标准 (delay,bandwidth,
reliability,load etc)
? 使用 TCP交换路由更新信息
? 通过基于 扩散计算的 分布式更新算法 (DUAL) 产生无循
环的路由选择
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-18
Inter-AS路由选择
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-19
因特网 inter-AS路由选择, BGP
? BGP (Border Gateway Protocol,边界网关协议 ),事
实上的 标准
? 路径向量 (Path Vector) 协议,
?与距离向量协议类似
?每个边界网关 (Border Gateway)向其对等的相邻实
体 (peers)广播通往信宿的 整条路经 (I.e,一系列
ASs)
? E.g.,网关 X可以发送从它通往信宿 Z的路经,
Path (X,Z) = X,Y1,Y2,Y3,…,Z
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-20
因特网 inter-AS路由选择, BGP
假设, 网关 X向对等网关 W发送了它存有的路经
? W 可以选择或不选择 X所提供的路经
?成本,策略 (不通过竞争对手的 AS),预防循环等缘由,
? 如果 W 选择了 X广告的路经,那么,
Path (W,Z) = w,Path (X,Z)
? 注意, X 可以通过向其他对等实体发布路由信息来控制所
进入的通信流量,
? e.g.,不让路由通过 Z -> 不要发布有关通向 Z的广告
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-21
因特网 inter-AS路由选择, BGP
? BGP 使用 TCP交换报文,
? BGP报文,
? OPEN,打开通往对等实体的 TCP连接并对发送者进行
认证
? UPDATE,刊出新的路经 (或撤销旧路经 )
? KEEPALIVE, 在不进行 UPDATES时保持连接的激活 ;
也用来 ACKs OPEN 请求
? NOTIFICATION,报告先前报文的错误 ;也用来关闭
连接
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-22
为什么 Intra- 和 Inter-AS路由选择不同?
策略,
?Inter-AS,网管需要控制自己信息流通的路经,还
有谁能路经并通过其管辖的网络,
?Intra-AS,单一的管理体制,无需选择策略
规模,
?层次型路由选择可以缩小路由表,并减少更新流量
性能,
?Intra-AS,将注意力集中在性能上
?Inter-AS,策略的考虑要超过对性能的要求
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-23
路由器结构概述
路由器的两个关键功能,
? 运行路由算法 /协议 (RIP,OSPF,BGP)
? 交换 分组于输入链路到输出链路之间
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-24
输入端口功能
分散化的交换,
? 按照给出的分组信宿,使用输入端口的内存
中存储的路由选择表,查找输出端口
? 目标, 以“线路速度”完成输入端口的处理
? 排队, 假如分组到达的数度快于转发到交换
网络的( switch fabric)速度时
物理层,
位流级的接收
数据链路层,
e.g.,Ethernet
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-25
输入端口上的排队
? 交换网络的处理速度低于所有输入端口之和 -> 导致分组
在输入端口的队列中排队
? 排头( Head-of-the-Line (HOL))阻塞, 在队列的排头
上的分组挡住了其他分组的前移
? 由于输入缓存的溢出导致了排队延迟和数据丢失 !
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-26
三类交换网络
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-27
内存交换( Switching Via Memory)
第一代路由器,
?分组通过系统的(单个) CPU拷贝
?速度受到内存带宽的限制 (每个分组需 2次穿越系统总
线 )
Input
Port
Output
Port
Memory
System Bus
现代路由器,
?输入端口处理器执行查询路由表、和拷贝的功能
? Cisco Catalyst 8500
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-28
总线交换( Switching Via Bus)
? 分组通过一条共享的总线从输入端口
的内存传递到输出端口的内存
? 总线竞争, 交换速率受限于总线的带

? 1 Gb/s总线,Cisco 1900,对访问接入
和企业级的路由器已经足够 (但还不适
应在区域或主干级线路上使用 )
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-29
通过内联网络交换( Switching Via An
Interconnection Network)
? 克服了总线带宽的限制
? Banyan networks,内联网络技术在发展初期是用来连
接多处理器系统中的处理器的
? 设计先进, 把分组分割成固定长度的单元,再把这些单
元送入交换网络
? Cisco 12000,通过内联网络交换速度为若干 Gb/s
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-30
输出端口
? 缓存 当来自交换网络的分组到达速度高于传输速率时
,需要进行缓存
? 调度原则 从队列中的分组中选择传输
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-31
输出端口的排队
? 当交换速度 超过 输出线路的速率时,需要进行缓存
? 输出端口的溢出会造成排队(延迟)和数据丢失 !
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-32
IPv6
?初始的动机, 32-bit 的地址空间预计在 2008将全
部分配出去,
?其他动机,
?改革首部格式帮助加速处理 /转发
?改革首部实现 QoS
?新型,任意播 -anycast”地址的实现, 实现在若干备份
服务器中寻求,最佳,路由
?IPv6 分组格式,
?固定长度的 40 byte首部
?不支持分组分割
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-33
IPv6 首部
Priority,确定数据流中分组的优先级
Flow Label,确认同一,flow”中的分组
(“flow” 的概念尚未定义完善 ).
Next header,定义用来传送数据的上层协议
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-34
其他不同于 IPv4的修改
?Checksum,完全取消,以减少每个步跳上的处
理时间
?Options,允许使用,但不再是首部的内容,而是
由,Next Header” 字段说明
?ICMPv6,ICMP的新版本
?新增报文类型,e.g.,Packet Too Big”
?组播管理功能
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-35
由 IPv4 向 IPv6的迁移
?并不是所有的路由器都能够在同一时刻升级
?不能采用,易帜日,的办法
?但是网络如何能够在 IPv4和 IPv6路由器共存的情
况下运行?
?两种建议的途径,
?双栈 (Dual Stack),某些具有双栈 (v6,v4)的路由器
可以将两种地址格式进行,翻译 -translate”
?隧道 (Tunneling),IPv6可以作为 IPv4的负荷
(payload)通过 IPv4的路由器
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-36
双栈 (Dual Stack)方式
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-37
隧道 (Tunneling)
在必要时将 IPv6藏入 IPv4
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-38
网络层组播的路由选择
?因特网的 TCP,IP协议实际上解决的是点对点的
数据传输,也称为单播 (unicast)
?在网络中存在大量的应用需要解决一个或多个
发送方须将数据发送到 一组接收方
?一个网络软件的升级
?流媒体的发送(网上实况转播)
? WWW的镜像站点的更新
?此类应用的抽象称为 多播或组播 (Multicast)
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-39
网络层组播的路由选择
?实现网络组播的两种基本途径
?由发送端发送多个单播给不同的接受方
? +不必修改因特网网络层的现行结构
? -不可能改善网络的流量状况
?在网络层增加对多播的技术支持
? +可以更有效的利用网络带宽(只需在链路上发
送一份拷贝)
? -实现具有多播功能的网络层需要做大量的技术
改进
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-40
网络层的组播
?在多播通信中,我们面临两个严重的问题,而
在单播通信中这些问题是不存在的
?如何确认多播分组的接受方
?如何给多播分组编址
?在单播通信中,IP分组中的地址指明了唯一的
接受方,但在多播分组中是否可以通过增加接
收方的地址来解决
?即使这个方案可行,也只能满足少量的用户,
如果有成千个接受方,IP的数据承载空间就会
让地址蚕食掉
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-41
网络层的组播
?显式的定义接受方,发送方就需要接受方的身
份和地址
?因此,在因特网和 ATM网络中,使用了地址间
接( address indirection)的方法,也就是一
组用户使用唯一性的单一的标识。多播的分组
使用该标识将分组传到所有加入该组的接收方
?在因特网中,专门保留了一类地址( Class D
)用来处理多播,称为多播组( multicast
group)
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-42
网络层组播的示意
128.119.40.186
128.59.16.20
128.34.108.63
128.34.108.60
Mcast group
226.17.30.197
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-43
网络层组播的工程问题
?这里要说明的是,多播地址和主机地址的“两
张皮”的问题必须要解决
?虽然多播问题的抽象很简单,但会出现成堆的
问题:
?何时成组,何时撤销?
?如何选择组地址?
?无论作为发送方或者是接受方,新主机如何加入多
播组?
?入组是否来去自由,或由谁来控制?
?在因特网中这些问题的解决需要由 IGMP来完

主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-44
IGMP,Internet Group Management
Protocol v2 [RFC 2236]
?该协议在主机和其直接连接的路由器之间进行
交互
?IGMP为需要加入多播的主机提供了一种手段
,通过这种手段,主机可以申请加入多播组
?当然还需要其他协议,来协调所有的路由器将
多播分组穿越网络到达信宿
?这些协议通过网络层多播路由选择算法来完成
相应的功能 (PIM,DVMRP,MOSFP)
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-45
IGMP的工作范围
Wide area
Multicast
routing
IGMP
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-46
IGMP报文工作过程
Query report
IGMP报文类型
Membership query,
general
Membership query,
specific
Membership report
Leave group
发送方
路由器
路由器
主机
主机
目的
查询加入多播组的主机
查询加入多播组的特定主

报告申请或已经加入多播

报告推出特定的多播组
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-47
组播的路由选择问题
A
B
C
D
EF
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-48
组播的路由选择问题
A
B
C
D
EF
A
B
C
D
EF
A single,share tree
多播分组仅沿粗线传递
链路为双向的
Two source-based trees
按发送端来组建路由选择树
某些链路可能只是单向传输
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-49
因特网的多播路由选择
?DVMRP:Distance Vector Routing Protocol
?MOSPF:Multicast Open Shortest First
?CBT:Core-Based Trees
?PIM:Protocol Independent Multicast
?现实的问题是,因特网中具有多播功能的路由
器是极少数,如果某个多播路由器处于“孤岛
”状态,它将如何进行工作
?用“隧道方案”加以解决 (p215)
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-50
因特网的多播路由选择
?DVMRP:在因特网中得到广泛应用
?使用基于信源树 (source-based tree)方案
?实现了反向路径转发 (reverse path forwarding)
?实现了路径的嫁接,修剪
?MOSPF:在一个使用 OSPF的 AS内部运行
?扩展了 OSPF,在链路状态广告中加入了多播组信息
?所有路由器不仅了解网络拓扑,而且知道网络边缘路
由器上多播组
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-51
因特网的多播路由选择
?CBT:在一个核心 (core)的基础上,实现双向,同
组共享的路由树
?PIM:独立于网络层的协议,分成两种实现模式
?紧密型 (dense mode),泛洪 +修剪 +RPF
?松散型 (spare mode),基于核心的模式
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-52
Inter-AS 的多播路由
?上述的多播讨论是基于使用同样的多播协议
?但在不同的 AS之间可能采用的多播协议不同
?在不同 AS之间的多播协议在因特网上缺位
?DVMRP目前是 事实上 (de facto)的 Inter-AS
的多播路由协议,但对因特网上松散的入组用户
并不适宜
?这个领域的工作尚在进行 …
主讲人,西安交通大学 程向前 第 5讲 网络层之二 5b-53
本讲小结
?网络层的服务
?路由选择原理
?分层的路由选择
?IP协议
?因特网的路由选择协议
?域内路由选择
?域间路由选择
?路由器组成原理
?IPv6
?组播的路由选择
?因特网的网络层现状,
无带宽承诺
无实时性保障
无 QoS
有待于逐步改进