2.6 数据链路层数据帧协议分析
数据链路层协议及技术资料

5.1 数据链路层基本概念
• 链路:一条无源的点到点的物理线路段 • 数据链路:链路+规程(控制数据传输)。一条物理
连接加上为实现数据可靠传输所配置的硬件和相关的 通信协议) • 数据链路层的作用:通过一些数据链路层协议(链路 控制规程),在不太可靠的物理链路上实现可靠的数 据传输
• 技术:如何避免字符数据可能与帧的头尾标志相同? 发送方在数据中遇到DLE时,自动在其前后插入一个 DLE 接收方在数据中遇到单个DLE时,可确定帧界,遇到2 个 DLE时,自动删除一个DLE
5.2.2 带字符填充的首尾字符定界法
• 用途:帧同步用于面向字符型协议,比如PPP,IBM 的二进制同步通信协议BSC
段规定的长度(8bbit,16bit,32bit)计算他们的和, 若校验和大于规定的长度,则将进位加到最后的校验 和中。将校验和和数据一起发送。在接收端,重新计 算校验和与原校验和比较。比如传输“HELLO WORLD.”以16bit为例
4865H+6C6CH+6F20H+776FH+726CH+642EH+ 进位=71FCH
来实现 软件:通过快速的CRC检验软件来实现
5.4 差错控制和流量控制
• 数据链路协议主要考虑的问题: 1、避免所传送的数据可能出现差错和丢失 2、使发方发送数据的速率适应收方的接收能力
理想化的数据传输
• 假设1:所传送的数据既不会出现差错和也不会丢失 (不考虑差错控制问题)
• 假设2:接收端的数据接收速率足够快,有能力接收 发送端的数据发送率(不考虑流量控制问题)
• 一般情况:信道速率b比特/秒,帧长度L比特,往返传 输延迟R秒,则信道利用率为 (L/b)/(L/b+R)=l/(l+Rb/L)
数据链路层协议

数据链路层协议数据链路层是OSI模型中的第二层,它负责为物理层提供可靠的数据传输服务,并为网络层提供无差错、有序的数据传输和网络拓扑结构控制等功能。
数据链路层协议作为数据链路层的软件实现,是计算机网络中的重要组成部分,本文将介绍数据链路层协议的相关知识。
一、数据链路层协议的概念数据链路层协议是指在数据链路层上实现的软件规范,它定义了数据在物理介质上的传输方式和控制信息的格式,以及数据帧的封装、解封装过程。
数据链路层协议可以分为两种类型,即同步型协议和异步型协议。
同步型协议使用时钟信号来同步数据的传输和接收,实现方式简单但传输效率较低;异步型协议则采用控制字符来实现数据的同步,传输效率较高,但实现复杂。
数据链路层协议的主要作用是将物理层提供的比特流按照一定的规则组织成数据帧,并加入必要的控制信息,确保数据的可靠传输。
同时,在数据链路层协议中还包括了数据链路层的上下文传递、错误检测和校正、流量控制等功能。
二、数据链路层协议的分类根据不同的标准和应用需求,数据链路层的协议可以分为多种类型。
常用的数据链路层协议有以下几种。
1. PPP协议PPP(Point-to-Point Protocol)是一种链路层协议,它是TCP/IP协议族中的标准协议。
PPP协议支持异步传输、同步传输和透明传输等不同传输方式,在一对一的点对点通信中使用广泛。
PPP协议具有较好的错误检测和纠正能力,同时还支持多种身份认证方式,如PAP、CHAP等。
2. HDLC协议HDLC(High-level Data Link Control)是一种同步传输协议,常用于传输广域网数据及电话系统中的ISDN通信。
HDLC协议可以支持点对点通信、多点通信和广播通信等多种通信方式。
它具有可靠的错误控制、流量控制和传输速率控制等功能,同时还可以实现数据的压缩和多链路传输。
3. SLIP协议SLIP(Serial Line Internet Protocol)是一种基于串口的异步传输协议,在TCP/IP网络中广泛应用。
协议分析

