IP地址与MAC地址的区别:
32位IP地址:
(1)接口的网络层地址,用于标识数据报,依赖于结点连接到哪个子网
(2)支持分组转发
48位MAC地址,一般写作1A-2F-BB-76-09-AD(16进制表示)
(1)位于链路层,用于标识局域网内一个帧从哪个接口发出,到达哪个物理相连的其他接口,可以从一个LAN移到另一个LAN,又称LAN地址、物理地址、以太网地址
(2)固化在网卡的ROM中,有时也可以软件设置
(3)由IEEE统一管理与分配,网卡生产商购买MAC地址空间的前24比特
ARP表: LAN中的每个IP结点(主机、路由器)维护一个表,存储某些LAN结点的IP/MAC地址映射关系< IP地址; MAC地址; TTL>
TTL (Time To Live):经过这个时间以后该映射关系会被遗弃(典型值为20min)
ARP是“即插即用”协议:结点自主创建ARP表,无需干预
有时某发送适配器的确要让局域网上所有其他适配器来接收并处理它打算发送的帧,可以在该帧的目的地址字段中插入一个特殊的MAC广播地址——48个连续的1。
A想要给同一局域网内的B发送数据报,若B的MAC地址不在A的ARP表中
(1)A广播ARP查询分组,其中包含B的IP地址,目的MAC地址 = FF-FFFF-FF-FF-FF
(2)LAN中所有结点都会接收ARP查询
(3)B接收ARP查询分组,IP地址匹配成功,利用单播帧向A应答B的MAC地址
(4)A在其ARP表中,缓存B的IP-MAC地址对,直至超时,超时后,再次刷新
A通过路由器R向B发送数据报,若A知道B的IP地址、知道第一跳路由器R左接口IP地址(默认网关)和MAC地址
(1)A构造IP数据报,其中源IP地址是A的IP地址,目的IP地址是B的IP地址。
(2)A构造链路层帧,其中源MAC地址是A的MAC地址,目的MAC地址是R左接口的MAC地址,封装A到B的IP数据报。
(3)帧从A发送至R,R接收帧,提取IP数据报,传递给上层IP协议
(4)R转发IP数据报,源和目的IP地址不变。
(5)R创建链路层帧,其中源MAC地址是R(右)接口的MAC地址,目的MAC地址是B的MAC地址,封装A到B的IP数据报。
以太网是到目前为止最流行的有线局域网技术
无连接(connectionless):发送帧的网卡与接收帧的网卡间没有“握手”过程
不可靠(unreliable):接收网卡不向发送网卡进行确认,差错帧直接丢弃,丢弃帧中的数据恢复依靠高层协议
以太网的演变:
(1)Metcalfe的以太网草图
(2)总线(bus): 上世纪90年代中期前流行
所有结点在同一冲突域(collision domain),可能彼此冲突
CSMA/CD可以检测到的冲突范围就是一个冲突域
(3)星型(star): 目前主流网络拓扑,又称交换式以太网,通过中心交换机(switch)连接
每个结点一个单独冲突域,结点间彼此不冲突
以太网帧:30年未变了
- 前同步码(8B)
7个字节的10101010,第8字节为10101011
用于发送端与接收端的时钟同步
- 目的MAC地址、源MAC地址(各6B):
如果网卡的MAC地址与收到的帧的目的MAC地址匹配,或者帧的目的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),则网卡接收该
帧,并将其封装的网络层分组交给相应的网络层协议。
否则,网卡丢弃(不接收)该帧。
- 类型(Type)(2B)
指示帧中封装的是哪种高层协议的分组(如,IP数据报、Novell IPX数据报、AppleTalk数据报等)
- 数据(Data)(46-1500B):
指上层协议载荷,至少要有46B
R=10Mbps,RTTmax=512μs,Lmin/ R = RTTmax
Lmin=512bits=64B,Datamin=Lmin-18=46B
- CRC循环冗余校验码
IEEE 802. 3 CSMA/CD (Ethernet)工作组标准化了众多以太网技术,他们有着相同的MAC协议和帧格式
首字母缩写词的第一部分指该标准的速率,单位为Mbps
"BASE" 指基带以太网,这意味着该物理媒体仅承载以太网流量;几乎所有的802.3 标准都适用于基带以太网
最后一部分指物理媒体本身,以太网是链路层也是物理层的规范,并且能够经各种物理媒体承载。如T指双绞铜线。
以太网很显然是一种广播链路,其中多个结点同时传输时会出现帧碰撞。为了处理这些碰撞,以太网标准包括了CSMA/CD协议,
以太网的MAC协议: 采用二进制指数退避算法的CSMA/CD
(1)NIC从网络层接收数据报,创建数据帧。
(2)监听信道:如果NIC监听到信道空闲,则开始发送帧
如果NIC监听到信道忙,则一直等待到信道空闲,然后发送帧。
(3)NIC发送完整个帧,而没有检测到其他结点的数据发送,则NIC确认帧发送成功
如果NIC检测到其他结点传输数据,则中止发送,并发送堵塞信号(jam signal)
(4)中止发送后,NIC进入二进制指数退避:
第m次连续冲突后,取n = Min(m, 10),NIC 从{0,1,2, …, 2n-1}中随机选择一个数K
NIC等待K·512比特的传输延迟时间,再返回(2)
连续冲突次数越多,平均等待时间越长。连续16次冲突不再尝试,向上层报告
目前基于交换机的星形拓扑,采用的是存储转发分组交换,交换机协调其传输,在任何时候决不会向相同的接口转发超过一个帧。此外,现代交换机是全双工的,一台交换机和一个结点能够在同时向对方发送帧而没有干扰。
基于交换机的以太局域网中,不会有碰撞,因此没有必要使用MAC协议了!
以太网交换机是链路层设备,可以:
(1)消除碰撞:在使用交换机构建的局域网中,每段链路都是一个独立的冲突域,没有因碰撞而浪费的带宽。交换机缓存帧并且决不会在网段上同时传输多于一个帧。
(2)交换机将链路彼此隔离,因此局域网中的不同链路能够以不同的速率运行并且能够在不同的媒体上运行。
(3)易于进行网络管理。例如,如果一个适配器工作异常并持续发送以太网帧,交换机能够检测到该问题,并在内部断开异常适配
器。
(4)交换机是透明(transparent)的,主机感知不到交换机的存在
过滤(filtering)是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能。
转发(forwarding)是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机功能。
交换机的过滤和转发借助于交换机表(switch table) 完成,其包含某局域网上某些主机和路由器的表项(可以不全)。
每个表项包括:MAC地址、交换机接口、表项建立时间
当交换机收到帧:
(1)记录帧的源MAC地址与输入链路接口
(2)利用目的MAC地址检索交换表
(3)在交换表中检索到与目的MAC地址匹配的入口(entry),且目的MAC地址位于收到帧的接口,则丢弃帧;若目的MAC地址位于其它接口,则将帧转发到该入口指向的接口
(4)若交换表无此MAC地址,则向除收到该帧的接口之外的所有接口转发
交换机是自学习的即插即用设备,不需要管理员配置:
(1)交换机表初始为空
(2)交换机在每个接口收到的每个入帧,都会在交换表中建立相应表项
(3)表项过期会被删除
交换机直接可以互联:
网络设备对比:
集线器(hub) 是一种物理层设备,它作用于各个比特而不是帧。当表示一个0或一个1的比特到达一个接口时,集线器只是重新生成这个比特,将能量强度放大后向其他所有接口传输出去。
如果某集线器同时从两个不同的接口接收到帧,将出现一次碰撞,生成该帧的结点必须重新传输该帧。
因此集线器不能隔离冲突域和广播域。
直通传输:在一个接口接收数据帧的同时,直接进行转发
支持VLAN划分的交换机,可以在一个物理LAN架构上配置、定义多个VLAN
可以通过交换机管理软件,分组交换机端口,实现基于端口的VLAN,进行端口组直接流量隔离。端口可以动态分配给不同VLAN
此外也可以基于MAC地址定义VLAN
在VLAN间转发可以通过路由器(就像在独立的交换机之间)。实践中,厂家会将交换机与路由器集成在一起
跨越多交换机的VLAN,可以通过多线缆连接,每个线缆连接一个VLAN。
一种更具扩展性的互联VLAN交换机的方法称为VLAN干线连接,每台交换机上的一个特殊端口,被配置为干线端口/中继端口,以互联这两台VLAN交换机。
IEEE为跨越VLAN干线的帧定义了一种扩展的以太网帧格式一802. lQ
在以太网帧首部中添加了4 字节VLAN标签,
- 2字节标签协议标识符(Tag Protocol Identifier, TPID) 字段,固定为0x8100
- 2字节标签控制信息字段,包含一个12 比特的VLAN标识符字段、3比特优先权字段(类似于IP数据报TOS字段)