首页 > 代码库 > 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||链路层