ARP
ARPARP 的功能是:已知同一链路上的某个 IP 地址,查询它对应的 MAC 地址。ARP 不能跨路由器解析远端主机的 MAC 地址。 ↻ + − 主机发送 IP 数据报前,实际要封装成链路层帧。若目的主机在本网络,就解析目的主机 MAC;若目的主机不在本网络,就解析默认网关或下一跳路由器接口的 MAC。 ARP 高速缓存保存 IP 到 MAC 的映射。动态项由 ARP 自动学习,通常有生命周期;静态项由人工配置,生命周期取决于系统实现。 跨多个网络转发时,每一段链路都可能各自使用一次 ARP。例如 H1 到 H2 经过 R1、R2,则可能在 H1-R1、R1-R2、R2-H2 三段链路分别解析下一跳 MAC。 RARP 的方向与 ARP 相反:已知自己的 MAC 地址,查询自己的 IP 地址。它主要用于早期无盘主机启动场景,现代网络中基本由 DHCP 取代。
DHCP
DHCPDHCP 用于让主机自动获取网络配置参数,使主机接入网络后可以自动得到 IP 地址、子网掩码、默认网关、DNS 服务器、地址租期等信息。 DHCP 使用客户/服务器方式。DHCP 服务器运行服务器进程,维护地址池和配置信息;主机运行 DHCP 客户进程,向服务器申请租约。 报文封装DHCP 属于应用层协议,使用 UDP: 角色 UDP 端口 DHCP 服务器 67 DHCP 客户 68 DHCP 报文在运输层封装成 UDP 用户数据报,在网络层封装成 IP 数据报,再按具体链路封装成帧发送。主机刚启动时还没有 IP 地址,因此初始 DHCP 报文经常使用特殊地址: 阶段 源 IP 目的 IP 原因 Discover 0.0.0.0 255.255.255.255 客户还没有地址,也不知道服务器是谁 初次 Request 0.0.0.0 255.255.255.255 客户还未正式获得租约,需要广播说明选择 基本过程 ↻ + − DHCP 第一次获取地址时,核心过程是...
ICMP
ICMPICMP 用来传递网络层控制信息。它封装在 IP 数据报中,但不是运输层协议;它服务于 IP,帮助主机和路由器报告差错、进行连通性测试和路径探测。 ICMP 不能让 IP 变成可靠协议。IP 数据报仍然可能丢失、重复、失序;ICMP 只是让某些异常能被报告回来。 ICMP 报文大体分为两类: 类型 作用 差错报告报文 当路由器或主机处理 IP 数据报出现某类异常时,向源主机报告 询问报文 主机或路由器主动发出请求,用于测试可达性、测量时间等 差错报告报文ICMP 差错报告报文把网络层遇到的问题反馈给源主机。常见类型如下: 差错类型 典型触发场景 终点不可达 路由器找不到到目的网络的路由,或目的主机/端口不可达 源点抑制 路由器或主机因拥塞丢弃数据报,通知源主机降低发送速率 时间超过 TTL 减为 0,或目的主机在规定时间内没有收到全部分片 参数问题 IP...
IP Forwarding
IP 转发IP 转发解决的是一个很具体的问题:设备拿到一个 IP 数据报后,下一跳应该发到哪里。主机发送前要判断目的主机是否在本网络;路由器收到数据报后要查路由表,决定输出接口和下一跳。 直接交付与间接交付 若目的 IP 与源主机在同一网络,主机直接把数据报封装成链路层帧发给目的主机,这叫直接交付。判断方法是:源主机用自己的子网掩码分别与源 IP、目的 IP 相与,若得到相同网络地址,就认为目的主机在本网络。 若目的 IP 不在本网络,主机不能直接把帧发给目的主机,而是先发给默认网关或下一跳路由器,这叫间接交付。后续由路由器继续逐跳转发。 广播不被路由器转发 广播 IP 数据报只在本网络内有效,路由器不会把它转发到其他网络。 主机侧判断的是“目的主机是否在本网络”。若不在本网络,主机只需要把数据报交给默认网关,不需要知道完整路径。 路由器侧判断的是“目的网络应从哪个接口转发”。路由器收到一个首部正确、TTL 还未耗尽的 IP 数据报后,才查路由表并选择下一跳。 路由表项路由器根据路由表转发 IP...
IPv4 Datagram
IPv4 数据报IPv4 数据报由首部和数据载荷组成。首部用于让路由器逐跳转发,数据载荷通常是上层协议交给 IP 的内容,例如 TCP 报文段、UDP 用户数据报或 ICMP 报文。 IPv4 首部最小 20 B,最大 60 B。首部长度可变的原因是可选字段可能存在;填充字段只用于把首部补齐到 4 B 的整数倍。 字段 长度 作用 版本 4 bit IPv4 中取值为 4 首部长度 4 bit 以 4 B 为单位表示首部长度 区分服务 8 bit 用于区分服务质量,一般场景不使用 总长度 16 bit 以 1 B 为单位表示整个 IPv4 数据报长度 标识 16 bit 同一个原始数据报的所有分片具有相同标识 标志 3 bit 包含 DF 和 MF 等分片控制位 片偏移 13 bit 表示本片数据在原始载荷中的位置,以 8 B 为单位 TTL 8 bit 生存时间,防止分组在路由环路中无限转发 协议 8 bit 指明载荷应交给哪个上层协议 首部检验和 16 bit 只检验 IPv4 首部 源地址 32 bit 发送方...
Private Networks
私有网络私有网络使用专用 IPv4 地址。专用地址可以在不同机构内部重复使用,但它们只在机构内部有效,不能作为公网路由的目的地址。 常见专用地址块是: 专用地址块 范围 10.0.0.0/8 10.0.0.0 - 10.255.255.255 172.16.0.0/12 172.16.0.0 - 172.31.255.255 192.168.0.0/16 192.168.0.0 - 192.168.255.255 公网路由器不会为这些专用地址建立全局路由。内部主机要访问公网,通常需要 NAT 或代理;多个私有网络要跨公网互联,常用 VPN。 NATNAT 的目的主要是缓解 IPv4 地址不足,并隐藏内部地址结构。NAT 路由器位于私有网络和公网之间,至少拥有一个全球唯一的公网 IPv4 地址。 ↻ + − 基本 NAT 改写 IP 地址,并维护转换表。内网主机访问公网时,NAT 路由器把源私有地址改写成公网地址;公网响应回来时,再根据转换表把目的公网地址还原成内部私有地址。 这个改写后的公网地址来自 NAT...
IPv4 Addressing
IPv4 地址的基本含义IPv4 地址是 32 bit 的网络层标识符,通常写成点分十进制形式,例如 192.168.1.130。每 8 bit 写成一个十进制数,四个十进制数之间用点分隔。 IPv4 地址不是分配给“机器整体”的,而是分配给接口的。普通主机通常只有一个联网接口,因此看起来像是一台主机一个 IP 地址;路由器至少有两个接口,因此一个路由器通常有多个 IP 地址。 地址属于接口 路由器有多个接口,每个接口连接不同网络,因此每个接口需要自己的 IP 地址。说“一台路由器的 IP 地址”通常是不严谨的,应该说明是哪一个接口的 IP 地址。 IPv4 地址在逻辑上分为两部分: 网络前缀:标识接口所在的网络。 主机号:标识该网络中的具体接口。 同一网络中的接口应具有相同网络前缀,不同接口的主机号不能相同。路由器转发分组时,主要根据目的 IP 地址中的网络前缀查找下一跳,而不是为每台主机维护一条路由。 分类编址早期 IPv4 使用分类编址,把地址分为 A、B、C、D、E 五类。其中 A、B、C 类可分配给主机或路由器接口;D 类用于多播;E 类保留。 判断...
Network Layer Services
网络层数据链路层只负责一段链路或一个局域网内部的传输。网络层要解决的是更大的问题:把分组从源主机送到目的主机,途中可能经过多个网络、多个路由器和多段链路。 异构网络指底层实现不同的网络。它们可能使用不同的链路层协议、帧格式、链路层地址、最大帧长、差错处理方式和接入机制。网络层用统一的 IP 地址和统一的转发规则,把这些差异屏蔽起来,对上提供一个可互联的 IP 网。 网络层的核心抽象 从 IP 层看,主机只需要知道目的 IP 地址,路由器只需要根据网络层首部进行转发。具体每一段链路怎样成帧、怎样使用 MAC...
WAN
广域网与点对点链路广域网 WAN(Wide Area Network)覆盖范围大,常用于连接相距较远的局域网、园区网、数据中心或运营商网络。它的重点不是“很多主机直接共享一个局域网介质”,而是通过通信子网把远距离节点连接起来。 局域网与广域网的差异可以先这样把握: 对比项 局域网 LAN 广域网 WAN 覆盖范围 房间、楼宇、园区 城市、地区、国家甚至全球 常见管理者 单位、学校、企业内部 运营商、专线服务商、大型机构 典型链路形态 广播链路或交换式局域网 点对点链路、交换网络、运营商承载网络 数据链路层重点 MAC、局域网帧、交换机、VLAN 点对点封装、链路建立、链路配置 典型协议 Ethernet、802.11 PPP、HDLC 等 PPP 主要解决的是:一段点对点链路如何建立、如何配置、如何封装网络层分组、如何成帧和检错。 点对点链路与广播链路的区别如下: 链路类型 链路上有几个发送竞争者 是否需要 MAC 争用机制 例子 点对点链路 2 个端点 通常不需要 用户主机到...
WLAN
802.11 无线局域网802.11 是无线局域网 WLAN 的主要标准族。它仍然属于 IEEE 802 局域网体系,数据链路层仍分为 LLC 子层和 MAC 子层;但因为传输介质变成无线信道,介质访问控制、可靠传输和帧地址字段都比有线以太网复杂。 802.11 与共享式以太网的核心差异是: 对比项 共享式以太网 802.11 WLAN 传输介质 有线共享介质 无线信道 冲突处理 CSMA/CD,发送中检测碰撞 CSMA/CA,发送前尽量避免碰撞 可靠性 数据链路层通常不确认、不重传 数据链路层使用 ACK 中心设备 集线器只是物理层转发 AP 参与关联、转发和接入 DS 共享式以太网的 CSMA/CD 见 共享式以太网。这里重点看无线环境为什么需要另一套机制。 BSS、AP、BSSID、ESS、DS BSS基本服务集 BSS(Basic Service Set)是 802.11 WLAN 的最小构件。 在有固定基础设施的 WLAN 中,一个 BSS 通常包含: 一个 AP。 若干移动站...