网络数据传输流程

网络数据传输流程,第1张

目录

一,局域网传输流程

1.集线器

2.交换机

 3.交换机+路由器

二,广域网数据传输流程

主要过程


一,局域网传输流程 1.集线器

主要过程

  1. 源主机:从上到下封装,如果知道目的IP主机的MAC地址就直接封装在数据链路层的以太网帧头中,如果没有找到进行ARP寻址(相当于喊话)收到MAC地址后,封装好在发送
  2. 集线器给每一台主机都发,不同主机判断这个数据包是不是给自己的
  3. 目的主机进行从下到上的分用

2.交换机

主要过程

  1. 源主机从上到下封装数据包中,如果知道目的IP主机的MAC地址,就封装在以太网帧头中,没有的话,就进行ARP寻址,找到后就发送给交换机
  2. 交换机在内部维护了一个MAC地址表,记录了MAC地址对应的端口号,如果有,就通过相应的端口直接发送,如果没有就进行ARP广播找,记录返回的端口并发送
  3. 目的主机接收到数据包,从下到上进行分用

 3.交换机+路由器

主要过程(我们这里以同一局域网,不同网段)

  1. 源主机从上到下封装数据包(根据子网掩码计算不是在同一网段,封装目的MAC为网关路由器的MAC地址,通过本地的ARP缓存表从网关的IP找到MAC)
  2. 将数据包交给交换机,交换机通过本地维护的MAC地址表,找到网关对应的端口发送给网关路由器
  3. 路由器接收到数据包进行分用,将源IP和源MAC修改为自己的IP/MAC地址,同时通过分用获取到目的IP,并将目的MAC修改为目的IP主机的MAC
  4. 目的主机收到数据包,从下到上分用

二,广域网数据传输流程

或者可以说:在浏览器地址栏输入url按下回车后,发生了什么事情?(

主要过程

1)解析域名,通过DNS协议找到域名对应ip地址

2)源主机:

  1. 通过子网掩码计算目的主机是否是在同一网段,如果是同一网段就直接设置目的IP和MAC为目的主机的IP和MAC,表明下一跳的设备就是目的设备
  2. 如果不是同一网段,就设置目的MAC为网关路由器的MAC(找不到就基于ARP缓存表找)
  3. 将源IP和源MAC设置为源主机的IP和MAC

3)交换机

  1. 交换机接收到数据包后,根据目的MAC,在本地维护的MAC地址转换表寻找对应的端口,找到了就直接通过对应端口,发送到相应的设备
  2. 如果没找到就进行ARP广播,找到对应的端口,更新到MAC地址转换表中,并通过这个端口发送出去

4)路由器

  1. 先下到上分用到网络层
  2. 通过NAPT技术将源IP和源port(局域网内源主机的IP和port),修改为路由器的公网ip和port
  3. 基于路由功能,根据目的ip,计算出下一跳的设备是哪个,到目的主机更近
  4. 从上到下进行封装,将源IP和port修改为路由器的IP和port,修改源MAC修改为路由器的MAC地址,通过ARP缓存表(依据路由功能找的下一跳设备的IP)找到下一跳设备的MAC,修改目的MAC为下一跳设备的MAC地址

5)路途中其他的设备

和(4)中除了第二步之外,其余的基本类似,只需修改目的MAC和源MAC

6)目的主机接收到数据

  1.  从下到上进行分用,分用到网络层,目的IP和我一样,交给传输层
  2. 分用到传输层:根据目的端口号,将数据报发送至相应的端口,交给对应的进程来处理(如tomcat
  3. 分用到应用层:tomcat根据相应协议来进行解析

7)tomcat处理数据

8)tomcat返回响应

  1. 从上到下进行封装
  2. 将目的IP和port与源IP和port进行交换 *** 作
  3. 执行相应的流程,把数据发送给对应主机 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/730139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存