为什么ipconfig和浏览器查询出的ip不一样?(再说路由协议)

为什么ipconfig和浏览器查询出的ip不一样?

这是zhihu上的一篇文章,讲的不错.摘:

亿万万用户需要上网,需要用身份证号来识别,但是全球IP被瓜分完毕,意味着没有足够的身份证号来识别通信终端,怎么办呢?

私有IP

于是互联网管理机构颁布一项新的规定,无法拥有全球IP的电脑、手机终端可以自由使用以下三个号段的IP地址:

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

同时又规定,以上三个号段的私有IP报文不能进入Internet。

是不是很滑稽?私有IP报文既然不能进入Internet,意味着无法上网,配置这些私有IP又有何用呢?

...

另外一点,程序调用ip层的api发送ip包时,这个ip包在本机也是经过路由协议出去的.

内核要选择一张网卡把它送出去,每个网卡有对应的ip地址和子网掩码(这是ip协议的标配,标识它自己的身份),选择哪个网卡,就靠本机的路由配置.

像lo是127.0.0.1(以及::1)的Loopback虚拟网卡。

另外zhihu上一个问题:

ARP 是网络层协议 而交换机是2层设备 那么一个2层设备是怎样让一个三层协议来发送广播的呢?

首先,arp协议是直接封装在数据帧里而不是封装在ip协议里。利用的是二层的广播全F的广播帧,而不是255.255.255.255的三层广播。

当报文来临后:

  1. 如果是三层交换机,有arp报文中要查询的ip地址,那么他就会应答。如果没有这个ip地址 在所以其他相同有效端口转发。
  2. 如果是二层交换机,读取到全F的广播地址后,直接在其他有效端口转发。
链接:https://www.zhihu.com/question/271760055/answer/367205541

这其实是一个很容易弄反的概念,arp协议是最终是基于以太网帧的,它是被封装在以太网帧的数据段里,对二层传输设备来说,就只是把它当做普通的帧来发送转发(其实ip协议也是一样),所以高级协议包在二层中继设备上仍旧是按二层协议走的,arp协议把目标mac地址设为全F,用以通过二层交换机广播.只是广播而已,就是说,这个包要发给你连着的所有其它设备,但是这些设备收到后,拆包并选择回复,是arp协议的范畴.

以太网帧的格式:

osi模型:

猜你喜欢

转载自www.cnblogs.com/xiang-yin/p/12110019.html