我是靠谱客的博主 甜美小伙,最近开发中收集的这篇文章主要介绍IP地址和MAC地址,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.MAC地址

       MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备管理器中或注册表等方式修改,同一网段内的MAC地址必须唯一)。MAC地址采用十六进制数表示,长度是6个字节(48位),分为前24位和后24位。

(1)前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。

(2)后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。

 

MAC地址分为三种:

    单播MAC地址:第一个字节的最低位是0的MAC地址;

    组播MAC地址:第一个字节的最低位是1的MAC地址;

    广播MAC地址:每个比特都是1的MAC地址(ff-ff-ff-ff-ff-ff)。

 

2.IP地址

       IP地址(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址。它为互联网上的每一个网络和每一台主机分配一个逻辑地址,常见的IP地址,分为IPv4与IPv6两大类,当前广泛应用的是IPv4,目前IPv4几乎耗尽,下一阶段必然会进行版本升级到IPv6。如无特别注明,一般我们讲的的IP地址所指的是IPv4。

 

       IP地址对应于OSI参考模型的第三层网络层,工作在网络层的路由器根据目标IP和源IP来判断是否属于同一网段,如果是不同网段,则转发数据包。

 

3.IPV4地址格式和表示

       IP地址(IPv4)由32位二进制数组成,分为4段(4个字节),每一段为8位二进制数(1个字节)每一段8位二进制,中间使用英文的标点符号“.”隔开。由于二进制数太长,为了便于记忆和识别,把每一段8位二进制数转成十进制,大小为0~255。IP地址的这种表示法叫做:点分十进制表示法。

 

4.IPV4报文格式

 

版本:该字段长度为4bit, 表示 IP报文的版本信息。 如果该字段的值为Ox4, 则表示该IP 报文是一个IPv4报文。 如果该字段的值为Ox6, 则表示该IP报文是一个IPv6报文。注意:IPv6报文的格式与IPv4报文的格式是完全不兼容的。

包头部格式:该字段长度为4bit, 用来表示 IP包的头部的长度。 由于IP包的头部中可能会包含一些长度不定的选项,所以IP包的头部的长度是不固定的(但必须是4 字节的整数倍)。

DS域:该字段长度为8bit, 在RFC 791 中的名称为ToS(Type of Service)域, 后来在RFC2474中被重新命名为DSCP(Differentiat ed Services Co de Point )。该字段的作用是表示报文在QoS(Quality of Service)中的服务等级, 用以区分报文的转发优先级。

总长度:该字段长度为16bit, 用来表示整个IP报文(Ip包的头部和IP包的载荷数据)的长度,一个IP报文的最大长度为:65536(2^16)个字节。

标识:该字段长度为16bit, 用千IP报文的分片和重组。

标志:该字段长度为3bit, 用千IP报文的分片和重组。

分段偏移:该字段长度为13bit, 用于IP报文的分片和重组。

存活时间:该字段长度为8bit, 也称为TTL(Time To Live)字段。当一个IP报文在一个Internet中运动时,每经过一台路由器,该TTL值就减1。如果该值减到0,该报文就会被设备直接丢弃

       如果没有 TTL 机制,那么当个Internet 中存在路由环路时, IP 报文就可能永不停止地在环路中循环运动,从而消耗大量的网络资源。 有了 TTL机制后,即使存在路由环路,IP报文的运动时间也只能是有限的。

协议:该字段长度为 8bit, 用来表示 IP 报文的载荷数据的类型。

      0x01:表示IP报文的载荷数据是一个ICMP报文;

      0x02:表示IP报文的载荷数据是一个IGMP报文;

      0x06:表示IP报文的载荷数据是一个TCP段;

      0x11:表示IP报文的载荷数据是一个UDP报文;

      0x59:表示IP报文的载荷数据是一个OSPF报文。

头部校验和:该字段长度为 16bit, 用来对 IP 报文的头部进行差错校验。 它的功能类似于以太网帧结构中的 FCS (Frame Checksum) 字段(也叫CRC字段)。

源IP地址:该字段长度为 32bit, 表示产生并发送该 IP 报文的设备接口的IP地址。

目的IP地址:该字段长度为32bit, 表示该IP报文的目的接口的IP地址。

选项/长度填充:该字段的长度是可变的。通过添加不同的选项,可以实现一些扩展功能。添加完选项后,如果报文的头部不是4的整数倍,则必须在填充一些0,以保证整个报文的头部长度刚好为4字节的整数倍。

 

5.IP地址进制间的转换

二进制:Bin    八进制:Oct    十进制:Dec    十六进制:Hex

 

(1)二进制转换为十进制:按权展开求和

二进制:11110000

转换为十进制:2**7*1 + 2**6*1 + 2**5*1 + 2**4*1 + 0 + 0 + 0 + 0

结果: 128 + 64 + 32 + 16 = 240

 

(2)十进制转换为二进制:相除取余(最高位在下,最低位在上)

 

(3)二进制转换为八进制:取三合一(从右往左,不足添0)

二进制:11110000

转换为八进制:011 110 000

2^1*1+2^0*1=3 2^2*1+2^1*1=6 0

结果: 360

 

(4)八进制转换为二进制:取一分三(从右往左,依次展开)

八进制:360

转换为二进制:3=2^1+2^0 6=2^2+2^1 0

011 110 000

结果:11110000

 

(5)二进制转换为十六进制:取四合一

二进制:11110000

取四: 1111 0000

对应的十进制: 16 0

对应的十六进制: F0

 

6.IP地址的分类

       IP地址分A、B、C、D、E五类,其中A、B、C这三类是比较常用的IP地址,D、E类为特殊地址。由网络位+主机位组成。

 

(1)A类地址

       A类地址第1字节为网络地址(最高位固定是0),另外3个字节为主机地址。范围:1.0.0.0 - 126.255.255.255,其中0和127作为特殊地址。默认子网掩码为255.0.0.0,也可写作/8。A类网络最大主机数量是

2^24-2=166777214(减去1个主机位为0的网络地址和1个广播地址)。

(2)B类地址

       B类地址第1字节(最高位固定是10)和第2字节为网络地址,另外2个字节为主机地址。范围:128.0.0.0 - 191.255.255.255。默认子网掩码为255.255.0.0,也可写作/16。B类网络最大主机数量2^16-2=65534。

(3)C类地址

       C类地址第1字节(最高位固定是110)、第2字节和第3个字节,另外1个字节为主机地址。范围:192.0.0.0 - 223.255.255.255。默认子网掩码为255.255.255.0,也可写作/24。C类网络最大主机数量2^8-2=254。

(4)D类地址

       D类地址不分网络地址和主机地址,它的第1个字节的最高位固定是1110。

D类地址用于组播(也称为多播)的地址,无子网掩码。D类地址范围:224.0.0.0 - 239.255.255.255。

(5)E类地址

       E类地址也不分网络地址和主机地址,它的第1个字节的最高位固定是11110。E类地址范围:240.0.0.0 - 255.255.255.255。其中240.0.0.0-255.255.255.254作为保留地址,主要用于Internet试验和开发,255.255.255.255作为广播地址。

 

7.公有IP地址和私有IP地址

(1)公有IP地址

       公有地址(Public address,也可称为公网地址)由Internet NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Internet NIC提出申请的组织机构。通过它直接访问因特网,它是广域网范畴内的

公有IP地址的范围:

A类的公有IP:

    1.0.0.0~9.255.255.255

    11.0.0.0~126.255.255.255

B类的公有IP:

    128.0.0.0~172.15.255.255

    172.32.0.0~191.255.255.255

C类的公有IP:

    192.0.0.0~192.168.255.255

    192.169.0.0~223.255.255.255

 

(2)私有IP地址

       私有地址(Private address,也可称为专网地址)属于非注册地址,专门为组织机构内部使用,它是局域网范畴内的,私有IP禁止出现在Internet中,在ISP连接用户的地方,将来自于私有IP的流量全部都会阻止并丢掉。

私有IP地址的范围:

A类私有IP地址:

    10.0.0.0~10.255.255.255

B类私有IP地址:

    172.16.0.0~172.31.255.255

C类私有IP地址:

    192.168.0.0~192.168.255.255

 

8.特殊IP地址

(1)网络地址:网络位不变,主机位全为0;

(2)子网广播地址:网络位不变,主机位全为1;

(3)默认路由(缺省路由):网络位和主机位全为0(0.0.0.0);

(4)全网广播地址:网络位和主机位全为1(255.255.255.255);

(5)环回地址:网络位为127,主机位任意(主要用于回环测试);

 

9.IPV6

(1)IPv4的局限性

从地址空间角度:IP地址空间的危机由来已久,并正是升级到IPv6的主要动力。

从技术实现角度:IPv4地址分配杂乱无章,没有层次性,网络设备需要维护庞大的路由表项。IPv4包头过于复杂,使得网络节点处理的效率不高,.NAT:破坏了Internet端到端的网络模型。

从配置难易角度:对于IPv4节点的配置比较复杂,让很多普通用户无所适从。

从安全角度:IPv4在网络层没有安全性可言,安全性一直被认为是由网络层以上的层负责。

 

(2)IPv6的优越性

从地址空间角度:超大的地址空间。

从技术实现角度:IPv6包头简单,通过扩展包头技术可实现以后的新技术扩展;全球可达性,不需要再用NAT;全球重新部署,有规划,易于实现聚合。

从配置难易角度:能自动配置,实现即插即用;方便的进行重编址。

 

(3)IPV6报文格式

 

 

(1)版本号:指明IP协议是哪个版本,IPv6为0110。

(2)流量等级:用来区分不同IPv6数据包的类型或优先级。(相当于IPv4的“服务类型”字段(TOS:type of service))。

(3)流标识:标记属于同一个流的数据报文。“流”就是因特网上从特定源到特定目的的一些列数据报文。流所经过的路径上的路由器都保证指定的服务质量(Qos),所有属于同一个流的数据都有相同的流标识。

(4)数据长度:即有效载荷的长度,除首部(报头)以外的字节数,包括扩展首部(扩展报头)和数据部分。(相当于IPv4的“报头长度”字段),最大值为65535。

(5)下一报头:定义了紧跟在基本首部(IPv6报头)后面的扩展首部(扩展报头)的数字标识号(当有扩展首部时)或指出此数据报携带的数据是使用(上层的)何种协议(当没有扩展首部时,这个时候相当于IPv4的“协议”字段)。

(6)跳限制:相当与IPv4的“生存周期”字段。

(7)源地址:发送数据的主机的IPv6地址。

(8)目的地址:接收数据的主机的IPv6地址。

 

(4)IPv6表示方法

a.冒分十六进制表示法:

       格式为:X:X:X:X:X:X:X:X,其中每个X为2个字节,以十六进制表示。如:AB3D:0FDE:24DF:780A:25AB:76DE:AFEB:087A,若X的前导有0,则0可以省略,所以上面的可以表示为:AB3D:FDE:24DF:780A:25AB:76DE:AFEB:087A

 

b.0位压缩表示法:

       在有些情况下,IPv6地址中存在连续的多个0的X,则可以将这些0压缩为“::”。如:FA01:0:0:0:0:0:0:0110,可以表示为:FA01::0110。0:0:0:0:0:0:0:1可以表示为:::1,0:0:0:0:0:0:0:0可以表示为:::

 

c.内嵌IPv4表示法:

       为了实现IPv6与IPv4互通,IPv4通常地址通常会嵌入IPv6地址中。此时地址表示的格式为:X:X:X:X:X:X:d:d:d:d,前12字节采用冒分十六进制表示法,后4个字节采用点分十进制表示法。如:::192.168.1.1::AFDE:192.168.43.1,这时0位压缩法仍然适用。

最后

以上就是甜美小伙为你收集整理的IP地址和MAC地址的全部内容,希望文章能够帮你解决IP地址和MAC地址所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部