DataLinkLayer(数据链路层)

DataLinkLayer(数据链路层)

The Reference Model(参考模型)

layer name
5 Application layer
4 TransPort layer
3 NetWork layer
2 data link layer
1 physical layer

Main Functionality(主要功能)

  • 提供网络层的接口
  • 通过单向连接传输数据帧
    • 处理传输过程中发生的错误
    • 控制数据流,防止快速的发送方淹没慢速的接受方

Data Link Layer Design Issues(数据链路层的设计问题)

Frames(帧)

1.数据链路层从网路层接受接受数据包
2.数据链路层会在将其发送到物理层之前,将这些数据包封装成包

每一帧包括一个帧头、一个帧尾、和一个有效荷载域(用于存放分组)

Relationship between packets and frames(包和帧的关系)

1.一个来自网络层数据包变成数据链路层中的有效荷载域
2.数据链路层通过给这个包加上帧头和帧尾,把这个包放到对应的帧中

Placement of the data link protocol(数据链路协议的位置)

1.一个WAN(广域网)子网包含了好多路由器,它们通过租用点到点的电话线连接起来。
2.某一帧到达一个路由器的时候,硬件会首先检查它是否有错误,然后将该帧传递给数据链路层软件
3.数据链路层软件检查这一帧,看是否有自己期望的帧,如果有,就把包含有效载荷域中的分组交给路由软件,接着路由软件选择正确的输出线路,并且把分组向下传递给数据链路层软件,然后数据链路层软件把它发送出去,进过两个路由器的数据流情况如图。
4.路由代码总是希望所有的工作都能正确的完成,也就是说,在每一条点到点线路上建立起可靠、有序的连接。它并不希望老是陷入到分组丢失的境地。如图总虚线框所示,数据链路层使得不可靠的通信看起来更加完美,至少比原来更好,另一方面,尽管我们在每一个路由器中显示了多份数据链路层软件的版本,但是实际上,只有一份数据链路层软件,它负责处理所有的线路,每条线路有不同的表和数据结构。

Possible Services(为网络层提供的服务)

可能提供的服务

1.无确认的无连接服务

帧在无连接的情况下被传送或者在错误恢复的情况下被传送
例如: 以太网

无确认的无连接服务是指源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认,事先并不建立逻辑连接,事后也不释放逻辑连接,若由于线路上有噪声导致某一帧丢失,则数据链路层不会检测这种丢帧现象,也不会恢复,当错误率很低的时候,这一类服务是十分合适的比如语音传递,这种实时通信中数据迟到比数据损坏更不好,绝大多数LAN(局域网)在数据链路层上都是使用的无确认的无连接服务。

2.有确认的无连接服务

在必要的情况下,帧在重传的情况下被传送
例如:802.11

为了提供可靠性,引入了有确认的无连接服务,当提供这种服务的时候,仍然没有使用逻辑连接,但是所发送的每一帧都需要单独确认,这样,发送发就知道每一帧是否已经正确的到达,如果有一帧在指定的时间内没有到达的话,则发送方将再次发送该帧,这类服务尤其适合不可靠的新道,比如无线系统。

3.有确认的面向连接的服务

在帧被传送之前,连接就已经建立起来了

这种服务是源机器和目标机器在传输之前首先建立一个连接,该连接上发送的每一帧都会被编号,数据链路层保证每一帧被真正接受到,而且它保证每一帧只被接受一次,并且所有的帧按正确的顺序接收,相反,在无连接服务中,如果报文丢失了,则一个分组可能会发送多次,因而也会接受多次。于此相反,面向连接服务相当于为网络层进程提供了一个可靠的位流。

Framing Methods(成帧方法)

Byte Count(字节计数法)

这种成帧方法利用头部一个域来指定帧中的字节数。当目标端的数据链路层看到这个字符值的时候,它世道后面跟着多少字符,也就是知道该帧的结束在哪里。

但是这种方法的问题是,你前面错了的话,你后面都错,所以现在用的少了。

Flag bytes with byte stuffing(含字节填充的分界符法)

这种成帧方法考虑了错误之后同步的问题,它的做法是让每一帧都用一些特殊的字节作为开始和结束,在过去,起始和结束字节是不同的,但是现在绝大多数的协议倾向于使用相同的字节,作为标志字节

但是这种方法也有一种很严重的问题,当标志字节的位模式出现在数据中,这个问题很容易发生,这种位模式往往会干扰帧的分界。解决这种问题的办法是,发送方在这种偶尔出现的每个标志字符前面插入一个特殊的转义字节ESC,接受端的数据链路层在将数据送给网络层之前会删除掉这种转义字节。这种技术叫做字节填充技术

但是如果转义字符也在数据中间怎么办?答案是同样用转义字节来填充

Flag bits with bit stuffing(含位填充的分界标志法)

每一帧的开始和结束都有一个特殊的位模式,01111110实际上就是一个标志字节,当发送方的数据链路层碰到数据中5个连续的位1的时候,它自动在输出流中填充一个位0,这种位填充机制与字节填充机制非常的相似,在字节填充机制中,当发送方看到数据中的标志字节的时候,它就在其前面填充一个转义字符,然后传送到输出字节中。

当接收方看到5个连续输入位1,并且后面是位0,它自动去掉该0位,就好像字节填充过程对于两方计算机中的网络完全透明一样,位填充的过程也对网络层完全透明。如果用户数据包含了标志模式01111110,则该标志当做011111010来传输,但是存储在接收方内存中的是0111110.

