最近花了些时间重新回顾了谢希仁教授主编的《计算机网络》关于网络层的章节,这是一本高校教材,里面关于计算机网络的内容比较基础,并且讲的很细致,笔者针对网际协议IP地址部分觉得有必要进行阅读后的一次梳理和提炼,这部分毕竟是TCP/IP体系中有关IP部分最基本的几个概念。
因为工作中处理大部分业务依旧使用IPv4地址,所以下面就围绕IPv4展开叙述:

0.什么是IP地址

整个互联网就是一个单一的、抽象的网络。IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。IP地址的结构使我们可以在互联网上很方便的进行寻址。IP地址现在由互联网名字和数字分配机构ICANN进行分配。IP地址的发展历程可以分为如下三个阶段(因为本文重点在IPv4,故此处略去了IPv6阶段),下面我们的讲解也从这三个部分展开。
 
(1)分类的IP地址
(2)划分子网
(3)无分类编址CIDR

1.分类的IP地址

所谓分类的IP地址就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。
这种两级的IP地址可记为:IP地址::={<网络号>,<主机号>}
说完了IP地址的定义,下图,就是IP地址的分类。
如上图所示:
 
    A类地址有1个字节长的网络号3个字节长的主机号,且在网络号字段最前面有1位类别位,规定为0
 
    B类地址有2个字节长的网络号2个字节长的主机号,且在网络号字段最前面有2位类别位,规定为10
 
    C类地址有3个字节长的网络号1个字节长的主机号,且在网络号字段最前面有3位类别位,规定为110
 
    D类地址用于多播,前四位规定为1110
 
    E类地址保留为以后使用,前四位规定为1111
 
从以上IP地址的组成来看,IP地址不仅仅代表了每一台主机,而且指明了主机所连接到的网络,当初选择将IP地址划分A,B,C三类是考虑到各种网络差异很大,有的网络拥有很多主机,有的网络上主机很少,划分类别后合理地分配IP。当某个单位申请到一个IP地址时,实际上是获得了具有同样网络号的一大块地址,其中每个具体的地址由该单位自行分配,只要做到在该单位管辖的范围内无重复的主机号即可。下图是每一类IP地址可指派的范围和最大网络数及每个网络中的最大主机数
 
 
接下来我们介绍IP地址的书写方法,对于主机和路由器来说IP地址都是32位的二进制代码。为了提高可读性,我们常常把32位的IP地址用其等效的十进制数字表示,首先将IP地址每8位分成一组,共四组,并且在这四组之间加上一个点,就组成了一种叫做点分十进制记法的IP地址。下图是更直观的表示
 
 
A、B、C三类地址是我们常见的IP地址段,但是在RFC 1918中预留了3个IP地址块,作为专用地址,供组织机构内部通信,不与互联网上的主机通信,在互联网中的所有路由器,对目的地址是专用地址的数据报,一律不进行转发,三类专用地址块是
   
    A类地址:10.0.0.0-10.255.255.255(或记为10.0.0.0/8,又称24位块)
    
    B类地址:172.16.0.0-172.31.255.255(或记为172.16.0.0/12,又称20位块)
 
    C类地址:192.168.0.0-192.168.255.255(或记为192.168.0.0/16,又称16位块)

2.划分子网

在早期,IP地址的设计的确有它的不足之处,首先,IP地址的空间利用率有时很低,一个B类的地址网络可以连接超过6万台的主机,但有的单位虽然用不了如此多的主机,但是它考虑到未来的扩张,申请了B类地址而目前实际主机数并不多。这就形成了IP地址的资源浪费。另外,两级的IP地址不够灵活,一个单位需要在新的地点马上开通一个新的网络,在没有申请到新的网络时,新增加的网络是无法连接到互联网上工作的。我们需要一种方法,这种方法可以是我们灵活地增加本单位的网络。正是为了解决上述问题,在1985年,IP地址中又增加了一个“子网号字段”,使两级IP变为三级IP,这样使用起来将更加灵活。这种做法叫做划分子网。下面我们详细介绍划分子网是如何实现的。
(1)一个单位可以将所属的物理网络划分为若干个子网,划分子网纯属一个单位内部的事情,本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
(2)划分子网的方法就是从网络的主机号借用若干位作为子网号,当然主机号也就相应减少了同样的位数。于是两级地址在本单位内部就变成了三级IP地址,网络号、子网号、主机号。
同样这种三级的IP地址可记为:IP地址::={<网络号>,<子网号>,<主机号>}
当划分子网后,就不得不谈到子网掩码这个概念,我们设想,假定有一个数据报,我们从中无法看出源主机或目的主机所连接的网络是否进行了子网的划分。因此我们必须设立一种机制,使得IP数据报到达目的主机网络路由器时,路由器可以准确地将他转发到相应的子网,这种机制就是子网掩码。看下图:
 
 
从上图我们可以直观的看出,使用了子网掩码,不论网络有没有划分子网,只要把子网掩码和IP地址逐位进行逻辑“与”运算,就立即得出网络地址。
根据互联网标准规定:所有的网络必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏,如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。显然根据不同IP地址不同的网络号长度,其默认子网掩码也不同,如下图:
 

3.无分类编址CIDR

1992年,随着B类地址已分配了近一半,眼看将要分配完毕,所以IETF(国际互联网工程任务组)很快研究出了采用无分类编址的方法解决遇到的问题。不过这仍旧是一个长远的问题,所以IETF专门成立了IPv6工作组负责研究新版本IP协议的问题,IPv6协议不是本文重点,所以不做过多赘述,在2011年2月3日IPv4正式被宣布耗尽。
下面我们详细叙述无分类编址,CIDR消除了传统的A类,B类,C类地址以及划分子网的概念,因而能更有效地分配IPv4的地址空间,并且,在新的IPv6使用之前容许互联网的规模继续增长。CIDR把32位的IP地址划分为前后两个部分。前面是网络前缀,用来指明网络,后面是主机号,用来指明主机。所以,无分类编址使IP地址从三级编址又回到了二级编址。不过两者之间还是有很大的不同。其记法为:
IP地址::={<网络前缀>,<主机号>}
CIDR使用斜线记法,在IP地址后面加上斜线“/”然后写上网络前缀所占的位数。举例说明:
 
 
我们把网络前缀都相同的连续的IP地址称作一个CIDR地址块,我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址和最大地址,以及地址块中的地址数量。仍旧取上图举例,如果已知128.14.35.7/20是某地址块中的一个地址,现在把它写成二进制表示,其中的前20位是网络前缀而前缀后面的12位是主机号,那么我们就可以方便得出这个地址块中的最小地址和最大地址以及地址数量,见下图
 
 
地址数量为2的12次方个,不过主机号是全0和全1为特殊地址,一般不使用。
从以上可以看出,使用CIDR的一个好处就是可以更加有效的分配IPv4的空间,可根据单位的需求去分配合适大小的CIDR地址块。下图是一所高校的CIDR分配的例子:
 
 
以上,就是本次学习中从书中提炼出的内容,阅读完本篇文章可以对IP地址的由来、概念以及发展历程有个大致了解,整个网络层的内容涉及很多更细节知识,笔者也是通过学习后提炼了一个知识点进行叙述,更多细节本文无法一一细述,如果想了解更多细节内容,推荐读者阅读谢希仁教授主编的《计算机网络》这本书。
最后,欢迎与各位读者互相学习交流,笔者学疏才浅,如有纰漏,欢迎各位读者批评指正。
 
 
leo zhai
Nov,29.2018
leonardozhai@outlook.com
 
参考书籍:
[1]谢希仁,《计算机网络》[M],北京:电子工业出版社,2017:113-195.