1 1 字节 1 802.2 控制 LLC 帧 DSAP SSAP
2 1 1 1
数
据
43 ~ 1497 数 据
目的地址 源地址 长度/类型 DSAP SSAP 控制
IP 数据报
字节 以太网 V2 MAC 帧 插 入 6 目的地址 6 源地址 2 类型 数 46 ~ 1500 据
8 字节 7 字节 1 字节 帧开始 定界符
路由器 R2
HA6 局域网
主机 H2 IP2 HA2 主机 H21 IP3 IP4 IP1 → IP2 路由器 R2 IP5 IP6 IP1 → IP2
IP1
IP2
IP 层上的互联网
HA1 从 HA1 到 HA3 MAC 帧
25
HA3
HA4
HA5
HA6 从 HA6 到 HA2 MAC 帧
4
主机 1 向主机 2 发送数据
注意观察加入或剥去首部(尾部)的层次
应用层首部 运输层首部 网络层首部
H4 H4 H4 H5 H5 H5 H5
主机 1
AP1 5
主机 2
AP2 5
应用程序数据 应用程序数据 应用程序数据 应用程序数据 应用程序数据
4
3 2
链路层 首部
H2
H3 H3
链路层 尾部
T2
4 3 2 1
8
MAC = Manufacture ID + NIC ID
MAC = Manufacture ID + NIC ID 24bit + 24bit 公司:Cisco Novell 00-00-0C 00-00-1B 00-00-D8 3Com 00-20-AF
00-60-8C
第四章---数据链路层协议分析

CRC的检错能力
沈阳航空工业学院 计算机学院
4.1 定义和功能(6)
4.1.4 差错控制 一般方法:接收方给发送方一个反馈(响应)。 出错情况
帧(包括发送帧和响应帧)出错; 帧(包括发送帧和响应帧)丢失
通过计时器和序号保证:每帧最终交给目的网络层仅一次。 主要功能
4.1.5 流量控制 基于反馈机制 流量控制主要在传输层实现
数据链路层使用的信道主要有以下两种类型: 点对点信道:一对一的点对点通信方式。 广播信道:一对多广播通信方式;多主机使用 协议来共享信道。
《计算机网络》
沈阳航空工业学院 计算机学院
4.1 定义和功能(2)
数据链路控制协议
为使数据能迅速、正确、有效地从发送点到达接收点所 采用的通信控制方式和通信规则。
《计算机网络》
沈阳航空工业学院 计算机学院
4.2 错误检测和纠正(1)
差错出现的特点:随机,连续突发(burst) 处理差错的两种基本策略
使用纠错码:发送方在每个数据块中加入足够的冗余信息,使得接收 方能够判断接收到的数据是否有错,并能纠正错误。 使用检错码:发送方在每个数据块中加入足够的冗余信息,使得接收 方能够判断接收到的数据是否有错,但不能判断哪里有错。
4.2.1
纠错码
码字(codeword):一个帧包括m个数据位,r个校验位,n = m + r,则 此n比特单元称为n位码字。
海明距离(Hamming distance):两码字不同比特位数目。
《计算机网络》
沈阳航空工业学院 计算机学院
数据链路层技术中的数据帧结构解析(三)

数据链路层技术中的数据帧结构解析数据链路层是计算机网络体系结构的一个重要层次,负责将网络层传来的数据包分割成帧,并在物理层上进行传输。
数据帧是数据链路层的基本传输单位,是一种结构化的数据格式。
本文将深入探讨数据链路层技术中的数据帧结构解析。
1. 数据帧概述数据帧是数据链路层中的基本单位,主要包括帧首部、帧信息字段和帧尾部。
帧首部和帧尾部分别用于标识一个数据帧的开始和结束。
帧信息字段是数据帧中实际承载的数据。
数据帧的结构化形式使得数据链路层能够在传输过程中实现可靠性、流量控制和错误检测等功能。
2. 帧首部帧首部是数据帧的开头部分,通常由几个字段组成。
其中最重要的字段是目的地址和源地址字段,它们用于标识帧的接收方和发送方。
目的地址字段指明了接收方设备的地址,而源地址字段则表示发送方设备的地址。
这些地址可以是物理地址(MAC地址)或逻辑地址(IP地址)。
除了地址字段,帧首部还可能包含其他控制信息字段,例如帧类型字段、数据帧长度字段等。
帧类型字段指示了数据帧所承载的数据类型,如IP数据包、ARP请求等。
数据帧长度字段则记录了整个数据帧的长度,以便接收方设备能够正确解析数据帧。
3. 帧信息字段帧信息字段是数据帧中实际承载的数据部分。
它的内容可以是上层协议传输的数据,也可以是控制信息。
帧信息字段的长度是可变的,取决于上层协议传输的数据量。
帧信息字段通常包括数据部分和校验和字段。
数据部分是上层协议传输的原始数据,例如HTTP请求、电子邮件内容等。
校验和字段用于检测数据帧在传输过程中是否发生了错误,以保证数据的完整性。
通常,发送方设备会在帧信息字段上进行校验和计算,并将结果存储在校验和字段中。
接收方设备在接收到数据帧后会重新计算校验和,并与接收到的校验和字段进行比较,以确定数据是否发生了错误。
4. 帧尾部帧尾部是数据帧的结束部分,通常由一个或多个字段组成。
其中最重要的字段是帧校验和字段。
帧校验和字段用于检测整个数据帧在传输过程中是否发生了错误,并对接收到的数据帧进行纠错。
数据链路层技术中的数据帧结构解析

