实体层是不属于 TCP/IP 协议栈的一层. 也就是说 TCP/IP 协议栈共计四层.
首先得接入网络, 局域网或者广域网, 在计算机接入网络的时候, 也就是插入网线的时候本地路由器中的
路由表会更新数据, 通过一定淘汰机制算法删除很久没有使用过的计算机 ip 以及 mac 地址, 并对新加入组的计算
机新分配 ip, 在分配 ip 的过程中, 路由表会通过 ARP 协议 (地址解析协议) 得到新接入计算机的 mac 地址, 并存入
mac 地址以及分配的 ip 地址.
首先 A 用户使用应用程序产生数据, 并通过应用层约定的规则 (即应用层协议) 发送数据, 数据进行第一次封
装形成 head 和 data. 再通过传输层确定目标计算机所需要接受数据的端口再次进行编码第二次封装, 利用传输层
约定的规则 (即传输层协议, tcp/udp) 发送数据, 数据到达网络层, 网络层通过 ip 协议确认要发送数据的目标 ip,
然后通过数据链路层的 mac 地址, 数据链路层把数据通过以太网协议第三次封装成帧, 帧也分 head(标头, 固定长
度 18 字节)和 data(数据, 最短 46 字节, 最长 1500 字节), 超出则分成多个帧进行发送. 再通过实体层进行第四次
封装, 把数据利用实体层协议封装成 1 或者 0 高低电位, 这里可能会使用差分曼彻斯特等编码方式, 数据这时候通过
网线或者电磁波到达路由或者交换机, 路由首先查看目标 ip 是否在本组局域网内, 通过目标 ip 地址以及发送方 ip 地
址对本地子网掩码进行与 (and) 运算, 如果运算结果相等则说明目标主机在此局域网之内, 则直接通过路由表确定
ip 以及 mac 信息发送数据. 如果不相等则路由器继续向上层发送这次发送的数据, 直到某个结点有属于目标 ip 的信息
时, 进行接收, 并再次通过实体层 ->数据链路层 ->网络层 ->传输层 ->应用层的方式进行四次拆包, 找到 ip->确认 mac
地址 ->确认端口信息, 接收数据到 B 用户使用的应用程序上, 再由应用程序展现到 B 用户面前.
来源: https://www.cnblogs.com/wf-skylark/p/9027079.html