以太网
DIX Ethernet V2
标准的局域网------以太网。
IEEE 802.3
标准和DIX Ethernet V2
标准很相似,只有些许区别,不严格的来说,802.3局域网也叫做以太网。以太网是一个局域网,信息以广播的形式发送。
IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层,并且将数据链路层划分成了逻辑链路控制子层(LLC子层)和介质访问控制子层(MAC子层)。
以太网的特点
- 逻辑上是总线形拓扑结构
- 无连接、不对数据帧编号、无需确认、提供不可靠的服务
- 数据编码使用曼切斯特编码。
以太网有多种类型,根据数据传输速率、信道传输类型、传输介质或传输距离进行命名。常见的几种以太网如下:
10BASE5 | 10BASE2 | 10BASE-T | 10BASE-F | |
---|---|---|---|---|
传输媒介 | 粗的同轴电缆 | 细的同轴电缆 | 双绞线 | 光纤 |
拓扑结构 | 总线形 | 总线形 | 星形 | 点对点 |
最大段长 | 500m | 185m | 100m | 100m |
最多结点数量 | 100 | 30 | 2 | 2 |
10BASE-T
第一部分:表示数据传输效率为10Mb/s
第二部分(BASE位置):使用的是基带传输(将基带信号放到数字信道上传输)
第三部分:如果是字符表示传输介质,T
表示双绞线,F
表示光纤;如果是数字,表示所支持的最大传输距离
高速以太网
数据传输速率大于或者等于100Mb/s的以太网称为高速以太网。
- 100BASE-T
数据传输速率100Mb/s;使用双绞线传输;星型拓扑结构;可以使用半双工通信,需要使用载波监听多路访问/碰撞检测 即 CSMA/CD协议;可以使用全双工通信,不需要使用CSMA/CD;保持最短帧长不变,最大长度减到100m,可以提高数据传输速率 - 吉比特以太网
数据传输速率1Gb/s;也可以叫做千兆以太网;使用802.3协议规定的帧格式;既可以半双工又可以全双工通信,细节和100BASE-T一样。 - 10吉比特以太网
数据传输速率10Gb/s;使用光纤传输;遵循802.3协议规定的最小和最大帧长;只使用全双工方式,不需要CSMA/CD;
网卡
计算机如果没有网络,它无非就是一个非常大的计算器。需要将计算机连接上网络才能够实现资源共享、分布式处理等功能。
主机上有一个网络接口板,又叫做网络适配器或者网络接口卡,通常我们把它简称为网卡。计算机就是通过网卡和外界局域网进行连接,它工作在数据链路层,也工作在物理层。
每一个网卡在生产完成时都有一个唯一代码,叫做 MAC
地址,MAC是Medium Access Contrl
介质访问控制的缩写。MAC
地址又叫做物理地址或者以太网地址,主机需要利用物理地址在网络中通信。
MAC地址长6字节,也就是用12个16进制表示,一般每两个16进制位就用一个分割符隔离,例如02-60-8c-e4-b1-21
。前面3字节代表生产厂商,后面3字节由厂商指定网卡序列号。
在Linux下可以使用命令ifconfig
查询MAC地址。
以太网的MAC帧格式
- 这里目的地址和源地址填的都是
MAC
地址 - 数据是由网络层传来的数据报
- 这里采用循环冗余码进行差错控制,需要一个FCS
- 帧协议类型字段常见有三种值,分别对应IP、ARP、RARP
如果你足够仔细,会发现有效数据最小是46B。这是因为对于数据传输速率不超过10Gb/s的以太网可能会使用 载波监听多路访问/碰撞检测 即 CSMA/CD
的介质访问控制协议。这种协议规定了数据帧的最小帧长。对于10Mb/s的以太网,最小帧长是64B。而目的地址占了6B,源地址占了6B、类型2B、帧检验序列FCS占了4B。所以剩下的最小能够传输的有效数据大小是
64
−
6
−
6
−
2
−
4
=
46
64 - 6 - 6 - 2 - 4 = 46
64−6−6−2−4=46
当数据太小的时候,就需要填充帧。
MAC地址和IP地址的联系
数据链路层实现的是点到点的通信,也就是相邻两个结点的通信。但是很多情况下,一台主机和另一台主机并不是相邻的,类似于下图这样。
假如主机A要发送数据给主机B。如果仅仅靠MAC
地址,无法成功进行传输,因为MAC
帧里包含的地址信息只有 源主机的MAC
地址 和 目的地址的MAC
地址。MAC帧里 目的地址指下一跳的物理地址,和源主机相邻。这里必须提一个重要的事情!!!我们学习的时候是站在上帝视角看的,对于简单且小的网络来说,很容易看出它下一步要走哪里。但计算机不是我们,每一台计算机都是相互独立的,它是迷茫的,只手握一个真正目的地址的MAC地址。
我们知道局域网是由交换机组建起来的,交换机是是局域网内通信的管理者。假设可以跨网路传输,如果仅仅依靠MAC地址,主机A需要把这个数据帧全部发送出去,发送给全世界的每一台交换机,每台交换机再去查询我管理的局域网,如果在我管理的局域网,就转发进来并进行广播。这样的工作量非常庞大,所以最好的办法就是先定位到要具体发送到哪一个局域网,到了局域网再根据真正目的地址的MAC地址去查找。为了定位具体的局域网,引入了IP地址,并使用一个叫路由器的东西,管理着所有IP地址和对应局域网。好了,再说下去就不礼貌了,因为接下来是网络层的细节。
所以有了MAC地址,当然还需要IP地址。
网络层可以 通过IP地址 将数据从一个网络发送到另一个网络
数据链路层可以将一个结点 通过MAC地址 传递到相同链路 的另一个结点。