子网划分及NAT技术总结
近段项目需要用到网络相关的知识,硬着头皮又回顾了一波,这里做一下记录。
一 分类的IP地址
我们使用的IP地址(IP V4)可以划分为A,B,C,D,E 5个类型,其中的D,为组播地址,E类地址为保留地址。正常使用的就A,B,C类地址。三类地址的
划分范围及可用地址个数如下表

表中私有IP地址范围指的A,B,C三类地址在局域网内可以使用的地址范围,如192.168开头的C类地址最多容纳65536 - 2 个主机(去掉网络地址 192.168.0.0 和广播地址192.168.255.255)。
这种将IP地址划分为网络地址 + 主机地址方式称为两级IP地址。两级IP地址存在:IP地址空间的利用率有时很低,IP地址不灵活 以及路由维护困难等缺点。
二 使用子网掩码划分子网
使用子网掩码划分子网的方法是从网络的主机号中借用若干位作为子网号,可以使两级的IP地址在本单位内部变成三级的IP地址,这时可以标记为
IP 地址 ::= {<网络号>,<子网号>,<主机号>}
从其他网络发送到本地单位的某台主机IP数据库报,在发到本单位路由器上时,路由器会先计算出目的地址的子网地址,再将分组数据转发给对应子网,由子网
将数据发送到子网内的主机。
例如:假定某单位内有三个子网:145.13.3 145.13.7 和 145.13.21 (如下左图),现有一个目的地址为145.13.3.10的分组数据到了R1路由器,R1需要将目的地址145.13.3.10
与 子网掩码255.255.255.0 做按位与操作,然后将得到的结果作为目的子网的网络地址(如下右图)。将分组数据转发给145.13.3的子网,由该子网将数据发送到目的主机。


这里涉及到子网掩码的确定方式,基本原则是这样:如果子网内主机比较多,则子网掩码末尾空余更多的0,常见子网掩码的及对应子网数和主机数如下表

使用子网掩码在网络内进一步划分子网, 假如路由器R1接收到了一个分组数据,R1将按如下步骤对数据进行发送
(1)路由器R1收到数据后会获取目的IP地址 D
(2) 首先判断是否可以直接交付。R1对相连的子网逐一检查,用每个子网的子网掩码和 D逐位相与,判断结果是否与相应的网络地址匹配。若匹配就将数据交付给该网络。否则执行(3)
(3) 若路由表中有目的地址为D的特定主机路由,则把数据传送给路由表中制定的下一跳路由,否则执行(4)
(4) 对路由表中的每一行,用其中的子网掩码和D逐位相与,得到结果N,若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由,否则把数据传给默认路由,否则报告转发分组错误
三 NAT技术
NAT(Network Address Translation,网络地址转换)技术,NAT将无法在互联网上使用的私有IP地址映射成可以在互联网上使用的合法IP地址。而全局地址,是指合法的IP地址,
它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。
映射方式包括基本网络地址转换与网络地址端口转换(NAPT),其中NAPT用的比较多,如下图:

路由器负责将内网的IP与端口号映射到公网的IP与端口号,并以该IP与端口号与外网进行通讯,并作为中间桥梁控制其间的数据传输。
那么路由器怎么分配内网IP,以及ISP如何分配一个IPv4地址?使用DHCP协议
DHCP(Dynamic Host Configuration Protocol) 动态主机配置协议,使用UDP协议工作,主要功能有
(1) 给内部网络或者网络服务提供商自动分配IP地址
(2) 给用户或者内部网路管理员作为对所有计算机作中央管理的手段
DHCP详情可以参看这里
内网穿透是 实现不同局域网之间的主机通过互联网进行通信的技术,要实现内网穿透需要解决以下两个问题:
(1) 位于不同局域网内的两台主机,即使是知道了对方NAT的 IP 地址和端口号,“一厢情愿”地将数据包发送过去,对方也是接收不到的。因为出于安全起见,
除非是主机主动向对方发出了连接请求(这时会在该主机的数据结构中留下一条记录),否则,当NAT主机接收到数据包时,如果在其数据结构中查询不到对应的记录,
那些不请自来的数据包将会被丢弃。
(2) 位于局域网内的主机有两套 IP 地址,一套是局域网内的 IP 地址,通常是动态分配的,仅供局域网内的主机间通信使用;一套是经过网关转换后的外网 IP 地址,用于与外网程序进行通信.

