addressing, ARP
MAC 地址和ARP
32bitIP地址:
网络层地址
前n-1跳:用于使数据报到达目的IP子网
最后一跳:到达子网中的目标节点
LAN(MAC/物理/以太网)地址:
用于使帧从一个网卡传递到与其物理连接的另一个网卡 (在同一个物理网络中)
48bit MAC地址固化在适配器的ROM,有时也可以通 过软件设定
理论上全球任何2个网卡的MAC地址都不相同
e.g.: 1A-2F-BB-76-09-AD
网络地址和mac地址分离
IP地址和MAC地址的作用不同
a) IP地址是分层的
一个子网所有站点网络号一致,路由聚集,减少路由表
需要一个网络中的站点地址网络号一致,如果捆绑 需要定制网卡非常麻烦
希望网络层地址是配置的;IP地址完成网络到网络的 交付
b) mac地址是一个平面的
网卡在生产时不知道被用于哪个网络,因此给网卡一个 唯一的标示,用于区分一个网络内部不同的网卡即可
可以完成一个物理网络内部的节点到节点的数据交付
分离好处
a) 网卡坏了,ip不变,可以捆绑到另外一个网卡的 mac上
b) 物理网络还可以除IP之外支持其他网络层协议, 链路协议为任意 上层网络协议, 如IPX等
捆绑的问题
a) 如果仅仅使用IP地址,不用mac地址,那么它仅支 持IP协议
b) 每次上电都要重新写入网卡 IP地址;
c) 另外一个选择就是不使用任何地址;不用MAC地 址,则每到来一个帧都要上传到IP层次,由它判 断是不是需要接受,干扰一次
局域网上每个适配器都有一个唯一的LAN地址
MAC地址由IEEE管理和分配
制造商购入MAC地址空间(保证唯一性)
类比:
(a)MAC地址:社会安全号
(b)IP地址:通讯地址
MAC平面地址 ➜ 支持移动
可以将网卡到接到其它网络
IP地址有层次-不能移动
依赖于节点连接的IP子网,与子网的网络号相同( 有与其相连的子网相同的网络前缀)
ARP: Address Resolution Protocol
问题:已知B的IP地址,如何确定B的 ?
答: 就是通过ARP协议 完成ip地址到mac地址的转换
在LAN上的每个IP节 点都有一个ARP表
ARP表:包括一些 LAN节点IP/MAC地 址的映射
< IP address; MAC address; TTL>
TTL时间是指地址映射失效 的时间
典型是20min
ARP协议:在同一个LAN (网络)
A要发送帧给B(B的IP地址 已知), 但B的MAC地址不 在A的ARP表中
A广播包含B的IP地址的 ARP查询包
Dest MAC address = FF-FF-FF-FF-FF-FF
LAN上的所有节点都会收到 该查询包
B接收到ARP包,回复A自 己的MAC地址
帧发送给A
用A的MAC地址(单播)
A在自己的ARP表中,缓存 IP-to-MAC地址映射关系 ,直到信息超时
ARP是即插即用的
节点自己创建ARP的表项
无需网络管理员的干预
编址:路由到其他LAN
Walkthrough :发送数据报:由A通过R到B, 假设A知道B的IP地址
在R上有两个ARP表,分别对应两个LAN
在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B, etc
蓝色为帧,绿色为帧的数据
A创建数据报,源IP地址:A;目标IP地址:B
A创建一个链路层的帧,目标MAC地址是R,该帧包含A 到B的IP数据报
帧从A发送到R
帧被R接收到,从中提取出IP分组,交给上层IP协议实 体
IP dest: 222.222.222.222, R转发数据报,数据报源IP地址为A,目标IP地址为B
R创建一个链路层的帧,目标MAC地址为B,帧中包含 A 到B的IP 数据报
Ethernet
以太网
以太网网卡模型:
目前最主流的LAN技术:98%占有率
廉价:30元RMB 100Mbps!
最早广泛应用的LAN技术
比令牌网和ATM网络简单、廉价
带宽不断提升:10M, 100M, 1G, 10G
以太网:物理拓扑
总线:在上个世纪90年代中期很流行
所有节点在一个碰撞域内,一次只允许一个节点发送
可靠性差,如果介质破损,截面形成信号的反射,发送节点误认为 是冲突,总是冲突
星型:目前最主流
连接选择: hub 或者 switch
现在一般是交换机在中心
每个节点以及相连的交换机端口使用(独立的)以太网协议(不会 和其他节点的发送产生碰撞)
以太帧结构
发送方适配器在以太网帧中封装IP数据报, 或其他网络层协议数据单元
前导码:
7B 10101010 + 1B 10101011
用来同步接收方和发送方的时钟速率
使得接收方将自己的时钟调到发送端的时钟
从而可以按照发送端的时钟来接收所发送的帧
地址:6字节源MAC地址,目标MAC地址
如:帧目标地址=本站MAC地址,或是广播地址, 接收,递交帧中的数据到网络层
否则,适配器忽略该帧
类型:指出高层协(大多情况下是IP,但也支 持其它网络层协议Novell IPX和AppleTalk)
CRC:在接收方校验
如果没有通过校验,丢弃错误帧
以太网:无连接、不可靠的服务
无连接:帧传输前,发送方和接收方之间****没有握手
不可靠:接收方适配器不发送ACKs或NAKs给发送 方
递交给网络层的数据报流可能有gap
如上层使用像传输层TCP协议这样的rdt,gap会被补上(源主机,TCP实体)
否则,应用层就会看到gap
以太网的MAC协议:采用二进制退避的CSMA/CD介质访问控制形式
很多不同的以太网标准
相同的MAC协议(介质访问控制)和帧结构
不同的速率:2 Mbps、10 Mbps 、100 Mbps 、 1Gbps 、 10G bps
不同的物理层标准
不同的物理层媒介:光纤,同轴电缆和双绞线
以太网使用CSMA/CD
没有时隙
NIC如果侦听到其它NIC在 发送就不发送:载波侦听 carrier sense
发送时,适配器当侦听到其 它适配器在发送就放弃对当 前帧的发送,冲突检测 collision detection
冲突后尝试重传,重传 前适配器等待一个随机 时间,随机访问random access
以太网CSMA/CD算法
适配器获取数据报,创建帧
发送前:侦听信道CS
1)闲:开始传送帧
2)忙:一直等到闲再发送
发送过程中,冲突检测CD
1)没有冲突:成功
2)检测到冲突:放弃,之后尝 试重发
发送方适配器检测到冲突, 除放弃外,还发送一个Jam 信号,所有听到冲突的适配 器也是如此 强化冲突:让所有站点都知 道冲突
5.如果放弃,适配器进入指数 退避状态 在第m次失败后,适配器随 机选择一个{0,1,2, , 2^m-1}中K,等待K*512位时 ,然后转到步骤2
exponential backoff 二进制指数退避算法
指数退避 目标:适配器试图适应当前 负载,在一个变化的碰撞窗 口中随机选择时间点尝试重 发
高负载:重传窗口时间大, 减少冲突,但等待时间长
低负载:使得各站点等待时 间少,但冲突概率大
CSMA/CD的效率
10BaseT and 100BaseT
100 Mbps 速率 也被称之为 “fast ethernet”
T代表双绞线
节点连接到HUB上: “star topology”物理上星型
逻辑上总线型,盒中总线
节点和HUB间的最大距离是100 m
Hubs 本质上是物理层的中继器: