计算机网络-第3章 数据链路层

news2024/11/20 14:29:30

主要内容:两个信道及对应的协议:点对点信道和广播信道,扩展以太网和高速以太网

本章的分组转发为局域网内的转发,不经过路由,网络层分组转为为网络与网络之间的转发,经过路由。局域网属于网络链路层的范围。

3.1-3.2 点对点信道和对应的PPP协议

结点A通过点对点信道和结点B通信步骤:1 A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧;2 A把封装好的帧发给B的数据链路层; 3 B确认收到的帧没差错,提取出IP数据报给网络层。

三个基本问题:封装成帧、透明传输和差错检测

数据由可打印的ASCII码组成的文本文件时,帧定界可用特殊的帧定界符。SOH(start of head)表示帧的首部开始;EOT(end of transmission)表示帧的结束。

数据部分非ASCII码的文本文件时(如二进制代码的计算机程序或图像),数据中可能会出现和SOH或EOT一样的二进制代码,这是会会错误找到帧边界,传输不完整数据,这样分传输非透明传输。

通过在控制字符SOH或EOT前加转移字符ESC,如果转义字符也出现在数据中,就在它前面插入一个转义字符。解决上述非透明传输问题,该方法为字节填充(byte stuffing)、或字符填充法(character stuffing)。

数据链路层广泛采用循环冗余检验CRC(cycle redundancy check)的检测技术。

CRC原理:在待传送数据M后面加n位冗余码发送,把接收到的帧除以同样的除数P,如果余数为0,则检验通过,接收;不等于0,帧有错,丢弃。

n位冗余码算法:M后面加n个0,得到的(k+n)位数除收发双方事先商定的(n+1)位除数P,得到的余数R为冗余码。(M后面加n个0,等价于用二进制的模2运算进行2^n乘M的运算)。

一般,用多项式P(X)=X^3+X^2+1, 表示上面除数1101,该多项式也叫生成多项式。

发送端帧检验序列FCS的生成和接收端CRC检验都是用硬件完成的,处理很迅速,不会延误数据传输。

凡是接收端数据链路层接受的帧均无差错。没有出现比特差错,可能出现传输差错,如帧丢失、帧重复或帧失序。数据链路层不进行“可靠传输”服务。

过去OSI观点,在CRC检错的基础上,增加帧编号、确认和重传机制。现在通信质量较高,不使用确认和重传机制,且纠正差错的任务由上层协议(如TCP协议)完成。这样可提高通信效率。

数据通信质量较差的年代,在数据链路层使用可靠传输协议,使用高级数据链路控制HDLC(high-level data link control)是当时比较流行的方法。现在很少用,对于点对点链路,使用点对点协议PPP(point-to-point protocol).

PPP协议应满足的需求:1简单(复杂给TCP,简答为首要需求,提高不同厂商的互操性,原理:接收帧进行CRC检验,正确接收,错误丢弃);2封装成帧(必须规定帧定界);3透明性(必须保证数据传输的透明性);4多层网络层协议(必须同时支持多种网络层协议,如IP,IPX等);5多种类型链路(必须能在多种类型的链路运行,如串行/并行、同步/异步等);6差错检测(必须对接收的帧进行检测,并丢弃,不然再转发浪费资源);7检测连接状态(必须有种机制自动检测链路是否处于正常状态);8.最大传送单元(必须设置最大传送单元MTU);9网络地址协商(必须提供一种机制使通信的两个网络层可以相互协商指导对方的网络层地址);10数据压缩协商(必须提供一种方法使用数据压缩算法)。

PPP协议只支持全双工链路。不需要纠错、设置序号、流量控制。

PPP协议组成:将IP数据报封装到串行链路的方法+一个链路控制协议LCP(link control protocol)+一套网络控制协议NCP(network control protocol).

PPP支持异步电路(无奇偶校验的8比特数据)和面向同步的同步链路。LCP用来建立、配置和测试数据链路连接;一套NCP中每个协议支持不同的网络层协议,如IP、OSI的网络层等。

PPP协议帧格式:首部四个字段+数据部分+尾部两个字段

首部:标志字段F(flag,0x7E)+地址字段A(0xFF)+控制字段C(0x03)+协议字段;

标志字段表示帧的开始或结束,为帧定界符;协议字段为0x0021时表示IP数据报,为0xC021时表示PPP链路控制协议LCP的数据,为0x8021为网络层的控制数据。

尾部=FCS+F;

信息字段出现和标志字段一样的比特组合时,采取措施使和标志字段一样的比特组合不出现在信息字段中。

