《计算机网络:自顶向下方法》笔记(5):链路层

链路层

链路层协议的任何设备称为结点(node)

沿着通信路径连接相邻结点的通信信道称为链路(link)

链路层协议功能:

  • 成帧(framing)。把数据报(segment)封装成帧。
  • 链路接入。媒体访问控制(Medium Access Control,MAC)用于协调多个结点共享单个广播链路时候的帧传输。
  • 可靠交付。通过确认和重传保证无差错移动每个网络层的数据报。对于差错率低的链路,如光线,同轴电缆等,则不提供可靠交付,由上层保证可靠交付。
  • 差错检测和纠正。(通过校验和)

链路层使用更复杂的 CRC 差错检测是因为其使用了专门的硬件实现。

有两种网络链路:点对点(point-to-point link)链路和广播链路(boardcast link)。

点对点链路使用点对点协议(point-to-point protocol, PPP)和高级数据链路控制协议(high-level data link control, HDLC)。

广播链路涉及协调多个发送和接收结点对一个共享广播信道的访问,也就是多路访问问题(multiple access problem)。对应的协议叫多路访问协议(multiple access protocol)。

多路访问协议可分为三大类:信道划分协议(channel partitioning protocol),随机接入协议(random access protocol),轮流协议(taking-turns protocol)。

信道划分协议: 时分多路复用(Time Devision Multiple,TDM)将时间平均分为多个片,每个信道一个片。优点是公平,简单,缺点是只有一个分组时速度仍然是 R/N,造成资源浪费。 频分多路复用(Frequency Devision Multiple,FDM),把频率分片,优缺点和 TDM 一样。 码分多址(Code Division Mupltiple Access,CDMA),不同节点分配不同的精心选择的编码,使得不同结点可以同时传输。

随机接入协议: 节点总是以全速 R 进行发送,当发生碰撞时,结点会反复等待一个随机时延然后重发,直到无碰撞通过为止。

轮流协议: 轮询协议(polling protocol),其中一个结点指定为主结点,主节点以循环方式轮询(poll)每个结点。优点避免碰撞和随机时延,缺点引入了轮询时延。 令牌传递协议(token-passing protocol)。一个称为令牌(token)的小点的特殊帧在结点之前以某种固定次序进行交换。当结点需要发送帧时,才会持有该令牌,否则会立刻传递给下一个。优点是效率高,缺点是不能兼容单点故障。

—- 20190713 —-

MAC 地址与硬件设备绑定,不会发生变化。

主机和路由器接口除了 IP 地址还有 MAC 地址的原因是:

  • 局域网是为任意网络层协议涉及的,不仅用于 IP 和因特网。
  • IP 是变化的,则 IP 地址必须存在 RAM,且在上电时初始化
  • 保持各层独立。

ARP(地址解析协议,Address Resolution Protocol),IP 转 MAC 地址的转换协议。每台主机或路由器在其内存中具有一个 ARP 表(ARP table),这张表包含 IP 地址到 MAC 地址的映射关系。因为涉及 IP,所以这是一个网络层协议。

如果表中没有对应 IP 地址的记录,则发送一个 ARP 分组(ARP packet)来查询。ARP packet 的目标地址是 MAC 广播地址 FF-FF-FF-FF-FF-FF。子网的所有其他适配器都会收到。如果查询的 IP 地址和自己的 IP 地址匹配,则回复一个相应 ARP packet。

网络层跨网传输时,数据报会首先发送到路由器对应的 MAC 地址,再由路由器转发出去。

以太网是目前为止最流行的有线局域网技术,其他技术还有 FDDI 和 ATM。

以太网一开始在 70 年代是通过同轴电缆总线来互相连接,到了 90 年代后期进化为集线器,使用星行拓扑结构;21 世纪早期进化为交换机(switch)。交换机是“无碰撞的”,是储存转发分组的交换机。

以太网帧结构:

前同步码(8) | 目的地址(6) | 源地址(6) | 类型(2) | 数据(46~1500) | CRC(4)

前同步码用于唤醒适配器,并与发送方时钟同步,是固定的值。前 7 字节 10101010,最后 1 字节 10101011。类型字段用于记录网络层协议。

以太坊是无连接的。

交换机两个功能:过滤(filtering)决定是否要转发这个帧,转发(forwarding)决定帧应该被导向到哪个接口。过滤和转发通过交换机表(switch table)完成。

交换机表内容包含:mac 地址,输出接口,表项建立的时间

当一个帧到达交换机,交换机会查找该帧的目的地址对应的表项。这可能有三种情况:

  1. 没有对应项,此时向所有接口转发(即广播)该帧,后续处理属于自学习功能。
  2. 有表项,但输出接口和收到的接口一致。此时丢弃。
  3. 有表项,且接口不一致。此时转发。

自学习:交换机表一开始可能是空的,但经过一定时间后,交换机可以自行建立出一个可行的交换机表。

交换机可以消除碰撞,兼容不同链路,并且使安全性管理功能称为可能。

交换机和路由器比较:交换机即插即用,性能好,但是是扁平的,单局域网的,不能阻止广播风暴;路由器是分层次的,允许以丰富的拓扑结构构建因特网,但速度慢一些。

虚拟局域网(Virtual Local Network,VLAN)可以提供交换机局域网没有的,流量隔离,不同局域网共享一个交换机,管理用户的功能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏holer

外网访问自己搭建的HTTP服务器

内网主机上安装了HTTP服务端,只能在局域网内访问,怎样从公网也能访问本地HTTP服务端?

58010
来自专栏FreeBuf

一个工控漏洞引发的思考

AdvantechWebAccess(前称BroadWinWebAccess)是研华(Advantech)公司的一套基于浏览器架构的HMI/SCADA软件。该软...

11920
来自专栏Jerry的SAP技术分享

SalesOrder Text determination

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

7210
来自专栏Node开发

一篇文章搞明白CORS跨域

面试问到数据交互的时候,经常会问跨域如何处理。大部分人都会回答JSONP,然后面试官紧接着就会问:“JSONP缺点是什么啊?”这个时候坑就来了,...

14930
来自专栏一Li小麦

Access Tokken

在微信公众平台接口开发中,Access Tokken占据了重要的地位。相当于进入各种接口的钥匙。作为公众号的全局唯一性的票据。各种接口的调用都需要使用Acces...

11220
来自专栏服务器安全专线

Nginx实现跨域使用字体文件的配置方法

本文主要给大家介绍了关于Nginx跨域使用字体文件的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

10700
来自专栏holer

微信公众号或小程序怎样调用到本机的WEB服务

内网主机上部署了WEB服务端,怎样将本地的WEB服务映射到外网,提供给微信公众号和小程序调用?

14610
来自专栏Linux知识积累

交换机三种端口模式Access、Hybrid和Trunk

Trunk类型端口:可以允许多个VLAN通过,可以接收和发送多个VLAN 报文,一般用于交换机与交换机相关的接口。

11910
来自专栏nodejs全栈开发

如何配置ajax请求跨域携带cookie,cors支持ajax请求携带cookie

3、ajax在发送跨域请求时如果想携带cookie,必须将请求对象的withcredentials属性设置为true。

1K20
来自专栏服务器安全专线

Apache 防盗链的技术小结

Apache 防盗链的第一种实现方法,可以用 rewrite 实现。一. 遭遇图片盗链

10700

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励