内网、外网通信的底层实现

内网与外网通信的底层实现

NAT是什么,是如何工作的?

NAT(Network Address Translation,网络地址转换)是一种网络技术,主要用于解决IPv4地址短缺问题和增强网络安全性(所以nat并不是绝对需要使用的,它是为了解决ipv4短缺提出的方案)。它的基本工作原理如下:

  1. 地址转换: NAT主要功能是在内部网络(局域网)与外部网络(互联网)之间转换IP地址。内部设备通常使用私有IP地址(例如,192.168.x.x 或 10.x.x.x),这些地址在全球范围内并不唯一,不能直接路由到互联网上。NAT将内部设备的私有IP地址映射到一个或多个公共IP地址,从而实现在有限的公共IP地址资源下,多个内部设备共享互联网连接。
  2. 端口映射: NAT不仅可以转换IP地址,还可以转换端口号。当多个内部设备同时请求访问互联网上的服务时,NAT通过修改源IP地址和端口号,使得外部服务器能够正确地将响应数据包发送回到正确的内部设备。

就我总结来说:

总结来说:nat设备就是局域网和公网沟通的一个桥梁,一个nat设备中有一个或多个公网ipv4,这些ipv4是可以复用的,且并不属于一个人或者一台设备,内网中的设备想要访问互联网,nat会从公网ipv4中找出一个分给该用户的程序并记录此时的内网ip与公网ipv4的对应关系(同时会记录该程序的端口以及nat分配的假端口),所以内网设备在互联网上的马甲用的都是nat中的ipv4的马甲,所以当该消息返回响应时,nat又可以按照这个对应关系将消息发给内网中的ip,nat的作用就相当于是一个记事本,记录着映射表,将其一一对应,在发生改变时及时更新。

从这里又引出了一个新问题,内网中的私网ip是如何分配来的,总不能随意胡乱分配,如果分配的设备下线或者改变应该怎么处理等等,毕竟即便是私网ip,设备也会有子网掩码,网关,DNS服务器地址等这些信息,这些都是需要统一管理的。所以引出了新的知识:DHCP

DHCP是什么,是如何工作的

DHCP的作用: DHCP(Dynamic Host Configuration Protocol)负责在局域网内动态分配IP地址和其他网络配置信息给内部设备。DHCP服务器通常配置了一组IP地址池,当设备加入网络时,DHCP服务器会分配一个可用的IP地址、子网掩码、网关地址以及DNS服务器地址等给设备。

管理IP地址的有效性: DHCP确保分配给设备的IP地址是有效的,并避免了IP地址冲突的问题,因为DHCP服务器会维护一个分配的IP地址列表。

设备下线或变更处理: 当设备离线或者网络配置发生变化时,DHCP服务器可以重新分配已经释放的IP地址,确保网络资源的最有效利用。

与NAT的配合: DHCP和NAT通常是协同工作的。DHCP确保内部设备有正确的IP地址和配置信息,NAT则通过转换和映射确保这些设备能够安全地访问互联网或外部网络服务。

上边的两个知识点全面的说明了,

内网设备和外网进行通信时的ip转换。

知道了这些,再说个灯下黑,内网和内网又是如何通信的呢?

  1. 内网设备之间的通信:
    • 通过交换机: 如果所有设备都连接到同一个交换机或交换机网络中,它们可以直接通过交换机进行通信。交换机会根据设备的MAC地址将数据帧从一个端口转发到另一个端口,从而实现设备之间的直接通信。
    • 通过路由器: 如果设备位于不同的子网中,通常需要路由器进行中转。路由器会根据设备的IP地址和路由表,将数据包从一个子网转发到另一个子网,确保数据能够到达目标设备。
  2. 通信过程简要说明:
    • 数据包生成: 源设备生成要发送的数据包,设置目标设备的IP地址作为目的地。
    • ARP解析(如果是同一子网): 如果目标设备位于同一子网,源设备会使用ARP(Address Resolution Protocol)获取目标设备的MAC地址(ARP协议)。
    • 数据包传输: 数据包通过以太网帧的形式传输到交换机或路由器。
    • 交换机转发(如果在同一子网): 交换机根据目标设备的MAC地址将数据包从一个端口转发到另一个端口,直接送达目标设备。
    • 路由器转发(如果在不同子网): 如果目标设备在不同的子网中,路由器会接收数据包,根据目标设备的IP地址和路由表将数据包转发到正确的子网,然后由目标设备接收。

综上所述,内网中的设备之间的通信主要依赖于局域网内部的物理设备(如交换机和路由器),它们通过MAC地址或IP地址(内网)的转发,实现设备之间的数据传输和通信,即,只要两设备在同一个路由器下(而并不一定在同一台交换机下),理论上就可以互相通信。

再简单说下通信过程中的ARP:

IP地址到MAC地址的映射: 当一台设备需要向局域网中的另一台设备发送数据时,它首先需要知道目标设备的MAC地址。ARP协议允许设备通过广播一个ARP请求(ARP Request)来查询指定IP地址对应的MAC地址。

ARP请求与响应过程:

  • ARP请求(ARP Request): 发送ARP请求的设备会广播一个包含目标IP地址的ARP请求,询问“谁拥有这个IP地址对应的MAC地址?”。
  • ARP响应(ARP Reply): 拥有目标IP地址的设备会收到ARP请求,并直接向发送请求的设备发送一个ARP响应,包含自己的MAC地址。

ARP缓存(ARP Cache): 一旦设备收到了另一台设备的ARP响应,它会将这个IP地址与MAC地址的映射关系保存在本地的ARP缓存中,以便将来快速发送数据包,而不必再次广播ARP请求。

ARP的工作原理: ARP协议工作在网络层(第三层)和数据链路层(第二层)之间,它通过直接的广播方式进行通信,不需要路由器的介入。在局域网中,ARP是实现设备间直接通信的重要协议之一。

总结:工作在内网中,通过内网ip定位到对应设备的mac地址。

相关推荐

  1. 通信底层实现

    2024-07-12 06:04:06       22 阅读
  2. 区别及应用

    2024-07-12 06:04:06       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 06:04:06       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 06:04:06       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 06:04:06       44 阅读
  4. Python语言-面向对象

    2024-07-12 06:04:06       55 阅读

热门阅读

  1. 什么是XSS跨站脚本攻击

    2024-07-12 06:04:06       22 阅读
  2. 托管你的程序——命令行后台运行记录

    2024-07-12 06:04:06       24 阅读
  3. JDBC 实例分享——简易图书管理系统

    2024-07-12 06:04:06       22 阅读
  4. 工作理念分享

    2024-07-12 06:04:06       22 阅读
  5. 如何安装和管理RabbitMQ

    2024-07-12 06:04:06       25 阅读
  6. 微信小程序连接阿里云IOT物联网平台

    2024-07-12 06:04:06       23 阅读
  7. [Linux][Shell][Shell函数]详细讲解

    2024-07-12 06:04:06       22 阅读
  8. vivado EQUIVALENT_DRIVER_OPT、EXCLUDE_PLACEMENT

    2024-07-12 06:04:06       21 阅读
  9. 四大内网穿透利器对比

    2024-07-12 06:04:06       25 阅读
  10. ORM Bee,如何使用Oracle的TO_DATE函数?

    2024-07-12 06:04:06       26 阅读
  11. HTTP1.0和HTTP1.1的区别

    2024-07-12 06:04:06       25 阅读
  12. 5 Better ways to code in Rust

    2024-07-12 06:04:06       20 阅读
  13. SVN 标签的使用与优势

    2024-07-12 06:04:06       21 阅读