学习笔记-IP

网友投稿 245 2022-10-28


学习笔记-IP

重点纪要

IP协议笔记  IP(Internet Protocol)

IP地址(IP address)

子网掩码(subnet mask)

IP路由(IP router)

IP 5类范围

A类 1-26

B类 128-191

C类 192-223

D类 224-239组播(多播)

E类 240-254科研

子网掩码ABC类型IP默认子网掩码

A类 255.0.0.0

B类 255.255.0.0

C累 255.255.255.0

IP地址网段

A类 10.0.0.1-10.255.255.254

B类 172.16.0.1-172.16.31.254

C类 192.168.0.1-192.168.255.254

名字  地址范围      地址数量        有类别的描述     最大的CIDR地址块

24位块 10.0.0.0–10.255.255.255 16,777,216 一个A类                10.0.0.0/8

20位块 172.16.0.0–172.31.255.255 1,048,576 连续的16个B类        172.16.0.0/12

16位块 192.168.0.0–192.168.255.255 65,536        连续的256个C类        192.168.0.0/16

7 应用层

application layer 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP

6 表示层

presentation layer 例如XDR、ASN.1、SMB、AFP、NCP

5 会话层

session layer 例如ASAP、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets

4 传输层

transport layer 例如TCP、UDP、TLS、RTP、SCTP、SPX、ATP、IL

3 网络层

network layer 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25

2 数据链路层

data link layer 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

1 物理层

physical layer 例如线路、无线电、光纤

IPv6编址

IPv6具有比IPv4大得多的编码地址空间。这是因为IPv6采用了128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2128(约3.4 ×1038)个地址,具体数量为340,282,366,920,938,463,463,374,607,431,768,211,456 个,也可以说成1632个,因为32位地址每位可以取16个不同的值。

网络地址转换是目前减缓IPv4地址耗尽最有效的方式,而IPv6的地址消除了对他的依赖,被认为足够在可以预测的未来使用。就以地球人口70亿人计算,每人平均可分得约4.86×1028(486117667*1020)个IPv6地址。

IPv6从IPv4到IPv6最显著的变化就是网络地址的长度。RFC 2373和RFC 2374定义的IPv6地址有128位长;IPv6地址的表达形式一般采用32个十六进制数。

在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)

IPv6格式

IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。例如:2001:0db8:85a3:08d3:1319:8a2e:0370:7344 是一个合法的IPv6地址。

同时IPv6在某些条件下可以省略:

每项数字前导的0可以省略,省略后前导数字仍是0则继续,例如下组IPv6是相等的。

2001:0DB8:02de:0000:0000:0000:0000:0e13

2001:DB8:2de:0000:0000:0000:0000:e13

2001:DB8:2de:000:000:000:000:e13

2001:DB8:2de:00:00:00:00:e13

2001:DB8:2de:0:0:0:0:e13

可以用双冒号“::”表示一组0或多组连续的0,但只能出现一次:

如果四组数字都是零,可以被省略。遵照以上省略规则,下面这两组IPv6都是相等的。

2001:DB8:2de:0:0:0:0:e13

2001:DB8:2de::e13

2001:0DB8:0000:0000:0000:0000:1428:57ab

2001:0DB8:0000:0000:0000::1428:57ab

2001:0DB8:0:0:0:0:1428:57ab

2001:0DB8:0::0:1428:57ab

2001:0DB8::1428:57ab

2001::25de::cade 是非法的,因为双冒号出现了两次。它有可能是下种情形之一,造成无法推断。

2001:0000:0000:0000:0000:25de:0000:cade

2001:0000:0000:0000:25de:0000:0000:cade

2001:0000:0000:25de:0000:0000:0000:cade

2001:0000:25de:0000:0000:0000:0000:cade

如果这个地址实际上是IPv4的地址,后32位可以用10进制数表示;因此::ffff:192.168.89.9 相等于::ffff:c0a8:5909,但不等于::192.168.89.9 和::c0a8:5909。

另外,::ffff:1.2.3.4 格式叫做IPv4映射地址。而::1.2.3.4 格式叫做IPv4一致地址,目前已被取消。

IPv4位址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:ffff:874B:2B34 或者::ffff:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::ffff:135.75.43.52。

IPv6地址的分类

IPv6地址可分为三种:[8]

单播(unicast)地址

单播地址标示一个网络接口。协议会把送往地址的数据包投送给其接口。IPv6的单播地址可以有一个代表特殊地址名字的范畴,如link-local地址和唯一区域地址(ULA,unique local address)。单播地址包括可聚类的全球单播地址、链路本地地址等。

任播(anycast)地址

