首页 > 代码库 > TCP/IP||链路层
TCP/IP||链路层
1.链路层
链路层主要有3个目的
1.为ip模块发送数据和接收ip数据报
2.为ARP模块发送ARP请求和接受ARP应答
3.为RARP发送RARP请求和应答
以太网IP数据报封装在RFC 894,IEEE 802 网络IP数据报封装在RFC 1042中,所以主机需求rfc都与10mb/s以太网电缆相连接
1.必须可以接收采用rfc 894封装格式分组
2.接受rfc 894混合和rfc 1042封装格式分组
RFC 894 采用48 bit的目的地址和原地址,在802标准定义的帧格式中不包括crc检验吗,以太网的类型定义了后续数据的类型,在802,类型字段由子网接入协议的首部给出.
CRC字段用于帧内后续字节差错的循环冗余码检验。
2.尾部封装
RFC 893 称为尾部封装,通过调整ip数据报中的字段次序来提高性能.
3,SLIP 串行线路ip
Serial Line Ip,是一种在串行线路上对IP数据报进行封装的简单形式,在RFC 1055中描述,适用于RS-232串行端口和高速调解器,其中定义了以下格式
1.IP数据报以END特殊字符结束
2.如果IP报文某个字符为END,那么连续输入2个字节0xdb和0xdc来取代.
3.如果报文某个字符为slip的END字符,那么连续输入两个字节0xdb和0xdd来取代
SLIP也存在着以下缺陷
1.必须知道对方的IP地址
2.数据帧没有类型字段,如果一条为slip,那么不能使用其他协议
3.没有在数据帧加上检验和.
4.压缩SLIP
为了解决串行线路速率低导致的线路上有许多tcpid分组进行交换,所以cslip将字符压缩到3或5个字符,使首部大大缩短了交互时间
5.PPP点对点协议
修改SLIP所有的缺陷,包括
1.在串行链路上封装IP数据报方法,PPP支持数据为8位和无奇偶检验的异步模式,也支持面向比特的同步链接
2.链路控制协议(LCP):通信双方进行协商,确定不同的选项
3.针对不同网络层协议的网络控制协议(NCP)
RFC 1548 描述报文封装的方法和链路控制协议,RFC 1332描述了IP的网络控制协议
PPP每一帧以标准字符0x7e开始结束,紧接着是地址字节值为0xff,然后是0x03的控制字节.
协议字段的值为0x0021表示信息字段是一个IP数据报,值为0x021时,表示字段为链路控制数据,值为0x8021表示信息字段是网络控制数据。
当字符出现信息字段时,ppp需要进行转义,在同步链路中,通过一种称作比特填充的硬件手段实现,而在异步链路中,以0x7d作为转义字符.
相比slip具有以下特点
1.ppp支持在单根串行线路中运行多种协议,不只是ip协议
2.每一帧都有冗余检验
3.通信双方可以进行ip地址的动态协商.
4.对tcp和ip报文首部进行检验.
5.链路控制可以对多个数据进行设置.
6.环回接口(Loopback Interface)
运行同一台主机上的程序和服务器通过tcp/ip进行通信
1.环回地址的任何数据均作为ip输入
2.传给广播地址或多播地址数据报复制一份传给环回接口
3.ip地址数据均送给环回接口
TCP/IP||链路层