子网划分及NAT技术总结的更多相关文章
- 第5章 IP地址和子网划分(2)_IP地址分类和NAT技术
3. IP地址的分类 (1)五类IP地址 (2)数轴表示法 4. 保留地址 (1)网段的地址:主机ID全0.如192.168.100.0/24,其中的192.168.10.0指的是网段. (2)广播地 ...
- 计算机网络之IPv4(IPv4分组、IPv4地址、NAT、子网划分与子网掩码、CIDR、ARP协议、DHCP、ICMP)
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105138313 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 网络构建入门技术(2)——IP子网划分
说明(2017-5-10 10:54:31): 1. 为什么要子网划分? 子网划分就是,网络位变长,主机位变短的过程.实际上就是将一个大网络,划分成多个小网络的过程. 目的就是为了解决IP地址不够用的 ...
- 3.华为路由交换技术_IP子网划分
IP地址组成 地址包含两部分:网络号+主机号 比如:深圳市(网络号)宝安区坂田华为基地A10(主机号) 约定黄色部分为网络号. D类地址作为组播,E类地址保留使用(用于研究) 路由器只关心IP地址的网 ...
- ARP 地址分类 NAT技术
第1章 OSI回顾 1.1 TCP/IP协议族组成 应用层 主机到主机层 互联网层 网络接入层 1.2 总结应用层掌握的协议与端口号对应关系 http(80) telnet(23) ftp(2 ...
- 可变长度子网掩码(VLSM)在子网划分中的应用
在学习可变长度子网掩码时,必须先熟练掌握二进制与十进制的转化.计算机中数据的单位(字节.位)等知识. 一.什么是可变长度子网掩码? 要理解可变长度子网掩码,先要理解子网掩码:要理解子网掩码,先要理解I ...
- IPv4协议及VLSM可变长子网划分和CIDR无类域间路由
IPv4协议及VLSM可变长子网划分和CIDR无类域间路由 来源 https://blog.csdn.net/hongse_zxl/article/details/50054817 互联网世界一切通信 ...
- 【Linux网络基础】网络子网划分基础知识(IP地址,子网)
一. IP地址分类与子网划分基础 1. 什么是IP地址? 常见的ip地址版本为ipv4, ipv6 32位 4 * 8=32位. 32位二进制数字序列组成的数字序列 点分十进制 采用点将32位数字 ...
- IP基础 & 子网划分 & 路由寻址
IP地址详解 IP地址概念 就像用身份证号码来区别毎个人一样,为了区别 网上的每台计算机,我们给因特网上的每一台计算机一个唯一的编号 ,我们把它称为IP地址 IP地址就是一个唯一标识 ,是一段网络编码 ...
随机推荐
- @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列
目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...
- 解决 vs 出现Error MC3000 给定编码中的字符无效
在 xaml 写中文注释,发现编译失败 Error MC3000 给定编码中的字符无效 我的 xaml 写了一句代码 <Grid> <!--林德熙--> </Grid&g ...
- LRJ-Example-06-02-Uva514
#define _CRT_SECURE_NO_WARNINGS #include<cstdio> #include<stack> using namespace std; + ...
- apply、call、bind方法调用
---恢复内容开始--- 首先这三个方法的作用都是用来改变this的值,而this的值一般有几种情况. 1.函数作为一个对象的一个方法来调用,此时this的值指向对象. var a={ v:0; f: ...
- Pycharm中Python PEP8 的警告
https://blog.csdn.net/serizawa_tamao/article/details/88658694
- Ubuntu Kylin 14.04安装
早听说Ubuntu Kylin对中国本地做了很多定制的工作,想搜狗输入法.WPS,还有中国日历等.昨天没事就下载了一个Kylin试用了下,使用的方法还是使用EasyBCD软件做了个硬盘安装启动,关于E ...
- 【a602】最大乘积
Time Limit: 1 second Memory Limit: 32 MB [问题描述] 一个正整数一般可以分为几个互不相同的自然数的,如3=1+2,4=1+3,5=1+4=2+3,6=1+5= ...
- linux 使用 ioctl 参数
在看 scull 驱动的 ioctl 代码之前, 我们需要涉及的另一点是如何使用这个额外的参数. 如果它是一个整数, 就容易: 它可以直接使用. 如果它是一个指针, 但是, 必须小心些. 当用一个指针 ...
- js求1到任意数之间的所有质数
何为质数: 只能被1 和 自身 整除的数; 方法: 利用js中求模, 看是否有余数. ---> 3%2 = 1; 5%2 = 3......... 代码如下: function test (n) ...
- 【HTML/CSS】BFC
块格式化上下文(Block formatting contexts) BFC是什么? 是Web页面中盒模型布局的CSS渲染模式.它的定位体系属于常规文档流. 至少满足条件之一: float 的值不为 ...