# todo 4. 五层协议
'''
计算机1: 计算机2:
应用层 应用层
传输层 传输层
网络层 网络层
数据链路层 数据链路层
物理层 <================交换机===================> 物理层
0101010101010
(源mac地址, 目标mac地址) (源ip地址, 目标ip地址) 数据
'''
# todo 4.1 物理层负责发送电信号
# 一组物理层数据称之为: 位
# 单纯的电信号毫无意义, 必须对其进行分组
# todo 4.2 数据链路层: ethernet 以太网协议
# 规定1: 一组数据称之为一个数据帧
# 规定2: 数据帧分成位两部分 =====> 头 + 数据
# 头包含: 源地址与目标地址, 该地址是mac地址
# 数据包含: 包含的是网络层发过来的整体的内容
# 规定3: 规定但凡接入互联网的主机必须有一块网卡, 每块网卡在出厂时都会有有一个唯一地址, 称为mac地址
# 长度位48位2进制, 通常由12位16进制数表示(前六位是厂商编号, 后六位是流水编号)
# todo 注意: 计算机通信基本靠吼, 即以太网协议的工作方式是广播
# todo 4.3 网络层: IP协议
# 要达到的目的:
# 划分广播域
# 每一个广播域但凡要接通外部, 一定要有一个网关帮内部的计算机转发包到公网
# 网关与外界通信走的是路由协议
# 规定1: 一组数据称之为一个数据包
# 规定2: 数据帧分成两部分 ===> 头 + 数据
# 头包含: 源地址与目标地址, 该地址是IP地址
# 数据包含的: 传输层发过来的整体的内容
# todo ipv4地址
# 8bit.8bit.8bit.8bit
# 0.0.0.0
# 255.255.255.255
# 子网掩码:
# 8bit.8bit.8bit.8bit
# 255.255.255.0对应的二进制表达
# 11111111.11111111.11111111.00000000
# 一个合法的ipv4地址组成部分=ip地址/子网掩码地址
# 172.16.10.1/255.255.255.0
# 172.16.10.1/24 24等同于11111111.11111111.11111111.00000000, 代表连续24个1
# 172.16.10.1 不加也是代表连续24个1
# todo 计算机1:
# 172.16.10.1: 10101100.00010000.00001010.00000001
# 255.255.255.0: 11111111.11111111.11111111.00000000
# 172.16.10.0: 10101100.00010000.00001010.00000000
# todo 计算机2:
# 172.16.10.2: 10101100.00010000.00001010.00000010
# 255.255.255.0: 11111111.11111111.11111111.00000000
# 172.16.10.0: 10101100.00010000.00001010.00000000
'''
计算机1: 计算机2:
应用层 应用层
传输层 传输层
网络层 网络层
数据链路层 数据链路层
物理层 <================二层交换机================> 物理层
0101010101010
(源mac地址, 目标mac地址) (源ip地址, 目标ip地址) 数据
事先知道的是对方的ip地址
但是计算机的底层通信是基于ethernet以太网协议的mac地址通信
ARP:
所以必须能够将ip地址解析成mac地址
'''
# todo 两个计算机
# 计算机1: 172.16.10.10/24 直接 计算机2: 172.16.10.11/24
# ARP协议:
# 自己的ip, 对方的ip
# 1. 计算机二者网络地址, 如果一样, 拿到计算机2的mac地址
# 2. 发送广播包
# 发送端的mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据
# todo 两台计算机不在同一个局域网内
# 计算机1: 172.16.10.10/24 网关 计算机2: 101.100.200.11/10
# ARP协议:
# 自己的ip, 对方的ip
# 1. 计算机二者网络地址, 如果不一样, 应该拿到网关的mac地址
# 2. 发送广播包
# 发送端的mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据
# todo 4.3.1 总结*****
# IP地址 + mac地址 ==> 标识独一无二的一台计算机
# 或者:
# ip地址 =====> 标识独一无二的一台计算机