架构师之路(十二)计算机网络(链路层)

前置知识(了解):计算机基础。

作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。

数据链路层讨论的是如何把网络层的数据封装成帧,有效的进行通信传输。链路是指:一个结点到另一个结点的具体的物理线路。分为:点对点通讯,广播通讯。传播的单元为:(帧);

链路层特性

封装成帧

指将数据报加之首部和尾部形成帧。首部和尾部是必要的,主要作用是帧定界、添加控制信息,以及差错控制。

架构师之路(十二)计算机网络(链路层)_第1张图片

透明传输

如果是文本文件,可以用SOH/EOT充作帧开始、结束控制符,但数据中可能也出现SOH/EOT,这时需要加转义字符ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以达到透明传输。这里的透明指的是,数据链路层对传输的数据透明,传输的数据实际上感受不到数据链路层所做的操作。

架构师之路(十二)计算机网络(链路层)_第2张图片

差错校验(crc)(重复、失序、丢失)

奇偶检测、循环冗余CRC等。采用CRC,采用n+1位除数(由生成多项式得到),得到n位余数,称作帧检验序列FCS。检测时,将传输得到的数据除以同一个除数,若余数0,则可以说无差错。若有差错,直接丢弃,除此之外,不做任何操作。故差错检测只是检测了bit错误,并不能解决帧失序、丢失、重复等问题。也就是说,数据链路层实现的是尽最大努力的交付,即不可靠的传输。

架构师之路(十二)计算机网络(链路层)_第3张图片

点对点协议

点对点信道主要用于用户同ISP(验证身份)通信时。早期使用高级数据链路控制HDLC,已经淘汰,现在用的是PPP协议,即point-to-point protocol,点对点通信协议。

我们熟知网络是分层的,且对等层之间进行相互通信,而下层为上层提供服务。当对等层进行通信时首先需获知对方的地址,而对不同的网络,在数据链路层则表现为需要知道对方的MAC地址、X.21地址、ATM地址等;在网络层则表现为需要知道对方的IP地址、IPX地址等;而在传输层则需要知道对方的协议端口号。如果两个以太网上的主机希望能够通信的话,首先发送端需获知对端的MAC地址。

但由于PPP协议是被运用在点对点的链路上的特殊性,它不像广播或多点访问的网络那样,需要标识通信的对方。因为点对点的链路就可以唯一标识对方,因此使用PPP协议互连的通信设备的两端无须知道对方的数据链路层地址,所以该字节已无任何意义,按照协议的规定将该字节填充为全1的广播地址。

Ppp协议格式:

架构师之路(十二)计算机网络(链路层)_第4张图片

Ppp状态图:

架构师之路(十二)计算机网络(链路层)_第5张图片

广播协议

因为侠义的局域网不涉及到网络层,因此借用局域网来研究链路层的广播协议。局域网(LAN)指的是一个网络为一个单位所拥有,地理位置和站点数据有限的统称。局域网的工作跨越了物理层和数据链路层。以太网(施乐公司标准)是局域网的一种实现方式,但如今以太网占据了绝大多数市场,故某种意义上,以太网就是局域网。以太网的标准有DIX Ethernet V2和IEEE 802.3。二者差别不大,现在广泛使用的是DIX Ethernet V2

IEEE 802.3把以太网的数据链路层划分为:逻辑链路控制(LCP)和媒体接入控制(MAC),但LCP实际上并无用,现在只使用MAC层。以太网的其他特点:

1.以太网采用的是尽最大努力的交付,不可靠的交付。

2.以太网采用使用CSMA/CD协议。

3.以太网采用的是曼彻斯特编码,基带信号传输。这种编码中间跃变,由高->低为1,反之为0。

以太网的广播信道主要由总线式网络,环形网,星形网等。广播信道的数据链路层讨论的是如何在一个网络中实现一对一、一对多通信。这里要解决的问题是,总线网络上不能有两个站点同时发送数据,否则就称碰撞(冲突)。必须有解决这个问题的协议,这就是CSMA/CD协议

CSMA/CD的要点如下:

1)多点接入

CSMA/CD协议适用于广播信道,允许总线上多个站点接入。协议的核心是载波监听和碰撞检测。

