Internet地址结构

IP地址结构及分类寻址

IP地址 = <网络号> + <主机号>           

------------IPv4(32bit)点分四组表示法: 192.168.31.133

------------IPv4(32bit)二进制表示法:  11000000  11001000  00011111  10000101

在最初定义定义Internet地址结构时, 每一个单播IP地址都有一个网络部分用于识别接口使用的IP地址在哪个网络中能够被发现;另外一个就是主机部分用于确定该网络中的特定主机。

大多数主机只有一个网络接口,因此术语中接口地址和主机地址缺省都是正确的。

  IPv4地址空间划分

最初("分类")的IPv4地址空间划分
地址范围 高位前缀(子网掩码) 网络数量 主机数量 百分占比
A 0.0.0.0 ~ 127.255.255.255 0  (255.0.0.0) 2^7) 2^24 1/2
B 128.0.0.0 ~ 191.255.255.255 10  (255.255.0.0) 2^14 2^16 1/4
C 192.0.0.0 ~ 223.255.255.255 110  (255.255.255.0) 2^21 2^8 1/8
D 224.0.0.0 ~ 239.255.255.255 1110  (N/A) N/A N/A 1/16
E 240.0.0.0 ~ 255.255.255.255 1111  (N/A) N/A N/A 1/16

  注意:上表部分数据是不严谨的,一般地址的首位地址和末位地址是不使用的

   高位前缀与UTF-8的首字节高位很类似(类如:ASCII:0xxxxxxx     常用中文字符:1110xxxx  10xxxxxx 10xxxxxx)

   D、E类IP地址组成不区分网络号和主机号,所以没有子网掩码一说

   D类地址是一种组播地址,主要是留给Internet体系结构委员会IAB(Internet Architecture Board)使用 ;

   E类地址:网络地址的最高位必须为“11110”,第一个八位位组值的范围从240-255。可用的地址范围从240.0.0.0 到240.255.255.254,为将来使用保留。

子网寻址

Internet早起发展遇到一个问题,那就是很难为接入Internet的新网段分配一个新网络号。后来随着局域网技术的发张,这个问题变得更棘手。人们就自然想到接入网络后便为其分配一个网络号,然后由站点管理员进一步划分本地子网数。

通过子网寻址,一个站点被分配一个A类、B类或C类的网络号,保留一些剩余主机号继续进行站点内分配。从本质上讲,子网寻址为IP地址结构增加了一个额外部分,但他没有为地址增加长度。因此一个站点管理员能够在子网数和每个子网中预期的主机数之间折中,同时不需要其他站点协调

 

下面来以一个B类地址来作子网寻址的例子:

   上图是一个B类地址被划分子网的例子,假设Internet中的一个站点已被分配一个B类网络号(IP地址与255.255.0.0逐位相与得到),该站点的前16bit固定,这是由于这些位已被分配给核心机构。后16位(仅用于在无子网的B类网络中创建主机号)现在可以由站点网络管理员按需分配。在这个例子中,7位被选为子网号,剩下9位为主机号。这一特殊分配可以使得该站点支持2^7个子网, 每一个子网包含(2^9-2)台主机。注意,只有划分子网的网络中的主机和路由器知道子网结构。

     

   注意:上图中站点内子网掩码为255.255.255.0

    某一个站点被分配一个典型B类网络号128.32。网络管理员决定用于站点范围内的子网掩码为255.255.255.0, 由于B类地址固定掩码为255.255.0.0,则该站点能够支配的子网ID的位数为8位,即能够分配256个子网。每一个子网能够容纳254台主机地址。图中左侧局域网段内主机的IPv4地址开始于128.32.1, 右侧局域网段内的IPv4开始于128.32.2。

   该虚拟站点使用了一个边界路由器连接Internet和两个局域网。该站点与Internet的数据交互通过一个边界路由器连接。

原文地址:https://www.cnblogs.com/kisun168/p/11520466.html

时间: 2024-11-23 12:04:02

Internet地址结构的相关文章

《TCP/IP协议详解 卷1》 第二章 Internet 地址结构

