IP地址的分类

整个的因特网就是一个单一的、抽象的网络。IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32位的标识符。

所谓分类的IP地址,就是将IP地址划分为若干固定类,每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,一个网络号在整个因特网范围内必须是唯一的。而另一个字段则是主机号 host-id,它标志该主机(或路由器),一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个因特网范围内是唯一的。

由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。

用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号。

路由器只根据目的站的IP 地址的网络号进行路由选择。

两级的 IP 地址可以记为:

IP 地址 ::= { , }

上图中的A类、B类、C类地址都是单播地址(一对一通信),是最常用的。

网络号字段的最前面有1-4位的类别位,A类、B类、C类地址的类别位分别为0、10、110。

为了提高可读性,我们常常把32位的IP地址中的每8位用其等效的十进制数字表示。

A类地址的网络号字段占一个字节,只有7位可供使用(第一位已固定为0),但是可指派的网络号是126个(27-2),减2的原因:第一,IP地址中全为0的地址是个保留地址,表示“本网络”;第二,网络号为127(01111111)保留作为本地软件环回测试本主机的进程间的通信。

A类地址的主机号占3字节,因此每一个A类网络中的最大主机数是224-2。减2的原因:第一,全为0的主机号字段表示该IP地址是本主机所连接到的单个网络地址,第二,全为1的主机号字段表示该网络上的所有主机。

B类地址的网络号字段有2字节,但是前两位已经固定为10,只剩下14位可以进行分配,因为前面两位是10,不会出现全为0或全为1的网络号,但实际上,B类网络地址128.0.0.0是不指派的。所以最大网络数为214-1。最大主机数为216-2。

C类地址有3字节的网络号字段,前三位固定位110,还有21位可以进行分配。但实际上192.0.0.0是不指派的,因此C类地址可指派的网络总数为221-1,最大主机数为28-2。

IP地址与硬件地址

硬件地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。

发送数据时,数据从高层下到地层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成了MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部。

连接在通信链路上的设备在接受MAC帧时,其根据是MAC帧首部中的硬件地址。在数据链路层看不见隐藏在MAC帧的数据中的IP地址。只有在剥去了MAC帧的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址。

划分子网

一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet)。划分子网纯属一个单位内部的事情。单位对外仍然表现为一个网络。

划分子网的方法是从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机好。

IP地址 ::= {, , }

凡是从其他网络发送给本单位某个主机的 IP数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。最后就将 IP 数据报直接交付目的主机。

下面通过一个例子来展示划分子网的方法与效果。

下图表示某单位拥有一个B类IP地址,网络地址是145.13.0.0(网络号是145.13)。

现把上图中的网络划分为三个子网,这里假定子网号占用8位,因此主机号只剩8位。所划分的子网分别是:145.13.3.0、145.13.7.0、145.13.21.0。

划分子网后,整个网络对外仍表现为一个网络,其网络地址仍为145.13.0.0,但是路由器R1在收到外来的数据报后,再根据数据报的目的地址把它转发到相应的子网。

假定有一个数据报的目的地址是145.13.3.10已经到达路由器R1,那么这个路由器如何把它转发到子网145.13.3.0呢?这就需要借助子网掩码(subnetmask)来实现了。

路由器会把子网掩码和收到的数据报地址的目的IP地址145.13.3.10进行按位“与”操作,得出所要找的子网的网络地址。

子网掩码与IP地址进行“与”操作之后,就将主机号“过滤”掉了,只剩下了网络号与子网号。

实际上,因特网的标准规定:所有网络必须使用子网掩码。即便一个网络没有划分子网,也要使用默认子网掩码。默认子网掩码中1的位置和IP地址中的网络号字段正好相对应,因此,两者进行“与”操作后,就能得出该IP地址的网络地址。A类、B类、C类地址的默认子网掩码是固定的:

例,已知 IP 地址是141.14.72.24,子网掩码是 255.255.192.0。试求网络地址。

应当注意,划分子网后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。

在划分子网的情况下路由器转发分组的算法:

(1) 从收到的分组的首部提取目的IP 地址 D。

(2) 先用各网络的子网掩码和 D逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。

(3) 若路由表中有目的地址为 D的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。