异步传输采用字节填充,转义字符为0x7D,填充方法:1把0x7E转成2字节序列(0x7D,0x5E);2若出现和转义字符一样的字符,转成2字节序列(0x7D,0x5D);3若出现ASCII码的控制字符(数值小于0x20的字符),前加0x7D。

填充后信息字节数变长,接收时需进行字节填充相反的变换。

PPP链路初始化:1用户拨号接入ISP,建立个人电脑与ISP的物理连接;2个人电脑向ISP发送链路控制协议LCP分组,建立LCP连接;3网络控制协议NCP给个人电脑分配IP地址;4通信完毕,NCP释放网络层连接,收回IP地址;5.LCP释放数据链路连接,最后释放物理层连接;

PPP协议工作状态:

名词解释:

链路(link):一个节点到相邻节点的一段物理线路,中间无交换节点。

数据链路(data link):链路加实现数据传输协议的软硬件。现通过网络适配器实现这些协议。即数据链路=网络适配器+链路。

链路和数据链路有时也称作物理链路和逻辑链路。

数据链路层,规程和协议是同义语。

帧,数据链路层的协议数据单元,该层把网络层交下来的数据构成帧,把接收到帧中的数据取出上交给网络层。网络层协议数据单元是IP数据包(也叫数据报、分组或包)。

封装成帧,在一段数据的前后分别添加首部和尾部,构成帧。通过首部和尾部标记识别帧的开始和结束,也可进行帧定界。

分组交换的一个概念:互联网上传送的数据都以分组(IP数据包)为传送单位。

帧长=帧的数据部分+帧首部和尾部的长度。

发送帧时从首部开始发送。

最大传送单元MTU(maximum transfer unit):传送帧数据部分长度上限。

透明传输,发送帧由文本文件组成,数据部分不会出现SOH或EOT这样的帧定界控制字符,不管键盘输入什么字符都能正常传输,这种传输为透明传输。

透明:某一个实际存在的事务看起来却好像不存在一样。即数据链路层对shu'juhi透明的。

比特差错:比特在传输过程可能会出现差错,1变成0,或0变成1.

误码率BER(bit Error rate):传输错误的比特占所有所传输比特的总数的比率,该指标与信噪比有关。

帧检验序列FCS(frame check sequence):为了检错而添加的冗余码。

PPP协议为IETF1992年制定,94年成为互联网协议的正式标准。

PPPoE, PPP over Ethernet,在以太网上运行的PPP,将PPP帧封装在以太网帧中。

零比特填充:在SONET/SDH链路时,同步传输(一连串的比特传送,而非异步传输,猪哥字符传送)采用该填充方法。扫描整个信息字段,发现5个连续1,填入1个0;接收时每发现5个1就删除后面的1个0. 01111110会被误认为标志字段F。

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

局域网使用的时广播信道,可进行一对多通信。局域网是20世纪70年代发展起来。

共享信道方法:静态划分信道(不适合局域网)、动态媒体接入控制(随机接入、受控接入-用的少,本书不讨论)

局域网的数据链路层;

CSMA/CD协议:载波监听、多点接入、碰撞检测。多点接入为多个计算机连一根总线上;载波监听,在发送前检测信号,发送中监听信号为碰撞检测。

上述协议不能同时进行发送和接收,只能进行交替通信,半双工。

以太网采用截断二进制指数退避算法确认碰撞后的重传时机。碰撞后推迟一个随机的时间点后再进行发送。

退避算法:1.基本退避时间为2t,争用期时间为51.2us;2.从离散的整数集合[0,1,..(2^k-1)]随机取一个数为r,k=Min[重传次数,10],重传后的时间=r*争用期。3.重传16次仍不能成功则丢弃该帧。

以太网规定最短帧长64字节,即512bit。如果发送的数据非常少,要加入一些填充字节。凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。

以太网传输介质进化:粗同轴电缆、细同轴电缆、双绞线。使用双绞线的以太网采用星形拓扑,拓扑中心用集线器hub,双绞线两端RJ-45插头。

双绞线的以太网淘汰了粗缆和细缆的以太网。10BASE-T双绞线以太网的出现,是局域网发展史上的一个重要里程碑,从此以太网从总线型变为星形网络,而以太网也在局域网中占据了统治地位。

集线器特点:1.使用集线器的局域网物理上是星形网,逻辑上是总线网,使用的CSMA/CD协议,适配器执行的是该协议。同一时刻只允许一个站发送数据。2.一个集线器有多接口,像多接口的转发器。3.工作在物理层,仅转发比特,不进行碰撞检测;4.采用专门芯片,自适应串音回波抵消。