Internet 地址结构 连接到Internet的每个设备至少要有一个IP地址.基于TCP/IP协议的专用网络中使用的设备也需要IP地址. 表示IP地址 IPv4地址: 32bit 采用点分四组或者点分十进制表示.例如165.195.130.105 IPv6地址: 128bit 采用块或字段的四个十六位进制数表示.例如5f05:2000:80ad:5800:0058:0800:2023:1d71 该表示方法有以下共识: 块前导0必须省略,如上面的地址可以写成5f05:2000:80ad:580

Linux中ip地址结构和ip地址的转换

ip地址结构 struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET */ in_port_t sin_port; /* port in network byte order */ struct in_addr sin_addr; /* internet address */ }; /* Internet address. */ struct in_addr { uint32_t s_addr; /* add

Internet地址简介

连接到Internet的设备称为节点(node).计算机节点称为主机(host).每个节点或主机都由至少一个唯一的数来标识,这称为Internet地址或IP地址.目前大多数IP地址是四字节长,这被称作IPv4地址.不过,一小部分IP地址是16字节长(而且这种地址的数量正在增加),这被称作IPv6地址(4和6指Internet协议的版本,不是地址中的字节数).IPv4和IPv6地址都是字节的有序序列,和数组一样.它们不是数,它们的顺序也不具有任何可预测或有用的意义. IPv4地址一般写为四个无符号

【Linux 网络编程】网络IP地址结构体

(1)IPv4套接口地址结构通常也称为"网际套接字地址结构",它以"sockaddr_in"命名,        定义在<netinet/in.h>        struct sockaddr_in{            uint8_t sin_len; //整个sockaddr_in结构体的长度            sa_family sin_family; //指定该地址家族,在这里必须设置为AF_INET            in_port

套接字地址结构

大多数套接字函数都需要一个指向套接字地址结构的指针作为参数.每个协议簇抵都定义它自己的套接字地址结构 这些结构的名字均以sockaddr_开头,并以对应每个协议簇的唯一后缀结尾 1.IPv4套接字地址结构 IPv4套接字地址结构通常称为:网际套接字地址结构 它以sockaddr_in命名 struct  in_addr{ in_addr_t s_addr;//32位无符号整数类型 }; struct sockaddr_in{ unit8_t sin_len;//套接字地址结构长度 它是一个无符号

【UNIX网络编程(一)】套接字地址结构、网络字节序和地址转换函数

引言:套接字地址结构在网络编程的每个实现中都要用到,因此掌握套接字地址结构是以后编写网络程序的前提,地址结构可以在两个方向上传递:从进程到内核和从内核到进程.地址转换函数在地址的文本表达和他们存放在套接字地址结构中的二进制值之间进行转换. 大多数套接字函数都需要一个指向套接字地址结构的指针作为参数.不同协议都有自己的套接字地址结构.通用的套接字地址结构是sockaddr.IPv4套接字地址结构是定义在头文件<netinet/in.h>中的sockaddr_in,其POSIX定义如下: stru

新的通用套接字地址结构

作为IPv6套接字API的一部分而定义的新的套接字地址结构克服来现有struct sockaddr的一些缺点 不像struct sockaddr,新的struct sockaddr_storage足以容纳系统所支持的任何套接字地址结构 struct sockaddr_storage{ uni8_t ss_len; sa_family_t sa_family; }; sockaddr_storage类型提供的通用套接字地址结构相比sockaddr存在以下2点差别: 1)如果系统支持的任何套接字地址

关于SOCKET地址结构的地址转换

SOCKET地址结构的结构体是sockaddr_in,其中的sin_addr是关于SOCKET的地址的,sin_addr的子结构s_addr是IP地址有关的,是一个字,即0x123AAAAA类似的形式的变量.用inet_addr("192.168.1.1")的方式可以将IP地址转化为该形式.IP地址是4个字节组成的,即4个0-255的数字组成的,存储的时候逆序储存.用inet_ntoa()可以将一个0x123AAAAA形式的变量转为一个数组,其前4位是IP地址的各个位数,该函数的返回值

套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构

IPv4套接字地址结构通常也称为"网际套接字地址结构",它以sockaddr_in命名,定义在<netinet/in.h>头文件中. struct in_addr { in_addr_t s_addr;/*32-bit IPv4 address*/ /*network byte ordered*/ }; struct sockaddr_in { uint8_t sin_len;/*length if structure(16)*/ sa_family_t sin_famil