子网划分及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地址就是一个唯一标识 ,是一段网络编码 ...
随机推荐
- http://www.freeopensourcesoftware.org
Applications http://www.freeopensourcesoftware.org/index.php?title=Applications Main Page > Thi ...
- python selenium处理iframe和弹框(一)
处理iframe和弹框 # encoding:utf-8 from selenium import webdriver import time driver = webdriver.Firefox() ...
- iptables 防止DoS攻击
SYN洪水是攻击者发送海量的SYN请求到目标服务器上的一种DoS攻击方法,下面的脚本用于预防轻量级的DoS攻击:ipt-tcp.sh: iptables -N syn-flood (如果您的防火墙默认 ...
- CSS引入的方式有哪些? link和@import的区别是?
CSS引入的方式包括内联 内嵌 外链 导入 link和@import的区别是 : ①link属于XHTML标签,除了加载CSS外,还能 用于定义RSS, 定义rel连接属性等作用:而@import是C ...
- C# 递归、try
一.递归 递归:在函数体内调用本函数自身,直到符合某一条件不再继续调用 两个需要满足的条件1.有反复调用自身函数的过程2.有函数的出口:有不再继续执行的条件 例子: 案例: (一).输入正整数n,求n ...
- Treap(树堆)入门
作者:zifeiy 标签:Treap 首先,我么要知道:Treap=Tree+Heap. 这里: Tree指的是二叉排序树: Heap指的是堆. 所以在阅读这篇文章之前需要大家对 二叉查找树 和 堆( ...
- java Math和Random和UUID
Math类 public final class Math extends Object 以下X表示double,float,int, long abs(X x):求绝对值 max(X x1,X x2 ...
- 【30.43%】【codeforces 746C】Tram
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Python3内置函数、各数据类型(int/str/list/dict/set/tuple)的内置方法快速一览表
Python3内置函数 https://www.runoob.com/python3/python3-built-in-functions.html int https://www.runoob.co ...
- Common Logging包装设计
类设计 LogFactory根据当前环境加载具体的Log实现: 1.从缓存中加载LogFactory 2.从系统属性org.apache.commons.logging.LogFactory 中加载L ...