首页 > 编程知识 正文

以太网的数据链路层协议,计算机网络数据链路层协议

时间:2023-05-06 16:13:41 阅读:178720 作者:4863

我相信很多新人在学习协议时会遇到很多问题。 有些地方我可能总是不知道。 (因为我自己也是新人^_^ )。 所以,根据我自己学习的经验和我在学习中遇到的问题,总结如下。 如果能帮到大家,是我莫大的荣幸! 关于局域网的起源和发展,这里就不多谈了。 很多书和网络都有详细说明,所以直接进入局域网协议的学习。 的局域网的一些协议主要包括以太网第二版、IEEE802系列、令牌环网和SNAP等。 之所以加上“等”字,是因为我只知道这些种类。 如果还有其他的话,欢迎朋友们的补充)。 最常见的是以太网第2版和IEEE802系列,我们也主要了解这两种。 IEEE802包括几种,我们也不介绍,只研究其中常见的东西。 第一,以太网(V2 )以太网第二版是初始版本,由DEC、Intel、Xerox共同开发,简称DIX。 框架格式如下图所示。 前同步码信息采用1和0交替模式,在每个数据包的开头提供5MHZ的时钟信号,以允许接收设备锁定输入的比特流。 目标地址:数据传输的目标MAC地址。 发送源地址:数据传输的发送方MAC地址。 以太网类型:标识帧中包含的信息的上层协议。 附加数据位:此帧中包含的数据信息。 (以太网帧的大小是可变的。 每个帧包含1 4字节的头部和4字节的帧检查序列字段。 这两个字段增加了1 8字节的帧长度。 的数据部分可以包含长度为4.6字节到1,50字节的信息(如果传输少于4.6字节的数据,网络将使用最多4字节来填充数据部分)。 因此,以太网帧的最小长度为1 8 4 6或6 4字节,最大长度为18150或1 5 1 8字节。 所接收的(f-cs )帧检查序列(f-cs )字段可确保所接收的数据与要传输的数据相同。 当源节点发送数据时,它执行一种称为C R C、Cyclical Redundancy Check的算法。 RCC使用帧中前面所有字段的值生成唯一的4字节长度,即F C S。 目标节点收到数据帧后,C R C将解密F C S,并验证该帧的域是否与原始格式一致。 在该比较失败的情况下,接收节点认为发送中帧被破坏,要求源节点重发数据。 二. IEEE802系列。 IEEE802系列包含许多内容,但常见的是802.2和802.3。 我们比这两种帧。 1、IEEE802.3为什么我要先列出802.3? 因为我个人认为802.3应该在802。 2之前出来了,只是有问题,就出来了802。 2为了解决那个问题,你觉得大家会有点混乱吗? 没关系。 请继续看。 以下是此帧的帧格式。 发现这个帧格式和以太网的第二版本的格式很相似吗? 是的。 因为是802,所以这些变更相对较少。 3是基于以太网V2开发的,为了支持100M的网络,将8位的前导信息分成7字节,加入了SFD的域(现在还不知道。 ^8^那个幸福的路灯有这方面的资料。 那个先导和SFD到底起了什么作用? 我的理解是,先导和SOFD是跑步比赛开始时的“预备! 跑! ”先导说:“准备! ”。 SFD说:“跑! ”所以,前同步码使接收设备进入状态,SOFD使接收设备开始接收。 这里,位流硬件时钟同步是使装置以当前位流信号的频率同步,以获得准确的接收数据位置,避免接收错误,是与PC中的时钟相同的概念。

此外,类型字段现在是长度字段。 这是因为当初这个协议是由novell开发的,默认情况下局域网是novell网络,服务器是netware服务器,运行IPX的协议,所以去掉了类型,变成了长度后来IEEE据此制定了802。 3的协商,结果也出现了问题。 如果我的高层使用IP协议呢? 那么怎么办? 不要着急。 有问题就有办法。 IEEE802。 2从这里也出现了。 2、IEEE802。 2请看帧格式。 可以看到,种子帧的最大区别在于增加了一个LLC域,即逻辑链路控制(LLC,Logical Link Control )。 此信息用于区分网络中的多个客户机。 如果L L C和数据信息的总长度小于4.6字节,则数据字段还包含填充位。 长度字段不关心填充比特,只报告逻辑链路控制层信息(L L C )和数据信息的长度。 逻辑链路控制层(L L C )信息是目标服务接入点(D S A P、D e s t i n a t i o nService Access Point )、源服务接入点(S S A P )、源服务访问控制层(L L C )信息每个域的长度为1字节,L L C域的总长度为3字节。 服务接入点(S A P,Service Access Point )标识使用L L C协议的节点或内部进程,网络中源节点和目标节点之间的每个进程都有唯一的S A P。 控制域标识需要建立L L C连接的类型。 无响应方式(无连接)和完全响应方式)面向连接。 我们在工作中最常见的是这三种框架。 下面放一张

网上找到的图片,以加深大家的理解,并做一个小小的总结:      三、用sniffer捕帧。 Ok,局域网的基本协议已经讲完,现在该动动手了。 下面是我用sniffer捕的几个帧。 ARP帧:   DNS的包:   HTTP的包:                  通过上面所捕获的帧,相信大家对网络的分层应该会有一个比较深的理解。我所展开的是数据链路层的包头。          对照上面的帧格式,我们可以看到,有目的地址,有源地址,有类型,从 IP 开始就属于 信息字段了。姨,不对呀,怎么没有前导和 SFD ?当然,这是用来同步的,对协议分析没有意 义,包括 FCS ,所以去掉了( *8* 不是我想的, sniffer 捕完后就去掉了的别打我)。          可是,不对啊?没错,眼尖的朋友发现了,哈,都是以太网第二版的帧,看上面字段 “ Ethertype=0800(ip)”. 这是怎么回事?不是说现在都是 802 。 3 的,至少也是 802 。 2 的嘛?怎么 还用以太网 V2 ?那么打包成何种帧是由哪个决定的?         其实这个问题我当时也糊了,而且很多人也都不是特别的清楚,后来跟我们老师沟通后这么认为:打包成何种帧一般是由操作系统决定的,在微软的 OS 里边,其默认都会打包成以太网第二版的(可以改),这并不是说网络环境变成 10M 了,因为现在这个以太网第二版应该也是支持 100M 的,而在 netware  环境里面,通常都默认是 802 。 2 或 802 。 3 ,具体 2 还是 3 ,就要看 netware 版本了,一般来讲,运行低于Netware 3.12版本的网络的缺省帧类型是802。3。        Ok.咱就说到这了,当然不敢说完全正确,只希望能让大家共同交流,所以欢迎大家能够指出我所不对的地方,共同进步。   用过NetXray之类的抓包软件的人,可能经常会被一些  不同的Frame Header搞糊涂,为何用的Frame的Header 
 是这样的,而另外的又不一样。这是因为在Ethernet  中存在几种不同的帧格式,下面我就简单介绍一下几种 
 不同的帧格式及他们的差异。  一.Ethernet帧格式的发展  1980 DEC,Intel,Xerox制订了Ethernet I的标准 
 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 
 1982 IEEE开始研究Ethernet的国际标准802.3 
 1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式 
 1985 IEEE推出IEEE 802.3规范 
      后来为解决EthernetII与802.3帧格式的兼容问题推出折衷的Ethernet SNAP格式  (其中早期的Ethernet I已经完全被其他帧格式取代了所以现在Ethernet只能见到后面几种Ethernet的帧格式现在大部分的网络设备都支持这几种Ethernet的帧格式如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)  二.各种不同的帧格式 
 下面介绍一下各个帧格式    Ethernet II 
   就是DIX以太网联盟推出的,它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于标示封装在这个Frame、里面数据的类型)以上为Frame Header,接下来是46--1500 字节的数据,和4字节的帧校验)Novell Ethernet 
   它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,后面接着的两个字节为0xFFFF 
   用于标示这个帧是Novell Ether类型的Frame 由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。IEEE 802.3/802.2 
   802.3的Frame Header和Ethernet II的帧头有所不同EthernetII类型域变成了长度域。其中又引入802.2协议(LLC)在802.3帧头后面添加了一个LLC首部,由DSAP(Destination Service Access Point) 
   1 byte,SSAP(Source SAP),一个控制域--1 byte! 
   SAP用于标示帧的上层协议Ethernet SNAP 
   SNAP Frame与802.3/802.2 Frame的最大区别是增加了一个5 Bytes的SNAP ID其中前面3个byte通常与源mac地址的前三个bytes相同为厂商代码!有时也可设为0,后2 bytes 与Ethernet II的类型域相同。。。  
  三.如何区分不同的帧格式 
   
   Ethernet中存在这四种Frame那些网络设备又是如何识别的呢? 如何区分EthernetII与其他三种格式的Frame 如果帧头跟随source mac地址的2 bytes的值大于1500 则此Frame为EthernetII格式的。 
    
   接着比较紧接着的两bytes如果为0xFFFF则为Novell Ether 类型的Frame 
   如果为0xAAAA则为Ethernet SNAP格式的Frame ,如果都不是则为Ethernet 802.3/802.2格式的帧

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。