局域网这里,涉及到的比较多的都是数据链路层的知识,我也是在学习数据链路层的知识的时候了解到比较多的。
局域网,也就是直接在同一区域之内直接连接的计算机组,重要的是,使用的是广播信道,这个广播与后面的广播不一样,是真正的广播,公用信道,直接把内容发到信道上面去,所有人都可以接收。
同时我们假定的是链路层的性质会比较好。
我们先概述一下,然后借着以太网来详细讲一讲。
基本是以太网的基本拓扑结构就是:
这么四种。
CSMA\CD
令牌总线
令牌环
实际上局域网有很多的架构,当然用的最多的还是以太网。不同的架构的优点都不大相同,各自有各自的特点。
是系列的协议集,或者是标准集。
IEEE 802又称为LMSC(LAN /MAN Standards Committee, 局域网/城域网标准委员会),致力于研究局域网和城域网的物理层和MAC层中定义的服务和协议,对应OSI网络参考模型的最低两层(即物理层和数据链路层)。
IEEE802系列标准把数据链路层分成LLC(Logical Link Control,逻辑链路控制)和MAC(Media Access Control,媒介接入控制)两个子层。
上面的LLC子层实现数据链路层与硬件无关的功能,比如流量控制、差错恢复等;较低的MAC子层提供LLC和物理层之间的接口。
MAC子层负责把物理层的“0”、“1”比特流组建成帧,并通过帧尾部的错误校验信息进行错误校验;提供对共享介质的访问方法,包括以太网的带冲突检测的载波侦听多路访问(CSMA/CD)、令牌环(Token Ring)、光纤分布式数据接口(FDDI)等 。
MAC子层分配单独的局域网地址,就是通常所说的MAC地址(物理地址)。MAC子层将目标计算机的物理地址添加到数据帧上,当此数据帧传递到对端的MAC子层后,它检查该地址是否与自己的地址相匹配,如果帧中的地址与自己的地址不匹配,就将这一帧抛弃;如果相匹配,就将它发送到上一层中
LLC子层在IEEE802.2标准中定义,为802标准系列共用;而MAC子层协议则依赖于各自的物理层。
IEEE802.15.4的MAC层能支持多种LLC标准,通过SSCS(Service-Specific Convergence Sublayer,业务相关的会聚子层)协议承载IEEE802.2类型一的LLC标准,同时也允许其他LLC标准直接使用IEEE802.15.4 的MAC层的服务。
LLC子层给网络层提供了一个统一的逻辑视图。
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉链路层,帧收到后应当做何处理。
主要功能:
服务:
LLC子层维护一张以DSAP为索引的函数列表,每接收到一个数据包,以DSAP为索引调用相应的函数,该函数把数据包挂到相应接收队列。
以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。
以太网的标准拓扑结构为总线型拓扑,但快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问/碰撞侦测)的总线技术。
以太网提供无连接,不可靠的服务
以太网只实现无差错接收,不实现可靠传输。
差错控制都是由高层控制。
基本概念:
10 | BASE | T |
---|---|---|
传输速率 | 传输的是基带信号 | 代表的是使用双绞线 |
物理上是星型拓扑,逻辑上使用总线结构;使用Manchester编码;CSMA\CD控制,会发生碰撞。
实际上我们计算机与网络的交互都是要通过这个通信适配器,也就是我们的网络接口卡,网卡。
一个网卡里面也有自己的CPU、RAM和ROM。
每个网卡会在出厂时适配好唯一的一个MAC地址,记录在自己的ROM里面,各个网卡之间通过这个MAC地址辨认。
在局域网中,硬件地址=物理地址=MAC地址。MAC地址就是一个标识符(事实上是可以重复的,这个MAC地址,因为MAC地址一般都是在局域网里面出现的,只要不出现混乱就行,但是一些云服务来说,重复就不太好)。
像是鼠标之类的也有自己的网卡和MAC地址(甚至可以使用登录路由进行地址的修改)
目的地址 | 源地址 | 类型 | 数据 | FCS |
---|---|---|---|---|
6 | 6 | 2 | 46-1500包含IP数据报 | 用于校验,长度为4 |
因为我们的MAC地址长度为6,所以目的地址和源地址都是用6个字节表示。
一般来说,还要在以太网MAC帧前面加个前导码8个字节。前7个字节表示前同步码,最后一个字节表示帧开始定界符。
使用Manchester就不用结尾符了,因为我们是比较特殊的电平表示数据,用的是中间的跳变进行表示,如果结束发送就没有这样的特征了。