1.计算机网络:数据如何在网络中传输?

2019-04-18  本文已影响0人  未知的证明

今天打算从最简单的方式来谈谈数据如何在网络中流动。

OSI七层模型分为:物理层,数据链路层,网络层(IP协议),传输层(TCP协议),会话层,表示层,应用层。本文略过应用层,直接从传输层,层层至下分析,看看各层数据的封装做了什么?


网络中数据流动.png 以太网数据封装

1.传输层

应用层一般为TCP协议,将数据分成若干个包(加上端口号),然后传输到网络层;

2.网络层

网络层将传输层的数据加上自己的IP地址和对方的IP地址,采用ARP协议获取MAC地址。

  1. 查看是否是同一网段,如果是同一网段,发送FFFFFFF广播,对应的目标IP会把自己的MAC地址返回给源IP PC机,这时候有了下一跳的MAC就可以将数据转发到对应的PC上。

  2. 目标IP和源IP做对比,如果不在同一个网段,则源PC机会发送广播(ARP协议),问网关的MAC地址是多少,网关会回答自己的MAC地址,收到后,计算机会把MAC地址缓存起来,供下次用。

  3. 知道Mac地址之后,交换机或者路由器,会把数据发送到下一跳的节点。本文将数据同过交换机发送到了路由器里。
    注意数据链路层会把网络层的获得Mac数据加到帧的头部

    通过命令,可以查看计算机其实缓存了很多物理地址.png

4.数据转发

路由器会有一个路由表,选择一个不拥塞的网络,然后同样采用广播的方式,获取Mac地址,然后将数据发送到下一跳里。一直到发送到目标IP

这里需要有注意一个事情:

目的IP地址是最终的目的地,中间的数据包中的IP地址并不会发生改变。
而Mac地址会一直发生变化,他是决定下一跳到底将数据转发到哪里。

上一篇下一篇

猜你喜欢

热点阅读