一、网络编程之基础知识:链路层

来源:互联网 发布:iphone更新后数据丢失 编辑:程序博客网 时间:2024/05/01 15:55

链路层的三个目的:1)为IP模块发送和接收IP数据;2)为ARP模块发送ARP请求和接收ARP应答;3)为RARP发送RARP请求和接收RARP应答。

1、以太网和IEEE802封装

以太网:由DEC,Intel,Xerox公司公布的一个标准,采用CSMA/CD的媒体接入方法;

IEEE 802委员会公布一个与之不同的一个标准:

802.3:针对整个CSMA/CD网络

802.4:针对 令牌总线网络

802.5:针对令牌环网

802.2:定义共同特性,就是802网络共有的逻辑链路控制(LLC)

802.3定义了一个与以太网不同的帧格式。以太网的数据封装格式是RFC894,而802.3的数据报封装是在RFC 1042中定义的。对二者进行区分是按照帧头的第bit13,bit14,802的这两位是有效长度值,以太网的这两位是有效类型值,而且802的有效长度值与有效类型值定义的不可能一样。以此就可以对这两种帧格式进行区分。

最少字节数:802标准定义的最小长度为46字节,而以太网为38字节。

2、尾部封装

RFC 893 描述的另一种以太网的封装格式(了解),为了提高性能BSD系统中使用。

3、SLIP和压缩的SLIP

SLIP(Serial Line IP):一种在串行线路上对IP数据报进行封装简单形式
SLIP的缺陷:1)每一端必须知道对方的IP地址;2)数据帧中没有类型字段,如果一条串行线路用于SLIP,那么它不能同时使用其他协议;3)SLIP没有在数据帧中加上检验和。
压缩的SLIP(即CSLIP)在RFC1144中被详细描述,CSLIP一般能把SLIP的40个字节压缩到3或5个字节。能在CSLIP的每一端维持多达16个TCP连接。

4、PPP

PPP修改了SLIP协议中的缺陷:1)在串行链路上封装IP数据报,PPP既支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步链接;2)建立、配置及测试数据链路的链路协议(LCP:Link Control Protocol)。它通信双方进行协商,以确定不同的选项。3)针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)体系。
PPP对比SLIP:
1)支持单根线路上运行多种协议,不只是IP协议;
2)每一帧都有循环冗余检查;
3)通信双方可以进行IP地址的动态协商(using the IP network control protocol
4)对TCP和IP报文首部进行压缩;
5)链路控制协议可以对多个数据链路选项进行设置。