《Linux高性能服务器编程》——2.7 IPv6头部结构
2.7 IPv6头部结构
IPv6协议是网络层技术发展的必然趋势。它不仅解决了IPv4地址不够用的问题,还做了很大的改进。比如,增加了多播和流的功能,为网络上多媒体内容的质量提供精细的控制;引入自动配置功能,使得局域网管理更方便;增加了专门的网络安全功能等。本节简要地讨论IPv6头部结构,它的更多细节请参考其标准文档RFC 2460。
2.7.1 IPv6固定头部结构
IPv6头部由40字节的固定头部和可变长的扩展头部组成。图2-6所示是IPv6的固定头部结构。
4位版本号(version)指定IP协议的版本。对IPv6来说,其值是6。
8位通信类型(traffic class)指示数据流通信类型或优先级,和IPv4中的TOS类似。
20位流标签(flow label)是IPv6新增加的字段,用于某些对连接的服务质量有特殊要求的通信,比如音频或视频等实时数据传输。
16位净荷长度(payload length)指的是IPv6扩展头部和应用程序数据长度之和,不包括固定头部长度。
8位下一个包头(next header)指出紧跟IPv6固定头部后的包头类型,如扩展头(如果有的话)或某个上层协议头(比如TCP,UDP或ICMP)。它类似于IPv4头部中的协议字段,且相同的取值有相同的含义。
8位跳数限制(hop limit)和IPv4中的TTL含义相同。
IPv6用128位(16字节)来表示IP地址,使得IP地址的总量达到了2128个。所以有人说,“IPv6使得地球上的每粒沙子都有一个IP地址”。
32位表示的IPv4地址一般用点分十进制来表示,而IPv6地址则用十六进制字符串表示,比如“FE80:0000:0000:0000:1234:5678:0000:0012”。可见,IPv6地址用“:”分割成8组,每组包含2字节。但这种表示方法过于麻烦,通常可以使用所谓的零压缩法来将其简写,也就是省略连续的、全零的组。比如,上面的例子使用零压缩法可表示为“FE80::1234:5678:0000:0012”。不过零压缩法对一个IPv6地址只能使用一次,比如上面的例子中,字节组“5678”后面的全零组就不能再省略,否则我们就无法计算每个“::”之间省略了多少个全零组。
2.7.2 IPv6扩展头部
可变长的扩展头部使得IPv6能支持更多的选项,并且很便于将来的扩展需要。它的长度可以是0,表示数据报没使用任何扩展头部。一个数据报可以包含多个扩展头部,每个扩展头部的类型由前一个头部(固定头部或扩展头部)中的下一个报头字段指定。目前可以使用的扩展头部如表2-3所示。
《Linux高性能服务器编程》——2.7 IPv6头部结构相关推荐
- 《Linux高性能服务器编程》——导读
前 言 为什么要写这本书 目前国内计算机书籍的一个明显弊病就是内容宽泛而空洞.很多书籍长篇大论,恨不得囊括所有最新的技术,但连一个最基本的技术细节也无法解释清楚.有些书籍给读者展现的是网络上随处可见的 ...
- 《Linux高性能服务器编程》学习笔记
<Linux高性能服务器编程>学习笔记 Linux高性能服务器编程 TCP/IP协议族 TCP/IP协议族体系结构以及主要协议 数据链路层 网络层 传输层 应用层 封装 分用 测试网络 A ...
- Linux 高性能服务器编程——多线程编程
问题聚焦: 在简单地介绍线程的基本知识之后,主要讨论三个方面的内容: 1 创建线程和结束线程: 2 读取和设置线程属性: 3 线程同步方式:POSIX信号量,互斥锁和条 ...
- 【Todo】【读书笔记】Linux高性能服务器编程
在读 /Users/baidu/Documents/Data/Interview/服务器-检索端/<Linux高性能服务器编程.pdf> 其实之前读过,要面试了,需要温习. P260 So ...
- Linux高性能服务器编程——书籍阅读笔记
目录 前言 正文 第一章 1. 零拷贝函数 2. TCP/IP协议族 3. OSPF 4. ARP协议 5. RARP 6. ICMP协议 7. TCP协议 8. UDP协议 9. 封装 第四章 TC ...
- 《Linux高性能服务器编程》阅读笔记 之(二)IP 协议详解
目录 IP服务的特点 IPv4 头部结构 介绍 使用 tcpdump 观察 IPv4 头部结构 IP 分片 介绍 使用 tcpdump 观察 IP 分片 IP路由 IP 模块工作流程 路由机制 IP转 ...
- linux高性能服务器编程书本总结
目录 目录分析 第一篇从 1-4章节主要是介绍 计算机网络基础知识和 TCP/IP模型 第二篇 核心篇 5 章到 15 章节 5-6章节 主要介绍 套接字编程API的使用和介绍 7章 是linux 服 ...
- linux高性能服务器编程学习总结(二)
第三章 TCP详解 TCP的连接是一对一的,所以基于多播和广播的应用程序不能使用TCP服务,而UDP非常适合广播和多播.发送端应用连续执行多次写操作,TCP模块将数据放入TCP缓冲区.TRP模块真正开 ...
- linux高性能服务器编程第八章(高性能服务器程序框架)
C/S模型 传统C/S,一端作为客户端,一端作为服务器,这里不做多介绍. P2P模型 peer 2 peer ,每台机器使用服务的同时也提供服务,通俗的讲,没有绝对客户端和服务端的概念,当下云计算的模 ...
最新文章
- 谷歌官方扩展UI组件---SlideTabLayout
- mysqlsla slow-query常用用法
- JMeter初探-安装与使用
- spring mysql json_SpringBoot+MYSQL 配置支持json数据格式
- sql server cvs 导入
- flash和js通讯的伪沙箱安全错误
- Vue 中的列表渲染
- 华丽的 Metro 风格小图标
- HttpUrlConnection的简单使用--get和post的简单使用
- Junit4 基于 custom Rule retry
- 如何使用 chrome devtool 分析前端代码执行耗时和内存占用
- 笔记本功耗测试软件,笔记本功率一般多大 笔记本功率检测【图文】
- 系统管理服务器名,服务器管理系统排名
- 你好,布灵!高瓴人工智能学院首个AI小精灵诞生
- mysql临时表在哪找_MySQL 中的临时表
- fu7推挽胆机音质_终于绕完FU7推挽胆机的输出牛,做了些简单的测试
- 精通 Python OpenCV4:第二部分
- Dbeaver链接hive和impala
- 2022-5月如何使用疯狂URL获取抖音推流码地址(抖音无人直播教程)
- 银行板块行情发令枪已打响12月7日天弘中证银行ETF发售1天