【清晰明了】A局域网主机向B局域网主机传输数据的过程

来源:互联网 发布:java将xml转换成json 编辑:程序博客网 时间:2024/06/06 08:30

这是个纠结了半年的问题!

局域网A:

1、主机A的应用程序先生成应用层数据;

2、传输层根据应用层协议类型,对应用层数据进行TCP或UDP封装;

3、网络层对数据进行封装时,IP头中的源IP地址填写主机A的IP地址,目的IP填写主机B的外网IP地址(因为只有全球IP地址才能接入互联网,外网地址有限,局域网内的主机需要共享外网地址,B的外网地址就是映射后的外网地址。根据NAT地址转换的规则,局域网地址转换为外网地址有三种方式:静态转换、动态转换、端口多路复用)。

4、一般来讲,局域网采用以太网的组网方式,因此数据链路层是根据MAC地址对帧数据进行转发的。主机A在数据传送开始是不知道主机B的MAC地址的,因此,①主机A会先发送ARP广播数据包至网络,请求主机B的MAC地址。②交换机A接收到ARP广播数据包后,先进行解封装,学习主机A的IP地址和MAC地址,接着对ARP包进行重新封装并继续广播至除接收端口外的所有端口。③路由器接收到该ARP广播数据包后,解封装ARP数据包,发现其中的目的IP地址为外网IP,此时,路由器A将ARP响应包的源MAC设置为自己的MAC地址,目的MAC设置为主机A的MAC地址并发送到交换机A。④交换机A接收到该ARP响应数据包后,发现目的MAC为主机A,因此直接将该ARP响应包转发至主机A。到此,主机A知道了发送数据到主机B需要封装的目的MAC地址。⑤主机A将数据包封装好后发送至交换机A。

5、交换机根据MAC地址将数据都发送至路由器A。

6、路由器A作为局域网A与外网的连接,它同时也要承担网络地址转换的工作,将接收的数据用映射好的外网IP作为源IP进行重新封装,之后将数据转发至外网。

广域网:

数据通过广域网从路由器A传到路由器B

局域网B:

按照局域网A相反的顺序,剥离头部。

原创粉丝点击