精华内容
下载资源
问答
  • 数据OSI七模型中的名字 数据、数据包、数据报以及数据段
    万次阅读
    2012-10-08 16:25:03

    数据帧、数据包、数据报以及数据段 

    OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。

     

    信息交换发生在对等OSI层之间,在源端机中每一层把控制信息附加到数据中,而目的机器的每一层则对接收到的信息进行分析,并从数据中移去控制信息,下面是各信息单元的说明:

    数据帧(Frame):是一种信息单位,它的起始点和目的点都是数据链路层
    数据包(Packet):也是一种信息单位,它的起始和目的地是网络层
    数据报(Datagram):通常是指起始点和目的地都使用无连接网络服务的的网络层的信息单元。
    段(Segment):通常是指起始点和目的地都是传输层的信息单元。
    消息(message):是指起始点和目的地都在网络层以上(经常在应用层)的信息单元。

    元素(cell)是一种固定长度的信息,它的起始点和目的地都是数据链路层

    元素通常用于异步传输模式(ATM)和交换多兆位数据服务(SMDS)网络等交换环境。

    数据单元(data unit)指许多信息单元。常用的数据单元有服务数据单元(SDU)、协议数据单元(PDU)。

    SDU是在同一机器上的两层之间传送信息。PDU是发送机器上每层的信息发送到接收机器上的相应层(同等层间交流用的)。

    Packet(数据包):封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个Packet映射成一个Frame,但也有例外:即当数据链路层执行拆分或将几个Packet合成一个Frame的时候。

    数据链路层的PDU叫做Frame(帧);
    网络层的PDU叫做Packet(数据包);
    TCP的叫做Segment(数据段);
    UDP的叫做Datagram。(数据报)——在网络层中的传输单元(例如IP)。一个Datagram可能被封装成一个或几个Packets,在数据链路层中传输

     

    帧和数据包都是数据的传输形式。帧,工作在二层,数据链路层传输的是数据帧,包含数据包,并且增加相应MAC地址与二层信息;数据包,工作在三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的IP地址等三层信息。

     

    数据包: 
        “包”(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。有人说,局域网中传输的不是“帧”(Frame)吗?没错,但是TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。 名词解释:OSI(Open System Interconnection,开放系统互联)模型是由国际标准化组织(ISO)定义的标准,它定义了一种分层体系结构,在其中的每一层定义了针对不同通信级别的协议。OSI模型有7层:
    上四层协议有:
    第7层应用层(Application)协议和应用:http,ftp,tftp,telnet,dns,smtp
    此层是用户与计算机进行实际通信的地方.只是当马上就要访问网络时,才会实际上用到这一层.
    第6层表示层(Presnation)协议和应用:ebcdic,ascii,jpeg,tiff,midi,mpeg
    第5层会话层(Session)协议和应用:nfs,sql,rpc,x-windows,netbios

    下四层协议有:
    第4层传输层(Transport 此层数据单位【段segment】)协议和应用:tcp,udp,spx
    第3层网络层(Network   此层数据单位【包packet】)协议和应用:ip,ipx,appletalk,icmp
    第2层链路层(Data Link 此层数据单位【帧Frame】)协议和应用:802.3,802.2,atm,fr
    第1层物理层(Physical此层数据单位【比特流Bit】)协议和应用:v.35,eia/tia 323


    OSI模型在逻辑上可分为两个部分:低层的14层关注的是原始数据的传输;高层的57层关注的是网络下的应用程序。 我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。 “包”听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。比如在Windows 2000 Server中,把鼠标移动到任务栏右下角的网卡图标上(网卡需要接好双绞线、连入网络),就可以看到“发送:××包,收到:××包”的提示。通过数据包捕获软件,也可以将数据包捕获并加以分析。 就是用数据包捕获软件Iris捕获到的数据包的界面图,在此,大家可以很清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。 附: 数据包的结构 数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解TCP/IP协议的通信原理是非常重要的。数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成。 数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。 正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具有至关重要的意义。 

    数据帧 
        “帧”数据由两部分组成:帧头和帧数据。帧头包括接收方主机物理地址的定位以及其它网络信息。帧数据区含有一个数据体。为确保计算机能够解释数据帧中的数据,这两台计算机使用一种公用的通讯协议。互联网使用的通讯协议简称IP,即互联网协议。IP数据体由两部分组成:数据体头部和数据体的数据区。数据体头部包括IP源地址和IP目标地址,以及其它信息。数据体的数据区包括用户数据协议(UDP),传输控制协议(TCP),还有数据包的其他信息。这些数据包都含有附加的进程信息以及实际数据。

     

    更多相关内容
  • 数据链路)(

    千次阅读 2020-11-05 17:44:43
    数据链路层一、使用点对点信道的数据链路1.数据链路和2.三个基本问题二、点对点协议 PPP1.PPP 协议的特点2.PPP 协议的格式3.PPP 协议的工作状态三、使用广播信道的数据链路1.局域网的数据链路2.CSMA/CD ...

    一、使用点对点信道的数据链路层

    数据链路层使用的信道主要有以下两种类型:
    点对点信道: 这种信道使用一对一的点对点通信方式。
    广播信道: 这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据 发送。
    在这里插入图片描述
    在这里插入图片描述

    1.数据链路和帧

    链路(link) 是一条无源的点到点物理线路段,中间没有任何其他的交换结点。
    一条链路只是一条通路的一个组成部分。

    数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    现在最常用的方法是使用适配器(即网卡) 来实现这些协议的硬件和软件。
    一般的适配器都包括了数据链路层物理层这两层的功能。
    在这里插入图片描述
    常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
    在这里插入图片描述
    早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。

    2.三个基本问题

    (1) 封装成帧
    封装成帧(framing)就是在一段数据的前后分别添加首部尾部,然后就构成了一个帧。确定帧的界限。
    首部和尾部的一个重要作用就是进行帧定界
    在这里插入图片描述
    在这里插入图片描述
    (2) 透明传输
    在这里插入图片描述
    解决透明传输的方法
    发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
    字节填充(byte stuffing)字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

    如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

    类似于C语言里面输出语句中的转义符”\”
    在这里插入图片描述
    (3) 差错控制
    在传输过程中可能会产生比特差错1可能会变成0而0也可能变成1。
    在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
    误码率信噪比有很大的关系。
    为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。确保数据链路层提交给网络层的数据一定是正确的。

    差错控制仅仅是可靠传输的保障技术之一,可靠传输还需要解决丢包、乱序等问题,这些问题差错控制解决不了。

    循环冗余检验的原理
    在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
    在发送端,先把数据划分为组。假定每组 k 个比特。
    假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。
    实际标准需要给出用户数据长度和冗余码的长度的关系。
    冗余码的计算
    用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
    得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。
    先选定长度为(n+1)除数P,在M后面添加n个0(添加的0个数=P的长度-1),再使用模2除法计算余数R
    在这里插入图片描述
    在这里插入图片描述
    在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
    循环冗余检验 CRC 和帧检验序列 FCS并不等同。
    CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
    FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

    接收端对收到的每一帧进行 CRC 检验
    (1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。
    (2) 若余数 R  0,则判定这个帧有差错,就丢弃。
    但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
    只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。 在这里插入图片描述
    在这里插入图片描述
    注:
    仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)
    “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
    也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
    要做到 “可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。

    二、点对点协议 PPP

    1.PPP 协议的特点

    现在全世界使用最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
    用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。
    ADSL使用的PPPOE协议

    PPP协议参考了HDLC的帧结构,但没有使用HDLC帧类型(信息帧I、监控帧S)
    FTTH光纤到户目前采用EPON(Ethernet Passive Optical Network)以太无源光网络。

    在这里插入图片描述
    I、PPP 协议应满足的需求:
    (1)简单——这是首要的要求
    IETF在设计网络体系结构时,最复杂的部分放在TCP协议IP只提供不可靠的传输服务。所以数据链路层没有必要提供比IP层更多的功能,若纠错、序号、流量控制。
    (2)封装成帧
    PPP协议使用特殊字符作为帧定界符,指示帧的开始和结束位置
    (3)透明性
    当数据中出现和帧定界符一样的比特组合时,需要采取措施解决这个问题。
    (4)多种网络层协议
    PPP协议能够在
    同一条物理链路上
    支持多种网络协议(如IP和IPX,IPX是novell公司制定)
    (5)多种类型链路
    PPP还需要能在多种类型的链路上运行,若串行或者并行
    (6)差错检测
    对接收的帧进行检测,并立即丢弃有差错的帧。以免出错的帧进行传输,浪费网络资源。
    (7)检测连接状态
    PPP具有一种机制能够及时自动自动检测出链路是否处于正常状态,出现故障后的链路隔一段时间后能正常恢复,即掉线重连
    (8)最大传送单元
    为每种类型的点对点链路设置了最大传送单元MTU,MTU规定的是数据部分的最大长度。
    (9)网络层地址协商
    使通信双方协商网络层地址
    (10)数据压缩协商
    使通信双方协商数据压缩的算法

    II、PPP 协议不需要的功能
    (1)纠错
    PPP只进行检错,不纠错。PPP是不可靠的传输协议。
    (2)流量控制
    端到端的的流量控制由TCP负责,链路层的PPP协议不需要再重复进行流量控制
    (3)序号
    PPP为不可靠传输,不需要序号。
    (4)多点线路
    不支持点到多点的传输服务
    (5)半双工或单工链路

    III、PPP 协议的组成
    1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准[RFC 1661]。
    PPP 协议有三个组成部分
    一个将 IP 数据报封装到串行链路方法
    链路控制协议 LCP (Link Control Protocol): 建立、配置和测试数据链路测连接。
    一套网络控制协议 NCP (Network Control Protocol): 每个协议支持不同的网络层协议,如IP、DECnet、AppleTalk。

    2.PPP 协议的帧格式

    在这里插入图片描述
    标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
    地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
    控制字段 C 通常置为 0x03,从HDLC继承过来的,无实际意义。
    PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。

    解决数据链路层三个问题之中的“1. 封装成帧”

    透明传输问题:
    两种方式:
    当 PPP 用在异步传输时,就使用一种特殊的字符填充法
    当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。

    解决数据链路层三个问题之中的“2. 透明传输”

    字符填充:
    将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
    若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
    若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。(原因是避免双方的调制解调器指令当成自身的控制字符进行处理)
    在这里插入图片描述
    零比特填充:
    PPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
    在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除,
    在这里插入图片描述
    不提供使用序号和确认的传输服务
    PPP 协议之所以不使用序号和确认机制是出于以下的考虑:
    在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
    在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
    帧检验序列 FCS 字段可保证无差错接受。

    在这里插入图片描述

    3.PPP 协议的工作状态

    ①当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
    ②PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。LCP—链路控制协议
    这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
    通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
    (可直接看下图)
    在这里插入图片描述
    在这里插入图片描述

    三、使用广播信道的数据链路层

    1.局域网的数据链路层

    局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限
    局域网具有如下的一些主要优点
    具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
    便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
    提高了系统的可靠性、可用性和残存性
    在这里插入图片描述
    媒体共享技术:
    在这里插入图片描述
    静态划分信道: 频分复用、时分复用、波分复用、码分复用。
    动态媒体接入控制(多点接入):
    随机接入:ALOHA→CSMA/CD
    受控接入:如环形网和多点线路轮询。

    纯ALOHA协议的思想很简单
    (1)只要用户有数据要发送,就尽管让他们发送。当然,这样会产生冲突从而造成帧的破坏。
    (2)由于广播信道具有反馈性,因此发送方可以在发送数据的过程中进行冲突检测,将接收到的数据与缓冲区的数据进行比较,就可以知道数据帧是否遭到破坏。
    (3)研究证明,纯ALOHA协议的信道利用率最大不超过18.4%

    载波监听多点接入/碰撞检测 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
    CSMA/CD的两个关键技术:
    (1)载波监听多点接入
    “多点接入” 表示许多计算机以多点接入的方式连接在一根总线上。
    “载波监听” 是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。 (总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。)
    在这里插入图片描述
    (2)碰撞检测
    “碰撞检测” 就是计算机边发送数据边检测信道上的信号电压大小
    当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
    当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
    所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。

    以太网的两个标准:
    DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
    IEEE 的 802.3 标准。
    DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
    严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网

    数据链路层的两个子层:
    为了使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
    逻辑链路控制 LLC (Logical Link Control)子层
    媒体接入控制 MAC (Medium Access Control)子层。

    与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关不管采用何种协议的局域网对 LLC 子层来说都是透明的 (LLC屏蔽各种局域网的差异,向网络层提供一个统一的服务访问点SAP。)
    在这里插入图片描述
    由于 TCP/IP 体系经常使用的局域网是 DIX Ethernet V2 而不是 802.3 标准中的几种局域网,因此现在 802 委员会制定的逻辑链路控制子层 LLC(即 802.2 标准)的作用已经不大了。

    适配器的作用:
    网络接口板又称为通信适配器(adapter)网络接口卡 NIC (Network Interface Card),或**“网卡”**。
    适配器的重要功能:
    进行串行/并行转换: 电缆串行/计算机IO并行。
    对数据进行缓存: 网络速率和计算机总线速率不一致。
    把数据封装成帧: 按照协议格式对数据进行封装。
    实现以太网协议: 以驱动形式安装在操作系统。
    在这里插入图片描述

    2.CSMA/CD 协议

    最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
    在这里插入图片描述
    以太网的广播方式发送:
    总线上的每一个工作的计算机都能检测到 B 发送的数据信号。
    由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。
    其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来(不需要提交到网络层)。
    具有广播特性的总线上实现了一对一的通信。
    为了通信的简便以太网采取了两种重要的措施:
    采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。
    以太网对发送的数据帧不进行编号,也不要求对方发回确认。(这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。)
    在这里插入图片描述
    在这里插入图片描述
    以太网提供的服务:
    以太网提供的服务是不可靠的交付,即尽最大努力的交付。
    当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
    如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。

    电磁波在总线上的有限传播速率的影响:
    当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
    A 向 B 发出的信息,要经过一定的时间后才能传送到 B (传播时延)
    B 若在 A 发送的信息到达 B 之前发送自己的帧(因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞。
    碰撞的结果是两个帧都变得无用。
    在这里插入图片描述
    在这里插入图片描述
    强化碰撞:
    当发送数据的站一旦发现发生了碰撞时:
    立即停止发送数据;
    再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞。
    在这里插入图片描述
    在这里插入图片描述
    检测到碰撞后:
    在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
    每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
    二进制指数类型退避算法:
    发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
    基本退避时间取为争用期 2τ。
    从整数集合[0,1,…, (2^k-1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
    参数 k 按下面的公式计算:
    k = Min[重传次数, 10]
    当 k <= 10 时,参数 k 等于重传次数。
    当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
    争用期:
    最先发送数据帧的站,在发送数据帧后至多经过时间 2τ (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
    以太网的端到端往返时延 2τ 称为争用期,或碰撞窗口。
    经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
    以太网争用期的长度:
    以太网取 51.2 us 为争用期的长度。
    对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。也可以说争用期是512比特时间
    以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
    在这里插入图片描述
    以太网最短有效帧长:
    如果发生冲突,就一定是在发送的前 64 字节之内。
    由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
    以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
    在这里插入图片描述
    帧间最小间隔:
    帧间最小间隔为 9.6 us,相当于 96 bit 的发送时间。
    一个站在检测到总线开始空闲后,还要等待 9.6 us 才能再次发送数据。
    这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
    在这里插入图片描述
    CSMA/CD协议的要点:
    **(1)准备发送:**在网络层分组前加上首部和尾部组成以太网帧,放入适配层缓存。检测信道是否空闲;
    **(2)检测信道:**若检测到信道空闲,并在96比特时间(帧间最小间隔)内信道保持空闲,发送这个帧;
    **(3)碰撞检测:**适配器边发送边监听。根据监听结果:
    a)发送成功,在争用期内未检测到碰撞。帧肯定发送成功,返回(1);
    b)发送失败,在争用期内检测到碰撞。立即停止数据发送,并强化冲突。适配器执行指数退避算法,等待r倍的争用期时间后,返回步骤(2)

    展开全文
  • 浅析网络数据帧在网络中的传输

    千次阅读 2019-11-16 10:29:26
    本文目录 背景介绍 相信大部分程序猿/媛面试...其实我们只需要找篇博客或者温习下大学课本,将该过程熟悉遍,便可面试官面前泰然自若、对答如流,从而顺利过关。 理论是回事,实践又是另回事。这篇文章...

    网络帧的传输

    本文主要简单回顾一下网络数据包的封装、分片、传输以及重新组装的过程,帮助我们理解实际的网络传输。

    注意,下文中的IP协议如果未作特殊说明指的实IPv4版本。

    1. 网络的分层

    刚开始学网络协议的时候,我们会学习OSI七层参考模型。 《Effective TCP/IP Programming》 这本书里面提到一个技巧:Don’t Take the OSI Seven-Layer Reference Mode Too Seriously,翻译过来就是不要把OSI七层参考模型太当回事。事实上,OSI七层参考模型只是理论上的标准,TCP/IP模型 才是事实上的标准,因此下面的例子不会对OSI七层参考模型做过多的介绍,主要以TCP/IP四层模型为依据的。

    请看OSI七层参考模型与TCP/IP四层模型的对比图,下图对相应的层做了相关的映射。
    OSI七层模型和TCP/IP模型

    图片来源:《The TCP/IP Guide》

    说明:

    1. TCP/IP模型和OSI七层参考模型中的六层相对应;
    2. TCP/IP模型不包含OSI七层参考模型中的物理层,也就是不包含硬件;
    3. TCP/IP模型中的传输层、网际层和网络接口层分别相当于OSI七层参考模型中传输层、网络层和数据链路层;
    4. TCP/IP模型中的应用层相当于OSI七层参考模型中的应用层、表示层和会话层。

    2.网络帧的封装

    刚开始学习网络协议的时候,一脸懵逼:

    网络协议的分层有什么意义?
    为什么还要分那么多层?

    可能大学时代翘课太多,导致这种疑惑一直持续到大学毕业以后,直到后来看了几本有关网络协议的书,有些疑惑才慢慢解开。下面还是以图为例描述网络数据包的封装。

    请看下图,以HTTP为例,比较形象的说明了数据是怎么经过层层封装传到网络中,最后接收者又是怎样经过层层解析获取网络数据包。
    在这里插入图片描述

    图片来源:图解HTTP

    说明:
    发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端段在层与层传输数据时,每经过一层时会把对应的首部消去。

    经过层层封装之后,完整的数据包结构如下:
    在这里插入图片描述
    上图只是一个网络帧的大概结构,如果对IEEE 802.3规定的帧结构进行详细讲解需要比较长的篇幅,这里不展开讲。我们需要知道的是最终在网络上以二进制流传输的结构大概如上图所示。

    术语说明:
    这里需要对几个有关网络包的术语进行说明,以区分每个术语具体指网络帧的哪一部分。

    下图比较清楚说明了Segment、Packet、Frame的区别,很多文章和书籍并不严格区分Packet和Frame的区别。

    Segment(数据段):传输层传递给网络层的数据是一个段,它通常包含传输层头和数据。
    Packet(数据包):段数据+IP头部=Packet(数据包)
    Frame(帧):真正在网络上传输的单元,以太网头部+Packet+FCS=帧;下图未具体标出以太网头部和FCS。
    在这里插入图片描述

    3. 网络帧的传输

    网络帧在网络中的传输同样是相对复杂的过程,涉及到组装、分片、重组的过程。

    1. 相关概念介绍

    下面的概念是针对标准的以太网进行说明的,对于不同的网络,最大传输单元并不相同。对于某些启用巨帧的网络,最大传输单元可以很大。

    网络帧在网络上传输时有大小限制,无论是何种协议,除去以太网头部和尾部,剩余的大小都不能超过以太网规定的最大传输单元。
    下图以TCP为例,较为直观的阐述了标准的以太网对网络中数据大小的限制。

    相关概念:

    1. MSS: 除去以太网头尾部、IP头部和传输层后剩下的大小。
    2. MTU: 除去以太网头部和尾部剩下的网络数据包的大小。就IPv4而言,标准的以太网MTU最大为1500字节,最小为576字节。
    3. TCP计算公式:
      MTU(1500字节) = IP header + TCP Header + MSS = 20字节 + 20字节 + 1460字节
    4. UDP计算公式:
      MTU(1500字节) = IP header + UDP Header + MSS = 20字节 + 8字节 + 1472字节

    在这里插入图片描述
    2. 查看MTU大小
    知道了MTU的概念后,就可以使用相应的命令查看系统中网卡的MTU大小。Windows、Linux以及路由器均可设置MTU大小,这里只简单的查看。

    1).windows查看MTU

    C:\Users\sunft>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   Bytes In  Bytes Out  Interface
    ------  ---------------  ---------  ---------  -------------
      1500                1  29039078516  1931385600  Ethernet
      1500                5          0          0  Wi-Fi
    4294967295                1          0    1009988  Loopback Pseudo-Interface 1
      1500                5          0          0  Local Area Connection* 3
      1500                5          0          0  Bluetooth Network Connection
      1500                5          0          0  Local Area Connection* 2
      1500                1          0      74847  VMware Network Adapter VMnet1
      1500                1          0      40655  VMware Network Adapter VMnet8
    

    说明:
    除了路由器本地回环接口外,其他的网卡MTU大小均为1500字节。

    2). Linux查看MTU

    [sunft@localhost ~]$ ifconfig | grep mtu
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    

    说明:
    除了lo网卡外,其他的网卡MTU大小均为1500字节。

    3. 数据包分片和重组

    既然MTU不能超过1500字节,那么对于MTU超过1500字节的数据包怎么处理呢?

    一般情况下,对于MTU超过1500字节的包,会在源机器或者传输途中的网络设备进行分片,而重组只发生在目的机器。

    注意:1500字节是针对一般的网络设备而言,某些网络设备的MTU可能大于或者小于1500字节。

    1). 分片与重组规则

    • 发送方根据自身的MTU大小确定是否分片;
    • 数据帧在传输途中也可能发生分片,例如的路由器MTU小于1500字节;
    • 数据帧有可能被直接丢弃,若数据包大小大于传输途中网络设备的MTU,而该网络设备没有启用分片机制;
    • 重组只发生在目的机器。也就是说,即使中途遇到大于1500字节的网络设备,该网络设备也不会对分片进行重组,而是转发给下一个网络设备。

    2) 分片与重组图示
    下图比较形象的说明网络数据包的分片与重组过程。

    过程描述:
    设备A的MTU为3300字节,想要发送12000字节的数据给设备B,于是进行如下操作:

    1. 数据包大小>3300字节,于是分成4段进行传输;
    2. 遇到MTU为1300字节的路由器A,于是继续对每个包进行分片;
    3. 紧接着遇到MTU为3300字节的路由器B,不进行组装,转发出去;
    4. 到达设备B,设备B对网络数据包进行重组。

    在这里插入图片描述

    图片来源:《The TCP/IP Guide》

    4. 相关疑问

    读完上面的内容,应该会有以下疑问,以下疑问就留着后续有时间再写吧。

    • 分片具体是怎么进行的?过程是怎么样的?
    • 组装是按照怎样的规则进行组装的?
    • 如果未被分片的包被丢弃会产生什么后果?

    参考材料

    《The TCP/IP Guide》
    《图解HTTP》
    《TCP/IP详解 卷1:协议》


    欢迎关注我的技术公众号,一起学习技术!
    个人公众号

    展开全文
  • 数据链路层帧传输的三个基本问题

    千次阅读 2017-12-20 18:53:31
    封装成(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了。确定的界限。 用控制字符进行定界的方法举例 : SOH(Start Of Head):0x01 EOT(End Of Transmission):0x04 透明传输 : 解决...
    1. 封装成帧
    2. 透明传输
    3. 差错控制

    封装成帧 :
    封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
    用控制字符进行帧定界的方法举例 :
    这里写图片描述

    • SOH(Start Of Head):0x01
    • EOT(End Of Transmission):0x04

    透明传输 :

    这里写图片描述

    解决透明传输问题:字节填充(byte stuffing)或字符填充(character stuffing)
    发送端的数据链路层在数据中出现的控制字符“SOH”或“EOT”前插入一转义字符“ESC”。接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。 ESC:0x1B

    如果转义字符也出现数据当中,怎么办?
    在转义字符前面再插入一个转义字符。

    ESC


    差错控制 :
    在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。 误码率与信噪比有很大的关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 在数据链路层传送的帧中,广泛使用循环冗余检验 CRC 检错技术。

    循环冗余检验的原理:
    在发送端,先把数据 M 划分为组。假定每组 k 个比特,则需在 M 后面再添加供差错检测用的n 位冗余码一起发送。

    n 位冗余码的计算方法
    假设 M 分为一组,即 k = length(M) .

    1. 选定长度为 (n + 1) 位的除数P
    2. 用二进制模 2 运算进行 2n 乘M 的运算,并以此结果为被除数。
    3. 将得到的 (k + n) 位被除数除以除数P,得出商Q ,余数R,余数R即为所求n位冗余码。

    例:M = 101001(k = 6)
    设 n = 3, 除数 P = 1101, 被除数是 2nM = 101001000。 模 2 运算的结果是:商 Q = 110101, 余数 R = 001。 把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R 即:101001001,共 (k + n) 位。
    这里写图片描述

    接收端对收到的每一帧进行 CRC 检验

    • 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。
    • 若余数 R = 0,则判定这个帧有差错,就丢弃。

    但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。 只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。
    仅用循环冗余检验CRC差错检测技术只能做到无差错接受(accept)。“无差错接受”指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制

    帧检验序列 FCS
    在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
    CRC、FCS区别 :

    • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
    • FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

    例:
    要发送的数据为1101011011 。采用CRC的生成多项式是P(X) = X4 + X + 1 。

    1. 试求应添加在数据后面的余数。
    2. 数据在传输过程中最后一个1变成了0,问接收端能否发现?
    3. 数据在传输过程中最后两个1变成了0,问接收端能否发现?
    4. 采用CRC检验后,数据链路层的传输是否就变成了可靠的传输?

    P(X) = X4 + X + 1 。// 第0、1、4位为1,其余位为0 。
    P = 10011, n = 4 。// p有5位,所以n = 5 - 1 = 4 。
    24 * 1101011011 = 11010110110000 。
    11010110110000 / 10011 余数为 1110 。
    添加的检验序列是1110;2、3均可发现。
    缺乏重传机制,数据链路层的传输是不可靠的传输。

    展开全文
  • &nbsp; &nbsp; &nbsp; 学习计算机网络时,我们经常会遇到、数据包、数据报等名词?有人会问,他们不是都一样的吗,不是都是网络传输的...数据(Frame):就是数据链路的协议数据单元,它包括...
  • 网卡究竟工作OSI的哪一层

    万次阅读 2019-02-23 17:53:33
    答案:网卡工作物理和数据链路的MAC子。 解密网络传输 工程师带你深入认识网卡 、什么是网卡? 网卡现在已经上成为了目前电脑里的标准配置之。小小的网卡,究竟蕴涵着多少秘密呢?让我们一起来看。 ...
  • 以太网结构详解

    万次阅读 多人点赞 2019-07-15 21:52:59
    以太网结构详解前言分层模型- OSI分层模型– TCP/IP数据封装终端之间的通信格式Ethernet_II 格式IEEE802.3 格式数据传输以太网的MAC地址数据的发送和接收单播广播组播发送与接收 前言 20世纪60年代以来...
  • 哪一层提供了数据加密的功能?

    千次阅读 2016-08-13 15:20:08
    TCP/IP中没有表示会话,指的是标准中没有统一的表示会话,把这些列给应用协议来实现,把职责划分到应用来实现而已。 对于不同都有相应的加密解密协议,但是一般的加密解密都是网络、运输船、...
  • RPC、SQL、NFS属于OSI的哪一层

    千次阅读 2017-12-20 11:06:23
    一层:物理层 第二层:数据链路层 802.2、802.3ATM、HDLC、FRAME RELAY 第三层:网络层 IP、IPX、ARP、APPLETALK、ICMP 第四层:传输层 TCP、UDP、SPX 第五层:会话层 RPC、SQL、NFS 、X WINDOWS、ASP 第六层:...
  • 发送方维持种连续的允许发送的的序号 接收窗口: 接收方维持种连续的允许接收的的序号 GBN发送方必须响应的三件事 上层的调用 上层要发送数据时, 发送方先检查发送窗口是否已满, 如果未满, 则产生将其...
  • 1.RIP基于UDP,BGP基于TCP,...你可以认为它们不属于网络协议(注意,是用,based on,而不是实现了,BGP用TCP,所以BGP是应用的,TCP用IP,所以TCP是传输的,OSPF用IP,所以OSPF更应该是归类到传输里比较合...
  • 十五、以太网结构 与 物理规范

    千次阅读 2022-01-18 16:44:24
    文章目录系列文章目录、以太网结构二、以太网物理规范1.物理介质命名规范2.千兆以太网例题 、以太网结构 二、以太网物理规范 1.物理介质命名规范 Base 模拟信号 ; Broad 模拟信号(已淘汰) 2....
  • 数据链路的成方法

    万次阅读 多人点赞 2018-01-09 13:15:54
    之前说过,数据链路层一个很重要的功能就是成和拆,因为是数据链路个单元,数据链路是对于进行处理的。那么这里就具体讲讲数据链路是怎么成的。  首先我们应该想想成所涉及的问题。第...
  • 计算机网络(王道)第三章数据链路 ACK:确认

    千次阅读 多人点赞 2020-09-11 12:56:15
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ... 差错控制4.1 差错是什么,从来的4.2 为什么要数据链路进行差错控制?4.3 检错编码4.3.1 奇偶校验码4.3.2 循环冗余码CR
  • 报文传输过程中会不断的封装成分组、包、来传输,封装的方式就是添加一些信息段,那些就是报文头。 报文段(Segment):通常是指起始点和目的地都是传输的信息单元。 数据报(Datagram):面向无连接的数据...
  • 报文传输过程中会不断的封装成分组、包、来传输,封装的方式就是添加一些信息段,那些就是报文头。 报文段(Segment):通常是指起始点和目的地都是传输的信息单元。 数据报(Datagram):面向无连接的数据...
  • IEEE802.11系列标准定义了WLAN无线网络数据结构,和基本的物理、MAC通信标准。与802.3定义的以太网数据格式及通信方式不同,802.11定义的WLAN无线局域网由于通信介质和通信质量的问题,不能直接采用802....
  • 文章目录1 使用点对点信道的数据链路1.1 数据链路和1.2 三个基本问题1. 封装成2 点对点协议 PPP3 使用广播信道的数据链路4 扩展的以太网5 高速以太网 数据链路使用的信道主要有以下两种类型: 点对点信道...
  • 【maya】关键动画-动画的使用

    千次阅读 2019-05-05 17:50:42
    设置关键比较简单,这里我们需要使用的是动作捕捉数据,关键很多,单独处理起来很麻烦。于是我们开始引用动画。 动画层在右边通道盒/编辑器里,下方标签为动画。...注意每个组件(人物动作动画中...
  • 数据链路——以太网结构

    千次阅读 2020-05-16 22:28:13
    目录前言格式Ethernet_II格式IEEE802.3格式数据传输以太网的MAC地址 前言   ...以太网上传输的数据有两种格式,选择种格式由TCP/IP协议簇中的网络决定。    
  • 80211格式--管理、数据、控制 因为无线数据链路所带来的挑战,MAC被迫采用了许多特殊的功能,其中包括使用四个地址位。并非每个都会用到所有的地址位,这些地址位的值,也会因为MAC种类的不同而有所...
  • 常用的以太网MAC格式有两种标准,种是EthernetV2标准(即以太网V2标准),另种是IEEE的802.3标准。使用得最多的是以太网V2的MAC格式。 以太网的有三个字段,也就是CSMACD这个协议规定了封装的内容,目标...
  • 第1章 基带无线资源概述...不同子载波波类似与同个飞机上的不同座位。 不同的时隙类似与同个飞机不同的起飞时间。 关于5G的高频载波的频谱,请参考:《[4G&5G专题-25]:架构-4G&5G频谱资源大全与详解》 ...
  • 看一个设备工作在哪一层,需要看它的主要实现功能使用的是哪一层协议头信息。 物理层: 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人 数据链路层: 决定访问网络介质的方式 此层将数据分...
  • 我们首先来了解一下物理的作用。 * 物理的主要目的是实现比特流的透明传输,为数据链路提供服务,物理接口解决了用几根线,多大电压,每根线什么功能,以及几根线之间是怎么协调的问题。 * 物理介质解决...
  • 、 选择重传协议 ( SR ) 引入、 二、 选择重传协议 ( SR ) 分类、 三、 发送方 事件 ( 确认、超时事件 )、 四、 接收方 事件 ( 接收 )、 五、 滑动窗口长度、 五、 选择重传协议 SR 重点、 六、 选择重传...
  • USB协议详解第7讲(补充-USB和微剖析)

    千次阅读 多人点赞 2021-01-09 09:47:50
    (1)USB2.0和微属于物理时间基准的概念,低速和全速下每个时长为1ms,高速下每个又分为8个微,即每个微时长为125us。 (2)USB主机和设备控制器同步后,每个微起始点开始传输数据,如果没有数据,...
  • 网络适配器(网卡)的作用是什么?网络适配器工作在哪一层? 网络适配器最重要的功能是负责数据的收发
  • 数据链路 PPP协议的格式

    千次阅读 2021-10-29 08:18:31
    PPP 协议的格式 PPP 的首部和尾部分别为 4 个字段和 2 个字段。 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 ...F代表开始和结束,分别占用个字节,这..
  • 、 滑动窗口协议引入、 二、 后退 N 协议 滑动窗口、 三、 后退 N 协议 运行过程、 四、 后退 N 协议 发送方数据分类、 五、 后退 N 协议 发送方 需要 响应的事件、 六、 后退 N 协议 接收方 需要 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 218,884
精华内容 87,553
关键字:

帧在哪一层

友情链接: javaNotepad.rar