网络层服务

概述

image.png

网络层核心功能-转发与路由

image.png

网络层核心功能-连接建立

image.png

网络层服务模型

image.png

连接服务与无连接服务

image.png

练习

题1

image.png

  • 答案为ABCD

虚电路网络

虚电路(Virtual circuits)

image.png
image.png

VC的具体实现

image.png

VC转发表

image.png

虚电路信令协议(signaling protocols)

image.png

数据报网络

image.png

数据报转发表

image.png
image.png
image.png

最长前缀匹配优先

image.png

数据报网络 or VC网络?

image.png

练习

题1

image.png

  • 答案为BC

IP协议

Internet网络层

image.png

IP数据报(分组)格式

image.png

版本号字段占4位

  • IP协议的版本号
  • E.g. 4→IPv4,6 → IPv6

    首部长度字段占4位:

  • IP分组首部长度 以4字节为单位

  • E.g. 5→IP首部长度为20(5×4)字节

    服务类型(TOS)字段占8位:指示期望获得哪种类型的服务

  • 1998 年这个字段改名为区分服务

  • 只有在网络提供区分服务(DiffServ)时使用
  • 一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H

    标识、标志、片偏移

  • 这三个字段与IP分片有关

    总长度字段占16位:IP分组的总字节数(首部+数据)

  • 最大IP分组的总长度:65535B

  • 最小的IP分组首部:20B
  • IP分组可以封装的最大数据:65535-20=65515B

    生存时间(TTL)字段占8位:IP分组在网络中可以通过的 路由器数(或跳步数)

  • 路由器转发一次分组,TTL减1

  • 如果TTL=0,路由器则丢弃该IP分组

    协议字段占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)

    image.png

    IP分片与重组

    image.png

    IP分组格式

    image.png
    image.png

    IP分片过程

    image.png
    image.png

    例子

    image.png

    IPv4编址

    接口

    image.png
    image.png

    IP子网(Subnets)

    image.png

    有类IP地址

    image.png

    特殊IP地址

    image.png

    私有(Private)IP地址

    image.png

    子网划分

    image.png

    子网掩码

    image.png
    image.png

    CIDR与路由聚合

    CIDR

    image.png

    路由聚合

    image.png

    练习

    题1 IP报文

    image.png

  • 答案为CD

    题2 IP分片

    image.png

  • 答案为CD;可能最后一片要再加上头部吧(总感觉D不对)

    题3 IP地址

    image.png

  • 答案为CD

    题4 CIDR

    image.png

  • 答案为ABC

    题5 子网划分

    image.png

  • 答案为AC

    题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:
    image.png
    即四个子网: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

image.png

DHCP协议

如何获得IP地址?

“硬编码”

image.png