Anycast是IPv6特有的数据发送方式,它像是IPv4的Unicast(单点传播)与Broadcast(多点广播)的综合。IPv4支持单点传播和多点广播,单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。

而Anycast则在以上两者之间,它像多点广播(Broadcast)一样,会有一组接收节点的地址栏表,但指定为Anycast的数据包,只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。

以目前的应用为例,Anycast地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。

多播(multicast)地址

多播地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被发送到所有的地址。多播地址由皆为一的字节起始,亦即:它们的前置为FF00::/8。其第二个字节的最后四个比特用以标明"范畴"。

一般有node-local(0x1)、link-local(0x2)、site-local(0x5)、organization-local(0x8)和global(0xE)。多播地址中的最低112位会组成多播组群识别码,不过因为传统方法是从MAC地址产生,故只有组群识别码中的最低32位有使用。定义过的组群识别码有用于所有节点的多播地址0x1和用于所有路由器的0x2。

另一个多播组群的地址为"solicited-node多播地址",是由前置FF02::1:FF00:0/104和剩余的组群识别码(最低24位)所组成。这些地址允许经由邻居发现协议(NDP,Neighbor Discovery Protocol)来解译链接层地址,因而不用干扰到在区网内的所有节点。

特殊地址

IANA维护官方的IPv6地址空间列表[9]。全域的单播地址的分配可在各个区域互联网注册管理机构或(英文)GRH DFP pages找到。

IPv6中有些地址是有特殊含义的:

未指定地址

::/128-所有比特皆为零的地址称作未指定地址。这个地址不可指定给某个网络接口,并且只有在主机尚未知道其来源IP时,才会用于软件中。路由器不可转送包含未指定地址的数据包。

链路本地地址

::1/128-是一种单播绕回地址。如果一个应用程序将数据包送到此地址,IPv6堆栈会转送这些数据包绕回到同样的虚拟接口(相当于IPv4中的127.0.0.1/8)。

fe80::/10-这些链路本地地址指明,这些地址只在区域连接中是合法的,这有点类似于IPv4中的169.254.0.0/16。

唯一区域位域

fc00::/7-唯一区域地址(ULA,unique local address)只可在一群网站中遶送。这定义在RFC 4193中,是用来替换站点本地位域。这地址包含一个40比特的伪随机数,以减少当网站合并或数据包误传到网络时碰撞的风险。这些地址除了只能用于区域外,还具备全域性的范畴,这点违反了唯一区域位域所替换的站点本地地址的定义。

多播地址

ff00::/8-这个前置表明定义在"IP Version 6 Addressing Architecture"(RFC 4291)中的多播地址[10]。其中,有些地址已用于指定特殊协议,如ff0X::101对应所有区域的NTP服务器(RFC 2375)。

请求节点多播地址(Solicited-node multicast address)

ff02::1:FFXX:XXXX-XX:XXXX为相对应的单播或任播地址中的三个最低的字节。

IPv4转译地址

::ffff:x.x.x.x/96-用于IPv4映射地址。(参见以下的转换机制)。

2001::/32-用于Teredo隧道。

2002::/16-用于6to4。

ORCHID

2001:10::/28-ORCHID (Overlay Routable Cryptographic Hash Identifiers)(RFC 4843)。这些是不可遶送的IPv6地址,用于加密散列识别。

文件

2001:db8::/32-这前置用于文件(RFC 3849)。这些地址应用于IPV6地址的示例中,或描述网络架构。

遭舍弃或删除的用法

::/96-这个前置曾用于IPv4兼容地址,现已删除。

fec0::/10-这个站点本地前置指明这地址只在组织内合法。它已在2004年9月的RFC3879中舍弃,并且新系统不应该支持这类型的地址。

IPv6数据包

IPv6数据包的架构说明。

IPv6数据包由两个主要部分组成:头部和负载。

包头是包的前64比特并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20比特,QoS服务质量控制),分组长度(16位),下一个头部(用于入栈解码,类似IPv4中的协议号),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。后面是负载。MTU至少1280字节长,在常见的以太网环境中为1500字节。负载在标准模式下最大可为65535字节,如果扩展报头设置了"jumbo payload"选项,则长度值被置为0。

IPv6曾有两个有着细微差别的版本;在RFC 1883中定义的原始版本(现在废弃)和RFC 2460中描述的现在提议的标准版本。两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。其他的区别都是微不足道的。

分段(Fragmentation)只在IPv6的主机中被处理。在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot结合mysql主从来实现读写分离的方法示例
下一篇:VMware的ip变成127.0.0.1
相关文章

 发表评论

暂时没有评论,来抢沙发吧~