一、ARP协议(网络层/数据链路层)
1.ARP协议原理
同一网段
- A需要知道B的mac地址,广播发送arp请求
- B和C都受到了请求,C发现目的ip不是自己,将A的mac地址保存到自己的arp表,然后丢弃报文;B发现目的ip是自己,将A的mac地址保存到自己的arp表中,然后回应A
- B把自己的mac地址封装到arp包中单播发送给A
不同网段
- 如果A和B不在同一网段内,就需要通过网关发送arp请求,A将arp请求发给网关
- 网关接收到A的arp请求后,将源mac换成自己的,然后按照路由表发送给下一条,下一个设备再将源mac换成自己的,直到到达目的ip,获得目的mac
- 注意:网关/路由器处理时,源和目的ip是不变的,只修改源和目的mac
补充
- IP地址冲突检测:广播arp请求,源和目的都是自己,告知其他设备该IP地址已经被使用了,如果发生冲突则会收到arp响应
2.ARP报文
二、IP协议(网络层)
1.IP协议原理
- A知道B的IP地址且要访问B,A将源和目的IP封装进IP数据包,发送到互联网中
- 互联网中设备(路由器)接收到IP包后根据目的IP查找路由表,转发给下一个路由器,直到B
- B收到IP包后,将源和目的IP翻转,发送回应IP数据包到互联网
- 同样经过转发,A收到IP包
2.补充
- IP地址:32位,分为网络地址和主机地址
- 子网掩码:32位,划分网络号和主机号,一般末尾连续0,连续n个0计算主机数(2^n)
- IP地址和子网掩码按位与得到网络号
3.IP报文
三、OSPF协议(网络层)
1.OSPF协议原理
- A组播发送hello包,携带本机的router-id(唯一标识符)
- B收到A的hello包,将A添加进本地邻居表中,然后给A发送hello包(包含A信息)
- A收到B的hello包,将B添加进本地邻居表中,再发送hello包给B(包含B信息),AB邻居关系建立
- 邻居间进行条件匹配,匹配失败就停留于邻居关系,靠hello包维持联系
- 条件匹配成功后开始建立邻接关系
- 邻居间共享DD包(先发送空的DD包选举主从),并于本地数据库对比,查找是否有本地没有的LSA信息
- A请求本地没有的LSA信息,发送LSR包给B
- B收到LSR包后打包LSA详细信息,发送LSU包给A
- A收到B的LSU包后,回复一个LSAck