概述
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地址所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复