欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

数据链路层读书笔记

程序员文章站 2022-04-02 23:23:17
数据链路层读书笔记 数据链路层在tcp/ip层次中算是比较低的了。 链路层到底做了些啥,具体做了以下些事儿   1:为I P模块发送和接收I P数据报; 2:为A R...

数据链路层读书笔记

数据链路层在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。
 
上面呢,基本都是书上现成的,这些只是一个了解。