IPv4地址

不论什么网络设备能够经过一个网络接口卡(NIC)接入网,假定该设备要能够访问的其它设备,然后该卡必须有一个唯一的地址。候接入多个网络,相应地该设备就有多个地址。假设这个设备是主机的话。一般被称为multihomed主机。

路由器一般有多个网卡并接入多个网络,所以路由器也有多个地址,可是一般不把路由器称为multihomed主机。

IPv4使用一个32位二进制地址,所以理论上可供使用的IPv4地址一共由4 294 967 296个,即2322^{32}。为了便于管理和寻址(路由),一个IPv4地址的32位被划分为两部分:网络ID和主机ID。

从左边開始的、连续的若干个二进制位作为网络ID,用于标识设备所在的网络;剩余的二进制位作为主机ID,用于标识在网络中的设备。

眼下有三种划分方法:分类法、子网化和CIDR。

分类法

基本划分

分类法是最早的、也是最简单的一种划分方法。它把IPv4地址固定地分为五类:A、B、C、D和E。

A类把前8位划分为网络ID。但第1位必须是0;

B类把前16位划分为网络ID,但前2位必须是10;

C类把前24位划分为网络ID。但前3位必须是110。

D类用于组播,但前4为必须是1110;

E类作为预留地址,可是前4位必须是1111。

分类法的五类地址取值范围:

类 取指范围
A 0.0.0.0~127.255.255.255
B 128.0.0.0~191.255.255.255
C 192.0.0.0~223.255.255.255
D 224.0.0.0~239.255.255.255
E 240.0.0.0~255.255.255.255

从表中能够看出,从A到E的取指范围是连续的。即从A类的第一个地址0.0.0.0開始到E类的最后一个地址255.255.255.255。中间没有不论什么的间断。

分类法的特点就是能够非常easy而且非常高速地确定随意一个IPv4地址的分类。由于最多仅仅须要检查其开头4位就能确定下来了。

特殊地址

  • 网络地址

    当一个IP地址中的主机ID的二进制位全为0时,该地址用来表示其网络ID所表示的网络。如192.168.1.0就表示网络ID为192.168.1的这个网络。

  • 广播地址

    当一个IP地址中的主机ID的二进制位全为1时,该地址用来表示其网络ID所表示的网络的广播地址。如192.168.1.255。这是一个C类地址,其用于表示网络ID为192.168.1.0这个网络的广播地址。

  • 当前网络的主机地址

    当一个IPv4地址中的网络ID的二进制位全为0时,该地址用来表示在当前网络、其主机ID所表示的主机。如0.0.0.123这个地址。表示的就是当前网络的主机ID为123的主机。

  • 通配地址0.0.0.0

    用来表示本机的随意一个IP地址。

    在winsock2.h头文件中面,INADDR_ANY就定义为0x00000000,即0.0.0.0。

  • 环回地址

    在A类地址中,从127.0.0.0~127.255.255.255的全部地址被称为环回地址。顾名思义,环回就是自己发给自己,即全部发送到该地址范围的数据都是发送被本机。

    一般来说,我们都使用127.0.0.1作为环回地址。而且其名字一般叫做localhost。在winsock2.h头文件中面。INADDR_LOOPBACK被定义为0x7f000001,即127.0.0.1。

  • 私有地址

    不被公网所认可的特殊的IP地址。

    • 10.0.0.0~10.255.255.255(A类)
    • 172.16.0.0~172.31.255.255(B类)
    • 192.168.0.0~192.168.255.255(C类)

      除此之外,另一个地址范围169.251.0.0~169.254.255.255,是在主机自己主动私有地址分配(APIPA)时使用的。在没有DHCPserver的网络环境下,各个主机能够使用APIPA来自己主动分给地址,使得它们之间仍然能够通信。
  • 保留地址

    • 0.0.0.0~0.255.255.255
    • 128.0.0.0~128.0.255.255
    • 191.255.0.0~191.255.255.255
    • 192.0.0.0~192.0.0.255
    • 223.255.255.0~223.255.255.255

      0.0.0.0虽然是通配地址,但事实上它也是一个保留地址。虽然我们能够在程序里面使用它,可是不能把它作为IP地址来分配给一台主机。

分类法的优缺点

长处:地址本身包括了类别信息,并不须要额外的信息来确定一个地址的网络ID和主机ID。

缺点:没有考虑到一个机构里面可能存在多个子网络的问题。

子网化

在原有三类网络A、B和C的基础上。对其进行再划分,细分出能够石瑛各种网络规模的子网(Subnet)。

详细的说。就是在A、B和C类地址的基础上,对其主机ID部分再划分。即使用主机ID的前若干位作为子网ID。剩余的位作为在该子网里的主机ID。

子网掩码

子网掩码把其相应于IPv4地址中网络ID和子网ID的部分全部位设为1,其余设为0。

目的是当把IPv4地址和子网掩码进行与操作时,其结果就是该IPv4地址的完整网络地址。

能够依据网络的须要来设置子网ID的位数。

