看完让你彻底搞懂Websocket原理,websocket和http的区别( 四 )


加上控制信息主要有:物理地址、MTU最大传输单元、校验和等 。到了物理层:A把数据帧直接用0101的脉冲电信号发送给对方 。②、网络中间传输电脑A出来的电信号不是直接到网站B 。而是和A直连的二层交换机 。二层交换机网卡收到后 , 会将脉冲重新合成数据帧 。然后对数据帧的物理地址进行查看 , 如果本交换机内没有该物理地址 。
那就转交给网关的三层交换机 。三层交换机如果发现数据帧并不是本地的 , 就需要拆开数据帧查看IP报文头里的IP地址 , 通过比对自己的路由表 , 然后找到该发给的下一个路由设备 。就这样一跳接一跳 , 重复着拆包查看地址 , 然后封包继续传输的动作 , 直到来到网站B的公网IP 。然后由二层交换机查看数据帧的物理地址转交给网站B网口 。
③、网站B收到信号就是层层解封装在物理层:B的网口收到电信号后 , 立即合成数据帧 , 然后比对MAC地址是否和自己网卡相同 , 如果相同则继续 , 不同则丢弃 。在数据链路层:B会除了前面比对地址 , 还会比自己计算校验和和帧控制信息的校验和是否相同 , 如果相同表示数据无误 , 则解封装数据帧 。如果有误则丢弃 。在网络层:B比对IP报文头 , IP地址信息和校验信息如果正确则继续解封装IP报文 。
不正确则丢弃在传输层:B比对TCP报文控制信息 , 正确无误则将数据转交给相应应用程序的端口 。在会话层:B比对会话层的控制信息 , 同样需要正确才会将数据转交给表示层 。在表示层:如果有加密 , 这里就进行解密并转交给上层应用 。没有则跳过了 。在应用层:将收到的HTTP信息传给网站后台程序 。(如果是B向A传输资源 , A就是可以在浏览器上看到信息了) 。

推荐阅读