在为填充机制中,通过标志模式可以明确的识别出两帧之间的边界。因此如果接受方失去了帧同步,它只需要在输入流中扫描标志序列即可,因为标志序列只可能出现在帧边界上,永远不可能出现在数据中。

Physical layer coding violations(物理层编码违例法)

适用于物理介质上的编码方法中包含冗余信息的网络,LAN中用两个物理位来编码1位数据,通常1位是高-低电平对,0是低-高电平对,每一位数据位都有一个中间电平的越变,这使得接受方容易定位到边界上。

原文地址:https://www.cnblogs.com/mengxiaoleng/p/11632217.html

时间: 2024-10-17 03:41:29

DataLinkLayer(数据链路层)的相关文章

OSI七层详解之二 数据链路层(DataLinkLayer)

一.简介 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列. 数据链路层在不可靠的物理介质上提供可靠的传输.该层的作用包括:物理地址寻址.数据的成帧.流量控制.数据的检错.重发等. 在这一层,数据的单位称为帧(frame). 数据链路层协议的代表包括: SDLC.HDLC.PPP.STP.帧中继等. 链路层的主要功能: 链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现.链路层应具备

数据链路层设备(一)

1.网桥的概念及其基本原理 两个或多个以太网通过网桥连接起来后,就称为一个覆盖范围更大的以太网,而原来的每个以太网就可称为一个网段.网桥工作在链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域.如果把网桥换成工作在物理层的转发器,就没有这种过滤通信量的功能.由于各网段的相对独立,一个网段的故障不会影响到另一个网段的运行. 注意:网桥处理数据的对象是帧,所以它是工作在数据链路层的设备,中继器.放大器处理数据的对象是信号,所以它是工作在物理层的设备. 网络1和网络2通过网桥连接后,网桥接收网络

数据链路层的协议分析

数据链路层目的是建立在物理层基础上,通过一些数据链路层协议,在不太可靠的物理链路上实现可靠的数据传输.即数据链路层提供网络中相邻节点之间可靠的数据通信. 数据链路层的主要功能是为网络层提供连接服务,并在数据链路连接上传送帧.依据功能可以分为有连接和无连接两种.本实验采用的是有应答,无连接服务. 无连接服务时,发送方的数据链路层要发送数据时,就直接发送数据帧.接收方的数据链路层能够接受数据帧,或者收到的帧校验正确,就像源主机数据链路层发送应答帧:不能接受或接受到的帧校验不正确时,就返回否定应答,发

数据链路层的几种协议

计算机网络在现在生活中越来越重要,所以我们学习网络知识也就非常必要.网络通信分为学习研究的方便分为5层,即:物理层.数据链路层.网络层.传输层.应用层. 在数据链路层主要是负责传输数据,有很多种协议,用的最多的是局域网中的以太网协议,和广域网中的PPP协议,HDLC协议. Etherne II报头8    目标地址6    源地址6    以太类型2    有效负载46-1500    帧检验序列4 报头:8个字节,前7个0,1交替的字节(10101010)用来同步接收站,一个101010101

数据链路层

数据链路层:将比特组装成帧并且点到点传输---------帧 基本问题: 1.帧定界:帧的数据部分的上限 <= MTU(最大传输单元),SOH(0x01)和EOT(0x04)分别指示帧的开始和结束. 2..透明传输:字节插入,比特插入 3.差错检测:误码率:传输错误的比特与传输总比特数的比率 CRC(Cyclic Redundancy Check):循环冗余检验 CRC是检错方法并不能纠错,FCS(Frame Check Sequence)是冗余码. 计算冗余码(余数R)的方法:先补0(n个)再

物理层、数据链路层网络设备工作原理

物理层网络设备有中继器.集线器. 中继器的功能是将接收到的信号进行再放大然后传输出去,作用是将扩展网络设备信号传输的物理范围,缺点是扩大数据信号的同时也扩大的噪声,不能够进行广播隔离,网络利用率很低,现在基本上已经被淘汰. 集线器实际上可以理解为有多个端口的中继器,集线器的所有端口共享一条背板总线,故所有端口都在同一个冲突域,网络利用率低,基本已经淘汰. 数据链路层网络设备有网桥.交换机. 网桥工作在数据链路层,能够通过源主机的mac地址,自学习创建自己的"mac-端口"表,一旦这个&

计算机网络温习1——数据链路层

数  据  链  路  层 分组=包=IP数据报 先从数据链路层开始 数据链路层使用的信道类型 (1)点对点信道:一对一的点对点通信方式 1> 网络适配器包括了数据链路层和物理层两层功能 协议数据单元:帧 2>主要步骤: a.前结点的数据链路层把网络层交下来的包添加首部和尾部封装成帧. b.前结点把封装好的帧发送给后结点的数据链路层. c.后结点检查帧无差错,则从中提取出包交给网络层:否则丢弃. 3>三个基本问题: a.封装成帧 添加首尾部,没加之前不得超出MTU(Maximum Tra

数据链路层的访问

数据链路层的访问,高级货哦 SOCK_PACKET类型,数据从网卡的协议栈交给用户 建立一个SOCK_PACKET类型如下: socket(AF_INET,SOCK_PACKET,htons(0x0003)); 设置套接口以捕获链路帧的编程方法 #include<sys/socket.h> #include<sys/ioctl.h> //ioctl命令 #include<Linux/if_ether.h> //ethhdr结构 #include<net/if.h&

TCP/IP详解学习笔记(2)-数据链路层

转http://blog.csdn.net/goodboy1881/article/details/665061 ———————————————————————————————————————————— 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/