子网ID的位数越多,则支持的子网个数就越多,同一时候每一个子网可容纳的主机个数就越少。详细的说,假定原来在分类法的方案下,主机ID位数为N(24、16、8,分别相应于A、B、C类),假设我们选择前M(M>=0 && M<N)位作为子网ID。则支持的子网个数为2M2^M,每一个子网所支持的主机个数为2N−M2^{N-M}。

可变长度子网掩码

可变长度子网掩码指的是我们在选择子网ID位数的时候。并不须要使全部划分出来的子网都具有同样位数的子网ID,而是能够依据须要,对不同的子网指定不同位数的子网ID。

无分类域间路由

CIDR就是应用VLSM的方法,把一个IPv4地址划分为网络ID和主机ID两部分,当中网络ID的位数能够依据网络的规模来灵活配置。

在CIDR中使用CIDR标记法来表示网络ID的位数。即在一个IPv4地址后先加一斜线(/)。然后在斜线后面加上一个数字,该数字就是网络ID的位数,如192.168.1.123/24,这个地址的前24为是网络ID,后面8位是主机ID。

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

网络协议——IP的更多相关文章

  1. 【RL-TCPnet网络教程】第22章 RL-TCPnet之网络协议IP

    第22章      RL-TCPnet之网络协议IP 本章节为大家讲解IP(Internet Protocol,网络协议),通过前面章节对TCP和UDP的学习,需要大家对IP也有个基础的认识. (本章 ...

  2. 对TCP/IP网络协议的深入浅出归纳

    前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...

  3. iOS网络协议 HTTP/TCP/IP浅析

    一.TCP/IP协议       话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...

  4. 转:对TCP/IP网络协议的深入浅出归纳

    转自:http://blog.jobbole.com/74795/ 前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没 ...

  5. 对TCP/IP网络协议的深入浅出归纳(转)

    前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...

  6. TCP/IP网络协议基础知识集锦[转]

    引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...

  7. 网络协议笔记-网络层-路由器的作用、IP地址

    1-[路由器在网际互连中的作用] 1.1-[直接交付和间接交付] 直接交付:当主机A要向另一个主机B发送数据报时,要先检查目的主机B是否与源主机连接在同一个网络上.如果是,就将数据报直接交付给目的主机 ...

  8. 网络协议 2 - IP 是怎么来,又是怎么没的?

    了解完网络协议,我们会发现,网络通信的五层模型里,有两个很重要的概念:IP 地址和 MAC 地址. 那么 IP 地址是怎么来的,又是怎么没的?MAC 地址与 IP 地址又有什么区别? 这回答上面问题前 ...

  9. 网络协议TCP/IP、IPX/SPX、NETBEUI简介

    网络中不同的工作站,服务器之间能传输数据,源于协议的存在.随着网络的发展,不同的开发商开发了不同的通信方式.为了使通信成功可靠,网络中的所有主机都必须使用同一语言,不能带有方言.因而必须开发严格的标准 ...

随机推荐

  1. Webbrowser加载Flash后方向键失效问题(用到了OLE接口,没有被处理就转发,够复杂的)

    原文:http://blog.csdn.net/dropme/article/details/6253528 窗体上放一个ApplicationEvent控件,OnMessage事件中这么写 uses ...

  2. CocoaPods的install和update卡在“Anylyzing dependencies”的问题解决方式[效率]

    问题 最新CocoaPod更新慢得问题,不管是运行pod install还是podupdate都卡在Anylyzing dependencies. 解决方式 事实上原因是运行两个命令时都会升级Coco ...

  3. callback用法简介

    源地址:https://argcv.com/articles/2669.c callback,函数的回调,从ANSI C开始,一直被广为使用.无论是windows API的所谓消息机制,动态链接库的调 ...

  4. android: WheelView组件(滑轮组件)的应用!

    android前段组件中, 填表单,选择条目 的样式有很多, WheelView滚动组件为其中一种,如下图所示:                                          前两 ...

  5. 使用CocoaPods出现 The `master` repo requires CocoaPods 0.32.1 - 问题解决

    近期在使用CocoaPods为project配置第三方类库时出现了例如以下问题: [!] The `master` repo requires CocoaPods 0.32.1 - 明显是由于Coco ...

  6. How to write simple HTTP proxy with Boost.Asio

    How to write simple HTTP proxy with Boost.Asio How to write simple HTTP proxy with Boost.Asio Russia ...

  7. 数据结构《17》---- 自己主动补齐之《二》----Ternary Search Tree

    一. 序言 上一篇文章中,给出了 trie 树的一个实现. 能够看到,trie 树有一个巨大的弊病,内存占用过大. 本文给出还有一种数据结构来解决上述问题---- Ternary Search Tre ...

  8. MATLAB——scatter的简单应用

    scatter可用于描绘散点图. 1.scatter(X,Y) X和Y是数据向量,以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈. 样例: X = [1:10];  Y = X ...

  9. Spark简述及基本架构

    Spark简述 Spark发源于美国加州大学伯克利分校AMPLab的集群计算平台.它立足 于内存计算.从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式. 特点: 1.轻 Spark ...

  10. (ZT)LoadRunner9.0成功破解方法

    LoadRunner9.0软件下载地址: http://www.3atesting.com/filedown/LR9Download.exe 破解所需文件 http://download.csdn.n ...