A. ipv6 ipv4 区别是什么ipv4和ipv6的异同
1.地址类型
IPv4具有三种不同类型的地址:多播,广播和单播。与IPv4相比,IPv6取消了广播地址类型,以更丰富的组播地址代替,同时还增加了任意播地址类型。
2.数据包大小
对于IPv4,最小数据包大小为576字节。对于IPv6,最小数据包大小为1208字节。
3.标头区域字段数
IPv4具有12个标头字段,而IPv6支持8个标头字段。
4.可选字段
IPv4具有可选字段,而IPv6没有。但是,IPv6具有扩展标头,可以在将来扩展协议而不会影响主包结构。
5.配置
在IPv4中,新装的系统必须配置好才能与其他系统通信。在IPv6中,配置是可选的,它允许根据所需功能进行选择。
6.安全性
在IPv4中,安全性主要取决于网站和应用程序。它不是针对安全性而开发的IP协议。而IPv6集成了Internet协议安全标准(IPSec)。IPv6的网络安全不像IPv4是可选项,IPv6里的网络安全项是强制性的。
7.与移动设备的兼容性
IPv4不适合移动网络,因为正如我们前面提到的,它使用点分十进制表示法,而IPv6使用冒号,是移动设备的更好选择。
8.主要功能
IPv6允许直接寻址,因为存在大量可能的地址。但是,IPv4已经广泛传播并得到许多设备的支持,这使其更易于使用。
B. IP数据包头有哪些字段
数据在经过IP网络层时,也会对数据进行封装,也就有相应的IP协议包头了。在以太网帧中,IPv4包头紧跟着以太网帧头,同时以太网帧头中的协议类型值设置为十六进制的0800。
◆版本(Version)
指定IP协议的版本号。因为目前仍主要使用IPv4版本,所以这里的值通常是 0x4 (注意封包使用的数字通常都是十六进位的)。占4位。
◆包头长度(Internet Header Length,IHL)
指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5。占4位。由于它是一个4比特字段,因此首部最长为60个字节,但实际上目前最多仍为24个字节。
◆服务类型(Type of Service,TOS)
定义IP封包在传送过程中要求的服务类型,共由8个bit组成其中每个bit的组合分别代表不同的意思。4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。具体如下:
◆000..... (Routine): 过程字段,占3位。设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)
◆...0....(Delay):延迟字段 ,占1位,取值:0(正常)、1(期特低的延迟)
◆....0...(Throughput):流量字段,占1位。取值:0(正常)、1(期特高的流量)
◆.....0..(Reliability) :可靠性字段,占1位。取值:0(正常)、1(期特高的可靠性)
◆…..0.(ECN-Capable Transport):显式拥塞指示传输字段,占1位。由源端设置,以显示源端节点的传输协议是支持ECN(Explicit Cogestion Notifica tion,显式拥塞指示)的。取值:0(不支持ECN)、1(支持ECN)
◆.......0(Congestion Experienced):拥塞预警字段,占1位。取值:0(正常,不拥塞)、1(拥塞)
◆包长度(Total Length,TL)
IP协议头格式中指定IP包的总长,通常以byte做单位来表示该封包的总长度此数值包括标头和数据的总和。它以字节为单位,占16位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。
由于该字段长16比特,所以IP数据报最长可达65535字节。尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分段。而且,主机也要求不能接收超过576字节的数据报。由于TCP把用户数据分成若干段,因此一般来说这个限制不会影响TCP。UDP的应用(如RIP、TFTP、BOOTP、DNS、SNMP等),都限制用户数据报长度为512字节,小于576字节。但是,事实上现在大多数的实现允许超过8192字节的IP数据报。
总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46个字节(将在本章后面介绍),但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
◆标识(Identification)
每一个IP封包都有一个16位的唯一识别码。当程序产生的数据要通过网络传送时都会被拆散成封包形式发送,当封包要进行重组的时候这个ID就是依据了。占16位。
标识字段唯一地标识主机发送的每一份数据报。通常每发送一份消息它的值就会加1。RFC791认为标识字段应该由让IP发送数据报的上层来选择。假设有两个连续的IP数据报,其中一个是由TCP生成的,而另一个是由UDP生成的,那么它们可能具有相同的标识字段。尽管这也可以照常工作(由重组算法来处理),但是在大多数从伯克利派生出来的系统中,每发送一个IP数据报,IP层都要把一个内核变量的值加1,不管交给IP的数据来自哪一层。内核变量的初始值根据系统引导时的时间来设置。
◆标记(Flags)
这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。占3位。
◆000(Reserved Fragment):保留分段。当此值为0的时候表示目前未被使用。
◆.0.(Don't Fragment):不分段。当此值为0的时候表示封包可以被分段,如果为1则不能被分割。
◆..0( More Fragment):更多分段。当上一个值为0时,此值为0就示该封包是最后一个封包,如果为1则表示其后还有被分割的封包。
◆分段偏移(Fragment Offset,FO)
IP协议头格式规定当封包被分段之后,由于网路情况或其它因素影响其抵达顺序不会和当初切割顺序一至,所以当封包进行分段的时候会为各片段做好定位记录,以便在重组的时候就能够对号入座。值为多少个字节,如果封包并没有被分段,则FO值为“0"。 占13位。