网络层
职责
- 向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务
- 无连接的: 事先不建立固定的连接(虚连接/虚电路)
- 尽最大努力: 不保证可靠传输,不进行拥塞控制
- 数据报: 网络层传输的数据单位
IP地址—有分类、无分类
- IP协议——规定地址格式,统一不同网络
- 网络层地址格式(4Byte 32bit): 网络地址 + 主机地址(不包含全0、全1)
- 子网划分
- 结构: 网络号+子网号+主机号
- 子网掩码: 网络号部分为1、主机号部分为0
- CIDR(无类域间路由)
- 结构: IP地址(网路前缀+主机号)/前缀长度
- 路由聚合(超网):
- 目的: 将多个子网汇聚到同一个网段(超网),以便减小路由表规模
- 方式: 将各子网IP展开为2进制,从头检查直到第一个不相同的比特开始置为0直到末尾,最后得到该网段IP。前缀长度为比特值相同的最长公共前缀长度。
IPv4地址分类 | 网络地址 | 主机地址 | 范围 | 私有/保留地址 |
---|---|---|---|---|
A类 | 1 Byte, 0~126 | 3 Byte | 1.0.0.1~126.255.255.254 | 10.x.x.x(私有), 127.x.x.x(保留) |
B类 | 2 Byte, 128.0~191.255 | 2 Byte | 128.0.0.1~191.255.255.254 | 172.16.x.x~172.31.x.x(私有), 169.254.x.x(保留) |
C类 | 3 Byte, 192.0.0~223.255.255 | 1 Byte | 192.0.0.1~223.255.255.254 | 192.168.x.x(私有) |
D类 | 无 | 无 | 224.0.0.1~239.255.255.254 | 无 |
E类 | 无 | 无 | 240.0.0.1~255.255.255.254 | 无 |
- IP数据报结构(首部(固定部分20B + 可变部分) + 数据)
- 首部固定部分
- 版本(IPv4 or IPv6)
- 首部长度(以word(4B)为单位,至少为5(固定部分), 最多为15)
- 区分服务(区分服务优先级别)
- 总长度(数据包总长)
- 分片
- 标识(分片情况下用以区分分片是否属于同一数据报)
- 片偏移(该分片相对于数据报头部的偏移长度,以8字节为单位)
- 生存时间(TTL, 最多几跳后丢弃)
- 协议(为哪个上层协议服务: ICMP、TCP、UDP。。。)
- 首部校验和(每次经过一个路由器都要重新校验)
- 源IP
- 目的IP
- 首部固定部分

- 网络地址转换(NAT/NAPT)
- NAT将专用网内部IP(私有/保留)转换为可以与互联网中主机通信的全球IP。
- NAPT将IP地址与端口号结合,能够使专用网内多个IP公用外部一个全球IP。
路由/转发
- 路由器结构: 上层路由选择、下层分组转发(进出端口、交换结构)
- 转发流程:
- 提取目的IP的网络号,查询路由表(目的网络、下一跳)
- 若路由器处于目的网络内(有端口与其相连),则直接发送给目的主机
- 若目的网络有特定路由, 则转发给特定路由
- 若无特定路由且路由表中有对应的下一跳地址,则转发下一跳
- 若存在默认路由,则转发给默认路由
- 报告转发分组出错
- 路由选择协议——自适应、以自治系统AS为单位
- 自治系统内部: RIP、OSPF
- 自治系统之间: BGP
相关协议—ARP/ICMP
-
ARP协议—为数据报的链路传输寻找正确的目的物理地址(MAC)
- ARP缓存: 保存主机已知的同一网络内主机IP和MAC地址的映射。
- ARP请求分组/响应: 对于ARP缓存中不存在的IP,源主机使用广播的方式发送ARP请求分组,目的主机收到请求后单播回送ARP请求响应,源主机将其记录到ARP缓存。
-
ICMP协议—向上层汇报传输中的错误、回送的请求,提高转发的可靠性
- 格式: 将ICMP报文(数据报)直接封装到另一个数据报中(作为数据部分)返回给源IP地址
- 差错报告报文
- 询问报文
- Ping—测试两台主机间的连通性
- 向目的主机发送ICMP Echo请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率
- TraceRoute—追踪IP数据报从源IP到达目的IP的路由
- 源IP向目的IP发送一系列TTL递增、内容为不可交付UDP数据报的IP数据报,转发路径上一系列路由节点依次接收并回送终点不可达的ICMP差错报告报文。