数据链路层技术中的数据帧结构解析1. 前导码(Preamble):前导码是一个连续的非固定模式的位序列,用于同步发送和接收设备的时钟。
它的作用是在传输数据之前进行同步,并告知接收设备数据的开始。
2. 帧开始标志(Start of Frame Delimiter,SFD):帧开始标志是一个特定的位序列,用于指示数据帧的开始。
它的作用是在前导码结束后确定帧的边界。
3. 目的地址(Destination Address):目的地址字段指定数据帧的接收方的物理地址。
通常是一个MAC(Media Access Control)地址。
4. 源地址(Source Address):源地址字段指定数据帧的发送方的物理地址。
也是一个MAC地址。
5. 长度/类型(Length/Type):长度字段或类型字段用于表示整个数据帧的长度(如果使用长度字段)或数据帧的类型(如果使用类型字段)。
6. 数据(Data):数据字段包含网络层传输的数据。
具体的数据大小由长度字段或数据帧的最大长度决定。
7. 帧检验序列(Frame Check Sequence,FCS):帧检验序列用于检测数据帧在传输过程中是否出现了错误。
常见的FCS计算方法是通过CRC (循环冗余校验)算法生成一个固定长度的校验值,接收设备根据这个校验值来判断数据帧是否正常。
8. 帧结束标志(End of Frame Delimiter,EFD):帧结束标志是一个特定的位序列,用于指示数据帧的结束。
它的作用是在帧数据结束后确定帧的边界。
以上就是数据链路层技术中数据帧结构的各个字段。
值得注意的是,不同的数据链路层协议(例如以太网、Wi-Fi等)可能会略有不同的数据帧结构,但是这些字段的基本概念和作用是相通的。
数据帧结构的设计旨在提供稳定、可靠的数据传输,并保证数据的完整性和准确性。
数据链路层技术中的数据帧结构解析(一)

数据链路层技术是计算机网络中非常重要的一部分,它负责将网络层传递下来的数据进行分割、装配和管理。
在数据链路层中,数据帧结构起着关键的作用,它定义了数据在传输过程中的格式和顺序,以确保数据的可靠传输。
本文将对数据链路层技术中的数据帧结构进行解析。
一、数据链路层概述数据链路层是OSI模型中的第二层,位于物理层之上,负责将数据链路层报文段进行分组,从而构成数据链路层帧。
数据链路层的主要任务包括帧的协议划分、帧的传送、传输过程中的错误处理等。
二、数据链路层帧结构数据链路层帧是数据链路层传输的基本单位,它包含了数据和控制信息。
一个完整的数据链路层帧通常包括帧起始标志、目的节点地址、源节点地址、长度字段、数据字段、帧校验序列等部分。
1. 帧起始标志帧起始标志用于标识一个帧的开始,通常采用特定的模式进行标识,如0x7E。
帧起始标志的引入可以帮助接收节点正确地辨别帧的开始和结束。
2. 目的节点地址和源节点地址目的节点地址和源节点地址分别用于标识数据帧的接收方和发送方。
目的节点地址一般是一个唯一的标识符,可以是硬件地址或逻辑地址,它告诉网络接口卡将帧发送到哪个位置。
3. 长度字段长度字段指示了数据字段中数据的长度,以便接收方能够正确接收数据。
长度字段的长度可以根据具体的通信协议而定,通常是一个固定的字节数。
4. 数据字段数据帧中的数据字段存储了传输的实际数据。
数据长度可以根据通信需求进行调整,最大长度受到物理层和数据链路层的限制。
5. 帧校验序列帧校验序列用于检测数据帧在传输过程中的错误,并对数据进行纠正或丢弃。
常用的帧校验方法包括循环冗余校验(CRC)、奇偶校验等。
三、数据帧的传输过程在数据链路层中,数据帧经历了发送端到接收端的传输过程,主要包括帧封装、传输、帧解析等步骤。
1. 帧封装在发送端,数据链路层将数据进行分段,并添加控制信息,形成帧结构。
首先,添加帧起始标志,使接收端能够正确识别帧的开始。
然后,添加目的节点地址和源节点地址,以指示数据帧的接收和发送方。
数据链路层技术中的数据帧结构解析

