1.MAC地址
1.1 MAC地址的作用
主机C发送一个数据包给主机A,封装成帧,帧中放有目的地址A和源地址C,通过广播发送给各个主机。各个主机受到帧后,检测目的地址是否匹配,不匹配则丢弃。主机A的网卡会将这个帧送给高层进程处理。
1.2 MAC地址的格式
MAC地址属于数据链路层规定的地址。
1.3 MAC地址的发送顺序
1.4 单播、广播以及多播MAC地址举例
(1)发送单播帧
将主机A和主机C的MAC单播MAC地址写入帧的首部,发送出去。
其它主机收到后,验证MAC地址是否匹配。
(2)发送广播帧
主机C将广播MAC地址和单播MAC地址写入帧的首部,发送出去。
其它主机都收到并接收广播地址。
(3)发送多播帧
- 首位十六进制数不能整除2(1,3,5,7,9,B,D,F),即为多播地址。
主机C将多播MAC地址和单播MAC地址写入帧的首部,发送出去。其它主机收到后,检查地址字段,检查自己的多播组列表,有主机A的多播地址则接收,否则丢弃。
2.IP地址
2.1IP地址的作用
IP地址是互联网上各主机使用的地址,标识两部分的信息:
- 网络编号:标识互联网上数百万的网络
- 主机编号:标识同一网络上不同的主机
之前的MAC地址不具有这样的功能
- 如果这只是一个单独的网络,不连入互联网,可以只使用MAC地址。
- 如果主机所在的网络连入互联网,则IP地址和MAC地址都使用。
2.2 从五层体系结构看IP地址与MAC地址
2.3 数据包转发过程中IP地址与MAC地址的变化情况
主机H1通过R1和R2将数据包发送到H2,过程中源IP地址和目的IP地址不变,MAC地址一直在变。
3.ARP协议
3.1 IP地址和MAC地址的关系
3.2 地址解析协议ARP
主机C要发数据包给主机A,知道主机A的IP地址,但不知道主机A的MAC地址,因此,链路层封装帧时无法填写目的MAC地址。主机C会在自己的ARP高速缓存中寻找主机A的IP地址和MAC地址,找到则用它来发送数据包,找不到则广播一个ARP请求。
各个主机收到ARP请求,检查是否匹配,如果匹配,就会构建一个ARP响应发送出去。
各个主机收到ARP响应,检查是否匹配,匹配则接收。
接收后会在ARP高速缓存表中添加一条记录。
3.2 小结
4.仿真实验
(1)构建网络拓扑,给两台计算机分别配置IP地址为:192.168.0.1 和 192.168.0.2。
(2)查看计算机的端口状态汇总表和ARP表。
(3)第一台计算机给第二台计算机发送数据包,但IP地址不在ARP表中,因此没有发送出去,而是发送一个ARP请求。
(4)查看这个ARP请求。可以看到第一台计算机的单播MAC地址和广播MAC地址以及IP。
(5)发送到第二台计算机,第二台计算机进行处理。
(6)返回一个响应,第一台计算机获取到MAC地址,准备发送数据包。
(7)数据包成功发送。
(8)再次发数据包,就不用发送ARP请求了,直接可以发送。
(9)打开第一台计算机的命令行。查看ARP表,之后清空。