IPV4/IPV6网络地址相关知识
IPv4地址:连接在Internet的每台主机(或路由器)都被分配了一个32bit的全球唯一的标识符,就是IP地址。
IPv4地址的组成:网络号 + 主机号
IPv4地址的分类:
A类地址:网络地址(1Byte) + 主机地址(3Byte),且网络地址的首位必须是0;则网络地址的取值范围是0~~127,
而0是保留的并且表示所有IP地址(0.0.0.0表示整个TCP/IP网络),而127也是保留的地址(作为环路自检)。因此A类地址的范围其实是从1-126之间。
可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方减1的主机数目)。
子网掩码:255.0.0.0.
A类IP范围:首位为0;1.0.0.1~~126.255.255.254;主机号24位(3byte)。
A类私有地址:10.0.0.0~10.255.255.255
B类地址:网络地址(2Byte) + 主机地址(2Byte),且网络地址的前两位是10;则网络地址的取值范围是128~~191,
可用的B类网络有2的14方个,每个网络能容纳6万多个主机 (2的16次方减0和广播地址)。
子网掩码:255.255.0.0
B类IP范围:前两位为10 ;128.0.0.1~~191.255.255.254;主机号16位
B类私有地址:172.16.0.0~172.31.255.255
C类地址:网络地址(3Byte) + 主机地址(1Byte),且网络地址的前三位是110;则网络地址的取值范围是192~~223,
可用的C类网络有2的21次方,可达209万余个,每个网络能容纳254个主机。
子网掩码:255.255.255.0
C类IP范围:前三位为110;192.0.0.1~~223.255.255.254;主机号8位
C类私有地址:192.168.0.0~192.168.255.255
D类地址:此类地址称为多播地址,也叫做组播地址,前四位必须是1110;网络地址的取值范围是224~~239,
D类IP范围:前四位为1110;224.0.0.1~~239.255.255.254
PS:对于所有IPv4的地址,主机号全0表示网络本身,主机号全1表示本网络的广播地址。
地址的转换:为了减少IP地址注册的成本及稀缺的IP地址资源,可以利用地址转换将内部使用的地址转换为外部地址。
IPv4地址的私有地址又称为可重用地址,这种地址专门用于专用互联网及本地互联网。路由器对目的地址是私有地址的报文一律不予转发。如果在路由器上安装了NAT软件的话,NAT路由器会利用NAT转换表将本地地址转换为外部全球地址。
子网划分+子网掩码:
1.三级IP地址
二级IP地址不够灵活:给每个物理网络都分配一个网络号,会使路由器的路由表的规模很大,使得网络性能变坏。
二级地址----->从主机号借若干个位作为子网号------>三级IP地址:网络号+子网号+主机号
PS:子网号可以为全0全1,但是主机号不能为全0全1
三级IP地址的路由过程:
- 从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络net_id,先找到链接本单位网络上的路由器;
- 然后此路由器在收到IP数据报后,在按照网络号net_id和子网号subnet_id找到目的子网。
- 最后将IP数据报交付到目的主机。
2.子网掩码
子网掩码:32bit,由一串1和一串0组成。1对应IP地址中的网络及子网号部分,0对应主机号部分。因此A类地址的子网掩码是255.0.0.0,B类地址的子网掩码是255.255.0.0,C类地址的子网掩码是255.255.255.0.
路由器在相互之间交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉对方,这样才可以计算得到网络地址:网络地址=IP地址&子网掩码。
主机在设置IP地址的同时必须设置自己的子网掩码,同处于一个子网的路由器的子网掩码必须相同,路由表的项目中必须包含:目的网络地址,子网掩码,下一跳地址。
使用子网掩码路由器分组转发的过程:
- 从收到的报文中的首部中提取目的IP地址,记为D
- 先判断是否为直接交付,对路由器直接相连的网络逐个进行检查:用网络的子网掩码和D计算得到网络地址,判断是否和相应的网络地址相匹配,如果匹配,则将分组直接交付;否则就是间接交付,执行3
- 若路由表中有目的地址为D的特定主机路由,则将分组再传给路由表所指明的下一跳路由器;否则,执行4
- 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址)中的子网掩码和D计算得到结果N,如果N与该行的目的网络地址相匹配,则将分组传送给该行指明的下一跳路由器,否则执行5
- 若路由表中有一个默认路由,则将该分组传送给路由表中所指明的默认路由,否则报转发分组出错。
CIDR记法:IP地址/网络前缀所占比特数,其中网络前缀所占比特数对应于网络号的部分,等效于子网掩码中联系1的部分。
CIDR地址消除了传统的A、B、C类地址划分子网的概念,将网络前缀都相同的连续的IP地址组成CIDR地址块,一个CIDR地址块可以包括多个A、B、C类地址,这种地址称为路由聚合。
最长前缀匹配:当在路由表中进行网络前缀匹配时,可能会有多个匹配结果,此时应该选择最长的网络前缀,因为该项的地址块越小(主机号所占位数最少),因而路由就越具体。(查找最常用的方法是线索二叉树)
IPV4/IPV6网络地址相关知识的更多相关文章
- 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识
从之前笔记的四个程序中(http://www.cnblogs.com/take-fetter/p/8278864.html),我们可以看出分别使用了谷歌地理编码API(对URL表示地理信息查询和如何获 ...
- LINUX涉及网络相关知识
才接触到网络的老铁,是否比较晕呢? 简单记录一下网络相关知识吧(IPV4)! A0. 网络号.主机号 A1.网络地址分类: A2. 保留地址: A3. 子网掩码作用:(子网掩码.IPV4地址做“与”运 ...
- IP协议/地址(IPv4&IPv6)概要
IP协议/地址(IPv4&IPv6)概要 IP协议 什么是IP协议 IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议. [1] 协议的特征 无连 ...
- 有关rip路由协议相关知识以及实例配置【第1部分】
有关rip路由协议相关知识以及实例配置[第一部分] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从 ...
- OSPF相关知识与实例配置【第一部分】
OSPF相关知识与实例配置[基本知识及多区域配置] OSPF(开放式最短路径优先协议)是一个基于链路状态的IGP,相比于RIP有无环路:收敛快:扩展性好等优点,也是现在用的最多的:所以这次实验就针对于 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- 移动WEB像素相关知识
了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...
- listener监听器的相关知识
从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...
- UIViewController相关知识
title: UIViewController 相关知识date: 2015-12-13 11:50categories: IOS tags: UIViewController 小小程序猿我的博客:h ...
随机推荐
- scrollMenu,一款可滚动的菜单插件 兼容pc和移动端
这个菜单 有两种样式 , 也可以通过animate.css加不同的动画效果!滚动的方式也有两种 一种为通用的overflow,另外一种是better-scroll的滚动效果 在线链接地址 ht ...
- 基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
在基于Metronic的Bootstrap开发框架中,一直都希望整合较新.较好的前端技术,结合MVC的后端技术进行项目的开发,随着时间的推移,目前Metronic也更新到了4.75版本,因此着手对这个 ...
- CentOS 7.2mini版本下编译安装php7.0.10+MySQL5.7.14+Nginx1.10
一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 ...
- CSS3学习系列之布局样式(二)
使用盒布局 在CSS3中,通过box属性来使用盒布局,例子如下: <!DOCTYPE html> <html lang="en"> <head> ...
- biz-NewsService
package com.pb.news.service; import java.util.List; import com.pb.news.entity.News; public interface ...
- xhr.readyState就绪状态
0:初始化,XMLHttpRequest对象还没有完成初始化 1:载入,XMLHttpRequest对象开始发送请求 2:载入完成,XMLHttpRequest对象的请求发送完成 3:解析,XMLHt ...
- MySQL缓存之Qcache与buffer pool对比
Q:innodb buffer pool和Qcache的缓存区别? A: 1.Qcacche缓存的是SQL语句及对应的结果集,缓存在内存,最简单的情况是SQL一直不重复,那Qcache的命令率肯定是0 ...
- Spring3 MVC 类型转换
1. Spring在进行类型转化都是基于java.beans.PropertyEditor接口. 2. 可以使用@InitBinder来进行对单个controller的类型进行操作,比如添加Date类 ...
- JavaScript一个拖动元素的实例
<script type="text/javascript" src="./whenReady.js"></script> <bo ...
- Python面向对象编程(三)
封装 1.为什么要封装? 封装就是要把数据属性和方法的具体实现细节隐藏起来,只提供一个接口.封装可以不用关心对象是如何构建的 2.封装包括数据的封装和函数的封装,数据的封装是为了保护隐私,函数的封装是 ...