目录
一,局域网传输流程
1.集线器
2.交换机
?3.交换机+路由器
二,广域网数据传输流程
主要过程
一,局域网传输流程
1.集线器
主要过程
- 源主机:从上到下封装,如果知道目的IP主机的MAC地址就直接封装在数据链路层的以太网帧头中,如果没有找到进行ARP寻址(相当于喊话)收到MAC地址后,封装好在发送
- 集线器给每一台主机都发,不同主机判断这个数据包是不是给自己的
- 目的主机进行从下到上的分用
2.交换机
主要过程
- 源主机从上到下封装数据包中,如果知道目的IP主机的MAC地址,就封装在以太网帧头中,没有的话,就进行ARP寻址,找到后就发送给交换机
- 交换机在内部维护了一个MAC地址表,记录了MAC地址对应的端口号,如果有,就通过相应的端口直接发送,如果没有就进行ARP广播找,记录返回的端口并发送
- 目的主机接收到数据包,从下到上进行分用
?3.交换机+路由器
主要过程(我们这里以同一局域网,不同网段)
- 源主机从上到下封装数据包(根据子网掩码计算不是在同一网段,封装目的MAC为网关路由器的MAC地址,通过本地的ARP缓存表从网关的IP找到MAC)
- 将数据包交给交换机,交换机通过本地维护的MAC地址表,找到网关对应的端口发送给网关路由器
- 路由器接收到数据包进行分用,将源IP和源MAC修改为自己的IP/MAC地址,同时通过分用获取到目的IP,并将目的MAC修改为目的IP主机的MAC
- 目的主机收到数据包,从下到上分用
二,广域网数据传输流程
或者可以说:在浏览器地址栏输入url按下回车后,发生了什么事情?(
主要过程
1)解析域名,通过DNS协议找到域名对应ip地址
2)源主机:
- 通过子网掩码计算目的主机是否是在同一网段,如果是同一网段就直接设置目的IP和MAC为目的主机的IP和MAC,表明下一跳的设备就是目的设备
- 如果不是同一网段,就设置目的MAC为网关路由器的MAC(找不到就基于ARP缓存表找)
- 将源IP和源MAC设置为源主机的IP和MAC
3)交换机
- 交换机接收到数据包后,根据目的MAC,在本地维护的MAC地址转换表寻找对应的端口,找到了就直接通过对应端口,发送到相应的设备
- 如果没找到就进行ARP广播,找到对应的端口,更新到MAC地址转换表中,并通过这个端口发送出去
4)路由器
- 先下到上分用到网络层
- 通过NAPT技术将源IP和源port(局域网内源主机的IP和port),修改为路由器的公网ip和port
- 基于路由功能,根据目的ip,计算出下一跳的设备是哪个,到目的主机更近
- 从上到下进行封装,将源IP和port修改为路由器的IP和port,修改源MAC修改为路由器的MAC地址,通过ARP缓存表(依据路由功能找的下一跳设备的IP)找到下一跳设备的MAC,修改目的MAC为下一跳设备的MAC地址
5)路途中其他的设备
和(4)中除了第二步之外,其余的基本类似,只需修改目的MAC和源MAC
6)目的主机接收到数据
- ?从下到上进行分用,分用到网络层,目的IP和我一样,交给传输层
- 分用到传输层:根据目的端口号,将数据报发送至相应的端口,交给对应的进程来处理(如tomcat
- 分用到应用层:tomcat根据相应协议来进行解析
7)tomcat处理数据
8)tomcat返回响应
- 从上到下进行封装
- 将目的IP和port与源IP和port进行交换操作
- 执行相应的流程,把数据发送给对应主机?
|