📖
Computer Network
  • 计算机网络
  • 第一章:网络基础知识
  • 第二章:TCP/IP基础知识
  • 第三章:数据链路层
    • 1. 数据链路层基本概念
    • 2. 数据链路层功能
    • 3. 介质访问控制
    • 4. 局域网 & 应用
    • 5. 数据链路层设备
  • 第四章:网络层
    • 1. 网络层概述 & 功能
    • 2. IP 数据报
    • 3. 网络层相关协议
    • 4. IPv6
    • 5. 路由算法 & 路由协议
    • 6. IP 组播
    • 7. 移动 IP
    • 8. 网络层设备:路由器
  • 第五章:传输层
    • 1. 传输层概述
    • 2. UDP
    • 3. TCP
  • 第六章:应用层
    • 1. 网络应用模型
    • 2. 域名解析系统 DNS
    • 3. 文件传输协议 FTP
    • 4. 电子邮件
    • 5. 万维网 & HTTP 协议
Powered by GitBook
On this page
  • 1. IP 数据报格式
  • 1.1 TCP/IP 协议栈
  • 1.2 IP 数据报格式
  • 1.3 IP 数据报分片
  • 2. IPv4 地址
  • 2.1 IP 编址的历史阶段
  • 2.2 分类的 IP 地址
  • 2.3 互联网中的 IP 地址
  • 2.4 IP 地址的分类
  • 2.5 特殊 IP 地址
  • 2.6 私有 IP 地址
  • 2.7 IP 地址的范围
  • 3. 网络地址转换(NAT)
  • 4. 子网划分 & 子网掩码
  • 4.1 分类 IP 地址的弱点
  • 4.2 子网划分
  • 4.3 子网掩码
  • 4.4 使用子网时分组的转发
  • 5. 无分类编址 CIDR
  • 5.1 构成超网
  • 5.2 最长前缀匹配

Was this helpful?

  1. 第四章:网络层

2. IP 数据报

Previous1. 网络层概述 & 功能Next3. 网络层相关协议

Last updated 4 years ago

Was this helpful?

1. IP 数据报格式

1.1 TCP/IP 协议栈

1.2 IP 数据报格式

首部细节

版本:占 4 位,指 IP 协议的版本。(IPv4/IPv6)

首部长度:占 4 位,单位是 4B,最小为 5(因为首部固定部分 20B,5 * 4B = 20B),最大为 15(15 * 4B = 60B)

区分服务:占 8 位,用来获取更好的服务(如:优先级),但实际上一直没有用过

总长度:占 16 位,首部 + 数据部分的总长度,单位是 1B,因此数据报的总长度为 216−1=65535B2^{16} - 1 = 65535 B216−1=65535B

生存时间(TTL):占 8 位,IP 分组的保质期,经过一个路由器就 -1,变为 0 则丢弃

协议:占 8 位,数据部分的协议,即传输层使用的是什么协议

协议名

ICMP

IGMP

TCP

EGP

IGP

UDP

IPv6

ESP

OSPF

字段值

1

2

6

8

9

17

41

50

89

首部检验和:占 16 位,只检验数据报的首部,但不包含数据部分。每经过一个路由器,都会重新计算一下首部检验和。

源地址:占 32 位

目的地址:占 32 位

可选字段:占 0 ~ 40 位,用来支持排错、测量以及安全措施

填充:全 0,把首部长度补成 4B 的整数倍

1.3 IP 数据报分片

最大传输单元MTU:数据链路层帧可封装数据的上限,以太网的MTU是1500字节。

标识:占 16 位,同一数据报的分片使用同一标识

标志:占 3 位,只有两位有意义 x _ _

  • 中间位 DF(Don't Fragment)

    • DF = 1,禁止分片

    • DF = 0,允许分片

  • 最低位 MF(More Fragment)

    • MF = 1,后面还有分片

    • MF = 0,代表最后一片 / 没分片

片偏移:指出较长分组分片后,某片在原分组中的相对位置。(以 8B 为单位)

  • 除了最后一片,每个分片长度一定是 8B 的整数倍

2. IPv4 地址

IP 地址是唯一标识一个计算机的地址

2.1 IP 编址的历史阶段

  1. 分类的 IP 地址

  2. 子网的划分

  3. 构成超网(无分类编址方式)

2.2 分类的 IP 地址

IP 地址:全世界唯一的 32 为 / 4 字节 标识符,标识路由器主机的接口

IP 地址 ::= {<网络号>,<主机号>}

2.3 互联网中的 IP 地址

2.4 IP 地址的分类

2.5 特殊 IP 地址

2.6 私有 IP 地址

2.7 IP 地址的范围

对于 A 类地址,0.0.0.0 和 127.0.0.0 不能用作网络号

对于 B 类地址,128.0.0.0 不能作为网络号

对于 C 类地址,192.0.0.0 不能作为网络号

3. 网络地址转换(NAT)

对于私有IP地址是不能在网络上传输的,需要通过 NAT技术来实现私网IP和公网通信的功能。

网络地址转换 NAT(Network Address Translation):在专用网连接到因特网的路由器上安装 NAT 软件,安装了 NAT 软件的路由器交NAT路由器,它至少有一个有效的外部全球 IP地址。

4. 子网划分 & 子网掩码

4.1 分类 IP 地址的弱点

  1. IP 地址空间的利用率有时很低

  2. 两级 IP 地址不够灵活

4.2 子网划分

子网划分就是把一部分用来表示主机号的位数来表示网络号,用子网掩码区分。

4.3 子网掩码

4.4 使用子网时分组的转发

路由表中存储的信息:

  1. 目的网络地址

  2. 目的网络子网掩码

  3. 下一跳网址

路由器转发分组的算法:

  1. 提取目的 IP地址

  2. 是否直接交付

  3. 特定主机交付

  4. 检测路由表中有无路径

  5. 默认路由 0.0.0.0

  6. 丢弃,报告转发分组出错(TTL 为 0)

5. 无分类编址 CIDR

  1. 消除了传统他的 A 类、B 类和 C 类地址以及划分子网的概念

    CIDR 记法:IP 地址后加上 /,然后写上网络前缀(可以是任意长度)的位数。e.g. 128.14.32.0/20

  2. 融合子网地址与子网掩码,方便子网划分

    CIDR 把网络前缀都相同的连续的 IP 地址组成一个 CIDR地址块

5.1 构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合

方法:将网络前缀缩短(所有网络地址取交集)

5.2 最长前缀匹配

使用 CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。