网际协议IP简述的更多相关文章

  1. JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)

    1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ...

  2. 2016.7.7 计算机网络复习要点第四章之网际协议IP

    1.与IP协议配套使用的还有三个协议: **地址解析协议ARP: **网际控制报文协议ICMP: **网际组管理协议IGMP: 2.虚拟互连网络: **没有一种单一的网络能够适应所有用户的需求: ** ...

  3. TCP/IP简述

    一.TCP/IP简述 TCP/IP从字面异议看起来是指TCP和IP两种协议,实际上,它只是利用IP进行通信时必须用到的协议群的统称.具体的来说,IP或ICMP.TCP或UDP.Telnet或FTP.以 ...

  4. 网际协议 IP

    网际协议 网际协议(internet  protocol),简称IP; 概念:TCP/IP网络体系结构中网际层的协议.用以提供无连接的数据服务. 1.IP地址的概念及组成 概念:IP地址就是用来唯一标 ...

  5. Socket编程实践(1) --TCP/IP简述

    ISO的OSI OSI(open system interconnection)开放系统互联模型是由ISO国际标准化组织定义的网络分层模型,共七层, 从下往上为: OSI七层参考模型 物理层(Phys ...

  6. IP网际协议 - IP首部,IP路由选择,子网掩码

    IP首部 4个字节的32 bit值以下面的次序传输:首先是0-7 bit,其次8-15 bit,然后1 6-23 bit,最后是24~31 bit.这种传输次序称作big endian字节序.由于T ...

  7. TCP/IP基础

    TCP/IP 是用于因特网 (Internet) 的通信协议. 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述. 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的 ...

  8. 温故知新--计算机网络 iso/osi七层模型 tcp/ip四层模型

    ISO七层模型由下至上为1至7层,分别为: 应用层(Application layer) 表示层(Presentation layer) 会话层(Session layer) 传输层(Transpor ...

  9. 《TCP/IP详解 卷1:协议》读书笔记

    第一章 概述 协议栈 应用层 HTTP,FTP   运输层 TCP, UDP 段(Segment) 网络层 IP, ICMP, IGMP 数据报(Datagram) 链路层   帧(Frame) 物理 ...

随机推荐

  1. java及前端请求跨域问题

    主要代码:<meta http-equiv="Access-Control-Allow-Origin" content="*"> 说明一下什么情况下 ...

  2. 【敬业福bug】支付宝五福卡敬业福太难求 被炒至200元

    016年央视春晚官方独家互动合作伙伴--支付宝,正式上线春晚红包玩法集福卡活动. 用户新加入10个支付宝好友,就可以获成3张福卡.剩下2张须要支付宝好友之间相互赠送.交换,终于集齐5张福卡就有机会平分 ...

  3. Hadoop Yarn(一)—— 单机伪分布式环境安装

    HamaWhite(QQ:530422429)原创作品,转载请注明出处:http://write.blog.csdn.net/postedit/40556267. 本文是依据Hadoop官网安装教程写 ...

  4. hdu 5416 CRB and Tree(2015 Multi-University Training Contest 10)

    CRB and Tree                                                             Time Limit: 8000/4000 MS (J ...

  5. Codeforces Round #272 (Div. 2) Dreamoon and WiFi 暴力

    B. Dreamoon and WiFi Dreamoon is standing at the position 0 on a number line. Drazil is sending a li ...

  6. poj3469 Dual Core CPU——最小割

    题目:http://poj.org/problem?id=3469 最小割水题(竟然没能1A): 代码如下: #include<iostream> #include<cstdio&g ...

  7. RDA EQ&频响曲线

    相关数据: FAC->Audio->EQ Setting EQ Band - Gain Frequency Q Factor 1.5 FAC->Audio->PEQ // En ...

  8. 仪表盘(Speedometer) icon 设计

  9. 枚举详解之EnumSet、EnumMap用法

    枚举简单例子 /** * @author shuliangzhao * @Title: Color * @ProjectName design-parent * @Description: TODO ...

  10. Comet OJ - Contest #3 题解

    传送门 太菜了连\(D\)都做不出来没有小裙子\(QAQ\) \(A\) 暴力把所有的数对都算出来,然后\(sort\)一下就行了 const int N=505; int a[N],st[N*N], ...