107
计计计计计计计计 《》 主主主主 主主主 主主主主主主主主主主主主主主 [email protected]

《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

  • Upload
    deanne

  • View
    218

  • Download
    0

Embed Size (px)

DESCRIPTION

《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 [email protected]. 李锁刚 [email protected]. 第二章计算机网络技术基础. 体系结构(上节内容) 传输技术(上节内容) TCP/IP 技术(本节内容) 网络服务和中间件技术 网络应用技术 网络工程基础. 哈尔滨. 乌鲁木齐. 长春. 沈阳. 呼和浩特. 北京. 唐山. 天津. 银川. 石家庄. 大连. 济南. 兰州. 太原. 烟台. 西宁. 青岛. 郑州. 西安. 徐州. 汉中. 南京. 成都. - PowerPoint PPT Presentation

Citation preview

Page 1: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

《计算机网络管理》

主讲教师:王继龙清华大学信息网络工程研究中心

[email protected]

Page 2: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

李锁刚 [email protected]

Page 3: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

第二章 计算机网络技术基础• 体系结构(上节内容)• 传输技术(上节内容)• TCP/IP 技术(本节内容)• 网络服务和中间件技术• 网络应用技术• 网络工程基础

Page 4: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

应用(Application)

网络服务(Service)和应用支撑(Middleware)

基础设施(Infrastructure)

IP网络

传输设施

工程: 组播、QoS、网络管理、网络测量…

数字视频、协同工作、实时控制、虚拟现实、…

网格计算、远程教育、远程医疗、远程沉浸、…

中间件:身份认证、访问控制、目录服务、网格…

关键网络设备/软件

标准和基础理论

Page 5: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP Backbone

徐闻

长春

哈尔滨

乌鲁木齐

拉萨

西宁兰州

银川

呼和浩特

台北

沈阳

南昌

西安 徐州

武汉 合肥

郑州

石家庄

北京

南宁

广州

福州

杭州上海

南京

天津

贵阳

海口三亚

湛江

无锡

大连

太原 济南 烟台

成都

长沙

重庆 黄梅

九江

昆明

青岛

汕头

唐山

汉中

宜昌

珠海深圳

惠州

柳州百色 厦门

主干网地区网

GigaPop

Pop

桂林

深圳

Page 6: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

大连

北京

郑州

石家庄

武汉 合肥

南京 上海

长沙南昌

杭州

广州 福州

成都

昆明

重庆

厦门

海口

桂林

沈阳 哈尔滨天津

济南

南宁

深圳

national dark fiber

太原 青岛

Fiber Infrastructure

Page 7: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 8: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

主要内容• IP 地址

– 节点标识– 网络规划

• 分组转发和路由• IP 协议• TCP/UDP

Page 9: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

协议

Page 10: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

一、 IP 地址• 32 bits ( 128bits for IPv6 )• 具有分层的、携带位置信息的地址结构• 接近 43 亿• 分为 A 、 B 、 C 、 D 、 E 共 5 类• 技术资料: RFC ( 791 、 1010 、 815 、

894 、 1112 )

Page 11: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 地址的结构

Internet 的概念层次

Internet

网络网络

主机主机 主机主机

子网

主机

网络 子网

网络号 主机号

IP 地址的概念结构

Page 12: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 地址格式

00 NetIDNetID

1010

110110 NetIDNetID

1110 Multicast AddressMulticast Address

HostIDHostID

NetIDNetID HostIDHostID

HostIDHostID

ClassClassAA

BB

CC

DD

8 bits 8 bits 8 bits8 bits

1111 保留保留EE

Page 13: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

特殊的 IP 地址

• 直接广播地址( broadcast address )– 主机号全 1 ,向指定的网络进行广播

• 有限广播地址( limited broadcast address )– 32 位 IP 地址位全 1 (即 255.255.255.255 ),在本网络中广播

• 0 地址– IP 地址中网络号为全 0 表示本网络– IP 地址中主机号为全 0 表示网络号– IP 地址全 0 表示本主机( BSD Style Broadcast address )。

• 回送地址( loopback address )– 网络号为 127 的 A 类地址(如 127.0.0.1 )用于本地软件测试

