分类目录归档:『TCP/IP Illustrated Vol. 1』

『TCP/IP Illustrated, Vol. 1』 - 链路层

一、 链路层作用:

1. 为IP模块发送和接收IP数据报
2. 为ARP模块发送ARP请求和接收ARP应答
3. 为RARP模块发送RARP请求和接收RARP应答

二、链路层协议:

TCP/IP协议族支持多种链路层协议,取决于网络所使用的硬件,如以太网(Ethernet V2、802.3等)、令牌环网、FDDI、RS-232串行线路(SLIP、PPP协议等)等。

三、以太网帧格式

以太网帧是链路层最常见协议。

两个标准:
1. Ethernet V2 (RFC 894): 以太网帧格式
2. 802.3 (RFC 1042): IEEE 802.2/802.3格式

Ethernet V2是事实标准,因为第一个大规模使用TCP/IP的bsd unix系统出现在RFC 894和RFC 1042之间。

两种帧格式如下:
tcpip-frame

IEEE 802.2/802.3(RFC 1042)和Ethernet(RFC 894)帧格式

区别: 根据第13-14字节区分两种帧格式,IEEE 802用两个字节表示长度,Ethernet V2用来表示类型。所以,当这两个字节的值大于1500时,表示的是Ethernet V2帧格式,否则是IEEE 802帧格式。

帧的长短有限制:有效帧长为64-1518字节(实际上,每一帧还有8个前导字节,用于帧同步和定界,不过已经在物理层去掉了,所以在链路层看不到这8个字节)。设置帧的最大传输单元(MTU)为了避免某主机长时间占用信道,上层数据数过大时需要分片。设置最短帧长是为了便于冲突检测(CSMA/CD),上层数据过小时需要进行补齐(Padding)。

四、环回接口(Loopback):

作用:允许运行在同一台主机的客户端程序和服务器程序通过TCP/IP通信。

loopback

环回接口处理IP数据报的过程

关键点:
1. 传给环回地址(一般为127.0.0.1)的任何数据均作为IP输入。
2. 传给广播/多播地址的数据报需复制一份传给环回接口,然后送到以太网上。因为广播/多播的定义中包含主机本身。
3. 任何传给主机IP地址的数据均送到环回接口。

上述关键点说明,一个发送给主机本身的包不会在以太网上出现。发送给环回地址(127.0.0.1)或其他本主机地址的包,会走完TCP/IP协议栈,但是不会走到物理层,因此可以用来验证链路层及上层的通信情况。

一些查看链路层协议相关参数的命令:
1. netstat -i
2. ip link
3. ifconfig -a

来自 『TCP/IP Illustrated, Vol. 1: The Protocols』。

--EOF--