二:链路层11

链路层主要有三个目的:
1. 为IP 模块发送和接受IP数据报;2. 为ARP模块发送ARP请求和接受ARP应答; 为RARP发送RARP请求和RARP应答。TCP/IP支持多种不同的链路层协议,取决于网络所用的硬件。

以太网和IEEE802封装
  1. 以太网这个属于一般是指数字设备公司、英特尔公司和Xerox公司在1982年公布的一个标准。它是当今TCP/IP采用的主要的局域网技术。它采用一种称作CSMA/CD1的媒体接入方式,其意思是带冲突检测的载波侦听多路接入技术。它的速率为10MB/S,地址为48bit。
  2. 以太网IP数据报封装在RFC894中,IEEE 802的IP数据报封装在RFC 1042中。主机需求RFC要求每台Internet主机都与一个10Mb/s的一台电缆相连接:
    1). 必须能发送和接受采用RFC 894封装格式的分组。
    2). 应该能接受RFC894和RFC1042(IEEE802)封装格式的分组。
    3). 也许能发送采用RFC1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC894分组。

两种不同类型格式的封装
   上图是两种类型格式的封装。每个方框下面的数字都是他们的字节长度。 可以看出两个都采用了48bit的目的地址和源地址(802.3允许使用16bit(2字节)的地址,但一般都是48的)。这就是硬件地址。
   接下来的两个字节在两种帧格式种互补相同。802中,长度指它后面数据的字节长度,但不包括CRC检验码。以太网的类型字段定义了后续数据的类型。在802中,类型字段由后续的子网接入协议的首部给出。802定义的长度与以太网的有效类型值无一相同2,这样,就能对两种格式进行区分。(之前还在好奇如何区分,原来字段复用了。)

尾部封装

RFC 893给了另一种用于以太网的封装格式,称作尾部封装。它通过调整IP数据报中字段的次序来提高性能。在以太网数据帧中,开始的那部分是变长的字段(IP首部和TCP首部)。把他们移到尾部(在CRC之前),这样当数据复制到内核时,就可以把数据帧中的数据部分映射到一个硬件页面,节省内存到内存的复制过程。TCP数据包的长度是512字节的整数,正好可以用内核中的页表来处理。两台主机通过协商使用ARP扩展协议对数据帧进行尾部封装。
为什么尾部封装遭到反对? 原因未知

SLIP:串行线路IP

SLIP的全称是Serial Line IP。它是一种在串行线路上对IP数据报进行封装的简单形式。SLIP适用于家庭中每台计算机几乎都有的 RS-232串行端口和高速调制解调器接入Internet。下面描述了SLIP定义的帧格式:

  1. IP数据报一个称作END的特殊字符结束。同事,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始也传一个END字符(如果有线路噪声,那么END字符将结束这份错误的报文。这样当前的报文得以正确的传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃。)
  2. 如果IP报文中某个字符为END3,那么就要连续传输两个字节0xdb和0xdc来取代它。0xdb这个被称SLIP的ESC字符,但是他的值与ASCII码的ESC字符(0x1b)不同。
  3. 如果某个字符为ESC字符,那么就要拿两个字节0xdb和0xdd来代替。

SLIP报文封装


  1. CSMA/CD解释. ↩︎

  2. 1)如果第13/14字节是0x0800,那么就是RFC894封装,还有其他类型字段,你可以看看RFC894规范,上面定义了支持的类型.
    2)如果第13/14字节不是RFC894定义的那些类型,那么就去查看一下802的封装对长度的定义,如果满足,继续向后查,看是否满足DSAP/SSAP/cntl/org code/type的定义,如果满足,那么就是802封装.
    3)其它情况察看其它支持的报文类型,如果没有支持其它报文,就是收到了错误报文. ↩︎

  3. END是八进制的300(十进制192),ESC是八进制的333(十进制的219) ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值