精华内容
下载资源
问答
  • 以太网环境下,需要得知目的主机的mac地址才可以进行数据帧的发送,但是在数据帧从上层向下封装时,并无法得知目的主机的mac地址,所以在数据链路层进行数据帧格式的封装时,需要用到ARP协议。 前导码和帧开始符...

    原文链接:https://www.ahaoaha.top/2019/07/01/以太网数据帧和ARP协议/

    以太网数据帧

    在以太网环境下,数据链路层的数据帧格式为:

    Z8vMfU.png

    在以太网环境下,需要得知目的主机的mac地址才可以进行数据帧的发送,但是在数据帧从上层向下封装时,并无法得知目的主机的mac地址,所以在数据链路层进行数据帧格式的封装时,需要用到ARP协议

    • 前导码和帧开始符:以太网上的每一个数据帧都会7字节的前导码和1字节的帧开始符作为数据帧的开始,该部分是定值(10101010 10101010 10101010 10101010 10101010 10101010 10101010)
    • 帧间距:作为数据帧的结束标识

    ARP协议

    ARP协议的作用就是在发送方不知道目的主机的mac地址时,通过ARP协议可以获得目的主机的mac地址使得数据链路层完成数据帧的发送。

    ARP协议格式:

    Z8vUk6.png

    • 硬件类型:表明发送方硬件接口的类型,以太网为1
    • 协议类型:表明发送方提供的高层协议类型,IP协议为0x0800
    • 操作类型:用来表示当前报文的动作,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4

    当数据报经过IP协议封装之后,就要在数据链路层进行帧打包,从以太网数据帧的结构中可以看出要对数据进行帧打包必须得到数据帧下一站的主机的mac地址。

    所以在进行数据帧打包的上层以及IP协议封装的下层会使用ARP协议获得数据帧下一站主机的mac地址。

    1. 首先根据发送端主机的路由表确定下一站的IP地址
    2. 发送方主机会在本地ARP缓存中查找对应机器的mac地址,如果找到,则无需进行以下步骤
    3. 如果在发送方本地缓存中没有找到对应机器的mac地址,或者缓存过期时,发送方主机会进行ARP广播,将发送方主机的IP地址和mac地址都包含在ARP报文中对局域网中所有的主机进行广播(进行广播及就是将目的mac地址设置为FF FF FF FF)
    4. 局域网中的所以机器在收到ARP报文之后都会对报文中的目的IP地址与自身IP地址进行对比,如果不同则丢弃报文,相同时,目的机器会将发送方的IP和mac地址映射保存在自身机器的ARP缓存中,再将自身的mac地址通过ARP响应返回给发送方
    5. 发送方将目的机器的IP和mac地址映射保存进本机ARP缓存中,再对数据报文进行帧打包

    通过arp -a可以查看当前机器上所有的ARP缓存

    展开全文
  • Ethernet frame图1以太网头部由三个字段组成:DMAC:表示目的... 1500时,代表该数据帧的类型(比如上层协议类型)常见的协议类型有:0X0800 IP数据包0X0806 ARP请求/应答报文0X8035 RARP请求/应答报文。当LENGTH/TYPE...

    Ethernet frame

    d7afe8cab0faa88bb534252ae2f03815.png

    图1

    以太网头部由三个字段组成:

    DMAC:表示目的终端MAC地址。

    SMAC:表示源端MAC地址。

    LENGTH/TYPE字段:根据值的不同有不同的含义:

    当LENGHT/TYPE > 1500时,代表该数据帧的类型(比如上层协议类型)常见的协议类型有:

    • 0X0800 IP数据包
    • 0X0806 ARP请求/应答报文
    • 0X8035 RARP请求/应答报文。

    当LENGTH/TYPE < 1500时,代表该数据帧的长度。

    案例分析

    8d05fe0d2362b30104b193a51d581352.png

    图2

    如上图所示,通过例举出的TELNET协议的抓包实例,进一步加深对报文封装的理解。

    b888903515b5c20560ddf379082a83a5.png

    上图为AR1使用TELNET协议远程登录AR2进行的TCP三次握手过程。

    81cb762cc555710eb2f477366718fab1.png

    图2

    上图为数据链路层封装。如图可知使用的是Ethernet II格式封装。

    DMAC为:00e0:fc3b:6792

    SMAC为:00e0:fc80:64f3

    type:字段为0x0800表明数据字段封装是IP报文。

    79ebeb14d10ab4d8e453d23cb165f7ae.png

    图4

    上图为网络层报文封装。一个网络层IP包是由IP头部和IP数据组成。

    上图表明是一个IPv4的报文

    报文头为20字节

    协议字段为0x06,表明数据封装的是一个TCP报文。

    数据的源IP地址为12.12.12.1,目的IP地址为12.12.12.2

    7fcb29bb088972d6803a2d01ee04ff76.png

    图5

    上图为传输层数据封装。如图所示的传输层使用的是TCP协议

    源端口号为随机端口号49895,目的端口号为公认TELNET协议端口号23

    展开全文
  • 关于pcap截取的网卡数据帧的分析;一个Demo说明网络协议封分层以及具体截获的包分析说明 一个实际的包数据分析 packet_header ------>包帧的头部---16字节 --------packet_content start--------- 52 54 00 12 35 ...
  • 以太网协议帧

    2013-05-25 21:11:49
    以太网帧格式: ...l 类型字段值为0x0800时,表示上层使用是IP数据报。 l 类型字段值为0x0806时,表示上层为ARP数据报 l 类型字段值为0x8137时,表示该是有Novell IPX发过来。 若为小端

    以太网帧格式:


    1.以太网帧由5个字段组成

    1>前两个字段分别为6字节长的目的地址和源地址地段。

    2>第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议。

    l 类型字段的值为0x0800时,表示上层使用的是IP数据报。

    l 类型字段的值为0x0806时,表示上层为ARP数据报

    l 类型字段的值为0x8137时,表示该帧是有Novell IPX发过来的。

    若为小端格式为:

    l 类型字段的值为0x0008时,表示上层为IP数据报

    l 类型字段的值为0x0608时,表示上层为ARP数据报

    3>第四个字段是数据段:长度在46到1500字节之间

    注:

    u 以太网最小长度是64字节,减去18字节的(首部和尾部)得出数据段最小为46字节,<首部14字节,尾部4字节的效验码>

    u 当数据字段的长度小于46字节时,会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长度不小于64字节。

    4>第五个字段是4字节的帧检验序列FCS.

    2.以太网帧说明最大数据长度和最小数据长度

    Ø 传统的以太网是共享性局域网,采用载波侦听多路访问/冲突检测CSMA/CD协议。最小帧长必须大于整个网络的最大时延位(最大时延时间内可以传输的数据位)

    Ø 如果帧长度太小,就可能出现网络上同时有两个帧在传播,就会产生冲突(碰撞)而造成网络无法发送数据。

    Ø 如果数据帧太长就会出现有的工作长时间不能发送数据,而且可能超出接收端的缓冲区大小,造成缓冲益出。

    Ø 由于多方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。

    说明:

    小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)

    展开全文
  • 一、ISO/OSI参考模型OSI(open system interconnection)开放系统互联模型是由...物理层(Physical Layer):物理层定义了所有电子及物理设备规范,为上层的传输提供了一个物理介质,本层中数据传输单位为比特(...

    一、ISO/OSI参考模型

    OSI(open system interconnection)开放系统互联模型是由ISO(International Organization for Standardization)国际标准化组织定义的网络分层模型,共七层,如下图。

    7930dc1d22067e3095a001adc29bf25f.png

    物理层(Physical Layer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为比特(bit)。属于本层定义的规范有EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等,实际使用中的设备如网卡等属于本层。

    数据链路层(Data Link Layer):对物理层收到的比特流进行数据成帧。提供可靠的数据传输服务,实现无差错数据传输。在数据

    链路层中数据的单位为帧(frame)。属于本层定义的规范有SDLC、HDLC、PPP、STP、帧中继等,实际使用中的设备如switch交换机属于本层。

    网络层(Network Layer):网络层负责将各个子网之间的数据进行路由选择,分组与重组。本层中数据传输的单位为数据包(packet)(This packet can be either an IP datagram or a fragment of an IP datagram)。属于本层定义的规范有IP、IPX、RIP、OSPF、ICMP、IGMP等。实际使用中的设备如路由器属于本层。

    注:可能大家经常被数据包还是数据报的名词混淆,下面给出较准确的定义:

    an IP datagram is the unit of end-to-end transmission at the IP layer (before fragmentation and after reassembly), and a packet is the unit of data passed between the IP layer and the link layer. A packet can be a complete IP datagram or a fragment of an IP datagram.

    传输层(Transport Layer):提供可靠的数据传输服务,它检测路由器丢弃的包,然后产生一个重传请求,能够将乱序收到的数据包重新排序。在传输层数据的传输单位是段(segment)。

    会话层(Session Layer):管理主机之间会话过程,包括会话建立、终止和会话过程中的管理。

    表示层(Presentation Layer):表示层对网络传输的数据进行变换,使得多个主机之间传送的信息能够互相理解,包括数据的压缩、加密、格式转换等。

    应用层(Application Layer):应用层与应用程序界面沟通,以达至展示给用户的目的。 在此常见的协定有: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等

    二、TCP/IP协议四层模型

    TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图。

    5dd83fd76874f4fe09e91d3341129f97.png

    两台计算机通过TCP/IP协议通讯的过程如下所示:

    0ad7cc15289cdd0e556fe7227d898449.png

    传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示:

    00a1b1082c1b419b7a189d59c554e577.png

    不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据包(packet),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

    上图对应两台计算机在同一网段中的情况,如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器,如下图所示:

    b9df4bdaf815235b28064f095696f6b8.png

    其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)是工作在物理层的网络设备,用于双绞线的连接和信号中继(将已衰减的信号再次放大使之传得更远)。

    链路层有以太网、令牌环网等标准,链路层负责网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。交换机是工作在链路层的网络设备,可以在不同的链路层网络之间转发数据帧(比如十兆以太网和百兆以太网之间、以太网和令牌环网之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层首部重新封装之后再转发。

    网络层的IP协议是构成Internet的基础。Internet上的主机通过IP地址来标识,Internet上有大量路由器负责根据IP地址选择合适的路径转发数据包,数据包从Internet上的源主机到目的主机往往要经过十多个路由器。路由器是工作在第三层的网络设备,同时兼有交换机的功能,可以在不同的链路层接口之间转发数据包,因此路由器需要将进来的数据包拆掉网络层和链路层两层首部并重新封装。IP协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应用程序中提供支持。

    网络层负责点到点(point-to-point)的传输(这里的“点”指主机或路由器),而传输层负责端到端(end-to-end)的传输(这里的“端”指源主机和目的主机)。传输层可选择TCP或UDP协议。TCP是一种面向连接的、可靠的协议,有点像打电话,双方拿起电话互通身份之后就建立了连接,然后说话就行了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。也就是说TCP传输的双方需要首先建立连接,之后由TCP协议保证数据收发的可靠性,丢失的数据包自动重发,上层应用程序收到的总是可靠的数据流,通讯之后关闭连接。UDP协议不面向连接,也不保证可靠性,有点像寄信,写好信放到邮筒里,既不能保证信件在邮递过程中不会丢失,也不能保证信件是按顺序寄到目的地的。使用UDP协议的应用程序需要自己完成丢包重发、消息排序等工作。

    目的主机收到数据包后,如何经过各层协议栈最后到达应用程序呢?整个过程如下图所示:

    b98771bb8ab63ae1653b12fe8fec93b2.png

    以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP还是RARP协议的数据报,然后交给相应的协议处理。假如是IP数据报,IP协议再根据IP首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP还是IGMP,然后交给相应的协议处理。假如是TCP段或UDP段,TCP或UDP协议再根据TCP首部或UDP首部的“端口号”字段确定应该将应用层数据交给哪个用户进程。IP地址是标识网络中不同主机的地址,而端口号就是同一台主机上标识不同进程的地址,IP地址和端口号合起来标识网络中唯一的进程。

    注意,虽然IP、ARP和RARP数据报都需要以太网驱动程序来封装成帧,但是从功能上划分,ARP和RARP属于链路层,IP属于网络层。虽然ICMP、IGMP、TCP、UDP的数据都需要IP协议来封装成数据报,但是从功能上划分,ICMP、IGMP与IP同属于网络层,TCP和UDP属于传输层。

    需要C/C++ Linux服务器开发学习资料加qun563998835(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

    展开全文
  • IP协议的数据帧长度是多少?

    千次阅读 2019-04-11 22:07:26
    1、如果使用PPP协议,帧最大长度1510...2、如果在以太网中,帧的长度为:64~1518字节(10~100Mbps 的以太网),1G及以上的以太网,帧长度为512~1518字节;其中数据长度(加载上层协议数据)不超过1500字节。 ...
  • 数据帧协议分析

    2019-07-07 22:56:00
    以太网中发送分组成为帧,以太网帧包含七个字段:前同步码、SFD、DA、SA、数据单元长度/类型、上层数据以及CRC以太网不提供任何机制来确认收到的数据帧。 二、帧格式    前同步码:  802.3帧第一个字段...
  • 以太网帧结构以及ARP RARP协议

    千次阅读 2018-03-18 15:53:18
    以太网结构 preamble有7个字节的10101010组成;...Type指示Data部分携带的上层协议类型;FCS(Frame check sequence)包含了4个bytes的CRC,CRC的多项式为G(x)=x^32 +x^26 +x^23 +x^22 +x^16 +x^12 +x^11 +x
  • 一般地,关注于逻辑数据关系协议通常被称为上层协议,而关注于物理数据协议通常被称为低层协议。 IEEE802就是一套用来管理物理数据流在局域网中传输标准,包括在局域网中传输物理数据的802.3以太网标准。...
  • 以太网帧的结构

    2019-05-03 16:42:27
    网络通信中,标准和协议一般是可以通用,不过协议和标准本身又有相应层次感,例如,一般关注于逻辑数据关系协议称为上层协议,关注于物理数据协议称为底层协议。 OSI TCP/IP IPX/SPX ...
  • 链路层上最常见的封装就是以太网和IEEE 802封装,这里就使用以太网作为...这个长度是提供给上层协议的数据负载,也就是上层协议封装的数据最长度不要超过以太网帧的数据长度。最小数据帧尾46,最大数据帧长为1500.  在
  • 2.以太网帧结构

    2020-02-01 21:59:46
    以太网是根据IEEE 802.3标准来管理和控制数据帧的 目标 理解分层模型的作用 掌握以太网数据帧的结构 掌握MAC地址的作用 掌握以太网中数据转发的过程 网络通信协议 不同的协议栈用于定义和管理不同的数据...
  • 以太网帧结构

    2020-04-02 11:57:18
    一般地,关注于逻辑数据关系协议通常被称为上层协议,而关注于物理数据协议通常被称为低层协议。IEEE 802就是一套用来管理物理数据流在局域网中传输标准,包括在局域网中传输物理数据的802.3以太网标准,...
  • 网络层只负责数据源端和目的端,而链路层就是负责相邻设备之间的数据帧传输。相邻设备之间也需要描述识别(因为一个...16位上层协议类型:网络层协议类型,在数据分用时选择上层解析协议 32位CRC校验和:数据帧
  • 以太网帧格式

    2016-11-29 23:23:28
    普通ethernet报文,普通PC机网卡是可以识别这样报文进行通讯。...Ether-Type字段表明上层使用什么协议,常用协议类型值如下表所示:DATA字段为承载的数据内容,由一个上层协议的协议数据单元PDU构成
  • 以太网的最小长问题

    千次阅读 2017-05-23 11:49:49
    数据链路层传输主要为上层提供服务,其主要有一下几种形式网络,以太网、令牌环网、F D D I(光纤分布式数据接口)及R S-2 3 2串行线路等。本文主要以以太网为例进行分析。 以太网传输主要采用一个CSMA/CD...
  • 目的MAC地址:指明帧的接受者源MAC地址:指明帧的发送者长度(Length):帧的数据字段的长度(长度或类型)类型(Type):用来标识上层协议的类型,如IPv4,IPv6。上层协议,表示网络层使用的协议。数据帧校验序列(FCS):用于...
  • MTU:MTU链路层最大传输单元,不同网络类型有不同MTU,链路层MTU(Data数据长度加TCP协议报头长度加IP协议报头长度),以太网帧限制数据长度范围是46到1500字节,ARP数据报不足46字节则在其后面进行补位,若...
  • 以太网协议一、以太网帧格式二、ARP协议2.1 协议格式2.2 作用2.3 工作流程2.4 ARP局域网欺骗攻击三、MTU对于上层协议的影响3.1 TCP协议影响3.2 UDP协议影响 链路层协议主要是负责相邻设备之间的数据传输。 一、...
  • 点击标题下方小平Linux工作室关注作者,带你了解更多计算机知识。...L:数据的字段长度,占2个字节,表示data字段长度及上层协议。0x0800:表示上层协议为IP协议。0x8137:表示上层协议为IPX协议。DATA:数据字段...
  • 在二层数据链路层传输时,利用的以太网的帧结构 由前导码—目标MAC地址—源MAC地址—上次协议+DATA+FCS 组成 前导码  8个字节组成。 最后两个bit为11称为 SFD(start Frame Delimiter) 目标MAC地址与源MAC...
  • 承接上一博文而来,继续解析网络数据包,对于承载在以太网上三种协议进行了解析,主要是分为依据RFC定义标准先解析头部数据,然后得到有效载荷,即为协议包括实体数据,更上层进行进一步处理。 一、ARP协议 ...
  • 一、链路层协议: 负责相邻设备间的数据传输;相邻设备:连接起来两个设备就是相邻设备。 一个路由器可能连接很多设备,也就是说一个设备有很多...(2)类型–2字节:上层网络层协议类型,用于数据的分用;(IP,

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 181
精华内容 72
关键字:

以太网数据帧的上层协议