在TCP/IP协议族中,链路层主要有三个目的:服务器
1)为IP模块发送和接受IP数据报;网络
2)为ARP模块发送ARP请求和接受ARP应答;code
3)为RARP模块发送RARP请求和接受RARP应答;blog
以太网和IEEE 802封装接口
以太网是1982年公布的一个标准,是当今TCP/IP采用的主要的局域网技术,它采用一种称为CSMA/CD的媒体接入方法,意思是带冲突检测的载波侦听多路接入,它的速率是10Mb/s,地址为48bit。it
还有一个标准是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。
串行线路吞吐量计算