TCP/IP协议族
IPv4包
UDP包
UDP的伪首部(根据IP数据包的内容建立)
UDP校验和覆盖的内容超出了UDP数据报本身的X围。计算校验和,先把零值赋予校验和字段,然后对整个对象,包括伪首部、UDP的首部和用户数据,算出一个16比特的二进制
TCP包
TCP的伪首部(根据IP数据包的内容建立)
三次握手报文序列
在网点1的事件网络报文在网点2的事件
发送SYN seq=x
接收SYN报文段
发送SYN seq=y,ACK x+1
接收SYN+ACK报文段
发送ACK y+1
接收ACK报文段
TCP连接关闭的三次握手
在网点1的事件网络报文在网点2的事件
(应用程序关闭连接)
发送FIN seq=x
接收FIN报文段
发送ACK x+1
接收ACK报文段
发送FIN seq=y,ACK x+1
接收FIN+ACK报文段
发送ACK y+1
接收ACK报文段
IPv6
IPv6是“Internet Protocol Version 6”的缩写,它是IETF设计的用于替代现行版本IP协议-IPv4-的下一代IP协议。IPv6采用了分级地址模式、高效IPXX、服务质量、主机地址自动配置、认证和加密等许多技术。
IPv4和IPv6的主要差别
IPv6包结构
IPv6包由IPv6XX、扩展XX和上层协议数据单元三部分组成:
IPv6XX
Version(4bit) Traffic Class(8bit) Flow Label(20bit)
Payload Length(16bit) Next Header(8bit) Hop Limit(8bit) Source IP address (128bit)
Destination IP address (128bit)
附:常用的Next Header 字段值表
扩展头
一个典型的IPv6包,没有扩展头。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,但是为了提高处理选项头和传输层协议的性能,扩展头总是8字节长度的整数倍。
目前,RFC 2460中定义了以下6个IPv6扩展头:
1)Hop-by-Hop选项XX
包含分组传送过程中,每个路由器都必须检查和处理的特殊参数选项。Hop-by-Hop选
项XX中的选项描述一个分组的某些特性或用于提供填充。这些选项有:
Pad1选项(选项类型为0),填充单字节。
●PadN选项(选项类型为1),填充2个以上字节。
●Jumbo Payload选项选项类型为194),用于传送超大分组。使用Jumbo Payload选
项,分组有效载荷长度最大可达4,294,967,295字节。负载长度超过65,535字节的
IPv6包称为“超大包”。
●路由器警告选项(选项类型为5),提醒路由器分组内容需要做特殊处理。路由器
警告选项用于组播收听者发现和RSVP(资源预定)协议。
2)目的地选项XX
需要被中间目的地或最终目的地检查的信息。有两种用法:
●如果存在路由扩展头,则每一个中转路由器都要处理这些选项。
●如果没有路由扩展头,则只有最终目的节点需要处理这些选项。
3)路由XX
类似于IPv4的松散源路由。IPv6的源节点可以利用路由扩展XX指定一个松散源路由,即分组从信源到信宿需要经过的中转路由器列表。
4)分段XX
提供分段和重装服务。当分组大于链路最大传输单元(MTU)时,源节点负责对分组进行分段,并在分段扩展XX中提供重装信息。
IPv6包的不可分段部分包括:IPv6XX、Hop-by-Hop选项XX、目的地选项XX(适用于中转路由器)和路由XX。IPv6包的可分段部分包括:认证XX、ESP协议XX、目的地选项XX(适用于最终目的地)和上层协议数据单元PDU。
注:a、在IPv6中,只有源节点才能对负载进行分段。
b、IPv6超大包不能使用该项服务。
5)认证XX
提供数据源认证、数据完整性检查和反重播保护。认证XX不提供数据加密服务,需要加密服务的数据包,可以结合使用ESP协议。
6)ESP协议XX
提供加密服务。
IPv6的地址空间
有关IPv6的地址结构体系,有兴趣的读者可参见RFC 2373。
IPv6地址分配
IPv6的单点传送地址包括可聚集全球单点传送地址、链路本地单点传送地址、节点本地单点传送地址,共计占IPv6寻址总空间的15%。
IPv6地址语法
IPv6的128位地址则是以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,称为冒号分十六进制格式。
例: 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
IPv6可以将每4个十六进制数字中的前导零位去除做简化表示,但每个分组必须至少保留一位数字。去除前导零位后,上述地址可写成:
例: 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A
IPv6还可以将冒号十六进制格式中相邻的连续零位进行零压缩,用双冒号“::”表示。例: 多点传送地址FF02:0:0:0:0:0:0:2压缩后,可表示为FF02::2。值得注意的是,在一个特定的地址中,零压缩只能使用一次。
IPv6地址类型
IPv6地址是独立接口的标识符,所有的IPv6地址都被分配到接口,而非节点。由于每个接