在卷一中:(章节二:数据链路层)

在T C P / I P协议族中,链路层主要有三个目的:

(1)为IP模块发送和接收IP数据报;

(2 )为ARP模块发送ARP请求和接收ARP应答;

(3 )为RARP发送RARP请 求和接收RARP应答。TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以 太网、令牌环网、F D D I (光纤分布式数据接口)及R S-2 3 2 串行线路等。

以太网和IEEE 802封装

以太网这个术语一般是指数字设备公司( Digital Equipment Corp. )、英特尔公司(I n t e l C 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 。 几年后,I E E E (电子电气工程师协会)8 0 2委员会公布了一个稍有不同的标准集,其中 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定义了一个与以太网不同的帧格式。文献 [Stallings 1987]对所有的IEEE 802 标准进行了 详细的介绍。 在T C P / I P世界中,以太网I P数据报的封装是在RFC 894[Hornig 1984] 中定义的,IEEE 802网络的I P数据报封装是在RFC 1042[Postel and Reynolds 1988] 中定义的。主机需求R F C要求每 台I n t e r n e t主机都与一个 10 Mb/s的以太网电缆相连接:
1) 必须能发送和接收采用RFC 894(以太网)封装格式的分组。
2) 应该能接收与RFC 894 混合的RFC 1042 (IEEE 802 )封装格式的分组。
3) 也许能够发送采用RFC 1042 格式封装的分组。如果主机能同时发送两种类型的分组数 据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894 分组。

最常使用的封装格式是 RFC 894 定义的格式。图2 - 1显示了两种不同形式的封装格式。图中每个方框下面的数字是它们的字节长度。
两种帧格式都采用48 bit (6字节)的目的地址和源地址( 8 0 2 . 3允许使用16 bit的地址,但 一般是48 bit地址)。这就是我们在本书中所称的硬件地址。A R P和R A R P协议(第4章和第5章) 对32 bit 的I P地址和48 bit 的硬件地址进行映射。
接下来的2个字节在两种帧格式中互不相同。在 8 0 2标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括 C R C检验码。以太网的类型字段定义了后续数据的类型。
在8 0 2标准定义的帧格式中,类型字段则由后续的子网接入协议(Sub-network Access P r o t o c o l ,S N A P )的首部给出。幸运的是,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个字节类型字段和以太网帧格式一样(其他类型字段值可以参见RFC 1340 [Reynolds and Postel 1992] )。
C R C字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为F C S 或帧检验 序列)。
8 0 2 . 3标准定义的帧和以太网的帧都有最小长度要求。 8 0 2 . 3规定数据部分必须至少为 3 8字节,而对于以太网,则要求最少要有 4 6 字节。为了保证这一点,必须在不足的空间插入填充(p a d )字节。在开始观察线路上的分组时将遇到这种最小长度的情况。

=================================================================================================================

Ethernet V2IEEE802.3更适合于传输大量的数据,但Ethernet V2缺乏数据链路层的控制,不利于传输需要严格传输控制的数据,这也正是IEEE802.3的优势所在,越需要严格传输控制的应用,越需要用 IEEE802.3或SNAP来封装,但IEEE802.3也不可避免的带来数据装载量的损失,因此该格式的封装往往用在较少数据量承载但又需要严格控制传输的应用中。

在实际应用中,我们会发现,大多数应用的以太网数据包是Ethernet V2的帧(如HTTP、FTP、SMTP、POP3等应用),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3的帧,VLAN Trunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3 SNAP的帧。

如STP对应的帧如下,抓包格式为IEEE 802.3,LLC中的DSAP=SSAP=0X42

普通的TCP报文如下,抓包显示为ETHERNET II格式,其实LLC中DSAP=0X06