动态主机配置协议-DHCP: Dynamic Host Configuration Protocol

  • 从服务器动态获取:
    • • IP地址
    • • 子网掩码
    • • 默认网关地址
    • • DNS服务器名称与IP地址
  • “即插即用”
  • 允许地址重用
  • 支持在用地址续租
  • 支持移动用户加入网络

    动态主机配置协议(DHCP)

    image.png

    DHCP工作过程示例

    image.pngimage.png

    DHCP协议在应用层实现

  • 请求报文封装到 UDP数据报中

  • IP广播
  • 链路层广播 (e.g. 以太网广播)

    DHCP服务器构造 ACK报文

  • 包括分配给客户的 IP地址、子网掩码 、默认网关、DNS 服务器地址

    练习

    题1 DHCP

    image.png

  • 答案为ACD;对于B,请求报文要封装到UDP数据报中,所以要使用传输层服务。

    题2 某网络拓扑如图所示,其中路由器内网接口、DHCP服务器、WWW服务器与主机1均采用静态IP地址配置,相关地址信息见图中标注;主机2~主机N通过DHCP服务器动态获取IP地址等配置信息

    image.png
    请回答下列问题。
    (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)

    image.png

    动机

    image.png

    实现

    image.png
    image.png

    NAT主要争议

    image.png

    NAT穿透问题

    image.pngimage.png

    解决方案1 静态配置

    image.png

    解决方案2 UPnP

    image.png

    解决方案3 中继

    image.png

    练习

    题1 NAT

    image.png

  • 答案为BCD

    互联网控制报文协议(ICMP)

    ICMP概述

    ICMP支持主机或路由器:

  • 差错(或异常)报告

  • 网络探询

    两类ICMP 报文:

  • 差错报告报文(5种)

    • • 目的不可达
    • • 源抑制(Source Quench)
    • • 超时/超期
    • • 参数问题
    • • 重定向 (Redirect)
  • 网络探询报文(2组)

    • • 回声(Echo)请求与应答报文(Reply)
    • • 时间戳请求与应答报文

      ICMP报文

      image.png

      例外情况

  • 几种不发送 ICMP差错报告报文的特殊情况:

    • 对ICMP差错报告报文不再发送 ICMP差错报告报文
    • 除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错 报告报文
    • 对所有多播IP数据报均不发送 ICMP差错报告报文
    • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送 ICMP 差错报告报文
  • 几种 ICMP 报文已不再使用:

    • 信息请求与应答报文
    • 子网掩码请求和应答报文
    • 路由器询问和通告报文

      ICMP报文的格式

      image.png

      ICMP差错报告报文数据封装

      image.png

      ICMP的应用举例:Traceroute

      image.png

      练习

      题1 ICMP

      image.png
  • 答案为BC

    IPv6简介

    动机

    image.png

    IPv6数据报格式

    image.png
    image.png

    其他改变 vs IPv4

    image.png

    IPv6地址表示形式

    image.png

    IPv6基本地址类型

    image.png

    IPv4向IPv6过渡

    image.png

    隧道(tunneling)

    image.png

    练习

    题1 IPv6

    image.png

  • 答案为AD

    题2 有人说当IPv6建隧道通过IPv4路由器时,IPv6将IPv4隧道作为链路层协议。你同意这种说法么?为什么?

    答:我不同意这种说法,IPv4的原理是用一个IPv4数据报把IPv6数据报封装起来,IPv6数据报相当于封装后数据报的有效载荷。这个隧道应该属于网络层协议。

    路由算法

    链路状态路由算法

    Dijkstra 算法

    image.png
    image.png

    例1

    image.png

    例2

    image.png

    Dijkstra 算法:讨论

    image.png

    距离向量路由算法

    Bellman-Ford方程

    image.png

    Bellman-Ford 举例

    image.png

    距离向量路由算法

    image.png

    距离向量路由算法:举例

    image.png

    距离向量DV: 链路费用变化

    image.png

    距离向量DV: 无穷计数问题

    image.png
    image.png

    层次路由

    image.png

    互连的AS

    image.png

    自治系统间(Inter-AS)路由任务

    image.png

    例: 路由器1d的转发表设置

    image.png

    例: 在多AS间选择

    image.pngimage.png

    Internet路由(AS内部路由)

    image.png

    RIP

    image.png
    image.png
    image.png

    OSPF(Open Shortest Path First)协议

    image.png
    image.png
    image.png

    BGP协议

    image.png
    image.png
    image.png
    image.png
    image.png

    练习

    题1 DV算法

    image.png

  • 答案为BD

    题2 层次路由

    image.png

  • 答案为AB

    题3 RIP

    image.png

  • 答案为D

    题4 OSPF

    image.png

  • 答案为ABC

    题5 BGP

    image.png

  • 答案为A

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

    image.png
    解:算法:
    初始化:
    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’中
    image.png

    题7 比较和对照链路状态和距离向量路由选择算法。

    答:链路状态路由协议是层次式的,网络中的路由器并不向邻居传递“路由项”,而是通告给邻居一些链路状态。与距离向量路由协议相比,链路状态协议对路由的计算方法有本质的差别。
    距离向量协议是平面式的,所有的路由学习完全依靠邻居,交换的是路由项。链路状态协议只是通告给邻居一些链路状态。运行该路由协议的路由器不是简单地从相邻的路由器学习路由,而是把路由器分成区域,收集区域的所有的路由器的链路状态信息,根据状态信息生成网络拓扑结构,每一个路由器再根据拓扑结构计算出路由。

链路状态路由选择算法 距离向量路由选择算法
报文复杂性 相对较高 相对较低
收敛速度 相对较快 相对较慢
健壮性 相对较强 相对较弱

题8 考虑下图所示的网络,假设每个结点初始时知道到它的每个邻居的费用,考虑距离向量算法,并显示在结点z中的距离表表项。

image.png
image.png

题9 如图所示网络拓扑,所有路由器均采用距离向量路由算法计算到达两个子网的路由(注:到达子网的路由度量采用跳步数)。

image.png
假设路由表结构如下表所示。
image.png
请回答下列问题:
(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

image.png
image.png
image.png
image.png
image.png
image.png