- 网络层服务
- 虚电路网络
- 数据报网络
- IP协议
- Internet网络层
- IP数据报(分组)格式
- IP分片
- IPv4编址
- CIDR与路由聚合
- 练习
- 题1 IP报文
- 题2 IP分片
- 题3 IP地址
- 题4 CIDR
- 题5 子网划分
- 题6 考虑互联3个子网(子网1、子网2和子网3)的一台路由器。假定在这3个子网的每个子网中的所有接口要求具有前缀223.1.17/24。还假定子网1要求支持多达60个接口,子网2要求支持多达90个接口和子网3要求支持多达12个接口。提供3个满足这些限制的网络地址(形式为a. b.c.d/x)。
- 题7 关于TCP/IP的IP层协议描述不正确的是(D)
- 题8 考虑具有前缀128.119.40.128/26 的一个子网。给出能被分配给该网络的一个IP地址(形式为xxx.xxx.xxx.xxx)的例子。假定一个ISP拥有形式为128.119.40.64/26的地址块,假定他要从该地址块生成四个子网,每块具有相同数量的IP地址。这四个子网的前缀是什么?
- 题9 路由器有IP地址吗?如果有,有多少个?
- 题10 考虑向具有700字节MTU的一条链路发送一个2400字节的数据报。假定初始数据报标有标识号422。将会生成多少个分片?在生成相关分片的数据报中的各个字段中的值是多少?
- 题11 假设某应用每20ms生成一个40字节的数据块,每块封装在一个TCP报文段中,TCP报文段再封装在一个IP数据报中。每个数据报的开销有多大?应用数据所占百分比是多少?
- 题12 请回答下列问题:
- DHCP协议
- 网络地址转换(NAT)
- 互联网控制报文协议(ICMP)
- IPv6简介
- 路由算法
网络层服务
概述
网络层核心功能-转发与路由
网络层核心功能-连接建立
网络层服务模型
连接服务与无连接服务
练习
题1

- 答案为ABCD
虚电路网络
虚电路(Virtual circuits)
VC的具体实现
VC转发表
虚电路信令协议(signaling protocols)
数据报网络
数据报转发表
最长前缀匹配优先
数据报网络 or VC网络?
练习
题1

- 答案为BC
IP协议
Internet网络层
IP数据报(分组)格式
版本号字段占4位
- IP协议的版本号
-
首部长度字段占4位:
IP分组首部长度 以4字节为单位
-
服务类型(TOS)字段占8位:指示期望获得哪种类型的服务
1998 年这个字段改名为区分服务
- 只有在网络提供区分服务(DiffServ)时使用
一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H
标识、标志、片偏移
-
总长度字段占16位:IP分组的总字节数(首部+数据)
最大IP分组的总长度:65535B
- 最小的IP分组首部:20B
-
生存时间(TTL)字段占8位:IP分组在网络中可以通过的 路由器数(或跳步数)
路由器转发一次分组,TTL减1
-
协议字段占8位:指示IP分组封装的是哪个协议的数据包
实现复用/分解
E.g. 6为TCP,表示封装的为TCP段;17为UDP,表示封装的是 UDP数据报
首部校验和字段占16位:实现对IP分组首部的差错检测
计算校验和时,该字段置全0
- 采用反码算数运算求和,和的反码作为首部校验和字段
-
源IP地址、目的IP地址字段各占32位
分别标识发送分组 的源主机/路由器(网络接口)和接收分组的目的主机/路由器 (网络接口)的IP地址
选项字段占长度可变,范围在1~40B之间
携带安全、源 选路径、时间戳和路由记录等内容
-
填充字段占长度可变,范围在0~3B之间
目的是补齐整个 首部,符合32位对齐,即保证首部长度是4字节的倍数
IP分片
最大传输单元(MTU)
IP分片与重组
IP分组格式
IP分片过程
例子
IPv4编址
接口
IP子网(Subnets)
有类IP地址
特殊IP地址
私有(Private)IP地址
子网划分
子网掩码
CIDR与路由聚合
CIDR
路由聚合
练习
题1 IP报文

-
题2 IP分片

-
题3 IP地址

-
题4 CIDR

-
题5 子网划分

