网络协议——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,中间没有任何的间断。

分类法的特点就是能够很容易并且很快速地确定任意一个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)时使用的。在没有DHCP服务器的网络环境下,各个主机可以使用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,每个子网所支持的主机个数为2N−M。

可变长度子网掩码

可变长度子网掩码指的是我们在选择子网ID位数的时候,并不需要使所有划分出来的子网都具有相同位数的子网ID,而是可以根据需要,对不同的子网指定不同位数的子网ID。

无分类域间路由

CIDR就是应用VLSM的方法,把一个IPv4地址划分为网络ID和主机ID两部分,其中网络ID的位数可以根据网络的规模来灵活配置。
在CIDR中使用CIDR标记法来表示网络ID的位数,即在一个IPv4地址后先加一斜线(/),然后在斜线后面加上一个数字,该数字就是网络ID的位数,如192.168.1.123/24,这个地址的前24为是网络ID,后面8位是主机ID。

时间: 2024-09-03 11:42:52

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

常用的网络协议有哪些

常用的网络协议有哪些 ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算机的物理地址和临时指定的网络地址.启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了. SNMP(Simple Network Management P)网络管理协议 它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提

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

前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解,加深印象. 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电脑之间进行通讯所共同遵守的规则,就是网络协议. 那么

Java编程那些事儿107——网络协议概念

13.2.5 网络协议 对于需要从事网络编程的程序员来说,网络协议是一个需要深刻理解的概念.那么什么是网络协议呢? 网络协议是指对于网络中传输的数据格式的规定.对于网络编程初学者来说,没有必要深入了解TCP/IP协议簇,所以对于初学者来说去读大部头的<TCP/IP协议>也不是一件很合适的事情,因为深入了解TCP/IP协议是网络编程提高阶段,也是深入网络编程底层时才需要做的事情. 对于一般的网络编程来说,更多的是关心网络上传输的逻辑数据内容,也就是更多的是应用层上的网络协议,所以后续的内容均以实

SQL Server 2005使用的网络协议

  在客户端计算机连接到数据库引擎之前,服务器必须在侦听启用的网络库,并且要求启用服务器网络协议.使用SQL Server配置管理器可以进行以下的设置. 启用SQL Server实例要侦听的服务器协议. 禁用不再需要的服务器协议. 指定或更改每个数据库引擎.将侦听的IP地址.TCP/IP端口和命名管道等. 为所有已启用的服务器协议启用安全套接字层加密. 若要连接到SQL Server 2005数据库引擎,必须启用网络协议.SQL Server 2005数据库可一次通过多种协议为请求服务.客户端用

网吧网络协议故障的排除方法

  有时候网络协议会发生各种问题,很多网管在面对问题时无从下手.本篇说说网吧网络协议故障的排除方法. 一.网吧网络协议故障的表现 协议故障通常表现为以下几种情况: 1.网吧电脑无法登录到服务器; 2.电脑在"网上邻居"中即看不到自己,也看不到其他计算机,或者找不到其他计算机; 3.电脑在"网上邻居"中能看到自己和其他成员,但无法访问其他计算机上的资源(如拷贝); 4.电脑在"网上邻居"中既看不到自己,也无法在网络中访问其他计算机上的资源. 5.电

了解网络应用与网络协议

  网络应用(network application)是计算机网络之所以存在的理由.要是我们设想不出任何有用的网络应用,那就没有必要设计支持它们的网络协议了.不过,过去30年内已有不少人设计出大量精妙的网络应用.这些应用既包括从20世纪80年代流行起来的基于文本的经典应用,例如远程计算机访问.电子邮件.文件传送.新闻组.聊天等;也包括近些年来所谓的多媒体应用,例如Web.因特网电话.视频会议.音频/视频点播等. 尽管网络应用品种繁多是有许多彼此交错的部件,其软件却几乎总处于核心地位.网络应用的软

使用WinPcap抓包分析网络协议

创建一个使用wpcap.dll的应用程序 用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤: 在每一个使用了库的源程序中,将 pcap.h头文件包含(include)进来. 如果你在程序中使用了WinPcap中提供给Win32平台的特有的函数, 记得在预处理中加入WPCAP的定义. (工程->设置->c/c++->预处理程序定义      中添加WPCAP) 如果你的程序使用了WinPcap的远程捕获功能,那么在预处理定义中加入H

普通无线路由器使用的网络协议是什么

问题描述 普通无线路由器使用的网络协议是什么 无线路由器的工作原理是什么,内部的协议是什么?最好是详细一点的,多谢 解决方案 无线路由器本身不但是个路由器,实际上它是路由器+交换机+dhcp服务器+web服务器(用于管理)+防火墙+...的组合,它内部甚至运行着一个完整的操作系统. 所以除了无线协议(IEEE802.11n)以外,还有各种协议,tcp/ip dhcp snmp smtp ipx http ftp icmp ... 解决方案二: 带有Wi-Fi功能的路由器 支持无线协议,路由协议

博客专题计划:《在实践中深入理解常见网络协议》

为什么要写这个系列的技术博文:         距离学习CCIE的课程已经有近一年的时间,虽然这一年来已经丢下了挺多关于路由交换技术的知识,不过随着这一年时间以来通过对Linux和Python的学习研究和学校相关课程的学习,对于TCP/IP的理解是越来越清晰,至少可以慢慢形成自己的想法,于是想借此机会,整理一下过去的思绪,撰写<在实践中深入理解常见网络协议>的博客专题.         写博客已有近一年的时间,慢慢地也形成了自己写博文的一种风格,有一大部分也获得了许多网友的肯定,包括51cto