(测试应用层与网络软件之间的进程间通信)。无论什么程序,一旦使用回送地址,协议软件立即返回之,不进行任何的网络传输。

类型 网络前缀 主机号 全 “ 1”

Page 14: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

内部 IP 地址• RFC-1918

• 10.0.0.0~10.255.255.255 ( 10/8 )• 172.16.0.0~172.31.255.255 ( 172.16/12 )• 192.168.0.0~192.168.255.255 ( 192.168/16

Page 15: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

路由器和多穴主机的 IP 地址• 一类特殊的结点:具有多个物理接口、连接到

多个网络上。如:路由器、多穴主机( multi-homed host )

• 该结点同时属于它所连接的多个网络• 对应于结点所连接的每一个网络,给该结点分

配一个 IP 地址• 结点具有多少网络连接就拥有多少 IP 地址• IP 地址实际上是对结点上网络连接的标识

Page 16: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 17: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

网络规划• 分类地址规划• 子网规划• 超网规划

Page 18: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

子网规划• 分类地址( classful addess )的缺陷:地址分配不

够灵活,地址空间消耗速度快• 子网划分技术:在常规网络地址上划分出更多的

网络地址(减少主机数,浪费一些地址资源)• 子网划分地址包括三部分:网络号、子网号、主

机号• 子网划分地址中的主机部分与网络部分的边界由

子网掩码来定义

网络 子网 主机号

Page 19: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

子网掩码( subnet mask )

• 子网掩码( 32 位):定义 IP 地址中网络前缀所占的比特数。

–对应于网络号的 Bit 为 1

–对应于主机号的 Bit 为 0 。–例: B 类网络 189.23.0.0 ,其掩码 255.255.0.0

• 子网掩码表示:在网络地址后给出子网掩码中 1 的位数。

–例:网络 189.23.0.0 ,如子网掩码为 255.255.0.0 ,则表示为: 189.23.0.0/16

• IP 地址中网络前缀的计算: IP 地址 & 子网掩码

Page 20: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

默认的子网掩码网络 主机A 类

11111111 00000000 00000000 00000000

网络 主机B 类11111111 11111111 00000000 00000000

网络 主机C 类11111111 11111111 11111111 00000000

255 . 0 . 0 . 0

255 . 255 . 0 . 0

255 . 255 . 255 . 0

Page 21: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

规定• 任何子网部分全 0 的 IP 地址不能使用• 任何子网部分全 1 的 IP 地址不能使用• 主机地址中借用的位数:不能 1 位,也不

能全部位。如, C 类中:最多 6 位,最少2 位

Page 22: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

C 类子网划分子网位数 子网数量 子网掩码 主机位数 主机数量 2 4 192 6 62

3 8 224 5 30

4 16 240 4 14

5 32 248 3 6

6 64 252 2 2

Page 23: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

实例:子网位数为 3 位子网 子网号 主机地址范围第 1 个子网 000 0~31第 2 个子网 001 32~63第 3 个子网 010 64~95第 4 个子网 011 96~127第 5 个子网 100 128~159第 6 个子网 101 160~191第 7 个子网 110 192~223第 8 个子网 111 224~255

Page 24: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

B 类地址子网划分的例子

:

187.5.0.0/16

子网 A187.5.2.0/24

子网 B187.5.3.0/24

子网 C187.5.4.0/23

子网 D187.5.6.0/30 S Mask: 255.255.255.252

Addr:187.5.6.0~187.5.6.3

S Mask: 255.255.254.0Addr:187.5.4.0

~187.5.5.255

S Mask: 255.255.255.0Addr:187.5.3.0

~187.5.3.255

S Mask: 255.255.255.0Addr:187.5.2.0

~187.5.2.255

Page 25: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

超网( Supernet )• 利用超网来进行网络汇聚

– 超网:将多个 C 类的网络聚合起来,构成一个单一的、具有共同地址前缀的网络

• 优点:– 可以减少路由表表项的数量,节省路由器中的资源– 按照实际需要进行网络地址分配,提高地址空间的利用率

例如:规模在 254 结点以上(但远小于 64K )的网络,可分配一个由若干 C 类地址聚合成的超网地址空间块,而不必占用一个完整的 B 类地址空间。

• 超网的子网掩码:– 长度小于被聚合的 C 类网络的子网掩码的长度;也就是说,超网的子网掩码小于 24 位。

Page 26: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

超网举例

• 无类型域间选路( CIDR - Classless Inter-Domain Routing )– 基本思想:在路由表中,将若干个连续的 C 类网络

地址的表项聚合成一个表项进行选路。– 由连续 C 网络地址聚合成的地址空间成为 CIDR 块,也用 “网络前缀 / 掩码位数” 的形式来表示。

路由器

通告192.18.0.0/20

192.18.0.0/20 :

192.18.1.0/24

192.18.15.0/24

192.18.0.0/24

Page 27: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

二、分组转发和路由• 处理传入的 IP 分组• 路由• 地址解析• 封装和分片• TTL

Page 28: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

处理传入的 IP 分组•当数据报到达路由器时,它被送给 IP 软件,

如果目标地址和路由器地址匹配,就交给合适的高层软件处理。否则就用本机的路由表中的信息及标准算法为该数据报选择路由。

Page 29: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

路由• 在一个路由器中, IP 分组被转发到哪里决定于:

–分组的目的地址–该路由器的路由表的内容

• 路由器的基本组件:路由表、转发器、路由协议

路由表

入口

转发

路由更新

目的地址

分组

下一跳地址

路由协议

分组

路由更新

出口

Page 30: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

中间结点• 发现与目标地址不在同一网络• 在路由表( routing table )查找符合的纪录——下一跳路由器地址

• 如果路由表中没有路由,则取默认路由器地址为下一跳路由器地址

• 输出分组:向相应的下一跳路由器的硬件地址发送封装后的帧

Page 31: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

最后一跳网关•查找目标的硬件地址•把 IP 包封装在特定类型的传输协议帧里,然后向目标地址直接投递

Page 32: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

取出分组的目的 IP 地址 DA计算出目的网络地址 DN

DN 匹配直接转发路由?

直接转发分组Yes

DA 匹配特定主机路由? 按照特定主机路由转发

分组YesNo

DN 匹配了路由表中的某个表项?

按路由表中指定的下一跳地址转发分组

Yes

No

路由表定义了默认路由? 按照默认路由转发分组Yes

No

选路失败No

Page 33: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

地址解析• IP 地址与硬件地址没有直接关系。•查找已知 IP 地址的硬件地址的过程叫做

地址解析( Address Resolution)。•静态地址解析 /动态地址解析

Page 34: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

静态地址解析

Page 35: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

动态地址解析—— ARP• 地址解析协议( Adress Resolution Protoco

l )在已知目的 IP 地址,需要知道目的硬件地址时使用。 RFC-826

• ARP 是一个广播协议——网络上的每一台机器都能收到请求。

• 每一台机器都检查请求的 IP 和自己的地址,符合要求的主机回答请求。

Page 36: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ARP/RARP 的报文格式• ARP/RARP 的报文分组格式是统一的

硬件类型

协议类型

硬件地址长度

协议地址长度

操作

源硬件地址

源 IP 地址

目的硬件地址

目的 IP地址

2 2 1 1 2 6 4 6 4

1 : ARP 请求 2 : ARP 应答 3 : RARP 请求 4 : RARP 应答

Page 37: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ARP

HEY - Everyone please listen! Will 128.213.1.5 please send me his/her Ethernet address

not me

Hi Red! I’m 128.213.1.5, and my Ethernet address is 87:A2:15:35:02:C3

Page 38: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

Windows ARP命令

Page 39: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ARP Cache

• ARP 不要求每次发送 IP 数据报时都发送请求——主机会保存一个硬件地址的缓存。

• ARP 协议要求接收请求的主机在回答请求的同时要保存发送请求主机的硬件地址。

Page 40: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

Proxy ARP

• 一个特殊结点,代替真正的网关相应 ARP请求;

• 同时保证正常的 IP 通信• 目的:在不同的物理网络上使用相同 IP

地址

Page 41: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

反向地址解析• 由已知硬件地址查找 IP 地址的过程叫做反向地址解析( Reverse Address Resolution )。 RFC-0903

• 无盘工作站启动时需要反向地址解析。

Page 42: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

RARP

HEY - Everyone please listen! My Ethernet address is22:BC:66:17:01:75.Does anyone know my IP address ?

not me

Hi Red ! Your IP address is 128.213.1.17.

Page 43: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 分组封装• IP 分组需要通过物理网络的帧来进行传

输• 封装( Encapsulation )—— 将 IP 分组映射到物理帧中的方式

• 最大传输单元( MTU - maximum transfer unit )——各种物理网络技术都限制了一个物理帧的大小,这个限值被称为最大传输单元;不同物理网络技术的 MTU 不同

Page 44: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

分组的分片( fragmentation )• 分片 —— 在小 MTU 的网络上将较大分

组分割后进行传输– ID(Identification) :该分组的唯一标识,以便进行分片的重组

– MF(More Fragment , Flags 字段的 Bit 0) : MF=1 表示还有更多分片

– FO(Fragment Offset) :本片起始位置在原始分组数据区中的偏移量

Page 45: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

片头 数据 1 ( 600 ) 数据 3 (200)片头片头 数据 1 ( 600 )

ID = 100MF = 1FO = 0Len = 620

ID = 100MF = 1FO = 600Len = 620

ID = 100MF = 0FO = 1200Len = 220

IP 头 数据区( 1400 字节)

ID = 100

Page 46: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

对分组进行分片的地点• 分片操作出现在两个 MTU 不同的网络的交界处,也就是出现在路由器上;

• 进入一个新网络时,若新网络的 MTU 小于原有网络的 MTU ,则可能需要进行分片;若新 MTU 值不小于原有 MTU 就不必进行分片。

Page 47: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

A B

MTU=620R1 R2

MTU=1500 MTU=1500

以太网以太网

分片 不需分片

Page 48: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

片的重组• 片重组( reassembly )是分片的逆过程• 所有的片重组操作都在目的主机上进行• 重组过程

– 当目的主机收到 MF=1 的分片时,首先将其进行缓存– 当收到 MF=0 的分片时,计算原始 IP 分组的长度– 原始分组长 = 本分片的偏移 + 本分片的数据长度– 利用原始分组长度检查是否收到全部分片

•若是,则按照各片的偏移值重新组装成 IP 分组,提交给高层软件;

•否则将等待,直到收到该分组的全部分片– 为了防止无限等待,在接收端设置重组定时器

•当接收到分组的第一片时启动该定时器,如果在指定的时间内未能完成分组重组,将放弃整个重组、释放资源

Page 49: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

A B

MTU=620R1 R2

MTU=1500 MTU=1500

以太网以太网

分片

重组

Page 50: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

Fragmentation and Reassembly

H6

R3R2R1

H1

ETH

IP

TCP

ETH FDDI

IP

ETH

IP

TCP

PPPFDDI

IP

ETHPPP

IP

ETH IP (1400) FDDI IP (1400) PPP IP (512)

PPP IP (512)

PPP IP (376)

ETH IP (512)

ETH IP (512)

ETH IP (376)

Assume:ETH-ETH<1500BFDDI-FDDI<4500BPPP-PPP<532B

1420B=20B(IP Header)+1400B(IP Data)

With offset=0,512,1024

Page 51: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TTL:Time To Live

Page 52: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

三、 IP 协议

Page 53: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 分组

Data Link帧头

传输层头UDP/TCPIP 头 应用数据

版本号

头长度

服务类型

分组总长度

标识

标志

分段偏移

生存时间

协议

分组头校验和 源地址 目的

地址 选项

最大 64K Bytes

Page 54: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 分组的结构• IP 分组的构成:分组头 + 数据版本 V头长 HL

标识符 Identification 总长度 TLEN服务类型 TOS分片偏移量 Offset标志 Flag

生存时间 TTL 协议 Protocol 分组头校验和 Checksum源 IP 地址 Source

目的 IP 地址 DestinationIP 选项 Option 填充 Pad

数据:

0 4 8 16 19 24 31

Page 55: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 分组头• 版本号( Version): IPv4 or IPv6• 分组头的长度( HL)和分组总长度( Total Length )

– HL(4bit):给出以 32bit 长字为单位的 IP 分组头的长度• 一个典型的 IP 分组头(不含选项)长度为 20 字节, HL = 5

– TL(16bit):以字节为单位的 IP 分组的总长度•总长度 = IP 分组头长度 + 数据区长度• TL 可表示的最大长度(即 IP 分组的最大长度)为 6553

5 字节• 协议类型( PROTOCOL)

– 8 位整数,指出数据区中承载的数据所采用的高层协议– 协议类型的编码是预定义的:

• TCP = 6 UDP = 17 ICMP = 1 OSPF = 89

Page 56: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 分组头• 分组标识( Identification )

信源主机在产生 IP 分组时,需要给每个 IP 分组分配一个唯一的标识符,用来区分该主机发送的不同分组。

• 服务类型( TOS – Type Of Service )

优先权 D T R 未用0 1 2 3 4 5 6 7

用户希望的传输类型: D :低时延 T:高吞吐率 R :高可靠性

分组的优先权( Precedence): 体现本分组的重要程度( 0~7 ) 0 :一般优先权 7 :网络控制优先权

Page 57: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 分组头• 生存时间( TTL – Time To Live , 1 byte )

– 用来防止 IP 分组在网络中出现无限循环– 分组产生时 TTL 被设置一个初值;每经过一个路由

器其值都将减少;当 TTL = 0 时,该分组将被丢弃。– TTL 指定的不是一个精确的时间(以 hop 为单位)

• 源地址:分别指出发出分组的主机的 IP 地址• 目的地址:该分组的目的主机的 IP 地址• 分组头的校验和( 2 byte )

– 用来保护 IP 分组头 的完整性– 校验和的计算和检验算法:对分组头按照 16 位字位

单位,求其半加和,结果求反,即得到校验和。

Page 58: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IP 选项• 分组头中 IP 选项字段是任选的• IP 选项主要用于网络控制和测试

– 源选路( source route )选项– 路由记录( record route )选项– 时间戳( time stamp )选项– ……

• IP 选项需要由通路上的每一个路由器来处理• 实际应用中, IP 选项很少使用

Page 59: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 60: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

Source RoutingSource Routing

Page 61: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

Security OptionSecurity Option

Page 62: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ICMP 协议——IP 层的差错处理与控制

• ICMP – 网际网控制报文协议 ( Internet Control Message Protocol)

• ICMP 的功能– 差错报告– 控制– 信息询问(请求 / 回答方式)

• ICMP 协议的封装• ICMP 的功能属于 IP 层

Page 63: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ICMP 头 ICMP 数据区

IP 头 IP 数据区

PROTOCOL = 1 (ICMP)

ICMP 报文

IP 分组

Page 64: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ICMP 的报文类型 代码 校验和 数据区

1 2 3 4

CHECKSUM: 整个 ICMP 报文的校验和算法与 IP 分组头的校验和算法相同

CODE: 提供报文类型的详细信息

TYPE: 指出 ICMP 报文的类型 3 :目的不可达 11 :分组超时 12 :分组参数错 4 :源抑制 5 :路由重定向 8 :回应请求 0 :回应应答 13 :时间戳请求 14 :时间戳应答 17 :地址掩码请求 18 :地址掩码应答

Page 65: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ICMP 差错报告• 差错报告是单方向的:路由器 信源主机• 分组参数错 TYPE = 12• 分组超时 TYPE = 11• ICMP 差错报告的能力是有限的

– ICMP 实现网络中诊断信息的交换,并不能提高 IP 分组传输的可靠性,仅仅是报告了网络的问题

– ICMP 提供差错报告的功能,但并没有严格规定对于某种差错应该采取何种差错处理措施

– 路由器并不能发现所有的传输错误

Page 66: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

类型11

代码0~1 校验和 未用

全 0出错分组的 IP 头 + 前 64 位的数据

0 : TTL 超时 1 :分片重组超时

1B 1B 2B 4B

类型12

代码0~1 校验和 未用

全 0出错分组的 IP 头 + 前 64 位的数据

0 :某参数出错 1 :缺少某参数或选项

指针

1B 1B 2B 1B 3B

分组参数错 TYPE = 12

分组超时 TYPE = 11

Page 67: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

拥塞控制与 ICMP 源抑制报文• 源抑制( Source Quench )

通过限制信源主机发送 IP 分组的速率来降低拥塞的方法• 源抑制的三个阶段:

– 路由器发现拥塞,并向源端发送 ICMP 源抑制报文– 信源主机逐步降低发往目的主机的分组发送速率– 拥塞解除后,信源主机逐步恢复原有的分组发送速率

• 源抑制报文的格式

类型4

代码0 校验和 未用

全 0抑制分组的 IP 头 + 前 64 位的数据

1B 1B 2B 4B

Page 68: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

选路控制与 ICMP 重定向机制• 主机获得路由信息的方式 —— ICMP 重定向机制

– 在网络中,选路由路由器 / 主机上的路由表决定– 路由器利用路由协议、通过路由器之间定期的路由

信息交换来获得网络中的路由信息– 主机则通过 ICMP 的重定向报文来获得路由信息

• ICMP 重定向机制– 目的:使主机能维持一个动态的、小规模、最优路

由表– 机制:在转发分组时路由器同时检查被转发分组,

一旦发现其使用非最优通路,则向信源发送重定向报文,指出去往目的端的最佳路径

– 重定向机制用于同一个网络中的主机和路由器之间

Page 69: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

类型5

代码0~3 校验和 路由器

IP 地址重定向分组的 IP 头 + 前 64 位的数据

1B 1B 2B 4B

0 :对网络重定向 2 :对服务类型和网络的重定向1 :对主机的重定向 3 :对服务类型和主机的重定向

Page 70: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

ICMP 的请求 / 应答报文• 地址掩码请求与应答( TYPE = 17 / 18 )• 回应( Echo )请求 / 应答 [ping]( TYPE = 8 /

0 )• 时间戳请求与应答( TYPE = 13 / 14 )

Page 71: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

类型17/18

代码0 校验和 标识符

17 : Request 18 : Reply

1B 1B 2B 2B 2B 4B

序列号 地址掩码

类型8/0

代码0 校验和 标识符 任选数据

8 : Echo Request 0 : Echo Reply

1B 1B 2B 2B 2B

序列号

用于发送者与应答着之间的请求与应答的匹配

地址掩码请求与应答

回应( Echo )请求 / 应答 [ping]

Page 72: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

类型13/14

代码0 校验和 标识

13 : Request 14 : Reply

1B 1B 2B 2B 2B 4B 4B 4B

序列号

信源主机发出请求的时间戳

初始时间戳

接收时间戳

发送时间戳

目的主机收到请求的时间戳

目的主机发送回应的时间戳

时间戳请求与应答

Page 73: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 74: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 75: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 76: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

IPv6

Page 77: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

四、路由协议

Page 78: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

路由表• 选路:是对目的网络的选路,需要使用目的地址中的

网络部分– 只需维护目的网络的信息,而与单个主机无关– 对主机的选路:由最后一跳路由器通过直接转发实现

• 路由表:由一系列的( N , R )二元组构成的二维表

– 路由表的规模和内容取决于互连网中网络的数量,与主机数量无关

Page 79: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

一个路由表的实例

1#10.0.0.0

路由器A

2#20.0.0.0

路由器B

3#30.0.0.0

4#40.0.0.0

路由器C

10.0.0.1

20.0.0.1

30.0.0.1

30.0.0.2

40.0.0.1

20.0.0.2

路由表目的网络 下一跳地址10.0.0.0 直接转发20.0.0.0

30.0.0.0

40.0.0.0

直接转发20.0.0.2

20.0.0.2

路由表目的网络 下一跳地址20.0.0.0 直接转发30.0.0.0

10.0.0.0

40.0.0.0

直接转发20.0.0.1

30.0.0.2

Page 80: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

距离向量法 distance vector routing

• 距离向量:即一个二元组 {network , cost}• 各路由器都可将其所了解的路由的信息(已知的所

有网络以及到达各网络的距离等 )通知给相邻的路由器。

• 路由数据库的构成• network :代表目的网络• cost :去往该网络的距离或费用

• 距离向量的更新过程

Page 81: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

N1 R1 R2

Destin Cost Next-hop

N1 0 Direct

R1 路由数据库

Destin Cost

N1 0

距离向量更新消息

Destin Cost Next-hop

N1 4 Rn

R2 路由数据库

Destin Cost

N1 1

距离向量更新消息

更新

N1 1 R1

Page 82: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

链路状态法 Link state routing

• 路由器都能够将链路状态信息发布给其他路由器,包括:– 该路由器上的链路以及连接到该链路上的相邻路由器– 链路状态、开销

• 路由器将向整个网络发布链路状态分组( LSP )– 源路由器的标识符、相邻路由器的标识符– 二者之间链路的开销

• 路由数据库的形式– 路由器中维护的路由数据库是一张整个网络的网络拓扑图

– 各个路由器接收到的 LSP 被用于建立和刷新该网络整体拓扑图

– 根据该拓扑图能够计算出网络中任意两点之间的最短通路

– 最短通路的计算方法: Dijkstra 算法– 路由器根据网络整体拓扑图来计算生成路由表

Page 83: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

链路状态选路

B

A

D

EF

C

1

4

1

2

2

2

1

网络拓扑结构

B

A

D

EF

C

1

1

2

2 1

路由器 A 的最短路径树

B

A

D

EF

C

4

1

1

2

2

路由器 B 的最短路径树

Page 84: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

域内路由协议: RIP

• RIP – Routing Information Protocol– 最普通、应用最广泛的域内路由协议– 采用距离向量路由算法– 每 30 秒将整个路由数据库广播一次– 采用转发级数(即 hop )作为开销的度量参数– RIP 支持的最大网络直径是 15 hop

– 不支持 VLSM

• RIPv2– 增加了对 VLSM 的支持

Page 85: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

OSPF 协议• OSPF – Open Shortest Path First

– 也属于域内路由协议– 采用链路状态路由及最短路径优先算法( Dijkstra 算法)

– 支持 VLSM– 支持到达相同目的地的多条等价通路– 在网络拓扑结构发生变化时,才进行链路状态的发布– 具有层次性(对网络划分了两个层次)– 可扩展性

Page 86: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

OSPF 网络的构成• 区域( area )—— 区域是自治系统( AS )中一组路由器和网络的集合

– 必须定义一个骨干区域 0 ,其它区域通过 ABR 连接到区域 0– 同一区域中的路由器之间相互发布链路状态通告( LSA )– 不同区域之间通过 ABR交换 区域拓扑的概括性信息

Page 87: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

区域 2

区域 3

区域 0区域 1ABR

ABRASBRR

R R

R

ABR

RR

R

R

外部网络

AS 边界路由器

区域边界路由器

LSA – link stateadvertisement

Page 88: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

域间路由协议: BGP

• BGP – Border Gateway Protocol

– 又称通路向量路由协议,属于域间路由协议– 采用通路向量( path vector )选路– 对基于策略的路由( policy-based routing )的支持– 采用 TCP 协议保证 BGP 路由器间信息交换的可靠性

– 能够支持 CIDR 和 VLSM

– 对网络的拓扑结构没有限制

Page 89: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

BGP 基本原理

BGP

BGP

BGP BGP

BGP

BGP

AS 1# AS 2#

EBGPIB

GP

IBGP

IBG

P

IBG

P

IBGP

IBGP

IBGP - 内部 BGP 关系 EBGP – 外部 BGP 关系

Page 90: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

五、调试

Page 91: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 92: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 93: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet
Page 94: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

六、 TCP/UDP

Page 95: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TCP is a connection for the two end hosts

A B

TCP TCPFull duplex connection

Connectionless IP network (not aware of TCP

connection)

进程标识: {协议,本地地址,本地端口号,远地

地址,远地端口号 }

Page 96: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

传输层连接的建立、撤除• 建立连接时,客户发送一个请求报文,服务器若愿意接受请求,则发送一

个响应报文。• 超时重传机制解决报文丢失。• 对于确认与超时重传机制造成的延迟重复,传输层采用报文生存时间和三

次握手机制。

CR(初始序号 =X) 第一次

第二次

第三次

CR(初始序号 =X)

CC(初始序号 =Y 确认 X)CC(初始序号 =Y 确认 X)

DATA( 序号 =X 确认 Y)

DATA( 序号 =X 确认 Y)

CR: 连接请求

CC: 连接确认

DATA: 数据

Page 97: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TCP 三次握手 /建立连接• A SYN ( SEQ=X ) B

• AB SYN ( SEQ=Y ) + ACK=X+1

• A ACK=Y+1 B

Page 98: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

窗口技术和确认• 当一台主机发送了一个窗口大小的字节数

后,必须等到接收了一个应答后才能继续传送数据

• 窗口的目的是改善流量控制和可靠性,并能有效利用带宽

• 在 TCP会话过程中,可以动态地修改窗口的大小,以在等待确认期间发送更多的数据

Page 99: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

窗口技术1. 流量控制: TCP采用可变窗口进行流控。一旦窗口

前部报文得到确认,则窗口向前滑动。

2. 拥塞控制:基于滑动窗口协议,通过限制发送端向网络注入报文的速率来达到控制拥塞的目的。

1 2 3 4 5 6 7 8 9 10 11

窗口当前位置

下一个可发送报文

滑动窗口

Page 100: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TCP 序号和确认号• TCP 为有序发送的段提供一个前向参考确认号,每个数据段在发送前都赋予一个编号。在接收站, TCP把分开的段重新装配为一个完整的报文,如果丢失一个序号,则要被重发。在给定的时间内,没有得到确认的段,也要被重发。序号和确认号是有方向性的,序号相互独立的。

Page 101: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TCP header

Source Port # Destination P #

Sequence #

ACK #

Option

HL RES Flags Window Size

Checksum URG Pointer

DATA

Flags:

URG

ACK

PSH

RST

SYN

FIN

Page 102: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TCP格式(有 12 个字段)– 源端口:呼叫方端口号–目的端口:被叫方端口号– 序号:数据顺序编号–确认号:所期待的下一个 TCP字段的编号–报头长度:报头的字数(字长为 32 位)–保留域:设置为 0–编码位:控制功能(如会话的建立和终止)–窗口:发送者愿意接受的字节数–校验和:报头和数据字段的校验和–紧急指针:指明紧急数据的末尾–选项: TCP段的最大值– 数据:上层协议数据

Page 103: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

端口号• 功能:用来标识应用程序• 标准端口: FTP 21 , Telnet 23 , SMTP

25 ,• 规定

–低于 255 的端口号用于系统和公共应用– 255~1023 的端口号用于商业软件–高于 1023 的端口号用于用户应用程序

Page 104: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

UDP

• 特点:无窗口技术,不用确认,应用层保证可靠性,适用于不需要把有序段重新装配的应用

• 使用 UDP 的应用层协议: TFTP , SNMP , NFS , DNS

• UDP报头:源端口、目的端口、长度、校验和、数据。。。(短报头)( 127 )

Page 105: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

UDP Header

Data

Length Checksum

Source Port Destination Port

Page 106: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

传输层协议: TCP 与 UDP

• TCP(Transport Control Protocol)

• 有连接的流传输;• 用于一次传输要交换大

量报文的情形;• 协议复杂,提供高可靠性服务。

• UDP(User Datagram Protocol);

• 无连接的报文交换;• 用于一次交换少量报文的情形;

• 相对简单,提供高效的服务;

两个协议共存于 Internet 中

Page 107: 《 计算机网络管理 》 主讲教师:王继龙 清华大学信息网络工程研究中心 wjl@cernet

TCP/IP 协议簇及其依赖关系

硬件

硬件协议(链路控制和介质访问协议)

ARP RARP

IP

TCP UDP

CMOT

SMTP Rloginrsh

FTP

TELNET DNS

SNMP CMOT

ASN.1 TFTP BOOTP RPC

XDR

NFS

ASN.1

用户

应用程序