网络原理 | 广域网数据传输流程(DNS、NAPT、路由)

目录

DNS

NAPT 

广域网数据传输流程


广域网的数据传输流程涉及到DNS、NAPT以及路由.

DNS

 DNS即域名系统,它是一整套从域名映射到IP的系统.它提供了全球域名服务器(根域名+子域名服务器)和各级DNS缓存,构成了多个根节点的树形结构

域名是一个字符串,例如www.baidu.com

网络通信在发送数据时,如果使用目的主机的域名,需要先通过域名解析查找对应的IP地址:

· 域名解析的过程,可以理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名信息,从下到上查找对应IP地址的过程.如果到根节点(根域名服务器)还找不到,就找不到该主机

· 域名解析使用DNS协议来传输数据,DNS协议是应用层协议,基于传输层的UDP/TCP协议来实现

域名系统提供域名转IP的服务,发送的数据是DNS协议的数据,域名系统接收到后就返回对应域名的IP

NAPT 

NAPT协议的作用是将内网IP+port转换为公网IP+port 

例如局域网内的主机1对百度服务器发送数据,在这个数据传输流程中:

①主机1的下一跳设备是网关(路由器),此时路由器接收到的数据报为:协议号、源IP、源port、目的IP、目的port,这里的源ip和源port即主机1局域网的ip和port.由于目的主机需要返回响应数据,因此在经过路由器时需要将源IP和源port转换为公网IP和公网port,否则返回响应数据时,找不到对应的主机.

②上一跳是主机1到路由器,下一跳为路由器到下一跳设备,路由器再次发送数据,就会将局域网内主机ip和port修改为路由器公网ip和port.

路由,即路径规划

广域网数据传输流程

例如下图主机1发送http请求到百度服务器:www.baidu.com

 

根据DNS协议,将域名转换为IP,目的IP为110.242.68.3,目的端口为80

①从上到下对请求进行封装,经过应用层时对其加上http协议首部、经过传输层时对其加上TCP协议首部(包含源端口和目的端口)、经过网络层对其加上IP协议首部(包含源IP和目的IP)、经过数据链路层时将其封装成以太网帧

②判断目的主机是否和本主机在同一个网段,如果在同一网段,就和局域网数据传输一样,如果不在同一网段就交给网关设备来处理.

· 找到与本机相连的网关设备IP,根据ARP协议,主机1查询本机ARP缓存表,根据网关IP来查找对应的MAC地址

·  ARP缓存表找到网关MAC就直接发送真实http数据报给网关(源IP、源port、目的IP、目的port、源MAC、目的MAC)

· ARP缓存表找不到网关MAC,就广播发送数据报,让网关返回自己的MAC地址给主机1,然后再封装数据发送给网关

 

③主机1封装好的数据报发送给网关设备先经过交换机,再由交换机转发给路由器,交换机在接收到数据报后,在MAC地址转换表中根据目的MAC查找对应的端口,找到对应端口相连的设备并发送数据.交换机接收到数据后只是简单的转发,没有涉及封装和分用.

④路由器接收到数据后对数据报进行分用、修改、封装

· 从下到上对数据包进行分用

· 根据NAPT协议,将源IP(局域网IP)转换为路由器公网IP,将源port(主机1局域网的端口)转换为路由器公网的端口

· 基于路由技术,通过路由表计算路线获取正确方向的下一个设备IP

· 通过ARP寻址,找到下一个设备的MAC地址

· 重新封装数据报并发送给下一设备

 

⑤之后在经过传输途中的其他设备,通过每一个设备时都需要分用解析数据报

· 从下到上分用

· 基于路由技术,通过路由表计算路线,获取正确方向的下一跳设备的IP地址

· 通过ARP寻址,找到下一跳设备的MAC地址

· 封装数据报并发送给下一跳设备(封装后的数据报源MAC为当前设备MAC,目的MAC为下一跳设备MAC)

 

⑥数据报到达百度服务器后,百度服务器对其接收、分用

· 数据链路层:目的MAC是我,接收

· 网络层:目的IP是我,要处理

· 传输层:根据端口找到对应的进程

· 应用层:把数据交给应用层,由应用程序根据应用协议解析 

⑦返回响应数据报和请求流程一样,只是源IP和目的IP更换、源port和目的port更换

 

返回的过程与请求的过程基本一致,在返回响应过程中经过路由器后对数据分用、修改、封装如下图所示

NAPT反向映射:公网IP和公网端口映射局域网IP和局域网端口

 之后主机1接受数据并分用

 

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li_yizYa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值