(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。

(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。

(6) 报告转发分组出错。

计算机网络下一跳IP,计算机网络之IP地址相关推荐

  1. 计算机网络下一跳地址,计算机网络基础课程—IP路由

    一.IP路由 ·发送端的处理过程: · ·当主机A要和主机B进行通信时,首先判断主机B是否和它位于同一子网. ·方法:把两个主机的IP地址分别与它(主机A)的子网掩码进行"位与"操 ...

  2. Linux下ip route、ip rule、iptables的关系(转

    http://www.cnblogs.com/sammyliu/p/4713562.html(本文内容转自此篇博客) Linux下ip route.ip rule.iptables的关系(转) 1.基 ...

  3. 【计算机网络】计算机三级计算机网络笔记记录

    下列关于RPR技术的描述中,错误的是() A.RPR与FDDI一样使用双环结构 B.在RPR环中,源节点向目的节点成功发出的数据帧要由目的节点从环中收回 C.RPR环中每一个节点都执行MPLS公平算法 ...

  4. IP数据包经由路由转发的时候,源ip和目的IP是否改变

    IP数据包经由路由转发的时候源IP,目的ip是否改变? 这是个搞网络的基础问题,答案是不能改变的,除非做了nat转换才能改变.否则,数据包在整个传输过程中,源IP和目的IP不会发生改变. 不过MAC地 ...

  5. ip数据包经由路由转发的时候源ip,目的ip是否改变

    ip数据包经由路由转发的时候源ip,目的ip是否改变? 最近面试网络方面的经常问到这个问题,答案是不能改变的,*除非做了nat转换才能改变. 不过mac地址是变化的,因为发送端开始不知道目的主机的ma ...

  6. 计算机网络网际协议实验报告,计算机网络课程网际协议IP地址实验报告.doc

    重庆师范大学 课程名称:计算机网络 实验题目:网际协议IP 姓 名: 专 业: 学 院: 指导老师: 时 实验三 网际协议IP 实验目的: 掌握IP数据报的报文格式 掌握IP检验和计算方法 掌握子网掩 ...

  7. 路由器下一跳地址怎么判断_计算机考研复试面试常问问题 计算机网络篇(下)...

    计算机考研复试面试常问问题 计算机网络篇(下) 在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更 ...

  8. 计算机网络之——非常恶心但友善ip地址、子网掩码、网络地址、构造超网、最小地址和最大地址(理解篇)

    前段时间在写python游戏有段时间没有更了,这就来报道~~ 在刚学习计算机网络的朋友,应该对ip地址和子网掩码会有困惑,感觉这两个东西就两个字--恶心 这就为大家理解一下 ip地址我相信大家其实都大 ...

  9. 配置静态路由下一跳为本地出战接口和IP地址的区别

    配置静态路由下一跳为本地出战接口和IP地址的区别 在配置静态路由时,下一跳可以使用下一路由器的IP地址,也可以使用本路由器的出站接口.在点对点的网络中,两者可能没有什么差别,但在以太网中或者NBMA网 ...

  10. 【计算机网络】IP协议、IP地址、网段划分、子网划分、子网掩码、CIDR

    文章目录 前言 1. IP地址 1.1 网络号和主机号 1.1.1 如何区分网络号和主机号? 1.1.2 网络号有什么用? 1.1.3 未使用子网时的分组的转发(数据发送) 2. IP地址分类 3. ...

最新文章

  1. WebSocket 学习
  2. angularjs与server交互
  3. Scala中的Map使用例子
  4. android 练习之路 (三)
  5. static关键字-1
  6. 中判断字符串是否为空_自己动手编写VBA代码,判断一个工作表是否为空,然后删除它...
  7. iOS笔记(一)GCD多线程:信号量和条件锁
  8. windows 和 linux服务器环境下j2sdk 的安装和环境设置
  9. Httpx:针对HTTP的安全研究工具
  10. 遇到不适当的参数_高清兽用B超机参数调整——“增益”
  11. 山东大学软件学院2021算法导论期末试题
  12. android往mac投屏,安卓手机怎么投屏到Mac系统中?
  13. java font 字体大小_Java字体大小从宽度
  14. TypeError: list indices must be integers or slices, not float
  15. 如何判断channel是否已经关闭
  16. 陈世涛:鼠标滚轮引起的画面上下跳动问题处理 跳行怎么办?
  17. unrecognized selector sent to instance 0x7fbb51c7c490问题解决方法之一
  18. android 函数式编程,思想交融,Android中的函数式编程(2):什么是函数式编程...
  19. 10个提升PPT幻灯片制作效率的方法
  20. 北京公交计次IC卡利弊分析

热门文章

  1. Java仓储物流项目_基于jsp的物流仓库管理系统-JavaEE实现物流仓库管理系统 - java项目源码...
  2. Selenium 2自动化测试实战5(模块调用)
  3. Linux进程、线程、任务调度(1)贵在坚持
  4. 搭建elasticsearch可视化插件
  5. Spring 之bean的注入
  6. [BZOJ1528][POI2005]sam-Toy Cars(贪心)
  7. Openvswitch手册(7): Interfaces
  8. 遇到的JAVA笔试题
  9. HOWTO: 如何在InstallShield的MSI工程中调用Merge Module的Custom Action
  10. 给FCKeditor添加自定义按钮的方法