分类: LINUX
2013-06-01 11:04:37
数据链路层在tcp/ip层次中算是比较低的了。
链路层到底做了些啥,具体做了以下些事儿
1:为I P模块发送和接收I P数据报;
2:为A R P模块发送A R P请求和接收A R P应答
3:为R A R P发送R A R P请求和接收R A R P应答。
T C P / I P支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、F D D I(光纤分布式数据接口)及R S-2 3 2串行线路等。
在这里主要总结一下以太网、IEEE 802和RS232。
.首先来总结一下以太网。
以太网是一个标准,由数字设备公司( Digital Equipment Corp.)、英特尔公司( I n t e lC o r p .)和X e r o x公司在1 9 8 2年联合公布的。它是当今T C P / I P采用的主要的局域网技术。它采用一种称作C S M A / C D的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection)。它的速率为10 Mb/s,地址为48 bit。(但现在一般都是100Mb/s)
然后IEEE有推出了稍有不同的标准集。
其中8 0 2 . 3针对整个C S M A / C D网络,8 0 2 . 4针对令牌总线网络, 8 0 2 . 5针对令牌环网络。这三者的共同特性由8 0 2 . 2标准来定义,那就是8 0 2网络共有的逻辑链路控制( L L C)。不幸的是,8 0 2 . 2和8 0 2 . 3定义了一个与以太网不同的帧格式。
下面是在生活中比较常见的数据封装格式。
在这个图里面802.3的长度和以太网类型这个两个值一样的长度。还好8 0 2定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。
在以太网帧格式中,类型字段之后就是数据;而在8 0 2帧格式中,跟随在后面的是3字节
的802.2 LLC和5字节的802.2 SNAP。目的服务访问点( Destination Service Access Point,
D S A P)和源服务访问点( Source Service Access Point, SSAP)的值都设为0 x a a。Ct r l字段的值设为3。随后的3个字节o rg code都置为0。再接下来的2个字节类型字段和以太网帧格式一样。这么看来以太网和802.3差别只是LLC、SNMP。而且这些数据还是固定的。于是可变的部分都是一样的。看数据的长度还是不一样。难道在从以太网到802.3还得进行分片?如果有谁清楚,还请告诉我一下。
C R C字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为F C S或帧检验
序列)。这个FCS用的比较多,几乎都在用。
802.3标准定义的帧和以太网的帧都有最小长度要求。802.3数据部分至少为38字节
而以太网至少要46字节。为了保证这一点,必须填充。
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的前面)。
RFC 1548[Simpson 1993]描述了报文封装的方法和链路控制协议。RFC 1332[McGregor
1 9 9 2 ]描述了针对I P的网络控制协议。
P P P数据帧的格式看上去很像I S O的H D L C(高层数据链路控制)标准。图2 - 3是P P P数据帧的格式。
因为定义了标志字符的值是0x7e,那么就会出现重复的现象,所以就需要转义。至于为什么,那肯定是防止数据被误认。
最大传输单元MTU。
之所以有这个限制是因为硬件的能力限制。所以以太网和8 0 2 . 3对数据帧的长度都有一个限制,其最大值分别是1 5 0 0和1 4 9 2字节。
那么假设现在有一个很大的数据要发送。那怎么办,丢掉?还是分小发送。也就是分片发送。
专业术语是:IP层就需要进行分片( f r a g m e n t a t i o n),把数据报分成若干片,这样每一片都小于M T U。
这里就会出现很多其他的思考
1:比如IP要分片,那么分片的工作都是IP做的。或者说其他的会不会分片呢,比如TCP UDP ICMP IGMP会不会分片呢。如果用TCP UDP也会分片,那和IP分片不是就重复了。既然在TCPIP存在这些分片,又为什么存在呢。
2:既然会分片,那怎重组呢。
3:数据包是一般是乱序到达的,又是怎么处理这个乱序的情况。
、、、、、、、、、、、、
哈,怎么那么多问题。发现一个最大的MTU,就可以提这么多问题。好吧,我太啰嗦了。
关于最大MTU出现的疑问,还是下一个总结中出现吧。
路径MTU,其实在两个主机交换数据链路中,最小的MTU。
上面呢,基本都是书上现成的,这些只是一个了解。