Linux 网络协议栈开发基础篇(六)—— NAT原理介绍

本文介绍了NAT(网络地址转换)的基本概念,包括公有和私有IP地址的区别,以及NAT如何解决IP地址不足的问题。详细阐述了NAT的工作原理,包括地址转换和连接跟踪,同时还探讨了端口转换的重要性。文章提到了NAT的三种类型:静态NAT、动态地址NAT和NAPT,并讨论了NAT在数据伪装、负载平衡、端口转发和透明代理等方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍NAT之前,我们需要先理解下公有地址及私有地址的概念:

        IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上。一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行通信,我们用的私有IP地址必须为: A级:10.0.0.0 - 10.255.255.255 B级:172.16.0.0 - 172.31.255.255  C级:192.168.0.0 - 192.168.255.255 中的一种,A类私有地址只有网络号为10的网段,B类私有地址占用了B类网络号中172.16——172.31,C类私有地址占用了C类网络号中192.168.0——192.168.255.

  具体用哪种要根据该局域网的主机有多少来选择(这样便于后期的维护),这些私有IP地址是不用申请的,但是我们必须申请公有IP地址(一个局域网可以有一个公有IP地址,也可以有多个公有IP地址),公有IP地址在全球是唯一的,私有的不是,我们和Internet上的其他主机通信时,用的都是公有IP地址,但是,在局域网中的机子只配置了私有的IP地址,没关系,我们在网关那有一个应用程序,可以把私有地址转换为公有IP地址,该机制成为NAT(网络地址转换Network Address Translation)。

在局域网中通常使用的IP地址如192.168.0.1等是属于私有地址的。那么为什么要在局域网中使用私有地址呢?使用私有地址有什么好处呢?下面我们来看一下为什么在局域网中要使用私有地址。

  我们现在使用的IP地址是IPv4,在现有的协议下,其只能提供大约40亿个IP地址,可是为什么IPv4协议只有40亿个IP地址呢?目前使用的IPv4是用4个字节(byte)来表示IP地址,1字节是8个位(bit),所以IPv4表示的IP地址是4X8=32位。如某人的IP地址是:221.137.148.209,实际上它表示:11011101.10001001.10010100.11010001数字中间的点并仅仅是为了看起来方便而已,可以认为我现在的IP地址是11011101100010011001010011010001。理论上,32位的二进数的个数是: 2^32 = 4294967296也就是:四十二亿九千四百九十六万七千二百九十六,IPv4能表示的地址总数也就这么多了。所以现在有了IPv6,IPv6的地址是128位的,所以个数为:2^128=340282366920938463463374607431768211456,肯定是够地球人用的啦!而本来只有40亿的IP地址都被大on

所以总结下,私有地址就是为解决在IPv4下IP地址不够用而产生的。

  比如在一个网络中的主机为400台,那么分配一个C类地址不够用,分配一个B类地址又显得太浪费,在这种情况下,我们可以使用私有IP地址来解决这个问题。这个网络中的所有计算机共享一个公网地址。可以有效的缓解IP地址资源紧缺的问题。

  私有IP地址,就是内网用的。10.0.0.0-10.255.255.255和192.168.0.0-192.168.255.255要连接互联网必须把私有IP转换成公网IP,使用NAT转换,至于为什么会需要私有IP,这是因为IP地址有限,不能每个用户都分配一个IP,所以只能几个人甚至几十个人共用一个IP,很多内网都是一两个公网IP的。

全部IP地址的范围

IP地址,一共分成了5类,范围分别如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值