漫谈 IP 协议

摘要:
IP数据报格式IP地址分类IPV4简单粗暴地把IP地址分为五类。这些IP地址分配给注册并向InterNIC提出申请的组织机构。私有IP的出现是为了解决公有IP地址不够用的情况。如果私有IP地址想要连至Internet,需要将私有地址转换为公有地址。因此,IP地址还支持VLSM技术,可以在ABC类网络的基础上,进一步划分子网。IP地址网络部分对应的掩码部分全为“1”,主机部分对应的掩码全为“0”。

IP数据报格式

漫谈 IP 协议第1张

IP地址分类

IPV4简单粗暴地把IP地址分为五类。分类方法如下图:

漫谈 IP 协议第2张

漫谈 IP 协议第3张

之所以要划分IP地址,目的是为区分不同的组织机构——A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。对于使用者本身,使用的是A/B/C哪一类,倒没有区别。

A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。

漫谈 IP 协议第4张

特殊用途的IP

将这些特殊的IP地址分为三类,特殊源地址、环回地址以及广播地址。如下表所示:

网络号

子网号

主机号

描述

特殊源

全0

全0

网络上所有主机

HostID

网络上特定的主机

环回

127

任何值

环回

广播

全1

全1

受限的广播地址(永远不被转发)

NetID

以网络的目的向NetID广播

SubNetID

以子网为目的向SubNetID广播

全1

以所有子网为目的向所有子网广播

私有IP地址

与私有IP地址对应的是公有地址(Public address),由Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。

私有IP的出现是为了解决公有IP地址不够用的情况。从A、B、C三类IP地址中拿出一部分作为私有IP地址,这些IP地址不能被路由到Internet骨干网上,Internet路由器也将丢弃该私有地址。如果私有IP地址想要连至Internet,需要将私有地址转换为公有地址。这个转换过程称为网络地址转换(Network Address Translation,NAT),通常使用路由器来执行NAT转换。

私有IP地址的范围如下:

  • A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
  • B: 172.16.0.0~172.31.255.255 即172.16.0.0/12
  • C: 192.168.0.0~192.168.255.255 即192.168.0.0/16

子网划分

IP地址如果只使用ABCDE类来划分,会造成大量的浪费:一个有500台主机的网络,无法使用C类地址。但如果使用一个B类地址,6万多个主机地址只有500个被使用,造成IP地址的大量浪费。因此,IP地址还支持VLSM技术,可以在ABC类网络的基础上,进一步划分子网。

漫谈 IP 协议第5张

掩码

为了标识IP地址的网络部分和主机部分,要和地址掩码(Address Mask)结合,掩码跟IP地址一样也是32 bits,用点分十进制表示。IP地址网络部分对应的掩码部分全为“1”,主机部分对应的掩码全为“0”。

缺省状态下,如果没有进行子网划分,A类网络的子网掩码为255.0.0.0,B类网络的子网掩码为255.255.0.0,C类网络的子网掩码为255.255.255.0。利用子网,网络地址的使用会更加高效

于是,IP地址的标识方法如下:

例:192.168.1.1 255.255.255.0 可以标识为:192.168.1.1/24(24表示掩码二进制形式中“1”的个数)

IP路由过程

如果发送方和接收方在直接点对点连接或者在一个共享网络上,那么IP数据报则可以直接送达。但多数情况下,两台主机互联,需要通过多台路由器,需要路由转发送达消息。这个路由的过程是怎样的呢?这里有个重要的角色——路由表。路由表是一张存储在内存中的记录路由信息的表,定义着到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。路由表中保存的信息,则用来指导消息从发送方到达接受方的网络路由路径。

漫谈 IP 协议第6张

有了路由表,网络路径的确认过程则如下所示:

漫谈 IP 协议第7张

接收到数据报的路由器按照它自己的理由表进行继续转发,直到到达目的地址。而除了在路由寻址过程中失败会导致丢弃数据报之外,IP数据报的TTL(生命周期)被减为0,则该IP数据报也会被丢弃。

免责声明:文章转载自《漫谈 IP 协议》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别Oracle子查询相关内容(包含TOP-N查询和分页查询)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

单点登录理解

1、当访问client1的时候,spring security会设置一个cookie,该cookie将作为全部应用系统和认证系统保持会话的关键(未认证的应用必须携带该cookie才能实现单点登录的效果)。 2、 认证服务器会重定向到/login地址后,认证服务器确认上一步骤的的coolie(JSESSIONID)是否有效,有效则再次重定向到code模式,...

udp用户数据报协议

  UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。   UDP协议全称是用户数据报协...

Android Native Hook技术(一)

原理分析 ADBI是一个著名的安卓平台hook框架,基于 动态库注入 与 inline hook 技术实现。该框架主要由2个模块构成:1)hijack负责将so注入到目标进程空间,2)libbase是注入的so本身,提供了inline hook能力。 源码目录中的example则是一个使用ADBI进行hook epoll_wait的示例。 hijack h...

Linux| |对于UDP的学习

# 前序 UDP(用户数据报协议)没有连接的,是面向数据报的,是不可靠 # 套接字就是IP地址+端口号 IP地址:4字节 端口号:2字节,也就是说范围是0~65536 端口号分为 知名端口号 0--1023:http,ssh,ftp,telnet等一些协议端口号都是固定的,对于操作系统来说是不能对其进行分配的 一些固定的端口号 ssh服务器,使用22端口...

微信官方开源UI库-WeUI

概述 WeUI是一套同微信原生视觉体验一致的基础样式库,为微信Web开发量身设计,可以令用户的使用感知更加统一。包含button、cell、dialog、toast、article、icon等各式元素。 这有什么好处呢?其实从上面也可以看到官方的话,就是让你的应用跟微信官方版本更加统一,而没有违和感。当然,更重要的是,这样的库在某些时候可以提供你的开发效率...

Python 网络通信协议(互联网协议)

一. 操作系统基础 操作系统(Operatin System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 计算机组成: 硬件-->操作系统(OS)-->应用软件 二. 网络通信原理(参考文档) 2.1 互联网的本质就是一系列网络协议(1)概述当...