以太网的信道利用率:a=单程端到端时延τ与帧的发送时间之比T.τ/T。a越小越好,只要发生碰撞立即检测出来;以太网帧长不能太短,即T不能太小。

只有当参数a远小于1才能得到尽可能高的极限信道利用率。以太网利用率达到30%时已经处于重载的情况。

MAC帧的格式:用的最多的为以太网V2标准,五个字段组成,6字节目的地址+6字节源地址+2字节类型+数据+帧检验序列FCS。实际向下传到物理层时还要加8个字节,7个字节的前同步码+帧开始定界符。

名词解释+事实:

局域网主要特点:为一个单位所有,地理范围和站点数目均有限;刚出现时,比广域网有更高的性能(高数据率、低时延、小误码率),光纤技术普遍使用,两者差距变小。

局域网优点:1广播功能(一个站点可访问全网,主机可共享网上的软硬件资源);2便于系统扩展和演变;3提高系统可靠性、可用性、生存性。

局域网按网络拓扑分类:星形网(集线器hub+双绞线,在以太网中广泛应用)、环形网、总线网(总线+匹配电阻,传统以太网)。

以太网几乎为局域网同义词。

局域网传输媒体:多采用双绞线、也有用光纤。局域网工作层次跨越数据链路层和物理层。

静态划分信道:如频分复用、时分复用、波分复用和码分复用,只要分配了信道就不会冲突,代价高不适合局域网;

动态媒体接入控制:又称多点接入(multiple access),并非在固定分配信道。

随机接入:所有用户可随机发信息,多用户同时发,发生碰撞/冲突,都失败,需有解决碰撞的协议;

受控接入:服从一定控制的接入,如分散控制的令牌环局域网、多点线路探询/轮询;

用传统以太网描述10 Mbit/s的以太网。

以太网两标准:DIX Ethernet V2和IEEE的802.3. 以太网1975年研制,为基带总线局域网,用无源电缆作为总线。

IEEE802委员会把局域网的数据链路层:逻辑链路控制LLC(logical link control)子层和媒体接入控制子层(medium access control)。

20世纪90年代,以太网在局域网取得垄断,TCP/IP体系只剩下DIX Ethernet V2,而非IEEE802.3,LLC作用消失,很多厂商生产的适配器仅装MAC协议而无LLC协议。

适配器:adapter,连接计算机和外界局域网,主机箱的网络接口板/笔记本的PCMCIA卡-计算机存储器卡接口适配器,也称网络接口NIC(network interface card),简称网卡,本书用适配器术语。装有处理器和存储器(含RAM、ROM)。

适配器与局域网通信:电缆或双绞线,串行传输;

适配器与计算机:计算机主板的I/O总线,并行传输。

适配器功能:数据串行传输和并行传输转换;两边数据速率不同,用存储芯片进行缓存数据;可实现以太网协议;包含数据链路层和物理层两层功能。

局域网中的计算机称为主机,工作站、站点或站。

为通信简便,以太网采取的两种措施:1无连接工作方式,不对数据帧编号,也不要求对方确认。

以太网提供的服务为不可靠交付,尽最大努力交付;2以太网发送的数据使用曼彻斯特编码,码元1或0,中间进行跳变,1从高电压跳低电压,0反之,可获取同步信号。

电磁波在1km电缆中的传播时延为5us。

以太网的不确定性:每一个站在发送数据之后一小段时间内存在碰撞的可能。

争用期:以太网端到端往返时间2t,也称碰撞窗口。经过争用期这段时间还没检测到碰撞,则未碰撞。

强化碰撞:发生碰撞后,除停止发送数据外,还要再继续发送32或48比特的人为干扰信号,以便所有用户都知道发生了碰撞。

帧间最小间隔9.6s。

以太网10BASE-T标准802.3i,10为10Mbit/s,BASE为基带信号,T为双绞线。

MAC地址,又称物理地址,硬件地址,固化在适配器的ROM只能地址。严格讲该地址为站的名字或标识符,有6个字节48位。也称适配器地址,适配器标识符EUI-48。

MAC地址第一个字节最低位位I/G位(单个地址/组),1时为组地址,进行多播,0时为单个站地址。第一字节第二位为G/L位(全球管理/本地管理),0是全球管理,1为本地管理。

IEEE的注册管理机构RA负责分配前三个字节,这三个字节构成的号也叫组织唯一标识符OUI,或共公司标识符,后三位叫扩展标识符,EUI-48,EUI为扩展的唯一标识符。

