子网划分及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地址就是一个唯一标识 ,是一段网络编码 ...
随机推荐
- oracle函数 trunc(x[,y])
[功能]返回x按精度y截取后的值 [参数]x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示. [返回 ...
- vue简单总结
首先 介绍几个常见指令 指令:以属性的形式出现在标签上 v-xxx 1.内置指令 数据绑定指令 v-html v-text 举例 <span v-html="msg" ...
- day6_python序列化之 json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- 2018-7-29-C#-强转会不会抛出异常
title author date CreateTime categories C# 强转会不会抛出异常 lindexi 2018-7-29 14:24:1 +0800 2018-4-4 16:24: ...
- 2016 年度开源中国新增开源软件排行榜 TOP 100
2016 年度开源中国新增开源软件排行榜 TOP 100 2016 年度开源中国新增开源软件排行榜 TOP 100 新鲜出炉!本榜单根据 2016 年开源中国新收录的 3030 款软件的关注度和活跃度 ...
- Bert系列(三)——源码解读之Pre-train
https://www.jianshu.com/p/22e462f01d8c pre-train是迁移学习的基础,虽然Google已经发布了各种预训练好的模型,而且因为资源消耗巨大,自己再预训练也不现 ...
- Element-ui学习笔记3--Form表单(二)
Input输入框 Input 为受控组件,它总会显示 Vue 绑定值. 通常情况下,应当处理 input 事件,并更新组件的绑定值(或使用v-model).否则,输入框内显示的值将不会改变. 不支持 ...
- java Jre和Jdk的区别?
JRE:(Java Runtime Environment),java运行环境.包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开 ...
- Yarn install 报错 Resolving packages... [2/4] Fetching packages... info There appears to be trouble with your network connection. Retrying
1.设置淘宝代理 yarn config set registry 'https://registry.npm.taobao.org' 2.如果网址本地可以打开,说明你本地有代理设置 所以需要按本地的 ...
- python 字符串方法isdigit()
python isdigit() 方法检测字符串是否只有数字组成. 语法: isdigit()方法语法: str.isdigit() 参数:无 返回值: 如果字符串中只含有数字则返回True,否则返回 ...