在计算机网络中,数据链路层是实现可靠数据传输的关键层级之一。
数据链路层技术是确保数据在物理链路上正确传输的重要手段。
而数据帧作为数据链路层的基本传输单位,其结构的解析对于理解数据链路层技术至关重要。
数据帧是在数据链路层进行数据传输时的封装单位。
它是由首部(Header)、数据(Data)和尾部(Trailer)组成的。
首部包含了控制信息,用于识别帧的起始和结束,以及用于进行差错检测和纠正的冗余校验码等。
数据部分则是实际要传输的信息。
尾部通常包含差错检测的校验和。
在数据帧结构中,首部起着关键的作用。
首部中的控制信息包括目的地址、源地址、帧类型等,用于确保数据被正确地发送和接收。
目的地址指示接收方的身份,源地址指示发送方的身份。
帧类型则指示数据链路层中的协议类型,例如以太网、令牌环等。
另一个重要的内容是差错检测和纠正机制。
差错检测是为了保证数据传输的可靠性,而差错纠正则是在检测到错误时进行纠正,以确保传输的完整性。
差错检测常用的方法有循环冗余校验(CRC),而差错纠正则是利用校验位进行纠正。
这些机制的引入使得数据链路层的传输更加可靠。
数据帧中的尾部通常包含了校验和,用于差错检测。
校验和是通过对数据帧中的每个位进行求和得到的。
发送方在发送数据帧时,会将校验和附加在尾部。
接收方在接收到数据帧后,会再次计算校验和,与接收到的校验和进行比较。
如果两者相等,则说明数据帧的传输没有发生错误。
如果不相等,则说明数据帧中存在错误,需要进行差错纠正。
此外,数据帧结构的解析还涉及到帧的起始和结束标记。
在以太网中,数据帧的起始标记是帧前导码,由连续的10个0构成。
结束标记是帧尾定界符,由连续的11个1构成。
起始和结束标记的引入是为了帧同步,保证接收方能够准确地识别帧的开始和结束位置。
总结起来,数据链路层技术中的数据帧结构是确保数据可靠传输的重要手段。
数据帧由首部、数据和尾部组成,首部包含了控制信息,用于识别帧的起始和结束,以及进行差错检测和纠正。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验数据链路层的帧分析一、实验目的分析 TCP、UDP的数据链路层帧结构、二、准备工作虚拟机XP,虚拟网卡设置,NAT模式,TCP/IP参数设置自动获取。
本实验需安装抓包工具软件IPTool。
三、实验内容及步骤1.运行ipconfig命令在Windows的命令提示符界面中输入命令:ipconfig /all,会显示本机的网络配置信息。
2.运行抓包工具软件双击抓把工具软件图标,输入所需参数,和抓包过滤参数,点击捕捉。
3.进行网络访问进行网络访问,下载文件/搜索资料/www访问/登录邮件系统等均可。
4.从抓包工具中选择典型数据帧5.保存捕获的数据帧6.捕获数据帧并分析1、启动网络抓包工具软件在网络内进行捕获,获得若干以太网帧。
2、对其中的5-10个帧的以太网首部进行观察和分析,分析的内容为:源物理地址、目的物理地址、上层协议类型。
实验过程:1.TCP协议数据包、数据帧分析启动IPTool,IE访问站点,使用iptool进行数据报的捕获。
TCP报文如下图:根据所抓的数据帧进行分析:(1)MAC header目的物理地址:00:D0:F8:BC:E7:06源物理地址:00:16:EC:B2:BC:68Type是0x800:意思是封装了ip数据报(2)ip数据报由以上信息可以得出:①版本:占4位,所以此ip是ipv4②首部长度:占4 位,可表示的最大十进制数值是15。
此ip数据报没有选项,故它的最大十进制为5。
③服务:占8 位,用来获得更好的服务。
这里是0x00④总长度:总长度指首都及数据之和的长度,单位为字节。
因为总长度字段为16位,所以数据报的最大长度为216-1=65 535字节。
此数据报的总长度为40字节,数据上表示为0x0028。
⑤标识(Identification):占16位。
IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为IP是无连接的服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
在这个数据报中标识为18358,对应报文16位为47b6⑥标志(Flag):占3 位,但目前只有2位有意义。
标志字段中的最低位记为MF (More Fragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don't Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
这个报文的标志是010,故表示为不分片!对应报文16位为0x40。
⑦片偏移:因为不分片,故此数据报为0。
对应报文16位为0x00。
⑧生存时间:占8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。
每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。
若数据报在路由器消耗的时间小于1 秒,就把TTL值减1。
当TTL值为0时,就丢弃这个数据报。
经分析,这个数据报的的TTL为64跳!对应报文16位为0x40。
⑨协议:占8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
这个ip数据报显示使用得是TCP协议对应报文16位为0x06。
⑩首部检验和:占16位。
这个字段只检验数据报的首部,但不包括数据部分。
这是因为数据报每经过一个路由器,都要重新计算一下首都检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。
不检验数据部分可减少计算的工作量。
对应报文16位为0x8885。
⑾源地址:占32位。
此报文为219.219.61.32 对应数据为DB:DB:3D:20⑿目的地址:占32位。
此报文为199.75.218.77对应数据为77:4B:DA:4D(13)选项:这里是无!(2)TCP 报头TCP报文首部格式●源端口(Source Port):16位的源端口字段包含初始化通信的端口号。
源端口和IP地址的作用是标识报文的返回地址。
这个报文是3204对应的数据报中的16位为0x0c84。
●目的端口(Destination Port):16位的目的端口字段定义传输的目的。
这个端口指明接收方计算机上的应用程序接口。
这个报文的目的端口是80(代表了http协议)对应的数据报中的16位为0x0050●序列号(Sequence Number):该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。
序列号是一个32位的数。
这个报文的sequence number是2416921514对应的数据报中的16位为0x900f4baa●确认号(Acknowledge Number):TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。
收到确认号的源计算机会知道特定的段已经被收到。
确认号的字段只在ACK标志被设置时才有效。
这个报文的ACK是2803024519对应的数据报中的16位为0xa712c287●首部长度(header length)这里是5 代表了20字节也表示tcp选项是无,对应的数据报中的16位为0x50●控制位(Control Bits):共6位,每一位标志可以打开一个控制功能。
URG(Urgent Pointer Field Significant,紧急指针字段标志):表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间齐备尽快处理这些数据。
这里URG为0 表示not setACK(Acknowledgement field significant,确认字段标志): 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。
这里ACK为1 表示是确认帧PSH(Push Function,推功能):这个标志表示Push操作。
所谓Push操作就是指在数据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。
这里PSH位置0表示不直接送给应用程序RST(Reset the connection,重置连接):这个标志表示感谢连接复位请求,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。
这里是0 表示不产生重置连接SYN(Synchronize sequence numbers,同步序列号):表示同步序号,用来建立连接。
这里SYN为0,表示没有设置同步FIN(No more data from sender):表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。
这里FIN是0,表示没有设置这里对应的数据报中的16位为0x10●窗口(Window):目的主机使用16位的窗口字段告诉源主机它期望每次收到的数据通的字节数。
此报文窗口大小为65535对应的数据报中的16位为0xffff●校验和(Checksum):TCP头包括16位的校验和字段用于错误检查。
源主机基于部分IP头信息,TCP头和数据内容计算一个校验和,目的主机也要进行相同的计算,如果收到的内容没有错误过,两个计算应该完全一样,从而证明数据的有效性。
这里检验和为:0xf317●紧急指针(Urgent Pointer):紧急指针字段是一个可选的16位指针,指向段内的最后一个字节位置,这个字段只在URG标志被设置时才有效。
这里Urgent Pointer为零,表示没有使用紧急指针选项(Option):至少1字节的可变长字段,标识哪个选项(如果有的话)有效。
如果没有选项,这个字节等于0,说明选项的结束。
这个字节等于1表示无需再有操作;等于2表示下四个字节包括源机器的最大长度(Maximum Segment Size,MSS).这里选项没有设置●填充(Padding):这个字段中加入额外的零,以保证TCP头是32的整数倍。
2.UDPP协议数据包、数据帧分析启动IPTool,IE进入自己邮箱发邮件给自己,使用iptool进行数据报的捕获。
接下来我们来分析一个udp 的报文格式,首先前14位是mac地址接下来是ip地址,ip的格式是进行分析i45-版本4,首部长度500 –服务类型000 51 –总长度81F6 FC –标识6322840 00 –标志0*40,片偏移040-生存时间6406 –协议类型685 53-首部检验和8553DB DB 3D 0A-源ip地址219.219.61.1077 93 2D DE-目的ip地址119.147.45.2221.1在ip的的版本号(4b)首部长度(4b)服务类型(8b)总长度(16b)(注意在ip报文中所有每个数字都代表一个字节也就是8b),16b标识,DB DB 3D 0A-源ip地址219.219.61.10 77··································································································································3 2D DE-目的ip地址119.147.45.222四、实验体会。