在TCP/IP协议族中,链路层主要有三个目的:
1)为IP模块发送和接受IP数据报;
2)为ARP模块发送ARP请求和接受ARP应答;
3)为RARP模块发送RARP请求和接受RARP应答;
以太网和IEEE 802封装
以太网是1982年公布的一个标准,是当今TCP/IP采用的主要的局域网技术,它采用一种称为CSMA/CD的媒体接入方法,意思是带冲突检测的载波侦听多路接入,它的速率是10Mb/s,地址为48bit。
还有一个标准是IEEE 802标准。它和以太网的帧格式不同。802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络,这三者的共同特性由802.2标准定义,这就是802网络共有的逻辑链路控制(LLC)。
在TCP/IP中,以太网的IP数据报的封装是在RFC 894中定义的,IEEE 802的封装是在RFC 1024中定义的。
最常使用的封装格式是RFC 894定义的格式。下图是两种不同的封装格式。
上图中,第一个封装格式是802标准的,第二个是以太网格式的。
从上图可以看出,两种帧格式都采用48bit的目的地址和源地址,存放的是硬件地址。ARP和RARP协议会对32位IP地址和48位的硬件地址进行映射。
802接下来的是长度字段,指的是后续数据的长度,不包括CRC。而以太网接下来的类型字段定义了后续数据的类型。
以太网帧格式比较简单,接下来就是数据了。而802帧格式接下来是3个802.2的LLC和5字节的 SNAP(子网接入协议),其中,目的服务访问点(DSAP)和源服务访问点(SSAP)值都为0xaa,Ctrl字段值为3,随后的3个字节org code都为0,再接下来就是类型字段。
802.3规定数据部分至少为38字节,以太网则要求是46字节,如有不足的情况,就要填充字节。
SLIP:串行线路IP
这是一种在串行线路上对IP数据报进行封装的简单形式。
开始处和结束处传一个END(0xc0)的特殊字符。
如果报文中某个字符为END,那么就了连续传输两个字节0xdb和0xdc来取代。0xdb被称为SLIP的ESC字符。
如果报文中某个字符为ESC字符,那么就连续传输两个字节0xdb和0xdd。
值得一提的是,这是一个老的工业标准,目前已被PPP协议取代。
压缩的SLIP
为了传输一个字节需要20个字节的IP首部和20个字节的TCP首部。CSLIP一般能把这40个字节压缩到3到5个字节。
PPP:点对点协议
格式如上图,不再赘述。
环回接口
环回接口允许在同一台机器上的服务器程序和客户端程序通过TCP/IP进行通信。
最大传输单元MTU
也就是对数据帧的长度的限制,比如以太网的是1500字节。
当两个主机间的通信需要经过多个网络,那么其中最小的MTU称为路径MTU。
串行线路吞吐量计算