IPv4 IPv6
IP提供了一种best-effort,connection-less数据delivery服务。
- best-efforty意味着它不保证IP数据段会成功到达目的地。当error发生时,IP通常选择丢弃data.可靠性必须由上层(通常是TCP)提供。
- connectionless意味着IP不维护任何关于相关数据段和网络单元(一般是路由器)的connection state information。如果source 发送两个连续的datagram(first A ,then B)到相同目的地,它们可以独立选择传输路径,也可以是不同的路径。B可以比A先到达。在传输过程中,它们可能被复制、被修改内容。所以需要TCP处理这些潜在问题。
一、IPV4 Header
- version(版本):IPV4是4,IPV6是6;
- IHL(Internet Header Length)。IHL是占4“位”,它的每一“位”代表4个字节。所以它总共占据 32bits。IHL的 正常值是0101 = 5,一共是 5*4 = 20字节;最大值 1111 = 15,15*4 = 60 bytes;
- DS(Differentiated Services Field,DS Field,区分服务字段) + ECN (Explicit Congestion Notification,显式拥塞通知)= ToS(Type of Service,服务类型字段)。这些字段被用于数据转发时的特殊处理
- Total Length(总长度字段),包括IPv4头部在内的IPV4数据报的总长度(bytes).max size = 65535bytes. 因为一些携带IPV4的低层协议不能精确表示自己的封装的数据大小,所以要在 Header中给出。
- Identification(标识字段),帮助标识从IPV4 主机发出的数据包。为了不与其他数据包分片混淆,发送主机每发送一个数据报时,会将一个内部计数器加1,然后将这个计数值拷贝到Identification.
- Flags包括(0、DF(don't fragment)位、MF(more fragment))和后面的13位Fragment Offset都用于分片和重组、
- Time-to-Live(生存期字段,TTL),用来设置一个数据报经过的路由器上限数量,一般设置为(64,128,255等),数据报被路由器转发1次,该值减1.当该值变为0时,数据报被丢弃。发送方is notified with a ICMP 消息。为了防止路由循环导致的数据报在网络中循环。
- Protocol(协议字段),包含一个数字用于说明数据报有效载荷(payload portion)的数据类型。 通常值是17(for UDP)和6(for TCP).提供多路分解(可以携带多种类型的传输层协议)
- Header Checksum(头部校验和字段)仅仅计算IPV4头部,它意味着 IP协议不检查IPv4 datagram 的有效载荷(e.g.,TCP or UDP data) 的正确性。所以封装在IP中的协议(传输层)在自己头部中有一个含有其头部和数据的校验和。
- Source IP Address(源IP地址),32位,通常标识一台计算机的一个借口。
- Destination IP Address(目的IP地址),32位
二、IPV6 Header
- version(版本):IPV4是4,IPV6是6;
- DS(Differentiated Services Field,DS Field,区分服务字段) + ECN (Explicit Congestion Notification,显式拥塞通知)= Traffic Class byte(通信类型字段)。这些字段被用于数据转发时的特殊处理
- Flow Label(流标签字段),由应用进程或内核为某个给定的套接口选取,应用于通过该套接口发送的任何IPv6数据报。所谓流(flow)指的是从某个特定源头到某个特定目的地的一个分组序列,而且该源头期望中间的路由器对这些分组进行特殊处理。
- Payload length(净荷长度)是去掉IPv6 Header(40bytes)头部之后所有内容的总长度。它与IPv4总长度的区别在于IPv4把头部也计算在内。
- Next Header(头部字段),这个字段就是IPV4的协议字段,它指出了the type of header follow IPV6 header.
- Hop Limit(跳限字段)类似于IPv4的TTL,用来设置一个数据报经过的路由器上限数量,一般设置为(64,128,255等),数据报被路由器转发1次,该值减1.当该值变为0时,数据报被丢弃
- Source IP Address(源IP地址),128位,通常标识一台计算机的一个借口。
- Destination IP Address(目的IP地址),128位
二、IPv4到IPV6的变化
- IPv6没有header length,固定为40bytes的IPv6 header length。
- 如果两个IPv6的 header 是64对齐的,那么它们的地址也是64位对齐的,如此可以加快在64位体系结构上的处理。
- IPv6没有fragmentation fields(分片字段),因为IPv6有一个独立的分片头用于这种情况,因为分片是异常情况,异常情况不应该减慢正常处理
- IPv6没有用于其自身的校验和字段。这是因为所有的上层协议(TCP、UDP等)的数据单元都有自己的校验和字段。
- IPv6没有广播
- IPv6路由器不对所转发的分组执行分片。
- IPv6要求支持认证和安全选项。
- IPv6要求支持路径MTU发现功能。
https://www.cnblogs.com/craftor/p/3811739.html
陈小洁的三只猫