-
题6 考虑互联3个子网(子网1、子网2和子网3)的一台路由器。假定在这3个子网的每个子网中的所有接口要求具有前缀223.1.17/24。还假定子网1要求支持多达60个接口,子网2要求支持多达90个接口和子网3要求支持多达12个接口。提供3个满足这些限制的网络地址(形式为a. b.c.d/x)。
子网 1:223.1.17.192/26
- 子网 2:223.1.17.0/25
- 子网 3:223.1.17.128/28
题7 关于TCP/IP的IP层协议描述不正确的是(D)
A. 是点到点的协议 B. 不能保证IP报文的可靠传送
C. 是无连接的数据包传输机制 D. 每一个IP包都需要对方应答
解:B 中,IP 提供的是不可靠的数据传输,它不能保证数据包都到达目的地。当发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息给信源。任何要求的可靠性必须由上层来提供。
C中,IP层协议是无连接的数据包传输机制。无连接指IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。题8 考虑具有前缀128.119.40.128/26 的一个子网。给出能被分配给该网络的一个IP地址(形式为xxx.xxx.xxx.xxx)的例子。假定一个ISP拥有形式为128.119.40.64/26的地址块,假定他要从该地址块生成四个子网,每块具有相同数量的IP地址。这四个子网的前缀是什么?
解:我们需要划分四个子网,所以需要两个比特位来区分,即00 01 10 11,最后一个字节地址分别为01000000、01010000、01100000、01110000:
即四个子网:128.119.40.64/28 128.119.40.80/28 128.119.40.96/28 128.119.40.112/28题9 路由器有IP地址吗?如果有,有多少个?
答:有,每个接口有一个IP地址。题10 考虑向具有700字节MTU的一条链路发送一个2400字节的数据报。假定初始数据报标有标识号422。将会生成多少个分片?在生成相关分片的数据报中的各个字段中的值是多少?
解:一片能装的最大字节d=680,n=2400/680=4片。
因此需要 4 个分片。每个IP 数据报都有相同的标识号 422;4个数据报的偏移分别是 0、85、170、255;
DF为0,最后一片MF为0;题11 假设某应用每20ms生成一个40字节的数据块,每块封装在一个TCP报文段中,TCP报文段再封装在一个IP数据报中。每个数据报的开销有多大?应用数据所占百分比是多少?
解:TCP报文段首部是20字节,IP数据报报文段首部是20字节,所以每个数据报的开销为20+20+40=80字节,应用数据所占百分比是50%。题12 请回答下列问题:
(1)主机在配置IP地址时,其正确的子网掩码和默认网关分别是多少?
解:子网掩码:255.255.255.240,默认网关:192.168.1.1
(2)若路由器R在向互联网转发一个由主机192.168.1.5发送、ID=12345、length=500B、DF=1的IP分组时,则该IP分组首部的哪些字段会被修改?如何修改?
解:TTL会减1;源IP地址会被替换为130.11.22.3;checksum会被重新计算。
(3)若主机192.168.1.10向互联网ID=6789、length=1500B、DF=0的IP分组时,路由器需要将该IP分组分为几片(每片尽可能封装为最大片)?给出分片结果,包括每片的ID、DF、MF、length、offset的取值。
一片能封装的最大数据d=[(512-20)/8]*8=488;n=[(1500-20)/488]=4
| offset | length | ID | DF | MF |
|---|---|---|---|---|
| 61 | 508B | 6789 | 0 | 1 |
| 122 | 508B | 6789 | 0 | 1 |
| 183 | 508B | 6789 | 0 | 1 |
| 244 | 36B | 6789 | 0 | 0 |
DHCP协议
如何获得IP地址?
“硬编码”
动态主机配置协议-DHCP: Dynamic Host Configuration Protocol
- 从服务器动态获取:
- • IP地址
- • 子网掩码
- • 默认网关地址
- • DNS服务器名称与IP地址
- “即插即用”
- 允许地址重用
- 支持在用地址续租
-
动态主机配置协议(DHCP)
DHCP工作过程示例
DHCP协议在应用层实现
请求报文封装到 UDP数据报中
- IP广播
-
DHCP服务器构造 ACK报文
包括分配给客户的 IP地址、子网掩码 、默认网关、DNS 服务器地址
练习
题1 DHCP

答案为ACD;对于B,请求报文要封装到UDP数据报中,所以要使用传输层服务。
题2 某网络拓扑如图所示,其中路由器内网接口、DHCP服务器、WWW服务器与主机1均采用静态IP地址配置,相关地址信息见图中标注;主机2~主机N通过DHCP服务器动态获取IP地址等配置信息