发往本站帧的三种:单播(一对一)、广播(一对全体)、多播(一对多);

虚拟局域网:1988年IEEE批准的802.3ac标准,定义了以太网的帧格式扩展,以便支持虚拟局域网。插入4字节标识符,称VLAN标记。该帧为802.1Q帧。插入位置,源地址字段与类型字段之间,2字节(0x8100)+3位用户优先级字段+1位规范格式指示符CFI+12位虚拟局域网VLAN标识符VID

3.4 拓展的以太网

物理层上拓展:转发器扩展,双绞线以太网主流后转发器很少用。现用一对光纤和一堆光纤调制解调器。

多级结构集线器以太网缺点:1.碰撞域变大,吞吐量不变;2.不同速率互联,只能用低速率

数据链路扩展:开始为网桥,根据MAC帧的目的地址进行转发和过滤。

交换式集线器淘汰网桥,也叫交换机、第二层交换机,以太网交换机。

以太网交换机特点:多接口网桥,相互通信的主机独占传输媒体,无碰撞传输数据。

以太网交换机为即插即用设备,内部的帧交换表(又称地址表),通过自学习算法自动建立。

自学习算法:开始为空的交换表,发送帧时可确定发送主机MAC与接口映射,无目的主机广播所有接口,目的主机收到后反馈,交换表确定目的主机MAC地址与接口映射。交换表有有效时间,过期自动删除。

生成树协议STP,确保主机之间的路径为无环路的树状结构。

总线以太网采用CSMA/CD协议,半双工;以太网交换机不用共享总线,不采用该协议,全双工,但仍采用以太网的帧结构。

3.5 高速以太网

传统10 Mbit/s的以太网到1Gbit/s,甚至更快。

100BASE-T 快速以太网,细缆以太网升级到快速以太网必须重新布线。802.3u标准

吉比特以太网,802.3z标准。4个特点:1允许全双工和半双工方式;2使用802.3协议规定的帧格式;3半双工方式下使用CSMA/CD协议,全双工不用;4与10BASE-T和100BASE-T技术兼容。

半双工工作时,MAC帧长不足512字符时填充特殊字符(载波延伸)。

10吉比特以太网或更快以太网,与上述以太网帧格式完全相同。只工作在全双工方式。前三项802.3ae标准,第四项802.1ak标准,最后一项802.3an标准。

使用以太网进行宽带接入方法:将PPP协议中的PPP帧封装到以太网进行传输,PPPoE,现光纤宽带接入FTTx都用的该方式接入。

ADSL宽带上网,也是用PPPoE弹出的拨号连接,但这用户家中墙上位电话使用的RJ-11接口,用普通电话线传送PPP帧,这种上网方式不能称为以太网上网,而为电话线宽带接入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1491543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

maven打包失败 Cannot create resource output directory[已解决]

文章目录 前言1.打开资源管理器(ctrlAltdelete打开任务管理器)2. 选择性能,再选择打开资源监视器3. 搜索“target”4. 我这里示范操作输入的perfmon,显示perfmon.exe占用的,右键结束这个进程 。5.然后重新用package打包…

什么是物联网?物联网如何工作?

物联网到底是什么? 物联网(Internet of Things,IoT)的概念最早于1999年被提出,官方解释为“万物相连的互联网”,是在互联网基础上延伸和扩展,将各种信息传感设备与网络结合起来而形成的一个巨大网络,可以实…

Crossover24新版发布!搭载Wine9提升Mac游戏体验!

2024年2月28日,著名的软件Crossover正式推出了2024年的首个全新版本Crossover24。Crossover 24版本的更新带来了许多功能优化和游戏优化,使用户能够更好地在Mac系统上运行各种软件和游戏,并且支持32位旧版软件的兼容运行。 Crossover24最新版…

【论文笔记】Gemma: Open Models Based on Gemini Research and Technology

Gemma 日期: March 5, 2024 平台: CSDN, 知乎 状态: Writing Gemma: Open Models Based on Gemini Research and Technology 谷歌最近放出的Gemma模型【模型名字来源于拉丁文gemma,意为宝石】采用的是与先前Gemini相同的架构。这次谷歌开源了两个规模的模型&…

python--产品篇--游戏-坦克1

文章目录 准备代码效果 准备 下载 代码 5# coding: utf-8# 游戏运行主程序 import sys import pygame import scene import bullet import food import tanks import home from pygame.locals import *# 开始界面显示 def show_start_interface(screen, width, height):tfo…

leetcode10正则表达式匹配