2)载波监听

由于总线型广播信道上同一时刻只允许一个站点发送数据,故站点需要时时检测信道上是否有其他站点发送数据,这就是载波监听。检测信道通过才能获得发送权。载波监听发生在:一个站点发送数据之前,以及发送数据的过程中。一旦发现有其他站点发送数据,则立即停止发送。顺便指出,信道上发送的是基带信号,并没有载波,“载波”一词为借用。

3)碰撞检测(冲突检测)

碰撞检测就是“边发送边监听”。适配器边发送数据边检测信道上信号变化情况,看是否发生了 碰撞。若有两个计算机同时发送数据,则信道上的信号电压变化幅度会超过一定的门限值,则计算机(适配器)能够发现这种变化,后续作出及时响应。

那么链路层如何寻址通信呢,基于MAC帧通信。首先应了解几个概念。适配器,即网卡,实现了数据链路层协议,工作于物理层和数据链路层。适配器的一个作用是实现并行通信和串行通信的转换。外网--适配器为串行,而适配器--主机为并行。适配器还配有ROM,实现缓存,这样可以实现不同速率的兼容。另外,需要注意,适配器中的ROM中是硬件地址,即MAC地址,而在计算机的存储器中存有IP地址,即软件地址

MAC地址是一个硬件地址,于网卡的ROM中。他是一个48bit即6个字节的序列,现在使用的是EUI-48。一个地址是一个站的名字或者标识符,它由注册管理机构RA同一颁发。前三个字节为公司标识符,即组织唯一标识符OUI,这是生产公司申请到的。后三个字节为扩展标识符,为公司自己制定。IEEE规定,MAC地址的第一字节的最低位为I/G位,标志是I(individual)或者G(group),为I时为0,表示单个站地址,G时为1,表示组地址,用来多播。MAC地址的第一字节的倒数第二位为G/L位,表示全球管理(0)/本地管理(1),若不申请全球OUI,也可以使用本地管理,即将G/L位置1。这样,实际上全球MAC共有244244个。

局域网内就根据MAC地址进行发送、接受数据,当某站点接收到帧,检查MAC目的地址是否与本机MAC相匹配,不匹配则不接受。发送的帧包括:单播帧、广播帧(全1)和多播帧。

MAC帧(+最前面插入8字节)格式如下:

架构师之路(十二)计算机网络(链路层)_第6张图片

前同步码

帧开始定界符

目的地址

源地址

类型

数据

FCS

1010..10

1010101011

目的MAC

本站MAC

网络层类型

数据报

CRC检验

7字节

1字节

6字节

6字节

2字节

46-1500字节

4字节

上面的表格中,前8个字节不属于MAC帧内容,只是为了帧同步和开始定界,CRC也不检测前8字节是否出错。MAC帧的范围是64字节-1518字节,数据部分是46-1500字节。

扩展的以太网

以太网有他的局限性,因此需要扩展以太网性能和连接方式,扩展以太网主要从下面两方面:

物理层上扩展以太网

工作在物理层的转发器、集线器,将多个局域网连接起来,扩大碰撞域,但并不增加吞吐量。

数据链路层扩展以太网

使用工作在数据链路层的以太网交换机,扩大以太网。交换机可以实现全双工,并行,存储数据帧缓存,以及自学习交换表(地址表)进行转发。这种方式增加了吞吐量。应注意自学习交换表的方法,另外,为了防止数据在物理环路上绕圈子,采用“生成树协议STP”,将某些链路在逻辑上切断,其过程类似于最小生成树。

器械

工作在物理层的:转发器、集线器hub。工作于数据链路层:交换机。工作于物理+数据链路层:适配器。

架构师之路(十二)计算机网络(链路层)_第7张图片

架构师之路(十二)计算机网络(链路层)_第8张图片

虚拟局域网

不同局域网内的几个计算机可以虚拟的连接起来构成虚拟局域网VLAN,以实现某些特定目的。VLAN就是由一些局域网网段构成的与物理位置无关的逻辑组。VLAN的帧增加了4个字节的VLAN标识符,标记此站点属于哪个VLAN。这样可以防止广播风暴。

你可能感兴趣的:(架构师之路,计算机网络)