请回答下列问题。
(1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是什么?主机2使用DHCP协议获取IP地址的过程中,发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是什么?
解:DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是:111.123.15.5~111.123.15.254;主机2发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是0.0.0.0和255.255.255.255。
(2)主机2在通过DHCP服务器获取IP地址的同时还可以获取哪些IP地址配置所必须的信息?
解:主机2在通过DHCP服务器获取IP地址的同时还可以获取:子网掩码(255.255.255.0)、默认网关(111.123.15.1)和域名服务器IP地址。
(3)若主机1的子网掩码和默认网关分别配置为255.255.255.0和111.123.15.2,则该主机是否能访问WWW服务器?是否能访问Internet?请说明理由。
解:主机1能访问WWW服务器,但不能访问Internet。由于主机1的子网掩码配置正确而默认网关IP地址被错误地配置为111.123.15.2(正确IP地址是111.123.15.1),所以主机1可以访问在同一个子网内的WWW服务器,但当主机1访问Internet时,主机1发出的IP分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。网络地址转换(NAT)
动机
实现
NAT主要争议
NAT穿透问题
解决方案1 静态配置
解决方案2 UPnP
解决方案3 中继
练习
题1 NAT

-
互联网控制报文协议(ICMP)
ICMP概述
ICMP支持主机或路由器:
差错(或异常)报告
-
两类ICMP 报文:
差错报告报文(5种)
- • 目的不可达
- • 源抑制(Source Quench)
- • 超时/超期
- • 参数问题
- • 重定向 (Redirect)
网络探询报文(2组)
几种不发送 ICMP差错报告报文的特殊情况:
- 对ICMP差错报告报文不再发送 ICMP差错报告报文
- 除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错 报告报文
- 对所有多播IP数据报均不发送 ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送 ICMP 差错报告报文
几种 ICMP 报文已不再使用:
-
IPv6简介
动机
IPv6数据报格式
其他改变 vs IPv4
IPv6地址表示形式
IPv6基本地址类型
IPv4向IPv6过渡
隧道(tunneling)
练习
题1 IPv6

-
题2 有人说当IPv6建隧道通过IPv4路由器时,IPv6将IPv4隧道作为链路层协议。你同意这种说法么?为什么?
答:我不同意这种说法,IPv4的原理是用一个IPv4数据报把IPv6数据报封装起来,IPv6数据报相当于封装后数据报的有效载荷。这个隧道应该属于网络层协议。
路由算法
链路状态路由算法
Dijkstra 算法
例1
例2
Dijkstra 算法:讨论
距离向量路由算法
Bellman-Ford方程
Bellman-Ford 举例
距离向量路由算法
距离向量路由算法:举例
距离向量DV: 链路费用变化
距离向量DV: 无穷计数问题
层次路由
互连的AS
自治系统间(Inter-AS)路由任务
例: 路由器1d的转发表设置
例: 在多AS间选择
Internet路由(AS内部路由)
RIP
OSPF(Open Shortest Path First)协议
BGP协议
练习
题1 DV算法

-
题2 层次路由

-
题3 RIP

-
题4 OSPF

-
题5 BGP

-
题6 考虑下面的网络。对于标明的链路费用,用Dijkstra的最短路径算法计算出从x到所有网络节点的最短路径。通过计算一个类似于表4-3的表,说明该算法是如何工作的。

解:算法:
初始化:
N’ = {u} 对于所有节点v
if v is a neighbor of u
then D(v) = c(u,v)
else D(v) = ∞
LOOP
找出w不在N’中使D(w)最小
将w添加到N‘中
对于所有v临近w且不在N’中,更新D(v)
D(v) = min( D(v), D(w)+c(w,n) )
//将D(n)置为D(n)和D(w)+c(w,n)中的最小值
until 所有节点在N‘中
D(v):到算法的本次迭代,从源结点到目的结点v的最低费用路径的费用
P(v):从源到v沿着当前最低费用路径的前一结点(v的邻居)
N’:结点子集;如果从源到v的最低费用路径已确知,v在N’中
题7 比较和对照链路状态和距离向量路由选择算法。
答:链路状态路由协议是层次式的,网络中的路由器并不向邻居传递“路由项”,而是通告给邻居一些链路状态。与距离向量路由协议相比,链路状态协议对路由的计算方法有本质的差别。
距离向量协议是平面式的,所有的路由学习完全依靠邻居,交换的是路由项。链路状态协议只是通告给邻居一些链路状态。运行该路由协议的路由器不是简单地从相邻的路由器学习路由,而是把路由器分成区域,收集区域的所有的路由器的链路状态信息,根据状态信息生成网络拓扑结构,每一个路由器再根据拓扑结构计算出路由。
| 链路状态路由选择算法 | 距离向量路由选择算法 | |
|---|---|---|
| 报文复杂性 | 相对较高 | 相对较低 |
| 收敛速度 | 相对较快 | 相对较慢 |
| 健壮性 | 相对较强 | 相对较弱 |
题8 考虑下图所示的网络,假设每个结点初始时知道到它的每个邻居的费用,考虑距离向量算法,并显示在结点z中的距离表表项。
题9 如图所示网络拓扑,所有路由器均采用距离向量路由算法计算到达两个子网的路由(注:到达子网的路由度量采用跳步数)。

假设路由表结构如下表所示。
请回答下列问题:
(1)若所有路由器均已收敛,请给出R1的路由表,要求包括到达图中所有子网的路由,且路由表中的路由项尽可能少。
解:对接口R3进行路由聚合
| 目的网络 | 接口 |
|---|---|
| 192.168.1.192/26 | E0 |
| 192.168.2.0/23 | S0 |
| 192.168.0/24 | S1 |
(2)在所有路由器均已收敛的状态下,R3突然检测到子网192.168.1.128/26不可到达,若接下来R2和R3同时向R1交换距离向量,则R1更新后的路由表是什么?更新后的R1距离向量是什么?
解:更新后的路由表:
| 目的网络 | 接口 |
|---|---|
| 192.168.1.192/26 | E0 |
| 192.168.2.0/23 | S0 |
| 192.168.1.0/25 | S1 |
| 192.168.1.128/26 | S0 |
更新后的距离向量:
| 目的网络 | 距离向量 |
|---|---|
| 192.168.1.192/26 | 1 |
| 192.168.2.0/23 | 2 |
| 192.168.1.0/25 | 2 |
| 192.168.1.128/26 | 3 |
题10































