计算机网络学习笔记--网络层之IP地址与子网
IPv4地址:
我们知道在网络层(TCP/IP体系结构的网际互联层),最重要的一个协议就是IP协议,现在正处于IPv4和IPv6的过渡时期,但目前来说,IPv4仍为主流,所以主要讲Ipv4.
IP地址基本格式:
计算机内部IP地址的格式是32位的二进制数表示的,为了让人们看起来方便,通常采用点分十进制来表示IP地址,如192.168.1.25,其中用来分隔各段的那个点,也是为了方便人们阅读加上的,计算机内部并没有这个点.
公网IP地址和私网IP地址:
公网Ip地址是指可以在广域网上直接使用,直接被路由,并需要向IP地址管理机构(我国申请IP地址要通过APNIC)申请,注册,购买,且全球唯一的Ipv4地址.
私网IP地址是指仅可以在各用户自己的局域网内部使用,且不同用户可以重复使用,无需申请购买的IPv4地址.
子网掩码:
子网掩码不是一个地址,它是用来确定一个IP地址中哪一部分是网络ID,哪一部分是主机ID的,连续为1的部分代表网络ID,连续为0的部分代表主机ID.如C类网络的前24位为网络号,后8位为主机号,那么C类网的子网掩码就是255.255.255.0
IP地址的分类:

这个分类属于比较基础的知识,就不详细讲了,这里主要强调一下D类网.D类IP地址属于组播地址,又称多播地址,配合IP组播技术能有效地解决单点发送,多点接收的问题,可以节约带宽降低网络负载比如在线直播,网络电视等业务都是基于网络的组播特性的.
整个D类Ip地址的范围是224.0.0.0~239.255.255.255.根据不同的应用环境和用途又划分为了四大类:
1.预留组播地址(224.0.0.0~224.0.0.255):这些IP地址是不分配给特定用户使用的,主要分配给组播路由协议使用.使用这段组播地址的IP包不会被路由器转发.
2.公用组播地址(224.0.1.0~224.0.1.255):这些组播地址是全世界范围内都可以直接在互联网上使用的,当然需要申请和购买.
3.临时组播地址(224.0.2.0~238.255.255.255):是由企业用户在本企业局域网内部使用的组播地址,仅在本地局域网有效.就像私有IP地址一样.
4本地管理组播地址(239.0.0.0~239.255.255.255):是保留使用的,专用于局域网内部组播测试.仅在特定的本地范围内有效.
有类网与无类网:
前边将ip地址划分为ABCDE五类,这种网络就称为有类网络,或标准网络.
为了解决IP地址不足,出现了VLSM(下面讲)技术,采用了VLSM技术划分后的网络就称为无类网络.
网络地址,主机地址,广播地址:
网络地址:用来标识一个网络的地址,是对应有类网或子网中的第一个Ip地址,即主机ID部分全为0的IP地址.如在192.168.2.0这个C类网络中,192.168.2.0就是网络地址.
广播地址:是一个网络中的最后一个IP地址,即主机ID部分全为1的IP地址,如在192.168.2.0这个C类网络中,192.168.2.255,就是该网络的广播地址,使用这个地址可以进行广播通信,使该网络的所有节点都能收到同一个数据包.
主机地址:除了网络地址,广播地址这个一头一尾的地之外,其他的都是主机地址.
几个特殊的IP地址:
1: 私网IP地址(局域网专用IP地址):目的是为了提高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
2:169.254.0.0/16: 在windows系统中,如果设置的是自动获取IP地址,本地网络中又没有部署自动获取IP地址的DHCP服务器的话,主机会自动获得一个这个网段的IP地址,这就是所谓的自动专用IP地址.
3:127.0.0.1:本机地址,又称为环回地址.
4:0.0.0.0:并不是一个真正意义上的Ip地址,表示的是这样一个集合:所有不清楚的主机和目的网络.
IP子网的划分与聚合
VLSM(可变长子网掩码)技术:
为了解决IPv4地址的不足,诞生了这个技术,VLSM用于子网的划分.把一个大的网络划分成分个小的子网.基本思路就是在原来有类网的IP地址的网络ID部分像主机ID部分借位,使其变成网络ID的一部分(称为子网ID),这样一来,主机IP部分的长度变小了,也就是是对应网络中主机总数(地址总数)减少了,不过这并不是VLSM的目的,更关键的是它可以用来灵活的依据实际需求来调整所划分的子网的大小.
注意:通过这种方式划分的子网中,全0的子网,和全1的子网是可以使用.
CIDR(无类域间路由选择协议):
无类域间路由选择协议允许把多个有类网合并成一个更大的网络,称为超网.
例如把192.24,8.0~192.24.15.0这8个有类网,可以合成一个网络号为192.24.8.0,子网掩码为255.255.248.0的超网.
CIDR可以显著减少路由表中路由表项的数量.例如上例中就是把8个路由减少为1个路由,这成为路由聚合.
通过引入CIDR,再加上子网掩码,现在的网络号都可以看成是没有边界的,即无类的,
NAT(网络地址转换)技术:
前边介绍的两个技术VLSM和CIDR是通过调整子网掩码的长度来充分利用IPv4地址的,而NAT技术允许内部网络(用户当前所在的网络)中私有IP地址通过地址转换变为公网IP地址来访问Internet.NAT服务工作在路由器上.
关于具体的NAT工作原理,这一篇文章讲的比较好,可以深入看一下:http://www.tuicool.com/articles/7JFZziM
特殊IP地址:
计算机网络学习笔记--网络层之IP地址与子网的更多相关文章
- IP地址和子网划分学习笔记之《IP地址详解》
2018-05-03 18:47:37 在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. ...
- IP2——IP地址和子网划分学习笔记之《子网掩码详解》
2018-05-04 16:21:21 在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...
- IP地址和子网划分学习笔记之《预备知识:进制计数》
一.序:IP地址和子网划分学习笔记开篇 只要记住你的名字,不管你在世界的哪个地方,我一定会去见你.——新海诚 电影<你的名字> 在我们的日常生活中,每个人的名字对应一个唯一的身(敏)份(感 ...
- 读取本地IP地址和子网页码
#region 读取本地IP地址和子网页码 //读取本地IP地址和子网页码 NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterf ...
- IP地址与子网划分
IP地址与子网划分 目录 IP地址与子网划分 一.IP地址(Internet Protocol Address) 1.IP地址的表示 2.IP地址的组成 3.IP地址的分类 (1)A类IP地址 (2) ...
- 【计算机网络】网络层学习笔记:总结IP,NAT和DHCP
前言:这篇文章是学习网络层协议时候总结的笔记,前面的主要部分介绍的都是IP协议, 后半部分介绍NAT协议和DHCP协议 参考书籍 <计算机网络-自顶向下> 作者 James F ...
- 计算机网络网络层的IP地址划分及子码
现在在网络层,即就是TCP/IP协议里的网际互联层,最流行IP协议的就是IPV4.其中IP地址的格式是由32位二进制数字表示的,通常为了人们阅读习惯,将其转换成点分十进制来表示,如:192.168.1 ...
- 【转载】IP地址和子网划分学习笔记之《子网掩码详解》
原文地址: https://blog.51cto.com/6930123/2112748 一.子网掩码 IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相 ...
- 计算机网络三:域名、IP地址和TCP/IP协议
一.域名 域名(Domain Name),简称域名.网域,是由一串用点分隔的字符型标志名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时 ...
随机推荐
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级
一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...
- 在ubuntu16.10 PHP测试连接MySQL中出现Call to undefined function: mysql_connect()
1.问题: 测试php7.0 链接mysql数据库的时候发生错误: Fatal error: Uncaught Error: Call to undefined function mysqli_con ...
- Java 输出流中的flush方法
转自:http://blog.csdn.net/jiyangsb/article/details/50984440 java中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中 ...
- 前端学Markdown
前面的话 我个人理解,Markdown就是一个富文本编辑器语言,类似于sass对于css的功能,Markdown也可以叫做HTML预处理器,只不过它是一门轻量级的标记语言,可以更简单的实现HTML ...
- 从零开始编写自己的C#框架(27)——什么是开发框架
前言 做为一个程序员,在开发的过程中会发现,有框架同无框架,做起事来是完全不同的概念,关系到开发的效率.程序的健壮.性能.团队协作.后续功能维护.扩展......等方方面面的事情.很多朋友在学习搭建自 ...
- 开始学nodejs——net模块
net模块的组成部分 详见 http://nodejs.cn/api/net.html 下面整理出了整个net模块的知识结构,和各个事件.方法.属性的用法 net.Server类 net.Socket ...
- interpreter(解释器模式)
一.引子 其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中:在实际应用中,我们可能很少碰到去构造一个语言的文法的情况. 虽然你几乎用 ...
- css中line-height行高的深入学习
之前对css中行高line-height的理解还是有些肤浅,深入后才发觉里面包罗万象.学习行高line-height,首先从基本原理开始 (标注该文章转载 http://www.cnblogs.com ...
- JavaScript基础
JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...