leetcode10正则表达式匹配 思路python 思路 难点1 如何理解特殊字符 ’ * ’ 的作用? 如何正确的利用特殊字符 ’ . ’ 和 ’ * ’ ? * 匹配零个或多个前面的那一个元素 "a*" 可表示的字符为不同数目的 a,包括: "…

漫画手绘视频教程分享

下载地址: 漫画手绘教程: https://url83.ctfile.com/d/45573183-60305653-039aed?p7526 (访问密码: 7526)

Doris实战——银联商务实时数仓构建

目录 前言 一、应用场景 二、OLAP选型 三、实时数仓构建 四、实时数仓体系的建设与实践 4.1 数仓分层的合理规划 4.2 分桶分区策略的合理设置 4.3 多源数据迁移方案 4.4 全量与增量数据的同步 4.5 离线数据加工任务迁移 五、金融级数仓稳定性最佳实践 5.1 多租户资…

DQL语言学习(2024/3/5)one

1.基础查询: select 查询列表 from 表名; 查询列表可以是:①表中的字段、②常量值、③表达式、④函数 ①查询表中的单个字段,多个字段,所有字段 select *from 表名; ③查询表达式: select 100*98; ④…

pip 安装

1、下载pip安装包 pip PyPI-python 2.7的版本 2、解压安装包 在文件路径中输入cmd进行安装配置到第三步骤 3、用python setup.py install 进行命令行安装 显示如下为安装成功 4、安装成功后需要在环境变量进行配置pip的路径 C:\Python27\Scripts 5、测试pip安装是否成功

nginx 根据参数动态代理

一、问题描述 nginx反向代理配置一般都是配置静态地址,比如: server {listen 80;location / {proxy_pass http://myapp1;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}} 这个反向代理表示访问80端口跳转到 http://myapp1 …

03按键控制LED

上回讲到点亮一个LED     这次我们来实现用按键控制led 不带中断的方式 当然实例来源网络 加上自己整合 先熟悉流程 0.添加一个自己写的驱动库文件 为什么添加 笔者想的是一个项目工程希望能适应很多个应用场景需要什么直接在里面调用分装好的函数就行 1.如何添加文件以及…

C++ 快速排序快速选择OJ

目录 1、75. 颜色分类 2、912. 排序数组 3、 215. 数组中的第K个最大元素 4、LCR 159. 库存管理 III 1、75. 颜色分类 思路:利用快速排序思路,使用三指针分块进行优化。 [0,left]——小于key[left1,right-1]——等于key[right,nums.size()]——大于k…

Day 6.有名信号量(信号灯)、网络的相关概念和发端

有名信号量 1.创建: semget int semget(key_t key, int nsems, int semflg); 功能:创建一组信号量 参数:key:IPC对像的名字 nsems:信号量的数量 semflg:IPC_CREAT 返回值:成功返回信号量ID…

惠普 DsekJet GT 5810/5820常见问题及解决方法

1、HP DeskJet GT 5810/5820机器的屏幕出现“P”时,该如何操作? 当屏幕出现“P”时,放入A4纸,按住“进纸键”3秒即可,打印机会打印出一张校准页。 2、HP DeskJet GT 5810/5820机器的屏幕出现“A”时,该如何…

反射(重点)

1.反射的概述 Java给我们提供了一套API,使用这套API我们可以在运行时动态的获取指定对象所属的类,创建 运行时类的对象,调用指定的结构,(属性,方法)等 API: java.lang.Class:代表一个类 jav…

JSP实现数据传递与保存

1.HTML页面转换JSP页面 直接再HTML页面最顶端添加page指令,修改文件后缀名;反之; 2.JSP内置对象 对象 描述 request 每当客户端请求JSP页面时,JSP引擎会制造一个新的request对象来代表这个请求。 response 当服务器创建req…

keycloak-鉴权springboot

一、环境描述 keycloak鉴权springboot的方式,此处简单介绍,springboot官方也提供了demo https://github.com/keycloak/keycloak-quickstarts/tree/latest/spring/rest-authz-resource-server 以及文档说明 Securing Applications and Services Guide…

ruoyi-nbcio-plus的Vue3前端一些插件使用介绍(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址: http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbach…

微信小程序自动化测试——微信小程序云测服务!

MiniTest 微信小程序云测服务是一套由微信测试团队自主研发,联合WeTest云真机能力,共同推出的微信小程序自动化测试服务。 服务基于云真机,支持开发者简单快捷地实现小程序智能化Monkey测试,录制回放,自定义测试和性能…