广域网网络数据传输

网络图

在这里插入图片描述

传输流程(主机1发送URL:http://www.baidu.com网络数据报)
  • DNS协议:域名转IP
  1. 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
  2. 如果没有, 就向上级域名服务器进行查找, 依次类推
  3. 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
  4. 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找

问题1:为什么不用域名来直接进行通信呢?

  1. 因为IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的,不便于计算机处理。
  2. IP地址对于用户来说不方便记忆,但域名便于用户使用,例如www.baidu.com这是百度的域名。
  3. 总结一点就是IP地址是面向主机的,而域名则是面向用户的。

问题2:什么是DNS?

  1. 一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系
  2. 如果新计算机接入网络,将这个信息注册到数据库中
  3. 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址
  • 找到IP,封装数据,发送数据报

数据包含:

  1. 源IP:主机1的IP
  2. 目的IP:百度服务器的IP
  3. 源MAC:主机1的MAC
  4. 目的MAC:未知
  • 判断目的IP和主机1的IP是否在同一网段
  1. 主机1的IP位与子网掩码(电脑设置可查询)得到主机1的网段
  2. 目的IP与子网掩码得到目的IP的网段
  3. 比较主机1的网段是否和目的IP的网段是否相同
  • IP和主机1的IP在同一网段:局域网数据传输

链接:局域网数据传输

  • IP和主机1的IP不在同一网段:发送数据到网关(路由器1)

找网关MAC:

  1. 根据ARP协议,主机1查询本机ARP缓存表(IP映射MAC),根据网关IP找到对应的MAC
  2. ARP缓存表找到网关MAC则直接发送真实http数据报给网关(源IP:主机1;源端口:主机1浏览器端口;目的IP:百度服务器;目的端口:百度服务器端口;源MAC:主机1;目的MAC:网关(路由器1网卡1))
  3. ARP缓存表找不到网关MAC,广播发送数据报(广播数据报(不是真实数据报只是为了得到网关MAC):源IP:主机1;目的IP:网关,源MAC:主机1;目的MAC:FF:FF:FF:FF:FF:FF(广播MAC)),让网关返回自己的MAC给主机1,然后在封装数据发送给网关
  • 交换机转发:交换机将主机1要发送给网关的数据转发给网关
  • 交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。
  • 转发:没有封装和分用
  • 路由器1(网关)接收数据:进行分用,修改,封装
  • 根据路由信息和路由算法计算下一个目的IP的数据发送目标
  • 分用接收的数据:
    源IP:主机1
    目的IP:百度服务器IP
    源端口:主机1浏览器端口
    目的端口:百度服务器端口
    源MAC:主机1
    目的MAC:网关MAC(路由器1网卡1)
  • NAPT技术(将源IP+端口改变)修改封装发送:(局域网IP+局域网port映射公网IP+公网port)
    源IP:路由器1网卡0的公网IP
    目的IP:百度服务器IP
    源端口:路由器1公网端口
    目的端口:百度浏览器端口
    源MAC:路由器1网卡0的MAC
    目的MAC:中间设备:路由器2/主机4(路由技术找到离目的IP最近设备的IP,路由器ARP缓存表(IP映射MAC),设置最近设备MAC)

路由表工作原理:
路由器是工作在网络层的,在网络层可以识别逻辑地址。当路由器的某个接口收到一个包时,路由器会读取包中相应的目标的逻辑地址的网络部分,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。这就是数据路由的过程。

为什么有NAT?
现在有很多机器都在一个局域网内,但是这些机器想要访问互联网,但是没有全球的IP地址,又该怎么办该能上网呢。由于限制IPv4的数字限制(32位,大约42亿左右),不可能分配每个人一个全球的IP地址,比如一台电脑,一部手机,或者一个联网的设备,都需要一个IP。原有的IP地址已经不够分配了。所有就会有一大部分设备公用一个IP的情况。为了解决这个问题,当时的人们就提出了 NAT 网络地址转换协议。

NAT和NAPT:

  • NAT: Network Address Transfer 网络地址转换。虚拟机。
  • NAPT: Network Address Port Transfer 网络地址端口转换。也叫PAT。内网路由器或FW。
  • NAT:一个全局IP对应一个私有IP(即一台计算机)(或者有一个IP地址池,里面有很多外部IP地址,当有内部IP地址要出去的时候,就随机选一IP地址作为其出口IP)。一对一,一个内部地址转换成一个外部地址进行通信。
  • NAPT:一个全局IP+不同的端口号对应多个私有IP(即多台计算机),需要一个全局IP对应多台计算时,比如局域网内部计算机访问外界网络时,就得用NAPT。一对多,多个内部地址使用同一地址不同端口转换成外部地址进行通信。缺点在于其通信仅限于TCP或UDP。
  • 好处:
    1. NAT不仅完美地解决了lP地址不足的问题。
    2. 能够有效地避免来自网络外部的攻击。
    3. 隐藏并保护网络内部的计算机。
    4. 实现TCP流量的负载均衡。
  • 中间设备:路由器2/主机4

分用接收的数据:
源IP:路由器1网卡0的公网IP
目的IP:百度服务器IP
源端口:路由器1公网端口
目的端口:百度浏览器端口
源MAC:路由器1网卡0的MAC
目的MAC:中间设备:路由器2/主机4(路由技术找到离目的IP最近设备的IP,路由器ARP缓存表(IP映射MAC),设置最近设备MAC)
修改封装:
源IP:路由器1网卡0的公网IP
目的IP:百度服务器IP
源端口:路由器1公网端口
目的端口:百度服务器端口
源MAC:路由器2MAC
目的MAC:百度服务器MAC

  • 百度服务器
  • 接收数据:

源IP:路由器1网卡0的公网IP
目的IP:百度服务器IP
源端口:路由器1公网端口
目的端口:百度服务器端口
源MAC:路由器2MAC
目的MAC:百度服务器MAC

  • 到达目的地(百度服务器):响应数据-逆向返回

源IP:百度服务器IP
目的IP: 路由器1网卡0的公网IP
源端口:百度服务器端口
目的端口:路由器1公网端口
源MAC:百度服务器MAC
目的MAC:路由器2MAC

  • 中间设备接收百度服务器响应数据:路由器2/主机4(流程同上省略)
  • 路由器1接收响应中间设备响应数据:分用,修改,封装

接收数据:
源IP:百度服务器IP
目的IP: 路由器1网卡0的公网IP
源端口:百度服务器端口
目的端口:路由器1公网端口
源MAC:路由器2MAC(中间设备)
目的MAC:路由器1MAC
NAPT反向映射修改封装数据:(公网IP+公网port映射局域网IP+局域网port)
源IP:百度服务器IP
目的IP: 局域网主机1IP
源端口:百度服务器端口
目的端口:主机1浏览器进程端口
源MAC:路由器1MAC
目的MAC:主机1MAC

  • 主机1接收数据分用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值