在讨论IP编址之前,我们需要讨论一下主机与路由器连入网络的方法。一台主机通常只有一条链路链接到网络;当主机中的IP想发送一个数据报时,它就在链路上发送,主机与物理链路之间的边界叫做接口(interface)。现在考虑一套路由器及其接口。因为路由器的任务是从链路上接收数据报并将这些数据报从某些其他链路转发出去,所以路由器必须拥有两条或更多条链路与它链接。路由器与它的任意一条链路之间的边界也叫做接口。因此,一台路由器有多个接口,每个路由器有一条链路。因为每台主机与路由器都能发送和接收IP数据报,所以IP要求每台主机和路由器接口都拥有自己的IP地址。因此,一个IP地址在技术上是与一个接口相关联的,而不是与包括该接口的主机或路由器相关联的。

  每个IP地址长度为32比特(等于4字节),因此总共有大概40(232)亿个可能的IP地址。这些地址一般按照所谓点分十进制记法(dotted-decimal notation)的方式书写,即地址中的每个字节用十进制形式书写,各字节之间用句号(点)隔开。例如,地址193.32.216.9的二进制记法是:11000001 00100000 11011000 00001001。在全球因特网中,每台主机和路由器上的每个接口都必须有一个全球唯一的IP地址(在NAT后面的除外。

  传统的IP地址是分类的地址。分为A、B、C、D、E五类。无论哪类IP地址,都是由网络号和主机号两部分组成。其中,网络号代表主机所连接的网络,主机号代表该主机或路由器中的地址。

  分类的IP地址如下所示:

特殊的IP地址:

有一些IP地址用于表示特殊用途,不用作主机IP地址:

  

  与子网相关:

  主机号全为0表示网络本身。比如,在192.168.0.0/24的子网中,192.168.0.0表示这个子网本身。

  主机号全为1表示本网络的广播地址。比如,在192.168.0.0/24的子网中,192.168.0.255表示这个子网的广播地址。

  0.0.0.0表示整个TCP/IP网络。

  255.255.255.255表示整个TCP/IP网络的广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。这个地址不能被路由器转发。

  保留地址:

  A类:127.X.X.X (127.0.0.0~127.255.255.255)是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。一个传给环回接口的IP数据报不能在任何网络上。

  B类:169.42.X.X 如果主机使用了动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)功能自动获得一个IP地址,那么当动态主机设置协议服务器(DHCP服务器)发生故障,或响应时间太长而超出了一个系统规定的时间,系统会分配这样一个地址。如果发现主机IP地址是一个这样的地址,该主机的网络大都不能正常运行。

  私有地址:

  私有IP地址值用于LAN,不用于WLAN连接。因此私有IP地址不能直接用于Internet,必须通过网关理由NAT把私有IP地址转换为Internet中合法的全球IP地址后才能用于Internet。私有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

CIDR:

  CIDR(无类别域间选路,Classless Interdomain Routing)是在使用变长子网掩码(VLSM)的基础上提出的一种消除A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种IP地址的网络划分方法。这样可以大幅度提高IP地址空间的利用率,并减小路由表的大小,提高路由器的路由转发能力。

  注意,路由协议可以分为有类路由协议和无类路由协议。有类路由协议的数据包中不包括子网掩码。所以只有无类路由协议才(RIPv2, BGP,OSPF)才可以支持CIDR。

  CIDR的主要特点如下:

  1) 消除了传统的A、B、C类地址以及子网的概念。这样IP地址分为两部分:网络前缀、主机号。

  CIDR使用斜线记法,即IP地址/网络前缀所占比特数。其中,网络前缀所占比特数对应于网络号的部分,等效于子网掩码中连续1的部分。

  2)将网络前缀都相同的连续的IP地址组合成“CIDR地址块”。一个CIDR地址块可以包括多个A、B、C类地址,这种地址的聚合称为路由聚合,或称为构成超网。路由聚合使得路由表中的一个项目可以表示很多个原来传统分类地址的路由,有利于减少路由之间的路由选择信息的交换,从而提高网络性能。

参考资料:

  1.《计算机网络-自顶向下方法》(第四版) 2.7/4.4

  2. 《王道程序员求职宝典》

  3. http://baike.baidu.com/view/39496.htm

  4. http://baike.baidu.com/view/2558390.htm

最新文章

  1. 【5集iCore3_ADP演示视频】5-2 iCore3应用开发平台上电及注意事项
  2. wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件
  3. Java进制转换
  4. 在map中根据value获取key
  5. Android Phonebook编写联系人UI加载及联系人保存流程(六)
  6. 使用Assetbundle时可能遇到的坑
  7. bzoj1816
  8. 【Ubuntu 16】 wifi连接 并解决无桌面图标问题
  9. K:枚举的线程安全性及其序列化问题
  10. JQuery实战总结一 可编辑的表格
  11. (4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中
  12. Python模块1
  13. c语言编程上次输入影响下次记过怎么解决要交作业啦求大神相助
  14. 另类SQL拼接方法
  15. Beta阶段敏捷冲刺一
  16. 博客写作的Checklist
  17. 23. Man and His Natural Habitat 人类及其自然栖息地
  18. No.2 selenium学习之路之八种基本定位
  19. 【OpenCV】SIFT原理与源码分析:关键点搜索与定位
  20. postgresql+postgis+pgrouting实现最短路径查询(3)--流程图

热门文章

  1. 20+ Docs and Guides for Front-end Developers (No. 5)
  2. 多级反馈序列c语言模拟实现
  3. c++ 全局变量
  4. 【BZOJ4698】[SDOI2008]Sandy的卡片
  5. LNMP的安装--详细版
  6. MySQL入门篇(三)之my.cnf配置文件详解【转】
  7. [转]关于PreparedStatement.addBatch()方法
  8. 【Unity3d】WWW类发起web连接
  9. 【java请求】- jmeter_jdbc脚本实战
  10. 杂谈微服务架构下SSO&OpenAPI访问的方案。