2 链路层

2.1 引言

   链路层的3个目的:

1.为ip模块发送和接收ip数据报

        2.为ARP模块发送APR请求和接收ARP应答

        3. 为RARP模块发送RAPR请求和接收RARP应答。

   本章讨论以太网链路协议,两个串行接口链路协议(SLIP和PPP),以及包含环回启动程序,以及MTU(最大传输单元)

 

2.2 以太网和IEEE802封转

   局域网广泛应用于局域网,它采用CSMA/CD(带冲突检测的载波侦听多路接入)技术,速度是10Mb/s,地址是48bit。在RFC894中定义IP数据报封装。

   IEEE802委员会公布了另外一种标准集,802.3针对整个C S M A / CD网络,802.4针对令牌总线网络, 802.5针对令牌环网络。这三者的共同特性由802.2标准来定义.在RFC1042定义IP数据报封装。

   每台internet主机都与一个10Mb/s的以太网电缆相连:

1. 必须能接收和发送以太网封装格式的分组

2. 能接收与以太网混合的IEEE802封装格式的分组。

3. 也许能够发送IEEE802格式封装分组。默认的条件下是发送以太网封装格式的分组

个人认为:常用的是以太网封装格式,而非IEEE802格式。

两种帧格式都采用48比特(6字节)的目的地址和源地址(物理地址),   以太网封装格式  数据部分最小46

   IEEE802 封装格式 数据最小38

IEEE802的长度是其后面的长度,但是不包含后四位的CRC校验位。

以太网的类型定义后续的类型:IP数据报,ARP请求/应答 。RARP请求/应答。

 

2.3 尾部封装 (已经不使用了)

      在以太网数据帧中,将变长的字段(IP首部和TCP首部)移到尾部(CRC之前),这样复制到内核时,就可以将整个数据帧中的数据部分映射到一个硬件页面,节省内存的复制过程。

 

2.4 SLIP :串行线路IP

   SLIP,是一种在串行线路上对IP数据进行封装的简单形式。运行主机和router混合通信。

   规则来描述SLIP协议定义的帧格式:

   1).IP数据报以一个称为END(oxco)的特殊字符结束,同时为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始出也传一个END字符。

   2).如果报文中某个字符是END就用两个连续直接0xdb和 0xdc取代。0xdb称为SLIP的ESC字符。

   3). 如果IP报文中某个为字符为SLIP的ESC字符,就用连续的两个字符0xdb oxdd来取代。

   SLIP是简单的帧封装,有一些缺陷

1)    每一端必须知道对方的IP地址,没办法把本端的IP地址通知给另一端。

2)    数据帧中没有类型字段,如果串行线路用于SLIP,那么就不能同时使用其他协议。

3)    SLIP没有在数据帧中加上检验和(CRC),如果出错,只能通过上层协议来发现。So->ip首部,TCP首部都有CRC。

2.5 压缩SLIP

   CSLIP  将(IP首部,TCP首部等部分的)40个字节压缩到3到5个字节。他能在CSLIP的每一端维持多达16个TCP连接,并且知道其中每个连接的首部中的某些字典不会发生变化。

 

2.6 PPP 点对点协议

   PPP协议修改了SLIP协议的缺陷。PPP包括以下三部分

   1).在串行链路上封装IP数据报的方法,PPP即支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步链接。

   2).建立,配置及测试数据链路的链路控制协议(LCP)。允许通信双方进行协商,以确定不同选项。

  3). 针对不同网络层协议的网络控制协议(NCP)体系。

格式

每一帧都以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终是0xff,然后是一个值为0x03的控制字节。

协议的值不同代表不同的类型数据。 CRC代表校验。

标准位的字符0x7e代表开始和结束:

1) 当遇到字符0x7e时,需连续传送两个字符: 0x7d和0x5e,以实现标志字符的转义。

2) 当遇到转义字符0x7d时,需连续传送两个字符: 0x7d和0x5d,以实现转义字符的转义。

3 ) 默认情况下,如果字符的值小于0x20(比如,一个ASCII控制字符),一般都要进行转义。

PPP比SLIP具有下面这些优点: (1) PPP支持在单根串行线路上运行多种协议,不只是IP协议;

(2) 每一帧都有循环冗余检验;

(3) 通信双方可以进行IP地址的动态协商(使用IP网络控制协议);

(4) 与CSLIP类似,对TCP和IP报文首部进行压缩;

(5) 链路控制协议可以对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。

 

2.7 环回接口

   环回接口:允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。 127.0.0.1就是分配给这个接口的。信息还是要经过传输层和网络层得所有过程。

   关键点:

 1) 传给环回地址(127.0.0.1)的任何数据均作为IP输入。

2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。

3 ) 任何传给该主机I P地址的数据均送到环回接口。

 

 

2.8 最大传输单元MTU

   以太网和802对数据长度有限制1500,1492直接,链路层的这个特性称为MTU. 在ip层大概数据报大于MTU,就要分片。

目的是为交互使用提供足够快的响应时间。

2.9 路径MTU

   两个主机要经过多条链路才能通信,最小的MTU称为路径MTU

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值