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

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

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

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.mzph.cn/news/722388.shtml

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

相关文章

springboot3.x 以上,官方不建议使用spring.factories

springboot2.7.x 以上,官方不建议使用spring.factories 最近公司项目升级.需要将springcloud/springboot版本升级到2.7.x以上,再升级的过程中遇到了太多的问题.总结在了如下文章中: springboot艰难版本升级之路!! springboot 2.3.x版本升级到2.7.x版本 这篇文章就重点是梳理一…

LeetCode 热题 100 (尽量ACM模式刷) 持续更新!!!

LeetCode 热题 100 哈希hash 1 两数之和 /** 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。* 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案…

品优购首页制作

一,常用模块类名命名 二,快捷导航shortcut制作 三,header制作 3.1LOGO SEO优化 3.2 搜索模块定位 四, nav导航制作 五,footer底部制作 六,main主体模块制作 以前书写是模块化中的公共部分 main主体模块是…

MyBatis介绍

MyBatis是一个优秀的持久层框架(就是将某些数据持久化到硬盘或其他存储器中的框架),它把jdbc对数据库的操作进行了封装,使用户只需关注sql本身,不需要去执行jdbc的那一套复杂的操作。 MyBatis通过配置xml文件或注解的方…

Linux安全加固功能

提示:工具下载链接在文章最后 目录 一.加固功能介绍二.配置加固功能1.配置安全加固功能1.1 开放目前设备监听的所有端口1.2 只开放80、443、20、21、22端口1.3 防火墙配置工具1.3.1 开放允许访问的端口1.3.2 删除允许访问的端口1.3.3 添加IP地址允许访问规则1.3.4 添加IP地址禁…

漫画手绘视频教程分享

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

JavaScript基础3之面向对象关于面向过程、函数式编程、对比、构造函数、原型

JavaScript基础 面向对象面向过程函数式编程命令式编程函数式编程特性副作用透明引用不可变变量函数是一等公民 常见的函数式编程模型 面向对象为什么要使用面向对象封装继承多态 对比面向过程函数式编程面向对象 构造函数原型constructor使用场景 对象原型 面向对象 面向过程…

chrome自动更新后,手动恢复书签和历史记录

本文是针对google没有登录账号信息,浏览器更新后,如何恢复本地书签可历史记录。 为了解决“已被CORS策略阻止:请求的资源上没有’Access-Control-Allow-Origin’标头(跨域请求失败”这个问题,修改了Google属性&#x…

android开发教程视频,android组件化和插件化

第一阶段:Android 基础知识回顾: 回顾Android 开发编程,深入理解Android系统原理和层次结构,深入分析Handler源码和原理;回顾Java,C/C,Kotlin、dart 在Android开发中必用的语言,熟悉…

算法学习03:前缀和与差分(互逆)

算法学习03:前缀和与差分(互逆) 文章目录 算法学习03:前缀和与差分(互逆)前言一、前缀和1.一维2.二维 二、差分1.一维在这里插入图片描述2.二维在这里插入图片描述 ![在这里插入图片描述](https://img-blog…

LeetCode 2368.受限条件下可到达节点的数目:搜索 + 哈希表

【LetMeFly】2368.受限条件下可到达节点的数目:搜索 哈希表 力扣题目链接:https://leetcode.cn/problems/reachable-nodes-with-restrictions/ 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给…

H3C接入交换机收到大量上行口(连接汇聚交换机)TC报文该怎么处理?(排查思路及解决办法)

一、问题描述 H3C接入交换机收到大量上行口的TC报文。 二、告警信息 三、TC报文排查思路 1、检查物理链路是否有问题。 2、检查是否有可能存在环路。 3、终端接入的端口开启STP边缘端口。 4、根桥的下联端口开启STP根保护。 5、如果对端设备不是管辖的范围且无法管理到,可考虑…

如何管理系统中的敏感数据?

如何管理系统中的敏感数据? 本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除 如何在系统中管理敏感数据?下图列出了一系列指导原则。 什么是敏感数据? 个人身份信息 (PII)、健康信息、知识产权、财务…

STM32标准库——(17)硬件SPI读写W25Q64

1.SPI外设简介 时钟频率就是sck波形的频率,一个sck时钟交换一个bit,所以时钟频率一般体现的是传输速度,单位是Hz或者bit/s,那这里的时钟频率是fPCLK除以一个分频系数,分频系数可以配置为2或4或8、16、32、64、128、256…

输出X^N对233333取模的结果。

对任意正整数N&#xff0c;求XN%233333的值。 要求运算的时间复杂度为O(logN)。 例如X30 X15*X15X15X7*X7*XX7X3*X3*XX3X*X*X共7次乘法运算完毕。输入输出格式 输入描述: 输入两个整数X和N&#xff0c;用空格隔开&#xff0c;其中X,N<10^9。 输出描述: 输出X^N对233333取模…

STL容器之map和set的补充AVL树

一、AVL树 ​ 不同搜索的对比&#xff1a;1.暴力搜索时间复杂度是O(N)&#xff1b;2.二分查找的时间复杂度是O(lgN)&#xff0c;但是伴随着有序&#xff0c;插入删除挪动数据的成本极高&#xff1b;3.二叉搜索的时间复杂度是高度次数&#xff0c;极端场景会退化为类似链表时间…

【送书活动1】基于React低代码平台开发:构建高效、灵活的应用新范式

【送书活动1】基于React低代码平台开发&#xff1a;构建高效、灵活的应用新范式 写在最前面一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践&#xff1a;基于React》编辑推荐内容简介作者…

基于springboot实现的学生评奖评优管理系统的设计与实现(源码|论文)

系统概述 springboot实现的学生评奖评优管理系统的设计与实现&#xff0c;系统分Web端和后台管理端&#xff0c;后端采用的是springbootmybatis&#xff0c;前端采用vuehtml&#xff0c;代码简洁易懂&#xff0c;有配套论文初稿&#xff0c;适合新手小白学变编程... 一、系统架…

RocketMQ—RocketMQ集成SpringBoot

RocketMQ—RocketMQ集成SpringBoot 新建生产者的boot项目和消费者的boot项目&#xff0c;pom文件重点如下&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</arti…

Docker中使用nginx-rtmp推拉网络摄像头视频流

前言&#xff1a; 该部分比较麻烦&#xff0c;闹腾了好久&#xff08;ffmpeg推拉流没学过&#xff0c;事实证明依葫芦画瓢是不行滴&#xff0c;后面有时间再学吧&#xff09;&#xff0c;后来借助chatGPT勉强解决&#xff0c;但不是很懂。因个人能力有限&#xff0c;只复述操作…