网络数据的传输会通过七层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
用户通过计算力的软件发送消息,首先会进行封装,包含用户的聊天信息 在前面加上应层层的头部,再加上传输层头部指定端口,再加上网络层的ip地址,再加上数据链路层的头部,在最底层的物理层进行二进制传输,完成发送消息的包装,直到传给了目标地址, 然后解析从物理层开始向上解析头部,直到解析出用户的聊天信息展示在应用程序窗口中!
其中关于 ip地址和mac地址(mac地址一般都是由12位组成 例如:00-E0-4C-4E-B9-81)
mac地址是基于物理硬件分配的,主板生产商会在生产时给网卡分配世界上唯一的一个mac地址,mac地址在局域网中非常方便,可以直接同构mac地址进行双向通信,访问的过程
源mac地址 + 目标mac地址 + 一堆协议 + 数据信息
(这里面唯一值得注意的就是目标mac地址的获取,在底层网络中的通信的主要方式就是通过广播告诉每一台电脑,首先会给予arp协议,获取目标的mac地址,在进行上面的通信)
arp协议过程:有两种情况 两个地址在同一个局域网内,不在局域网内
首先它会对两个ip地址分别与他们的子网掩码进行‘与’运算,
如果两个运算结果相同,说明他们在同一个局域网内,然后就会进行如下广播:
源mac地址 + FF.FF.FF.FF.FF.FF(表示索要mac地址) + 源ip地址 + 目标ip地址
上面的广播在局域网内的所有主机都会收到,都会跟自己的ip地址进行对比,如果相同,就会把自己的mac地址填上,然后再发一次广播,告诉源主机自己的mac地址。
如果两个运算结果不同,他们就不能通过局域网连线,会进行如下广播:
源mac地址 + FF.FF.FF.FF.FF.FF(表示索要mac地址) + 源ip地址 + 网管ip地址
然后网管会把自己的mac地址返给源主机,然后源主机再发一次广播
源mac地址 + 网管mac地址 + 源ip地址 + 目标ip地址
然后这条广播就在互联网中被传给对应ip地址的另一个网管,然后再找到那个网管对应的mac地址,进行通信