数据链路层属于计算机网络的底层,使用的信道主要有点对点信道和广播信道两种类型。
在TCP/IP协议族中,数据链路层主要有三个目的:
1)为IP模块发送和接收数据
2)为ARP模块发送ARP请求和接收ARP应答
3)为RARP模块发送RARP请求和接收RARP应答
TCP/IP支持多种不一样的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路等。
数据链路层的协议数据单元——帧:将IP层(网络层)的数据报添加首部和尾部封装成帧。
数据链路层协议有许多种,都会解决三个基本问题,封装成帧,透明传输,差错检测。
2.以太网和IEEE802的封装
如图所示,显示了两种不一样形式的封装格式。最常使用的封装格式是RFC894定义的格式。两种帧格式均采用48bit(6 byte)的目的地址和源地址。
3. SLIP, CSLIP, PPP
SLIP:Serial Line IP
串行线路 IP (SLIP)用于运行 TCP/IP 的点对点串行链接。 SLIP 一般专门用于串行链接,有时候也用于拨号,使用的线路速率通常介于 1200bps 和 19.2Kbps 之间。 SLIP 容许主机和路由器混合链接通讯(主机 - 主机、主机 - 路由器、路由器 - 路由器都是 SLIP 网络通用的配置),于是很是有用。
SLIP 只是一个包组帧协议,仅仅定义了在串行线路上将数据包封装成帧的一系列字符。它没有提供寻址、包类型标识、错误检查 / 修正或者压缩机制。
1) IP数据报以一个称做END(0 x c 0)的特殊字符结束。同时,为了防止数据报到来以前的线路噪声被当成数据报内容,大多数实如今数据报的开始处也传一个E N D字符(若是有线路噪声,那么E N D字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无心义而被丢弃)。
2) 若是I P报文中某个字符为END,那么就要连续传输两个字节0 x d b和0 x d c来取代它。0 x d b这个特殊字符被称做SLIP的ESC字符,可是它的值与ASCII码的E S C字符(0 x 1 b)不一样。
3) 若是I P报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0 x d b和0 x d d来取代它。
压缩串行线路 IP (CSLIP)在传送出的 IP 分组上执行 Van Jacobson 头部压缩。CSLIP(即压缩SLIP)的新协议,它在RFC 1144[Jacobson 1990a]中被详细描述。C S L I P通常能把上面的4 0个字节压缩到3或5个字节。它能在C S L I P的每一端维持多达1 6个T C P链接,而且知道其中每一个链接的首部中的某些字段通常不会发生变化。这个压缩过程显著提升了交互式会话吞吐量。
- 点对点协议(PPP)普遍替代了 SLIP ,由于它有更多特性和更灵活。
PPP包括如下三部分:
1) 在串行链路上封装I P数据报的方法。P P P既支持数据为8位和无奇偶检验的异步模式(如大多数计算机上都广泛存在的串行接口),还支持面向比特的同步连接。
2) 创建、配置及测试数据链路的链路控制协议( L C P:Link Control Protocol)。它容许通讯双方进行协商,以肯定不一样的选项。
3) 针对不一样网络层协议的网络控制协议( N C P:Network Control Protocol)体系。当前R F C定义的网络层有I P、O S I网络层、D E C n e t以及A p p l e Ta l k。例如,IP NCP容许双方商定是否对报文首部进行压缩,相似于C S L I P(缩写词N C P也可用在T C P的前面)。
PPP协议都以标志字符0x7e开始和结束,紧接着是一个地址字节,值始终是0xff,而后是一个0x03的控制字节。接下来是协议字段。
0x0021:IP数据报
0xc021:链路控制数据
0x8021:网络控制数据
接下来则为信息数据内容,CRC验证码,结束标志0x7e
4.最大传输单元 MTU
最大传输单元(Maximum Transmission Unit,MTU)是指一种通讯协议的某一层上面所能经过的最大数据包大小(以字节为单位)。
若是在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每一个分片的大小都小于或者等于链路层的MTU值。当同一网络上的主机互相进行通讯时,该网络的MTU对通讯双方很是重要。但当主机间要经过不少网络才能通讯时,对通讯双方最重要的是通讯路径中最小的MTU,由于在通讯路径上不一样网络的链路层MTU不一样。通讯路径中最小的MTU被称为路径MTU。
网络中一些常见链路层协议MTU的缺省数值以下:
- FDDI协议:4352字节
- 以太网(Ethernet)协议:1500字节
- PPPoE(ADSL)协议:1492字节
- X.25协议(Dial Up/Modem):576字节
- Point-to-Point:4470字节
5.CSMA/CD(Carrier Sense Multiple Access/Collision Detect)即载波监听多路访问/冲突检测机制。
做用:
载波监听多点接入/碰撞检测是防止链接在总线上的各站点之间发生冲突,协调总线上各计算机工做的协议。
多点接入:
说明这是总线型网络,许多计算机以多点接入的方式链接到总线上
载波监听:
是指每个站在发送数据以前要检测一下总线上是否有其余的计算机在发送数据,若是有,则暂时不发送数据,以避免发生碰撞
碰撞检测:
边发送数据边检测信道上的信号电压大小。当信号电压摆动值超过必定的门限值,代表发生了碰撞。当即中止发送,等待一段时间后再次发送。