网络协议——IP「建议收藏」

网络协议——IP

大家好,又见面了,我是全栈君。

IPv4地址

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

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

IPv4使用一个32位二进制地址,所以理论上可供使用的IPv4地址一共由4 294 967 296个,即

232
。为了便于管理和寻址(路由),一个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。则支持的子网个数为

2M
,每一个子网所支持的主机个数为

2NM

可变长度子网掩码

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

无分类域间路由

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116656.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • sit、qas、dev、pet「建议收藏」

    sit、qas、dev、pet「建议收藏」SIT:SystemIntegrateTest系统整合测试QAS:QualityAssurancesystem质量保证DEV:Development开发PET:PerformanceEvaluationTest性能测试

  • wireshark中抓取ICMP报文「建议收藏」

    wireshark中抓取ICMP报文「建议收藏」为了更有效地转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP(InternetControlMessageProtocol)[RFC792]。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文…

  • 开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)

    开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)QtCreator环境:使用QtCreator作为LinuxIDE,代替Vim:实现两台Linux电脑远程部署和调试(一台电脑有桌面系统,一台电脑无桌面系统)使用QtCreator作为LinuxIDE,实现CMake编译和单步调试在QtCreator中使用make构建,运行,调试通用C/C++项目使用QtCreator作为LinuxIDE,实现Nginx和Redis…

  • python语言介绍

    python语言介绍Python是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。发展历程自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。Python的创始人为GuidovanRossum。1989年圣诞节…

  • 阿里短信服务集成_阿里短信发送平台

    阿里短信服务集成_阿里短信发送平台阿里短信集成,配置流程,代码实现

    2022年10月26日
  • NR 5G SSB介绍

    NR 5G SSB介绍SSB概念SSB包含了PSS,SSS,PBCH同步信号和PBCH块(SynchronizationSignalandPBCHblock,简称SSB),它由主同步信号(PrimarySynchronizationSignals,简称PSS)、辅同步信号(SecondarySynchronizationSignals,简称SSS)、PBCH三部分共同组成。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号