Ethernet II和802.3的更多相关文章

  1. Networking - Ethernet II 帧

    Ethernet II 帧格式 DA SA Type Playload FCS DA(Destination Address): 该字段有 6 个字节,表示目的 MAC 地址. SA(Source A ...

  2. 2.1-VLAN/TRUNK/VTP

    2.1-VLAN/TRUNK/VTP     注意:配置VLAN时要退出VLAN配置模式才会执行 如果VLAN被删除或者shutdown,那么属于这个vlan的接口将被阻塞(灯一直是橙色,变不了绿色) ...

  3. ETHERNET帧结构

    以太网帧http://blog.csdn.net/guoshaobei/article/details/4768514 Ethernet的帧格式 (转)  http://jiangqiaosun.bl ...

  4. Ethernet帧格式

    一.Ethernet帧格式的发展 1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IE ...

  5. 数据链路层协议(Ethernet、IEEE802.3、PPP、HDLC)

    目录 数据链路层协议 Ethernet以太网协议 以太网数据帧的封装 IEEE802.3协议 PPP协议 HDLC协议 数据链路层协议 首先Ethernet.IEEE802.3.PPP和HDLC都是数 ...

  6. IEEE 802

    IEEE 802又称为LMSC(LAN /MAN Standards Committee, 局域网/城域网标准委员会), 致力于研究局域网和城域网的物理层和MAC层中定义的服务和协议, 对应OSI网络 ...

  7. 第三章 802.11MAC基础 ****需要深入理解

    1.mac所面临的挑战 射频链路品质     radio link   容易受到干扰    802.11采用肯定确认机制   所有传送出去的帧都必须得到响应        工作站发送请求帧    基站 ...

  8. Tcp/ip 报文解析

    在编写网络程序时,常使用TCP协议.那么一个tcp包到底由哪些东西构成的呢?其实一个TCP包,首先需要通过IP协议承载,而IP报文,又需要通过以太网传送.下面我们来看看几种协议头的构成 一 .Ethe ...

  9. 【转】TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

随机推荐

  1. C#中多线程的并行处理

    System.Threading.Tasks,在该命名空间下Task是主类,表示一个类的异步的并发的操作,创建并行代码的时候不一定要直接使用Task类,在某些情况下可以直接使用Parallel静态类( ...

  2. jwplayer使用方法

    网盘:https://pan.baidu.com/s/1mmtppZSFOni5tLI2TJWKrw <script type="text/javascript"> v ...

  3. 在ubuntu16.04编译安装httperf

    在网上偶尔看到httperf可以在测试中使用.网上苦苦找不到ubuntu编译安装的方法.自己琢磨了一下,现在总结如下: apt install httperf vim /etc/security/li ...

  4. netcore webapi 用户 'IIS APPPOOL\无托管代码' 登录失败

    配置在iis上,除了环境配置错误的原因还有一种可能是连接字符串的问题,iis要求使用sql server的sa或者其他登录用户. ps:连接字符串:  "Default": &qu ...

  5. 关于sortedlist 中值的添加,删除,索引测试.

    SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问. 排序列表是数组和哈希表的组合.它包含一个可使用键或索引访问各项的列表.如果您使用索引访问各项,则它是一个 ...

  6. C# 解决SharpSvn启动窗口报错 Unable to connect to a repository at URL 'svn://....'

    在远程机打开sharpsvn客户端测试,结果报错 Svn启动窗口报错 Unable to connect to a repository at URL 'svn://...' 咋整,我在win10我的 ...

  7. hdu 5441 Travel (2015长春网赛)

    http://acm.hdu.edu.cn/showproblem.php?pid=5441 题目大意是给一个n个城市(点)m条路线(边)的双向的路线图,每条路线有时间值(带权图),然后q个询问,每个 ...

  8. Android.ApplicationCrash

    1. 如何调试分析Android中发生的tombstone http://www.360doc.com/content/12/1017/10/7580194_241974419.shtml tombs ...

  9. iOS通过URL构建UIImage

    很多时候我们只能得到一个URL,然后需要构建一个UIImage. 通常情况下,我们一般都是通过SDWebImage来直接构建UIImageVIew的image,如何用URL直接构建UIImage呢? ...

  10. 201621123008 《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 结合题集题目7-1回答 1.1 自己以前编写的代码中经常出现 ...