包头鱼501-1000.7z



-
yolo数据集
57.38MB
NXP-MCUBootUtility-2.0.0.zip
2008-08-02i.MXRT系列MCU芯片一站式工具,一个工具包含NXP官方所有加密配套工具的功能,并且是全图形用户界面操作。github上下载速度慢,所以上传上来。
26KB
gui-tcp.rar
2021-01-04用java写的TCP协议包自动生成工具设计 1)按照TCP协议,设计TCP协议包头的图形界面; 2)给定相应字段的信息,能够自动计算出校验和,并自动生成TCP协议包。要使用真实的抓包数据进行验证校验和计算结果。 3)设计和实现TCP包发送程序,采用网络助手工具进行接收,测试发送包的有效性。 4)输入输出内容能够保存。
147B
包头鱼与鲇鱼数据集.txt
2021-02-28包头鱼与鲇鱼数据集.txt 百度网盘
44.84MB
住宅规划-01.包头市美百纳国际社区修建性详细规划
2020-11-24住宅规划-01.包头市美百纳国际社区修建性详细规划
206KB
各省30米分辨率DEM数据-香港.rar
2020-12-29各省30米分辨率DEM数据-香港.rar
58KB
winpcap SDK开发包头文件sdk(pcap.h,Packet32.h,Packet32.h,wpcap.lib,Packet.lib)
2010-05-20winpcap SDK开发包头文件sdk(pcap.h,Packet32.h,Packet32.h,wpcap.lib,Packet.lib)
735KB
openGL SDK开发包头文件 (GL.H,GLAUX.H,glu.lib……)
2010-05-21openGL 开发包头文件 SDK(GL.H,GLAUX.H,glu.lib……) http://hi.baidu.com/yanzi52351
17.36MB
网络大爬虫-第4期-QoS专题.pdf
2020-02-04网络大爬虫-第4期-QoS专题.pdf QOS专题讲解QOS技术QoS业务分类标准 位分别表示: minimize delay 、maximize 视频、图像的多业务网络转变。为了实现 业务优先级分类的基本模型是区分不同类 throughput 、minimize monetary cost 、 端到端 QoS ,IP QoS 目前的研究主要集中 型的业务,在数据包头的特定域携带该优 maximize reliability ,并建议了各 IP应用应 在以下方面: 先级,然后网络节点根据包头携带的优先 该如何取 ToS值,例如, FTP CONTROL 报 为多业务网络定义合理可行的 QoS 业务 级实施不同的转发处理。目前,优先级分 文建议其 ToS取值为 minimize delay ); 分类标准 类根据各种网络所关注的业务类型已经出 ■ R F C 1 4 9 0 ( 被 R F C 2 4 2 7 替 代 ) , 为端到端QoS建立可实施的整网IP QoS模型 现多种不同的标准,相关标准可以参考: Multiprotocol Interconnect over Frame ■ RFC 791 ,Internet Protocol (根
26KB
包头市物业管理条例.docx
2020-05-18一)业主委员会不依法履行职责的; (二)业主委员会选举和换届过程中出现问题的; (三)物业服务企业履行物业服务合同中出现问题的; (四)物业服务企业在交接过程中出现问题的; (五)需要协调解决的其他物业管理纠纷。 第八条 市物业服务行业协会在市房产行政主管部门的指导和监督下,依法加强行业自律,规范行业行为,促进物业服务行业健康发展。 第二章 业主、业主大会及业主委员会 第九条 房屋的所有权人为业主。因买卖、赠与、继承等法律关系已经实际占有房屋,但是尚未依法办理所有权登记的,在物业管理中享有业主的权利,承担业主的义务。 业主在物业管理活动中,享有下列权利: (一)按照物业服务合同的约定,接受物业服务企业提供的服务; (二)提议召开业主大会会议,并就物业管理的有关事项提出建议; (三)提出制定和修改管理规约、业主大会议事规则的建议; (四)参加业主大会会议,行使投票权; (五)选举业主委员会成员,并享有被选举权;
1.78MB
【精华】Oracle从入门到精通pdf高清版
2014-06-25【精华】Oracle从入门到精通pdf高清版: 清原版文档,非扫描件 一、SQL................................................... 1.1、基本概念:........................................... 1.2、数据库安全:......................................... 1.3、基本的SQL SELECT 语句................................ 1.4、SELECT语句........................................... 1、语法:................................................. 2、SQL语句说明:.......................................... 3、数字和日期都可以使用数学运算符建立表达式。............. 4、定义空(NULL)值....................................... 5、别名................................................... 6、spool +路径............................................ 7、连接操作符: || ....................................... 8、文本字符串............................................. 9、DISTINCT .............................................. 1.5、SQLPLUS 与 SQL 的关系................................ 1、SQLPLUS命令的功能: ................................... 2、查询 SQLPLUS 命令...................................... 3、SQLPLUSW 在 WINDOWS 下运行的分析器。................... 4、SQLPLUS 命令: ........................................ 1.6、单行函数............................................. 1、character字符类型函数: ............................... 2、number数字类型函数..................................... 3、时间类型函数:(date) ................................ 1.7、嵌套函数:........................................... 1. 通用函数:............................................. 2. 条件表达式:........................................... 3. 从多表中显示数据: .................................... 1.8、用字函数产生的总计................................... 1.9、子查询:............................................. 2.0、替换变量:........................................... 1.&....................................................... 2.&&...................................................... 2.1.环境变量:............................................ 2.2 格式化命令:.......................................... 2.3 做脚本文件的过程:.................................... 2.3 数据操作语句:........................................ 1. 插入................................................... 2. 删除................................................... 3. 更新................................................... 4. MERGE语句.............................................. 5. 事务(transaction): ................................. 2.4 创建和管理表.......................................... 1、表(TABLE)基本的存储单位,由行和列组成。.............. 2、方案:一个用户所有对象的命名集合。..................... 3、CTAS(子查询建表):................................... 4、截取:................................................. 资源来自网络,仅供学习! Oracle 从入门到精通 第 2 页,共 106 页 5、给表加注释:COMMENT ................................... 6、约束条件:............................................. 2.5.视图 (VIEW) ........................................ 2.6、序列:............................................... 2.7、索引:............................................... 2.8 控制用户的访问........................................ 1.数据库的安全性.......................................... 2.角色:.................................................. 3.使用集合操作............................................ 4.ORDER BY 子句:......................................... 5.GROUP BY 子句的增强..................................... 6.GROUPING 函数........................................... 2.9 高级子查询............................................ 1. 成对子查询:........................................... 2.层次查询................................................ 二、Management:.......................................... 1.Oracle的构件和组件...................................... 2.数据库的物理结构:...................................... 1.控制文件................................................ 2. 数据文件............................................... 3. 重做日志文件........................................... 4. data file 数据文件: .................................. 5. 作用:存放数据。....................................... 6. 数据文件大小可以扩展。 ................................ 7. tablespace 表空间:一个或多个数据文件的逻辑组成。 ..... 8. redo log file 重做日志文件............................. 9. control file 控制文件 ................................. 10. parameter file 初始化参数文件......................... 11. password file 口令文件................................ 12. archived log file 归档日志文件........................ 3.instance 实例/例程...................................... 4、进程结构............................................... 1. 用户进程:开始于数据库用户请求连接数据库 .............. 2. 服务进程:与ORA实例连接,开始于用户会话的建立。........ 3. 后台进程:当ORA实例启动时启动.......................... 1. DBWR 数据库写进程...................................... 2. LGWR 重作日志写进程.................................... 6.CKPT 检查点进程......................................... 7.ARCn 归档进程(可选) .................................. 8.LOGICAL STRUCTURE 逻辑结构 ............................. 5、OEM ORACLE 企业管理器.................................. 6.管理ORA实例............................................. 7.启动过程:.............................................. 1. NOMOUNT 实例启动阶段................................... 2. MOUNT 数据库装载阶段................................... 3. OPEN 打开数据库........................................ 资源来自网络,仅供学习! Oracle 从入门到精通 第 3 页,共 106 页 8.启动命令:.............................................. 1. 在关闭状态下执行....................................... 2. 切换命令:不能跳级切换................................. 3. 关闭过程与启动逆向; .................................. 9.监视诊断文件:.......................................... 10.BACKGROUND TRACE FILES 后台进程跟踪文件................ 11.user TRACE FILES 用户跟踪文件.......................... 12.创建数据库............................................. 1. 创建前的准备:......................................... 2. 创建方法:............................................. 13、UNIX 操作系统环境变量................................. 14、手动创建数据库........................................ 15、使用数据字典和动态性能视图............................ 1. 数据字典............................................... 2. 数据字典的分类:....................................... 3. 动态性能表:........................................... 16、维护重做日志文件...................................... 17、管理表空间和数据文件.................................. 18、表空间的空间管理(区的管理): ....................... 1、本地管理:............................................. 2、数据字典管理表空间: .................................. 3、存储参数:............................................. 4、表空间状态:........................................... 5、查看表空间信息:....................................... 6、重定义表空间的大小..................................... 7、操作表空间:........................................... 8、移动数据文件:......................................... 9、删除表空间:........................................... 19、存储结构和关系........................................ 1、段类型:............................................... 2、区:................................................... 3、数据库块............................................... 4、9I提供非标准块......................................... 5、标准块大小............................................. 6、非标准块的大小......................................... 7、数据块的内容:......................................... 8、块的空间利用参数:..................................... 9、数据块管理:........................................... 10、管理回滚段(Undo)的数据.............................. 20、Undo段的类型:........................................ 1.NON-SYSTEM类型:........................................ 2.SYSTEM类型:............................................ 3.自动UNDO段管理的其他参数: ............................. 21、管理表................................................ 1.创建表提示:............................................ 2.创建临时表.............................................. 资源来自网络,仅供学习! Oracle 从入门到精通 第 4 页,共 106 页 3.修改存储参数和块空间利用参数: ......................... 4.手动分配区:............................................ 5.非分区表的重组.......................................... 6.删除列:................................................ 7.重命名表中的一列:...................................... 8.标记列不再使用:........................................ 9.删除不使用的列:........................................ 10.继续列的删除操作:..................................... 11.得到表的信息:......................................... 22、管理索引(index) .................................... 1.索引的分类:............................................ 2.索引结构:.............................................. 3.存储参数:.............................................. 4.创建B-TREE索引:........................................ 5.索引PCTFREE的变化: .................................... 6.创建索引的提示:........................................ 7.创建位图索引:.......................................... 8.改变索引参数:........................................... 9.重建索引:.............................................. 10.在线重建索引:(建议不使用) .......................... 11.合并索引:............................................. 12.删除索引:............................................. 13.确定未使用的索引:..................................... 14.查看索引信息:......................................... 23、管理口令安全和资源.................................... 1.口令帐户锁定:.......................................... 2.自动锁定,可以手动解锁.................................. 3.口令的到期和过期:...................................... 4.口令历史:.............................................. 5.口令的校验:............................................ 6.用户提供的校验函数:.................................... 7.口令校验函数:.......................................... 8.创建profile口令设置: .................................. 9.修改 profile :口令设置................................. 10.删除 profile: 口令设置................................ 24、资源管理:............................................ 1.启动资源限制通过:...................................... 2.会话级参数:............................................ 3.调用级参数:............................................ 4.创建profile:资源配制................................... 5.查看:.................................................. 24、管理用户.............................................. 1. 用户:................................................. 2.数据库的方案:.......................................... 3.创建用户的步骤:........................................ 4.创建一个新的用户:数据库认证............................ 资源来自网络,仅供学习! Oracle 从入门到精通 第 5 页,共 106 页 5.改变用户的表空间配额: ................................. 6.删除用户:.............................................. 7.查看:.................................................. 25、管理权限.............................................. 1. 两种用户权限:......................................... 2.系统权限:.............................................. 3.授予系统权限:.......................................... 4.授予对象权限:.......................................... 5.移除系统权限:.......................................... 7.移除对象权限:.......................................... 8.查看:.................................................. 26、管理角色.............................................. 1.创建角色:.............................................. 2.赋予角色权限:.......................................... 3.将角色赋予用户;........................................ 4.设置用户的默认角色在需要的时候启用或禁用角色; ......... 5.移除角色;.............................................. 6.删除角色;.............................................. 7.预定义角色:............................................ 8.查看:.................................................. 27、使用全球化支持........................................ 28、基本的ORA网络服务器端配置............................. 三、PL/SQL................................................0 1、创建PL/SQL语句的过程:................................. 2、PL/SQL中的SQL语句...................................... 1. 查询语句:可以直接使用,语法和规则有改变。 ............ 2. 循环控制:............................................. 3. index by tables 中的方法: ............................ 4. SQL Cursor ............................................ 5.FOR循环的游标使用:..................................... 6.带参数的游标:.......................................... 7.异常处理................................................ 8.预定义异常:............................................ 9.非预定义异常:.......................................... 3、函数:................................................. 4、存储程序单元........................................... 5、管理PL/SQL程序块: .................................... 6、包(package) ......................................... 1.组成:.................................................. 2.构建没有包头的包:...................................... 3.SQL中使用包函数的限制................................... 4.与开发相关的系统包:.................................... 7、触发器................................................. 1.语句级:................................................ 2.行级触发器:............................................ 3.INSTEAD OF TRIGGER:替换类型触发器...................... 资源来自网络,仅供学习! Oracle 从入门到精通 第 6 页,共 106 页 4.DDL触发器:............................................. 5.系统事件触发器:........................................ 8、审计................................................... 9、数据同步:............................................. 四、backup and recover备份与恢复.......................... 1、备份与恢复概论:....................................... 2、定义一个备份、恢复策略: .............................. 3、数据库的同步:.......................................... 4、数据库的备份........................................... 1.物理备份与逻辑备份:.................................... 2.数据库的恢复............................................ 4、ARCHIVELOG模式下的不完全恢复: ........................
1.78MB
Oracle从入门到精通
2012-11-14高清原版文档,非扫描件 一、SQL................................................... 1.1、基本概念:........................................... 1.2、数据库安全:......................................... 1.3、基本的SQL SELECT 语句................................ 1.4、SELECT语句........................................... 1、语法:................................................. 2、SQL语句说明:.......................................... 3、数字和日期都可以使用数学运算符建立表达式。............. 4、定义空(NULL)值....................................... 5、别名................................................... 6、spool +路径............................................ 7、连接操作符: || ....................................... 8、文本字符串............................................. 9、DISTINCT .............................................. 1.5、SQLPLUS 与 SQL 的关系................................ 1、SQLPLUS命令的功能: ................................... 2、查询 SQLPLUS 命令...................................... 3、SQLPLUSW 在 WINDOWS 下运行的分析器。................... 4、SQLPLUS 命令: ........................................ 1.6、单行函数............................................. 1、character字符类型函数: ............................... 2、number数字类型函数..................................... 3、时间类型函数:(date) ................................ 1.7、嵌套函数:........................................... 1. 通用函数:............................................. 2. 条件表达式:........................................... 3. 从多表中显示数据: .................................... 1.8、用字函数产生的总计................................... 1.9、子查询:............................................. 2.0、替换变量:........................................... 1.&....................................................... 2.&&...................................................... 2.1.环境变量:............................................ 2.2 格式化命令:.......................................... 2.3 做脚本文件的过程:.................................... 2.3 数据操作语句:........................................ 1. 插入................................................... 2. 删除................................................... 3. 更新................................................... 4. MERGE语句.............................................. 5. 事务(transaction): ................................. 2.4 创建和管理表.......................................... 1、表(TABLE)基本的存储单位,由行和列组成。.............. 2、方案:一个用户所有对象的命名集合。..................... 3、CTAS(子查询建表):................................... 4、截取:................................................. 资源来自网络,仅供学习! Oracle 从入门到精通 第 2 页,共 106 页 5、给表加注释:COMMENT ................................... 6、约束条件:............................................. 2.5.视图 (VIEW) ........................................ 2.6、序列:............................................... 2.7、索引:............................................... 2.8 控制用户的访问........................................ 1.数据库的安全性.......................................... 2.角色:.................................................. 3.使用集合操作............................................ 4.ORDER BY 子句:......................................... 5.GROUP BY 子句的增强..................................... 6.GROUPING 函数........................................... 2.9 高级子查询............................................ 1. 成对子查询:........................................... 2.层次查询................................................ 二、Management:.......................................... 1.Oracle的构件和组件...................................... 2.数据库的物理结构:...................................... 1.控制文件................................................ 2. 数据文件............................................... 3. 重做日志文件........................................... 4. data file 数据文件: .................................. 5. 作用:存放数据。....................................... 6. 数据文件大小可以扩展。 ................................ 7. tablespace 表空间:一个或多个数据文件的逻辑组成。 ..... 8. redo log file 重做日志文件............................. 9. control file 控制文件 ................................. 10. parameter file 初始化参数文件......................... 11. password file 口令文件................................ 12. archived log file 归档日志文件........................ 3.instance 实例/例程...................................... 4、进程结构............................................... 1. 用户进程:开始于数据库用户请求连接数据库 .............. 2. 服务进程:与ORA实例连接,开始于用户会话的建立。........ 3. 后台进程:当ORA实例启动时启动.......................... 1. DBWR 数据库写进程...................................... 2. LGWR 重作日志写进程.................................... 6.CKPT 检查点进程......................................... 7.ARCn 归档进程(可选) .................................. 8.LOGICAL STRUCTURE 逻辑结构 ............................. 5、OEM ORACLE 企业管理器.................................. 6.管理ORA实例............................................. 7.启动过程:.............................................. 1. NOMOUNT 实例启动阶段................................... 2. MOUNT 数据库装载阶段................................... 3. OPEN 打开数据库........................................ 资源来自网络,仅供学习! Oracle 从入门到精通 第 3 页,共 106 页 8.启动命令:.............................................. 1. 在关闭状态下执行....................................... 2. 切换命令:不能跳级切换................................. 3. 关闭过程与启动逆向; .................................. 9.监视诊断文件:.......................................... 10.BACKGROUND TRACE FILES 后台进程跟踪文件................ 11.user TRACE FILES 用户跟踪文件.......................... 12.创建数据库............................................. 1. 创建前的准备:......................................... 2. 创建方法:............................................. 13、UNIX 操作系统环境变量................................. 14、手动创建数据库........................................ 15、使用数据字典和动态性能视图............................ 1. 数据字典............................................... 2. 数据字典的分类:....................................... 3. 动态性能表:........................................... 16、维护重做日志文件...................................... 17、管理表空间和数据文件.................................. 18、表空间的空间管理(区的管理): ....................... 1、本地管理:............................................. 2、数据字典管理表空间: .................................. 3、存储参数:............................................. 4、表空间状态:........................................... 5、查看表空间信息:....................................... 6、重定义表空间的大小..................................... 7、操作表空间:........................................... 8、移动数据文件:......................................... 9、删除表空间:........................................... 19、存储结构和关系........................................ 1、段类型:............................................... 2、区:................................................... 3、数据库块............................................... 4、9I提供非标准块......................................... 5、标准块大小............................................. 6、非标准块的大小......................................... 7、数据块的内容:......................................... 8、块的空间利用参数:..................................... 9、数据块管理:........................................... 10、管理回滚段(Undo)的数据.............................. 20、Undo段的类型:........................................ 1.NON-SYSTEM类型:........................................ 2.SYSTEM类型:............................................ 3.自动UNDO段管理的其他参数: ............................. 21、管理表................................................ 1.创建表提示:............................................ 2.创建临时表.............................................. 资源来自网络,仅供学习! Oracle 从入门到精通 第 4 页,共 106 页 3.修改存储参数和块空间利用参数: ......................... 4.手动分配区:............................................ 5.非分区表的重组.......................................... 6.删除列:................................................ 7.重命名表中的一列:...................................... 8.标记列不再使用:........................................ 9.删除不使用的列:........................................ 10.继续列的删除操作:..................................... 11.得到表的信息:......................................... 22、管理索引(index) .................................... 1.索引的分类:............................................ 2.索引结构:.............................................. 3.存储参数:.............................................. 4.创建B-TREE索引:........................................ 5.索引PCTFREE的变化: .................................... 6.创建索引的提示:........................................ 7.创建位图索引:.......................................... 8.改变索引参数:........................................... 9.重建索引:.............................................. 10.在线重建索引:(建议不使用) .......................... 11.合并索引:............................................. 12.删除索引:............................................. 13.确定未使用的索引:..................................... 14.查看索引信息:......................................... 23、管理口令安全和资源.................................... 1.口令帐户锁定:.......................................... 2.自动锁定,可以手动解锁.................................. 3.口令的到期和过期:...................................... 4.口令历史:.............................................. 5.口令的校验:............................................ 6.用户提供的校验函数:.................................... 7.口令校验函数:.......................................... 8.创建profile口令设置: .................................. 9.修改 profile :口令设置................................. 10.删除 profile: 口令设置................................ 24、资源管理:............................................ 1.启动资源限制通过:...................................... 2.会话级参数:............................................ 3.调用级参数:............................................ 4.创建profile:资源配制................................... 5.查看:.................................................. 24、管理用户.............................................. 1. 用户:................................................. 2.数据库的方案:.......................................... 3.创建用户的步骤:........................................ 4.创建一个新的用户:数据库认证............................ 资源来自网络,仅供学习! Oracle 从入门到精通 第 5 页,共 106 页 5.改变用户的表空间配额: ................................. 6.删除用户:.............................................. 7.查看:.................................................. 25、管理权限.............................................. 1. 两种用户权限:......................................... 2.系统权限:.............................................. 3.授予系统权限:.......................................... 4.授予对象权限:.......................................... 5.移除系统权限:.......................................... 7.移除对象权限:.......................................... 8.查看:.................................................. 26、管理角色.............................................. 1.创建角色:.............................................. 2.赋予角色权限:.......................................... 3.将角色赋予用户;........................................ 4.设置用户的默认角色在需要的时候启用或禁用角色; ......... 5.移除角色;.............................................. 6.删除角色;.............................................. 7.预定义角色:............................................ 8.查看:.................................................. 27、使用全球化支持........................................ 28、基本的ORA网络服务器端配置............................. 三、PL/SQL................................................0 1、创建PL/SQL语句的过程:................................. 2、PL/SQL中的SQL语句...................................... 1. 查询语句:可以直接使用,语法和规则有改变。 ............ 2. 循环控制:............................................. 3. index by tables 中的方法: ............................ 4. SQL Cursor ............................................ 5.FOR循环的游标使用:..................................... 6.带参数的游标:.......................................... 7.异常处理................................................ 8.预定义异常:............................................ 9.非预定义异常:.......................................... 3、函数:................................................. 4、存储程序单元........................................... 5、管理PL/SQL程序块: .................................... 6、包(package) ......................................... 1.组成:.................................................. 2.构建没有包头的包:...................................... 3.SQL中使用包函数的限制................................... 4.与开发相关的系统包:.................................... 7、触发器................................................. 1.语句级:................................................ 2.行级触发器:............................................ 3.INSTEAD OF TRIGGER:替换类型触发器...................... 资源来自网络,仅供学习! Oracle 从入门到精通 第 6 页,共 106 页 4.DDL触发器:............................................. 5.系统事件触发器:........................................ 8、审计................................................... 9、数据同步:............................................. 四、backup and recover备份与恢复.......................... 1、备份与恢复概论:....................................... 2、定义一个备份、恢复策略: .............................. 3、数据库的同步:.......................................... 4、数据库的备份........................................... 1.物理备份与逻辑备份:.................................... 2.数据库的恢复............................................ 4、ARCHIVELOG模式下的不完全恢复: ........................
22.78MB
linux网路编程 中文 23M 版
2016-03-11第1 章Linux操作系统概述................... .......................................................................... 2 1.1 Linux发展历史........................................................ 2 1.1.1 Linux的诞生和发展.............................................. 2 1.1.2 Linux名称的由来........................................ ........ 3 1.2 Linux的发展要素...................................................... 3 1.2.1 U N I X操作系统.................................................. 4 1.2.2 Minix操作系统.................................................. 4 1.2.3 POSIX 标准.....................................................4 1.3 Linux 与 U N I X 的异同.................................................. 5 1 . 4 操作系统类型选择和内核版本的选择..................................... 5 1.4.1常见的不同公司发行的Linux异同................................. 6 1.4.2 内核版木的选择..................................................6 1.5 Linux的系统架构...................................................... 7 1.5.1 Linux内核的主要模块............................................ 7 1.5.2 Linux的文件结构................................................ 9 1.6 G N U 通用公共许可证..................................................10 1.6.1 G P L许可证的历史.............................................. 10 1.6.2 G P L 的白由理念................................................ 10 1.6.3 G P L 的基本条款................................................ 11 1.6.4关于G P L 许町证的争议......................................... 12 1.7 Linux软件开发的可借鉴之处........................:.................. 12 1-8 .................................................................13 第2 章Linux编程环境....................................................................................................14 2.1 Linux环境下的编辑器................................................. 14 2.1.1 v i m使用简介...................................................14 2 . 1 . 2使用v i m建立文件.............................................. 15 2 . 1 . 3使用v i m编辑文本.............................................. 16 2.1.4 v i m的格式设置.................................................18 目录 2.1.5 vim 配置文件....................................................................................................... .. 2 . 1 . 6 使用其他编辑器................................................................................................... 2.2 Linux下的G C C 编译器工具集.......................................... 19 2.2.1 G C C 简介......................................................19 2 . 2 . 2 编译程序的基本知识......................................................................................... 21 2.2.3 .单个文件编译成执行文件........................................ 22 2 . 2 . 4编译生成目标文件.............................................. 22 2 . 2 . 5多文件编译............ ........................................ 23 2.2.6 预处理........................................................ 24 2 . 2 . 7编译成汇编语言.................................................24 2 . 2 . 8生成和使用静态链接库.......................................... 25 2 . 2 . 9生成动态链接库.................................................26 2.2.10动态加载库................................................... 29 2.2.11 G C C 常用选项................................................ 31 2 . 2 . 1 2编译环境的搭建................................................33 2.3 Makefile 文件简介.....................................................34 2.3.1 一个多文件的工程例子............................. ............. 34 2 . 3 . 2多文件工程的编译.............................................. 36 2.3.3 Makefile 的规则.................................................37 2.3.4 Makefile 中使用变量............................................ 39 2 . 3 . 5搜索路径...................................................... 43 2 . 3 . 6自动推导规则.................................................. 44 2.3.7 递归 make......................................................44 2.3.8 Makefile 中的函数.............................................. 46 2 . 4 用G D B 调试程序..................................................... 47 2 . 4 . 1编译可调试程序.................................................48 2.4.2 使用G D B 调试程序............................................. 49 2.4.3 G D B 常用命令..................................................52 2.4.4 其他的 G D B ....................................................59 2.5 顿.................................................................60 第3 章文件系统简介........................................................ 61 3.1 Linux下的文件系统.................................................. 61 3.1.1 Linux下文件的内涵............................................. 61 3.1.2 文件系统的创建................................................. 62 3 . 1 . 3挂接文件系统.................................................. 64 3.1.4 索弓丨节点 inode.......... •'...................................... 65 3.1.5 普通文件...................................................... 66 3 . 1 . 6设备文件...................................................... 66 3 . 1 . 7虚拟文件系统V F S .............................................. 68 目录 3.2 文件的通用操作方法................................................. 72 3 . 2 . 1文件描述符.................................................... 72 3 . 2 . 2打开创建文件open()、create()函数................................ 72 3 . 2 . 3关闭文件closeO函数............................................ 76 3 . 2 . 4读取文件read()函数............................................. 77 3.2.5 写文件write()函数.............................................. 79 3 . 2 . 6文件偏移lseekO函数............................................ 80 3 . 2 . 7获得文件状态fstat()函数.....................•'................... 83 3 . 2 . 8文件空间映射m m a p ()函数....................................... 85 3 . 2 . 9文件属性fcntl()函数............................................. 88 3. 2 . 1 0文件输入输出控制ioctl()函数....................................92 3.3 socket文件类型....................................................... 93 3.4 /J、@ .................................................................93 第4 章程序、进程和线程.................................................... 94 4 . 1 程序、进程和线程的概念.............................................. 94 4 . 1 . 1程序和进程的差别............................................ ’."94 4.1.2 Linux环境下的进程............................................. 95 4 . 1 . 3进程和线程.................................................... 96 4 . 2 进程产生的方式...................................................... 96 4.2.1 进程号........................................................ 96 4.2.2 进蟬复制 fork()................................................. 97 4.2.3 system()方式....................................................98 4.2.4 进程执行exec()函数系列......................................... 99 4 . 2 . 5所有用户态进程的产生进程init................................. 100 4 . 3 进程间通信和同步................................................... 101 4.3.1 半双工管道................................................... 101 4.3.2 命名管道..................................................... 107 4.3.3 消息队列..................................................... 108 4 . 3 . 4消息队列的一个例子........................................... 114 4.3.5 信号量......................... .............................. 116 4 . 3 . 6共享内存..................................................... 121 4.3.7 信号.......................................................... 124 4.4 Linux下的线程...................................................... 127 4 . 4 . 1多线程编程实例................................................127 4.4.2 Linux 下线程创建函数 pthread_create()............................ 129 4.4.3 线程的结束函数 pthread_join()和 pthread_exit().....................129 4.4.4 线程的属性................................................... 130 4 . 4 . 5线程间的互斥................................................. 132 4 . 4 . 6线程中使用信号量..............................................133 • VII • n 录 4-5 純............................................................... 136 第2 篇Linux用户层网络编程 第5 章T C P / I P协议族简介.................................................. 138 5.1 O S I网络分层介绍....................................................138 5.1.1 O S I网络分层结构............................................. 138 5.1.2 O S I的7 层网络结构........................................... 139 5.1.3 O S I参考模塑中的数据传输..................................... 140 5.2 TCP/IP 协议找....................................................... 141 5.2.1 TCP/IP协议栈参考模型......................................... 141 5 . 2 . 2主机到网络层协议............................................. 143 5.2.3 IP 协议....................................................... 144 5.2.4 网际控制报文协议(ICMP) .................................... 146 5.2.5 传输控制协议(TCP) ......................................... 150 5 . 2 . 6用户数据报文协议(U D P ) ..................................... 154 5 . 2 . 7地址解析协议(A R P) ......................................... 156 5.3 IP地址分类与T C P / U D P端U .......................................... 158 5 . 3 . 1因特网中IP地址的分类........................................ 159 5.3.2 子网掩码(subnet mask address) ................................ 161 5.3.3 IP地址的配置................................................. 162 5.3.4 端口......................................................... 163 5 . 4 主机字节序和网络字节序............................................. 163 5 . 4 . 1字节序的含义................................................. 164 5 . 4 . 2网络字节序的转换............................................. 164 5.5 /J、@ ........................................................... .....166 第6 章应用层网络服务程序简介...................... ;..................... 167 6.1 H T T P协议和服务....................................................167 6.1.1 H T T P 协议概述.................................................167 6.1.2 H T T P协议的基本过程.......................................... 168 6.2 F T P协议和服务......................................................170 6.2.1 F T P协议概述..................................................170 6.2.2 F T P协议的工作模式........................................... 172 6.2.3 F T P协议的传输方式........................................... 172 6.2.4 —个简单的F T P过程........................................... 173 6.2.5 常用的F T P工具............................................... 173 6.3 T E L N E T协议和服务................................................. 174 6 . 3 . 1远程登录的基本概念........................................... 174 • VIII • 目录 6 . 3 . 2使用T E L N E T协议进行远程登录的工作过程...................... 174 6.3.3 T E L N E T 协议................................................. 174 6.4 N F S 协议和服务......................................................176 6.4.1 安装N F S服务器和客户端...................................... 176 6 . 4 . 2服务器端的设定................................................176 6 . 4 . 3客户端的操作................................................. 177 6.4.4 showmount 命令................................................177 6 . 5 自定义网络服务..................................................... 177 6.5.1 xinetd/inetd....................................................178 6.5.2 xinetd月艮务配置................................................178 6 . 5 . 3自定义网络服务............................................... 179 6.6 小结................................................................180 第7 章T C P 网络编程基础...............................................181 7.1 套接字编程基础知识................................................. 181 7.1.1 套接字地址结构................................................181 7 . 1 . 2用户层和内核层交互过程....................................... 183 7.2 T C P 网络编程流程................................................... 184 7.2.1 T C P网络编程架构............................................. 184 7 . 2 . 2创建网络插口函数socket()...................................... 186 7.2.3 绑定一个地址端口对bind()......................................189 7.2.4 监听本地端口 listen............................................ 192 7.2.5 接受一个网络请求acceptO...................................... 194 7 . 2 . 6连接H 标网络服务器connect()................................... 199 7.2.7 写入数据函数writeO........................................... 200 7 . 2 . 8读取数据函数readO............................................ 201 7 . 2 . 9关闭套接字函数close()......................................... 201 7 . 3 服务器/客户端的简单例子............................................ 202 7.3.1 例子功能描述........................................... ......202 7 . 3 . 2服务器网络程序................................................203 7 . 3 . 3服务器读取和显示字符串....................................... 205 7 . 3 . 4客户端的网络程序............................................. 205 7 . 3 . 5客户端读取和显示字符串....................................... 206 7 . 3 . 6编译运行程序................................................. 206 7 . 4 截取信号的例子..................................................... 207 7.4.1 信号处理..................................................... 207 7.4.2 信号 SIGPIPE..................................................208 7.4.3 信号 SI G INT.................................... •.............. 208 7.5 /J、g ................................................................208 • IX • 第8 章服务器和客户端信息的获取...........................................210 8 . 1 字节序............................................................................................................................210 8 . 1 . 1 大端字节序和小端字节序...............................................................................210 8 . 1 . 2 字节序转换函数................................................................................................212 8.1.3 一个字节序转换的例子......................................... 214 8 . 2 字符串I P地址和二进制IP地址的转换................................. 217 8.2.1 inet_xxx()函数................................................. 217 8.2.2 inet_pton()和 inet_ntop()函数.....................................219 8 . 2 . 3使用8.2.1节地址转换函数的例子............................ .•••••••220 8.2.4 使用函数 inet_pton()和函数 inet—ntop()的例子......................223 8 . 3 套接字描述符判定函数issockettype()................................... 223 8 . 3 . 1进行文件描述符判定的函数issockettypeO.........................224 8.3.2 main()g| 数.................................................... 224 8.4 IP地址与域名之间的相互转换................................................................................. 225 8.4.1 D N S 原理.....................................................225 8 . 4 . 2获取主机信息的函数........................................... 226 8 . 4 . 3使用主机名获取主机信息的例子................................. 228 8 . 4 . 4函数gethostbyname()不可重入的例子............................. 230 8 . 5 协议名称处理函数................................................... 232 8.5.1 xxxprotoxxx()函数............................................. 232 8 . 5 . 2使用协议族函数的例子......................................... 233 8.6 小结................................................................236 第9 章数据的I O和复用....................................................237 9.1 IO 函数.......................................................................................................................... 237 9 . 1 . 1使用recv()函数接收数据........................................237 9 . 1 . 2 使用sendO函数发送数据................................................................................239 9 . 1 . 3 使用readvO函数接收数据..............................................................................240 9 . 1 . 4 使用writev()闲数发送数据.............................................................................240 9 . 1 . 5使用recvmsgO函数接收数据.................................... 242 9 . 1 . 6 使用sendmsgO函数发送数据.........................................................................244 9.1.7 I O函数的比较.................................................246 9.2 使用I O函数的例子.................................................. 246 9 . 2 . 1客户端处理框架的例子......................................... 246 9 . 2 . 2服务器端程序框架............................................. 248 9.2.3 使用 recv()和 send()函数........................................ 249 9.2.4 使用 readv()和 write()函数.......................................251 9.2.5 使用 recvmsgO和 sendmsg()函数..................................253 9.3 10 模型............................................................. 256 9 . 3 . 1阻塞I O模型.................................................. 256 • X • 目录 9 . 3 . 2非阻塞1 0模型................................................ 257 9.3.3 10 复用....................................................... 257 9 . 3 . 4信号驱动I O模型.............................................. 258 9 . 3 . 5异步I O模型.................................................. 258 9.4 select()函数和 pselect()函数............................................ 259 9.4.1 select()闲数.................................................... 259 9.4.2 pselect()函数...................................................261 9.5 poll()函数和 ppoll()函数............................................... 262 9.5.1 poll()函数..................................................... 263 9.5.2 p p o l l O ® ^ .................................................... 264 9 . 6 非阻塞编程.......:.................................................. 264 9 . 6 . 1非阻塞方式程序设计介绍....................................... 264 9 . 6 . 2非阻塞程序设计的例子......................................... 264 9.7 小结................................................................266 第1 0章基于U D P 协议的接收和发送...................................... ,...267 10.1 U D P 编程框架......................................................267 10.1.1 U D P 编程框图................................................ 267 10.1.2 U D P 服务器编程框架.......................................... 269 10.1.3 U D P 客户端编程框架.......................................... 269 10.2 U D P 协议程序设计的常用函数....... :................................270 10.2.1建立套接字socket()和绑定套接字bind()......................... 270 10.2.2 接收数据 recvfrom()/recv()......................................270 10.2.3 发送数据 sendtoO/sendO...............................................................................275 10.3 U D P 接收和发送数据的例子.......................................... 279 10.3.1 U D P 服务器端................................................ 279 10.3.2 U D P 服务器端数据处理........................................280 10.3.3 U D P 客户端..................................................281 10.3.4 U D P 客户端数据处理.......................................... 281 10.3.5 测试 U D P 程序............................................... 282 10.4 U D P 协议程序设计中的几个问题......................................282 10.4.1 U D P 报文丢失数据............................................ 282 10.4.2 U D P 数据发送中的乱序........................................284 10.4.3 U D P 协议中的 connect()函数....................................287 10.4.4 U D P 缺乏流量控制............................................ 287 10.4.5 U D P 协议中的外出网络接口....................................289 10.4.6 U D P 协议中的数据报文截断....................................290 10.5 小结.............................................................. 291 第1 1章高级套接字........................................................ 292 11.1 U N I X 域函数.......................................................292 • XI • 目录 11.1.1 UNIX域函数的地址结构..............................................................................292 1 1 .1 .2套接字函数.................................................................................................... 293 11 . 1 . 3 使用UNIX域函数进行套接字编程............................................................ 293 11.1.4传递文件描述符.............................................. 296 11.1.5 socketpair()闲数............................................................................................. 296 11.1.6传递文件描述符的例子.................................................................................297 11.2 广播............................................................................................................................. 302 11.2.1 广播的IP地址............................................................................................... 302 11.2.2广播与单播的比较......................................................................................... 303 11.2.3 广播的示例.....................................................................................................304 1 1 . 3多播................................................ 11.3.1多播的概念....................... 1 1 .3 .2广域网的多播................... 11.3.3多播的编程....................... 11.3.4 内核中的多播................... 11.3.5 一个多播例子的服务器端 11.3.6 —个多播例子的客户端•••• 1 1 . 4数据链路层访问........................... 11.4.1 SOCK_PACKET 类型…… 11.4.2设置套接U 以捕获链路帧的编程方法............................ 320 11.4.3从套接口读取链路帧的编程方法................................ 321 11.4.4定位IP包头的编程方法....................................... 322 11.4.5定位T C P报头的编程方法..................................... 323 11.4.6定位U D P 报头的编程方法..................................... 325 11.4.7定位应用层报文数据的编程方法................................ 326 11.4.8使用S O C K _ P A C K E T编写A R P 请求程序的例子................. 326 11.5 329 第1 2章套接字选项........................................................330 12.1 获取和设置套接字选项 getsocketopt()/setsocketopt()......................330 12.1.1 getsockopt()函数和 setsocketopt()函数的介绍......................330 12.1.2套接字选项................................ ..................331 12.1.3套接字选项简单示例.......................................... 332 12.2 S O L ^ S O C K E T 协议族选项........................................... 336 12.2.1 S O—B R O A D C A S T 广播选项....................................336 12.2.2 S O—D E B U G 调试选项......................................... 337 12.2.3 S O _ D O N T R O U T E 不经过路由选项............................. 337 12.2.4 S O—E R R O R 错误选项......................................... 338 12.2.5 S O _ K E E P A L I V E 保持连接选项................................. 338 12.2.6 S O L I N G E R缓冲区处理方式选项...............................339 • XII • U录 12.2.7 S O _ O O B I N L I N E带外数据处理方式选项.........................342 12.2.8 S O _ R C V B U F 和 S O一S N D B U F 缓冲区大小选项................... 342 12.2.9 S O _ R C V L O W A T 和 S O _ S N D L O W A T 缓冲区下限选项............ 343 12.2.10 S O _ R C V T I M E O 和 S O _ S N D T I M E O 收发超时选项............... 343 12.2.11 S O _ R E U S E R A D D R 地址重用选项............................. 344 12.2.12 S O—E X C L U S I V E A D D R U S E 端 U 独占选项...................... 344 12.2.13 S 0 _ T Y P E套接字类型选项.................................... 345 12.2.14 SO_BSDCOMPAT 与 BSD 銮接字兼容选项............................................345 12.2.15 S O _ B I N D T O D E V I C E套接字网络接口绑定选项................. 345 12.2.16 S O _ P R I O R I T Y套接字优先级选项............................. 346 12.3 I P P R O T O J P 选项...................................................347 12.3.1 IP-HD RT NCL 选项............................................ 347 12.3.2 IP O P T N I O S 选项............................................ 347 12.3.3 IP_TOS 选项................................................. 347 12.3.4 IP_TTL 选项..................................................347 12.4 IPP RO TO_TCP 选项................................................. 348 12.4.1 T C P _ K E E P A L I V E 选项................... ..................... 348 12.4.2 T C P _ M A X R T 选项............................................ 348 12.4.3 T C P—M A X S E G 选项.......................................... 349 12.4.4 T C P _ N O D E L A Y 和 T C P _ C O R K 选项............................ 349 1 2 . 5使用套接字选项.................................................... 351 12.5.1设置和获取缓冲区大小........................................ 351 12.5.2获取套接字类型的例子........................................ 355 12.5.3使用套接字选项的综合例子.................................... 356 12.6 ioctl()函数.......................................................... 361 12.6.1 ioctl()函数的命令选项......................................... 361 12.6.2 ioctl()函数的 IO 请求.......................................... 363 12.6.3 ioctl()函数的文件请求......................................... 365 12.6.4 ioctl()函数的网络接U 请求:.....................................365 12.6.5使用ioctl()函数对A R P 高速缓存操作........................... 372 12.6.6使用ioct〖()函数发送路由表请求.................................374 12.7 fcntl()函数......................................................... 374 12.7.1 fcntl()函数的选项............................................. 375 12.7.2使用fcntl()函数修改套接字非阻塞属性.......................... 375 12.7.3使用fcntlO函数设置信号属主...................................376 12.8 小结...............................................................376 第13章原始套接字......................................................................................................377 13.1 概述...............................................................377 1 3 . 2原始套接字的创建.................................................. 379 • XIII • 目录 13.2.1 S O C K J I A W 选项............................................. 379 13.2.2 IPJHDR 1NCL 套接字选项......................................379 13.2.3 不需要bindO函数............................................. 380 1 3 . 3原始套接字发送报文................................................ 380 13.4 原始套接字接收报文................................................ 380 1 3 . 5原始套接字报文处理时的结构........................................ 381 13.5.1 1 P头部的结构........................................... ..... 381 13.5.2 I C M P 头部结构............................................... 382 13.5.3 U D P 头部结构................................................ 384 13.5.4 T C P 头部结构................................................ 386 13.6 ping 的例子........................................................ 387 13.6.1 协议格式............................................. •••..... 388 13.6.2 校验和函数.................................................. 389 13.6.3 设置I C M P发送报文的头部.................................... 390 13.6.4剥离I C M P接受报文的头部.................................... 391 13.6.5 计算时间差.................................................. 392 13.6.6发送报文.................................................... 393 13.6.7接收报文.................................................... 394 13.6.8主函数过程.................................................. 395 13.6.9 主函数 main()................................................ 397 13.6.10 编译测试................... ................................ 400 1 3 . 7洪水攻击.......................................................... 400 13.8 I C M P洪水攻击..................................................... 401 13.8.1 I C M P洪水攻击的原理.........................................401 13.8.2 I C M P洪水攻击的例子.........................................401 13.9 U D P 洪水攻市......................................................405 13.10 S Y N 洪水攻击.....................................................409 13.10.1 S Y N 洪水攻击的原理.........................................409 13.10.2 S Y N 洪水攻击的例子.........................................409 13.11 小结............................................................. 413 第1 4章服务器模型选择....................................................414 1 4 . 1循环服务器:........................................................ 414 14.1.1 U D P 循环服务器.............................................. 414 14.1.2 T C P循环服务器.............................................. 417 1 4 . 2简单并发服务器.................................................... 420 14.2.1并发服务器的模型............................................ 420 14.2.2 U D P 并发服务器.............................................. 420 14.2.3 T C P并发服务器.............................................. 423 14.3 T C P的高级并发服务器模型.......................................... 426 . XIV • 目录 14.3.1 单客户端单进程,统一 accept()................................. 426 14.3.2 单客户端单线程,统一accept()................................. 429 1 4.3.3单客户端单线程,各线程独自acceptO,使用互斥锁.............. 431 14.4 I O复用循环服务器..................................................435 14.4.1 I O复用循环服务器模型介绍....................................435 14.4.2 I O复用循环服务器模型的例子..................................436 14.5 440 第1 5章IPv6简介.......................... ...............................441 15.1 IPv4 的缺陷........................................................ 441 15.2 IPv6 的特点........................................................ 442 15.3 IPv6 的地址......................:.................................. 443 15.3.1 IPv6的单播地址.............................................. 443 15.3.2可聚集全球单播地址.......................................... 443 15.3.3 本地使用单播地址............................................ 444 15.3.4 兼容性地址.................................................. 445 15.3.5 IPv6 多播地址................................................ 446 15.3.6 IPv6 任播地址................................................ 446 15.3.7主机的多个IPv6地址......................................... 447 15.4 IPv6 的头部........................................................ 447 15.4.1 IPv6 头部格式........................................ ........ 447 15.4.2 与IPv4头部的对比........................................... 448 15.4.3 IPv6 的 T C P 头部............................................. 449 15.4.4 IPv6 的 U D P 头部............................................. 449 15.4.5 IPv6 的 I C M P 头部............................................ 449 15.5 IPv6运行环境...................................................... 451 15.5.1 加载 IPv6 模块............................................... 451 15.5.2查看是否支持IPv6............................................ 452 15.6 IPv6的结构定义.................................................... 453 15.6.1 IPv6的地址族和协议族........................................453 15.6.2套接字地址结构...............................................453 15.6.3 地址兼容考虑................................................ 455 15.6.4 IPv6 通用地址................................................ 455 15.7 IPv6的套接字函数.................................................. 456 15.7.1 socketO 函数.................................................. 456 15.7.2没有发生改变的函数.......................................... 456 15.7.3 发生改变的函数...............................................457 15.8 IPv6的套接字选项.................................................. 457 15.8.1 IPv6的套接字选项............................................ 457 15.8.2 单播跳限 I P V 6 _ U N I C A S T _ H O P S............................... 459 • XV • 目录 15.8.3发送和接收多播包............................................ 459 15.8.4 IPv6中获得时间戳的ioctl命令................................. 460 15.9 IPv6的库函数...................................................... 460 15.9.1地址转换函数的差异.......................................... 460 15.9.2域名解析函数的差异.......................................... 461 15.9.3 测试宏...................................................... 463 15.10 IPv6的编程的一个简单例子......................................... 463 15.10.1 服务器程序................................................. 464 15.10.2 客户端程序................................................. 465 15.10.3 编译调试................................................... 467 15.11 小结............................................................. 467 第3 篇Linux内核网络编程 第16章Linux内核中网络部分结构以及分布...............................................................470 16.1 概述...............................................................470 16.1.1代码目录分布................................................ 470 16.1.2内核中网络部分流程简介...................................... 472 16.1.3系统提供修改网络流程点...................................... 474 16.1.4 sk_buff 结构..................................................475 16.1.5 网络协议数据结构inet_protosw................................. 478 1 6 . 2软中断C P U 报文队列及其处理....................................... 479 16.2.1 Linux内核网络协议层的层间传递手段— 软中断................ 479 1 6 . 2 . 2网络收发处理软中断的实现机制................................ 481 16.3 socket数据如何在内核中接收和发送...................................482 16.3.1 socket()的初始化.............................................. 482 16.3.2 接收网络数据recv()........................................... 482 16.3.3发送网络数据sendO........................................... 483 16.4 小结...............................................................484 第17章neffilter框架内报文处理.................................................................................485 17.1 netfilter............................................................ 485 17.1.1 netfilter 简介..................................................485 17.1.2 netfilter 框架..................................................486 17.1.3 netfilter 检査时的表格.........;................................487 17.1.4 netfilter 的规则................................................487 17.2 iptables 和 netfilter...................................................488 17.2.1 iptables 简介..................................................488 17.2.2 iptables 的表和链............................................. 488 • XVI • 目录 17.2.3 使用iptables设置过滤规则.....................................489 1 7 . 3内核模块编程...................................................... 492 17.3.1 内核 “Hello, World! ”程序................................... 492 17 . 3 . 2内核模块的基本架构.......................................... 494 1 7 . 3 . 3内核模块加载和卸载过程...................................... 496 1 7 . 3 . 4内核模块初始化和清理函数.................................... 497 1 7 . 3 . 5内核模块初始化和淸理过程的容错处理.......................... 497 1 7 . 3 . 6内核模块编译所需的Makefile.................................. 498 17.4 5 个钩子点......................................................... 499 17.4.1 netfilter 的 5 个钩子,点......................................... 499 17.4.2 N F H O O K 'k .................................................500 17.4.3钩了.的处理规则.............................................. 501 1 7 . 5注册/注销钩子...................................................... 502 17.5.1 结构 nf_hook_ops............................................. 502 17.5.2注册钩子.................................................... 503 17.5.3 注销钩子.................................................... 504 17.5.4注册注销函数................................................ 504 1 7 . 6钩子的简单处理例子................................................ 505 17.6.1 功能描述.................................................... 505 17.6.2 需求分析.................................................... 506 17.6.3 ping回显屏蔽实现............................................ 506 17.6.4禁止向目的IP地址发送数据的实现............................. 506 17.6.5 端口关闭实现................................................ 506 17.6.6动态配置实现................................................ 508 17.6.7可加载内核实现代码.......................................... 509 17.6.8应用层测试代码实现.......................................... 516 17.6.9 编泽运行.................................................... 516 17.7 •点多个钩子的优先级...............................................517 1 7 . 8校验和问题........................................................ 518 17.9 小结.... ...........................................................518 第4篇综合案例 第1 8章一个简单W e b 服务器的例子S H T T P D ............................... 522 18.1 S H T T P D的需求分析................................................ 522 18.1.1 S H T T P D启动参数可动态配置的需求............................ 523 18.1.2 S H T T P D的多客户端支持的需求................................ 524 18.1.3 S H T T P D支持方法的需求...................................... 525 18.1.4 S H T T P D支持的H T T P协议版本的需求.......................... 526 • XVII • 0 录 18.1.5 S H T T P D支持头部的需求...................................... 527 18.1.6 S H T T P D 定位 URI 的需求......................................527 18.1.7 S H T T P D 支持 CGI 的需求......................................528 18.1.8 S H T T P D错误代码的需求............... ....................... 529 18.2 S H T T P D的模块分析和设计.......................................... 530 18.2.1 S H T T P D 的主函数............................................ 530 18.2.2 S H T T P D命令行解析的分析设计................................ 531 18.2.3 S H T T P D配置文件解析的分析设计.............................. 532 18.2.4 S H T T P D的多客户端支持的分析设计............................ 534 18.2.5 S H T T P D头部解析的分析设计.................................. 536 18.2.6 S H T T P D 对 URI 的分析设计....................................537 18.2.7 S H T T P D支持方法的分析设计.................................. 537 18.2.8 S H T T P D支持C G I的分析设计................................. 538 18.2.9 S H T T P D错误处理的分析设计................................. <540 18.3 S H T T P D各模块的实现.................................... :......... 542 18.3.1 S H T T P D命令行解析的实现.................................... 543 18.3.2 S H T T P D文件配置解析的实现.................................. 545 18.3.3 S H T T P D的多客户端支持的实现................................ 547 18.3.4 S H T T P D所请求U R I解析的实现............................... 551 18.3.5 S H T T P D方法解析的实现...................................... 552 18.3.6 S H T T P D响应方法的实现...................................... 552 18.3.7 S H T T P D 支持 CGI 的实现......................................556 18.3.8 S H T T P D支持H T T P协议版本的实现............................ 559 18.3.9 S H T T P D内容类型的实现...................................... 559 18.3.10 S H T T P D错误处理的实现..................................... 561 18.3.11 S H T T P D生成目录下文件列表文件的实现.......................563 18.3.12 S H T T P D主函数的实现....................................... 565 18.4 S H T T P D的编译、调试和测试........................................ 566 18.4.1 建立源文件...................................................566 18.4.2 制作 Makefile.................................................566 18.4.3 制作执行文件........................................:....... 567 18.4.4使用不同的浏览器测试服务器程序.............................. 567 18.5 小结...............................................................568 第1 9章一个简单网络协议栈的例子S I P ......................................569 19.1 S I P网络协议找的功能描述........................................... 569 19.1.1 SIP网络协议栈的基本功能描述................................ 570 19.1.2 S I P网络协议栈的分层功能描述................................ 570 19.1.3 S I P网络协议栈的用户接U 功能描述............................ 571 19.2 S I P网络协议找的架构............................................... 571 • XVIII • S 录 19.3 S I P网络协议找的存储区缓存......................................... 572 19.3.1 SIP存储缓冲的结构定义....................................... 573 19.3.2 SIP存储缓冲的处理函数....................................... 577 19.4 S I P网络协议找的网络接U 层......................................... 579 19.4.1 SI P网络接U 层的架构......................................... 579 19.4.2 S I P网络接U 层的数据结构...................................•.••■580 19.4.3 S I P网络接口层的初始化函数...................................581 19.4.4 S I P网络接口层的输入函数.....................................583 19.4.5 S I P网络接口层的输出函数.....................................586 19.5 S I P网络协议栈的A R P 层............................................ 588 19.5.1 SIP地址解析层的架构......................................... 588 19.5.2 SIP地址解析层的数据结构.....................................588 19.5.3 SIP地址解析层的映射表.......................................590 19.5.4 SIP地址解析层的A R P 映射表维护函数......................... 591 19.5.5 SIP地址解析层的A R P 网络报文构建函数.... :..................593 19.5.6 S1P地址解析层的A R P 网络报文收发处理函数................... 595 19.6 S I P网络协议栈的IP层.............................................. 598 19.6.1 S I P网际协议层的架构......................................... 598 19.6.2 S I P网际协议层的数据结构.....................................599 19.6.3 S I P网际协议层的输入函数.....................................601 19.6.4 S I P网际协议层的输出函数.....................................605 19.6.5 S I P网际协议层的分片函数.....................................606 19.6.6 S I P网际协议层的分片组装函数................................ 607 19.7 S I P网络协议栈的I C M P层........................................... 611 19.7.1 SIP控制报文协议的数据结构.................................. 611 19.7.2 SIP控制报文协议的协议支持...................................612 19.7.3 SIP控制报文协议的输入函数.................................. 613 19.7.4 SIP控制报文协议的回显应答函数.............................. 614 19.8 S I P网络协议栈的U D P 层............................................ 615 19.8.1 SIP数据报文层的数据结构.....................................615 19.8.2 SIP数据报文层的控制单元.....................................615 19.8.3 SIP数据报文层的输入函数.....................................617 19.8.4 SIP数据报文层的输出函数.....................................618 19.8.5 SIP数据报文层的建立函数.....................................618 19.8.6 SIP数据报文层的释放函数.....................................619 19.8.7 SIP数据报文层的绑定函数.....................................620 19.8.8 SIP数据报文层的发送数据闲数.................................621 19.8.9 SIP数据报文层的校验和计算...................................622 19.9 S I P网络协议栈的协议无关层......................................... 623 19.9.1 SIP协议无关层的系统架构.....................................623 • XIX • 目录 19.9.2 SIP协议无关层的函数形式.....................................624 19.9.3 S1P协议无关层的接收数据函数................................ 624 19.10 S I P网络协议栈的B S D 接U 层....................................... 625 19.10.1 S IP用户接口层的架构........................................ 625 19.10.2 SIP用户接n 层的套接字建立函数............................. 626 19.10.3 SIP用户接M 层的套接字关闭函数............................. 627 19.10.4 SIP用户接U 层的套接字绑定函数............................. 627 19.10.5 SIP用户接丨」层的套接字连接函数............................. 628 19.10.6 SIP用户接U 层的套接字接收数据函数......................... 628 19.10.7 SIP用户接口层的发送数据函数................................629 19.11 S I P网络协议找的编译.............................................. 630 19.11.1 SI P的文件结构.............................................. 630 19.11.2 SIP 的 Makefile.............................................. 631 19.11.3 SIP的编译运行.............................................. 631 19.12 小结..............................................................631 第2 0章一个简单防火墙的例子S I P F W .......................................633 20.1 S I P F W防火墙的功能描述............................................ 633 20.1.1 S I P F W防火墙对主机进行网络数据过滤的功能描述............... 633 20.1.2 S I P F W防火墙用户设置防火墙规则的功能描述................... 634 20.1.3 S I P F W防火墙配K 文件等附加功能的功能描述................... 634 20.2 SIPFW 需求分析.................................................... 634 20.2.1 S I P F W防火墙条件和动作......................................635 20.2.2 S I P F W防火墙支持过滤的类型和内容........................... 635 20.2.3 S I P F W防火墙过滤的方式和动作............................... 638 20.2.4 S I P F W防火墙的配置文件...................................... 640 20.2.5 S I P F W防火墙命令行配置格式..................................640 20.2.6 S I P F W防火墙的规则文件格式..................................642 20.2.7 S I P F W防火墙的日志文件数据格式............................. 643 20.2.8 S I P F W防火墙构建所采用的技术方案........................... 644 2 0 . 3使用netlink进行用户空间和内核空间数据交S ......................... 645 20.3.1 netlink的用户空间程序设计.................................... 645 20.3.2 netlink 的内核空间 A P I........................................ 648 2 0 . 4使用proc进行内存数据用户空间映射..................................650 20.4.1 proc虚拟文件系统的结构...................................... 650 20.4.2 创建proc虚拟文件........................................... 651 2 0 . 4 . 3删除proc虚拟文件........................................... 652 20.4.4 proc文件的写函数............................................ 652 20.4.5 proc文件的读函数............................................ 653 2 0 . 5内核空间的文件操作函数............................................ 654 • XX • 20.5.1 内核空间的文件结构.......................................... 654 20.5.2 内核空间的文件建立操作...................................... 655 20.5.3 内核空间的文件读写操作...................................... 656 20.5.4 内核空间的文件关闭操作...................................... 657 20.6 S I P F W防火墙的模块分析和设计......................................657 20.6.1 S I P F W防火墙的总体架构...................................... 657 20.6.2 S I P F W防火墙的用户命令解析................................. 660 20.6.3 S I P F W用户空间与内核空间的交互............................. 663 20.6.4 S I P F W防火墙内核链h 的规则处理............................. 666 20.6.5 S I P F W防火墙的P R O C 虑拟文件系统........................... 668 20.6.6 S I P F W防火墙的配置文件和口志文件处理....................... 669 20.6.7 S I P F W防火墙的过滤模块设计................................. 671 20.7 S I P F W防火墙各功能模块的实现......................................673 20.7.〗 S I P F W防火墙的命令解析代码................................. 674 20.7.2 S I P F W防火墙的过滤规则解析模块代码......................... 678 20.7.3 S I P F W防火墙的网络数据拦截模块代码......................... 680 20.7.4 S I P F W防火墙的P R O C 虚拟文件系统........................... 681 20.7.5 S I P F W防火墙对配置文件的解析............................... 683 20.7.6 S I P F W防火墙内核模块初始化和退出........................... 684 2 0 . 7 . 7用户空间处理主函数.......................................... 685 20.8 编译、调试和测试.......................... ....................... 686 2 0 . 8 . 1用户程序和内核程序的Makefile................................ 686 20.8.2 编译及运行.................................................. 687 2 0 . 8 . 3下发过滤规则,测试过滤结果.................................. 688 20.9 小结.............................................................. 690
59KB
IP包头结构详解.doc
2011-02-22IP包头结构详解.doc
12.16MB
h265编码的ps文件-h265.ps
2020-08-11h265编码的ps文件,可学习ps文件格式或测试gb28181用。
175KB
IPv6.rar
2012-07-25IPv4 包头为12字段 (点分十进制) IPv6 包头为8字段 (冒号分16进制) 共8个小节,每小节4个16bit IPV6地址=前缀+接口标识 <为何要部署IPV6> ·IPv4的局限性: 1.地址空间的局限性:IP地址空间的危机由来已久,并正是升级到IPv6的主要动力。 2.安全性:IPv4在网络层没有安全性可言,安全性一直被认为是由网络层以上的层负责。 3.自动配置:对于IPv4节点的配置比较复杂,让很多普通用户无所适从。 4.NAT:破坏了Internet端到端的网络模型。 5.由于IPv4地址分配杂乱无章,没有层次性,网络设备需要维护庞大的路由表项。 6.IPv4包头过于复杂,使得网络节点处理的效率不高。 IPV6的好处: 1、超大的地址空间 2、全球可达性,不需要再用NAT 3、全球重新部署,有规划,易于实现聚合 4、能自动配置,实现即插即用 5、方便的进行重编址 6、包头简单,通过扩展包头技术可实现以后的新技术扩展 (基本包头 + n多个扩展包头) ipv4 路由转发的时候,ip包会改变checksum(校验和) 和TTL(每经过一个路由器TTL值减一) ipv6 只变TTL,没有校验和 CPU现在无法实现128位的转发。 最好只是64位的。 ·Theoretical limit: 4.3 billion (十亿) 43亿 Practical limit : 250 million (百万) 2.5亿 Over 420 million Internet in Y2001 (less than 10% of the worldwide population) 没有广播,组播代替广播。所以没有ARP。 IPv4中的广播(broadcast)可以导致网络性能的下降甚至广播风暴(broadcast storm).在IPv6中,就不存在广播这一概念了,取而代之的是组播(multicast)和任意播(anycast),任意播也称为泛播. IPV6在以太网中的协议ID值是0x86DD <IPV6地址的表示方法> ·IPv4 点分十进制 32bit IPv6 冒号分十六进制 128bit 0000:0000:0000:0000:0000:0000:0000:0000=>:: 0000:0000:0000:0000:0000:0000:0000:0001=>0:0:0:0:0:0:0:1=>::1 2001:0000:0000:1234:0000:0000:0567:00ff=>2001::1234:0:0:567:ff 只能有一个:: fe80:0000:0000:0000:0000:0000:0000:0009=>fe80::9 URL的IPV6地址表示 为了区分IPV6地址中的冒号和端口号前的冒号,要把IPV6地址用[]括起来 www.example.net:8080/index.html https:[2001:410:0:1:250:fcee:e450:33ab]:8443/abc.html IPV6中掩码的表示: 在IPV6中掩码只能使用CIDR表示法 2001:410:0:1::45ff/128 2001:410::1/64 注意:在IPV6中没有广播地址和网络号保留地址 ------------------------------------------------------------------------------------------ <IPV6的地址类型> 可分为三大类: 1、单播地址 2、组播地址 3、任意播地址 单播--Unicast : one to one ·单播地址用于一对一的连接 ·IPv6单播地址有以下六种类型: 1-Aggregate Global Unicast Address 2xxx:xxxxx/3 - 3FFF: :FFFF 2001::/16 IPV6因特网地址 2002::/16 6to4过渡地址 2-Link Local Address FE80::/10 (前10位以FE80开头) 3-Site Local Address (Private) FEC0::/10 4-Unspecified Address 0:0:0:0:0:0:0:0/128 => ::/128 5-Loopback Address 0:0:0:0:0:0:0:1/128 => ::1/128 6-IPv4 Compatible Address ::192.168.30.1 => ::C0A8:1E01 以下是一些单播地址的具体说明: 1、可聚合全球单播地址Aggregate global unicast address 由IANA分配的可在全球路由的公网IP地址 目前已分配的前缀:2000::/3 占用了12.5%的IPV6地址空间 2000:0000:0000:0000:0000:0000:0000:0000--3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 这个前缀中总共包含8192个/16的前缀 目前实际用于IPV6因特网运作的前缀:2001::/16 2002::/16 为使用6-TO-4过渡机制的节点保留 3ffe::/16 用于6bone测试目的的前缀 2、本地链路地址:link-local address 当在一个节点启用IPV6,启动时节点的每个接口自动生成一个link-local address 其前缀64位为标准指定的,其后64位按EUI-64格式来构造 注意:在本链路上,路由表中看到的下一跳都是对端的Link Local地址,不是公网IP地址 前缀:FE80::/10 范围:只能在本地链路使用,不能在子网间路由 为何需要link-local:在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。 所以出现Link Local地址唯一标识一个节点。在本地链路看到下一跳都是对端的Link Local地址。 在网络重新编址过程中,节点和路由器的Link Local地址不会发生变化,可以很容易地做一个修改,不用担心网络不可达。 R1(config-if)#ipv6 address FE80:0:0:0:0123:0456:0789:0abc link-local 手工指定link-local地址 3、本地站点地址:site-local address IPV6的私网地址,就像IPV4中的私网保留地址一样 只占用到整个IPV6地址空间的0.1% 前缀:FEC0::/10 其后的54比特用于子网ID 最后64位用于主机ID 范围:只能在本站点内使用,不能在公网上使用 例如:在本地分配十个子网 1、FEC0:0:0:0001::/64 2、FEC0:0:0:0002::/64 3、FEC0:0:0:0003::/64 10、FEC0:0:0:000A::/64 本地站点地址被设计用于永远不会与全球IPV6因特网进行通信的设备,比如:打印机、内部网服务器、网络交换机等 4、未指定地址Unspecified address 形式:0:0:0:0:0:0:0:0 表示地址未指定,或者在写默认路由时代表所有路由 5、回环地址Loopack address 形式:0:0:0:0:0:0:0:1 同IPV4中127.0.0.1地址的含义一样,表示节点自已 6、内嵌IPV4地址的IPV6地址 IPv4 Compatible Address 1、IPV4兼容的IPV6地址--用于在IPV4网络上建立自动隧道,以传输IPV6数据包。 其中高96bit设为0,后面跟32bit的IPV4地址 0000:0000:0000:0000:0000:0000:206.123.31.2 0000:0000:0000:0000:0000:0000:ce7b:1f01 由于这种机制不太好,现在已经不再使用,转而采用更好的过渡机制 2、映射IPV4的IPV6地址--仅用于拥有IPV4和IPV6双协议栈节点的本地范围 其中高80bit设为0,后16bit设为1,再跟IPV4地址 0000:0000:0000:0000:0000:ffff:206.123.31.2 0000:0000:0000:0000:0000:ffff:ce7b:1f01 EUI-64格式:扩展惟一标识符 在IPV6中,无状态自动配置机制使用EUI-64格式来自动配置IPV6地址 所谓无状态自动配置是指在网络中没有DHCP服务器的情况下,允许节点自行配置IPV6地址的机制。 手工设置LINK--LOCAL地址后,EUI-64地址自动用LINK-LOCAL后64位用到EUI后64BIT上。 EUI-64的构造规则--根据接口的MAC地址再加上固定的前缀来生成一个IPV6的地址 工作原理:自动将48bit的以太网MAC地址扩展成64bit,再挂在一个64bit的前缀后面,组成一个IPV6地址 一、将48位的MAC地址从中间分开,插入一个固定数值FFFE 0050:3EE4:4C00-->0050:3EFF:FEE4:4C00 二、将第7个比特位反转,如果原来是0,就变为1,如果原来是1,就变为0 0050:3EFF:FEE4:4C00-->0250:3EFF:FEE4:4C00 三、加上前缀--FE80::0250:3EFF:FEE4:4C00 这就是一个完整的IPV6地址 反转的原因: 在MAC地址中,第7比特为1表示本地管理,为0表示全球管理 在EUI-64格式中,第7位为1表示全球惟一,为0表示本地惟一 组播地址Multicast 在IPV6中没有广播,用组播来代替 前缀:FF00::/8 占用了0.38%的IPV6地址空间 1111 1111 4bit 4bit |→固定值←||→标志←| |→范围←| 标志位为0000表示是永久保留的组播地址,分配给各种技术使用 标志位为0001表示是用户可使用的临时组播地址 范围段定义了组播地址的范围,其定义如下: 二进制 十六进制 范围类型 0001 1 本地接口范围 0010 2 本地链路范围 0011 3 本地子网范围 0100 4 本地管理范围 0101 5 本地站点范围 类似组播的私网地址 1000 8 组织机构范围 1110 E 全球范围 类似组播的公网地址 下面是一些组播指定地址: FF02::1 all nodes 在本地链路范围的所有节点 FF02::2 all routers 在本地链路范围的所有路由器 FF02::5 all ospf routers FF02::9 all rip routers 所有运行RIP的路由器 FF02::A all eigrp routers 所有运行eigrp的路由器 FF05::2 在一个站点范围内的所有路由器 被请求节点的组播地址solicited-node multicast address--重要的东东 一种特殊的组播地址,对于节点或路由器的接口上配置的每个单播和任意播地址,都会自动生成一个对应的被请求节点组播地址。注意link-local address也会生成一个被请求节点的组播地址。 工作范围:只在本地链路上有效 特点:1、在本地链路上,被请求节点的组播地址组中通常只包含一个用户 2、只要知道一个节点的IPV6地址,就能计算出它的被请求节点的组播地址 作用:1、在IPV6中,没有ARP。ICMP代替了ARP的功能,被请求节点的组播地址被节点用来获得相同本地链路上邻居节点的链路层地址 2、用于重复地址检测DAD,在使用无状态自动配置将某个地址配置为自已的IPV6地址之前,节点利用DAD 验证在其本地链路上该地址是否已经被使用。 前缀:FF02:0000:0000:0000:0000:0001:FFxx:xxxx/104 FF02::1:FFxx:xxxx/104 如何产生:被请求节点组播地址的前104位固定,将IP地址的后24位移下来填充到后面就可以了 例如:IPv6---2001::1234:5678/64 被请求节点组播地址---FF02::1:FF34:5678/104 其中FF02::1:FF为固定部分,共104位 组播IP地址到MAC地址的映射: 映射规则:组播MAC地址的前16位固定为0x3333,将组播IPV6地址的后32位直接映射到组播MAC地址的后32位就可以了。 例:IPV6地址为--FF12::1234:5678/64 对应的组播MAC地址为--3333:1234:5678 0x3333为固定前缀 例:所有节点的组播地址:FF02::0001 对应的组播MAC地址:3333:0000:0001 任意播地址Anycast address 应用在one-to-nearest(一到近)模式 任意播是多个设备共享一个地址.分配IPv6单播(unicast)地址给拥有相同功用的一些设备.发送方发送一个以任意播为目标地址的包,当路由器接受到这个包以后,就转发给具有这个地址的离它最近的设备.单播地址用来分配任意播地址.对于那些没有配备任意播的的地址就是单播地址;但是当一个单播地址分配给不止一个接口的时候,单播地址就成了任意播地址。 例如:Mobile方面的特性,移动设备漫游到其他区域,不必接入原始的接入点,只需要找到最近的即可。 必须的IPV6地址: 一旦节点启用IPV6,那么接口就会自动生成下列地址 1、本地链路地址 2、回环地址 3、所有节点多播地址FF02::1 4、如果是路由器,还会有FF02::2 5、被请求节点的组播地址 如果接口配了一个IPV6的单播地址,还会产生被请求节点的组播地址 《如何在帧中继中写MAP》 注意:必须写两条MAP,一条是所配IPV6地址的MAP,一条是link-local地址的MAP(该加brocast的时候要加) 否则会由于没有MAP映射导致无法PING通。 <IPV6的基本命令> R1(config)#ipv6 unicast-routing 在路由器上开启IPV6路由功能 R1(config-if)#ipv6 enable 在接口下启用IPV6,会自动生成一个link-local地址 R1(config-if)#ipv6 address 2001::1/64 指定一个IP地址,配置后会自动生成一个link-local地址 R1(config-if)#ipv6 address FE80:0:0:0:0123:0456:0789:0abc link-local 手工指定link-local地址(优于自动生成) R1(config-if)#ipv6 address 2001:0410:0:1::/64 eui-64 使用eui-64格式自动生成IPV6地址的低64位 R1(config-if)#ipv6 unnumbered 让本接口使用另一个接口的MAC地址生成源地址 R1(config-if)#ipv6 mtu 1500 配置接口的MTU值 R1(config-if)#ipv6 nd suppress-ra 关闭自动下发前缀 R2(config-rtr)#no split-horizon 关闭水平分割 注意IPV6的水平分割是在进程下关闭,不是在接口下 show ipv6 interface e0 显示IPV6接口的信息,包括IPV6地址,link-local地址,加入的组播地址及被请求节点组播地址 注意:串口和loopback口会借用以太口的MAC地址来生成link-local地址。 ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ 《ICMP V6》 ICMP用来向源节点报告关于向目的地传输IP数据包的错误和信息。定义了多种消息类型。 ICMP V6在IPV6中的协议号是58 在IPV6中ICMP的功能得到极大增强,除了原有的功能,还有以下几个主要作用 在IPV6中ICMP的主要功能: 1、路径MTU发现--PMTUD 2、替代地址解析协议--NDP 3、无状态自动配置--NDP 4、重复地址检测--NDP 5、前缀重新编址--NDP 一、PMTUD path MTU discovery 作用:使用ICMP来检测数据包传输路径上最小的MTU值,检测到后使用ICMP 类型2消息(数据包超长)告知源节点,这样分片的工作在源路由器上就可完成,中间路由器不必做这一工作。原理如下: PMTUD使用ICMPV6的类型2消息--数据包超长错误消息 Router#show ipv6 mtu 显示源节点缓存的去每一个目的地的PMTUD值 二、在IPV6中使用NDP 为NDP特有的范畴定义了新的ICMPV6消息: NS (Neighbor Solicitation) 135 邻居请求 NA (Neighbor Advertisement) 136 邻居通告 RS 133 发到FF02::2 路由器请求信息,发给所有路由器 RA 134 发到FF02::1 路由器通告信息,每200S发一次,发向所有节点 类型137 重定向消息 三、替代ARP 使用NS 135和NA 136消息 主机使用邻居请求消息NS135发向邻居的被请求节点组播地址,请求一个MAC地址,邻居回应一个NA136邻居通告消息 show ipv6 neighbors 显示IPV6邻居的地址,生存期、链路层地址、和去往邻居的接口 router#ipv6 neighbor fec0::1:0:0:1:b e0 0080:12ff:6633 静态加入一个邻居项 clear ipv6 neighbors 清除邻居发现表 默认情况下邻居请求消息1000ms发送一次,可用以下命令修改: router(config-if)#ipv6 nd ns-interval 1000 router(config-if)#ipv6 nd reachable-time 1800000 设置邻居的可达时间间隔,默认30分钟,如果30分钟内还没再收到邻居的消息,就会从邻居发现表中删除邻居表项 四、公告前缀--类似于DHCP 路由器周期性地发出RA134公告,每200S一次,主机收到后自动生成IP地址 只要在路由器的接口上配置了一个本地站点或全球可聚合单播地址,就启用了CISCO路由器上的IPV6前缀通告 默认情况下:无状态自动配置公告的前缀长度为64比特 RS 133 发到FF02::2 请求信息,发给所有路由器 RA 134 发到FF02::1 通告信息,每200S发一次,发向所有节点 注意:每一条被通告的前缀都有生存期-- 生存期:每一个被公告前缀都有生存期,可以从0到无穷大,路由器会不断检查这个值,生存期又分两种 有效生存期:主机节点保持有效状态的时间。 首选生存期:必须小于或等于有效生存期,到期后,IPV6地址不能主动去建立新的连接,但可以在有效生存期没过时之前接受别的连接。通常用于前缀重新编址。 在默认情况下,cisco设备中,有效生存期为30天,首选生存期为7天 Autoconfiguration自动配置 来看下IPv6接口的自动配置--当本地链路的路由器发送网络类型信息(前缀)给所有节点的时候.支持IPv6的主机就把它自己64位的链路层地址(即MAC地址)附着在64位的前缀后面按EUI-64格式自动配置成128位长的地址,保证地址的唯一性.自动配置启用即插即用(Plug and Play) show ipv6 interface e0 prefix 显示路由器接口上公告的前缀的参数 R2(config-if)#ipv6 address autoconfig 用路由器模拟主机时,允许这个接口使用无状态自动配置 ,默认情况下路由器不允许使用无状态自动配置 R1(config-if)#ipv6 nd ra-lifetime 1000000 设定路由器公告消息(RA134)的生存期,默认情况下为30min R1(config-if)#ipv6 nd ra-interval 200 设定路由器公告消息的时间间隔,默认是200S R1(config-if)#ipv6 nd prefix 2001:1:1::/64 20000 10000 改写前缀公告的参数,后面分别是有效时间和首选时间 R1(config-if)#no ipv6 nd prefix 2001:1:1::/64 不通告本前缀(nnd,这条命令咋不起作用) R1(config-if)#ipv6 nd suppress-ra 基于接口关闭路由器公告 R1(config-if)#ipv6 nd managed-config-flag 在主机节点上启用有状态自动配置 debug ipv6 nd 调试前缀公告信息 五、重复地址检测<DAD------Duplicate Address Detection> 使用邻居请求消息NS 135 用于确定准备配置的IPV6地址在网络上是否唯一。 六、重编址 路由器发送组播数据包,其中数据包中包含2个前缀,一个是拥有比较短的生存期的旧前缀,还有一个是新的拥有正常时间的前缀.通知网络上的节点用完旧的前缀后换成新的前缀,这样就能进行平滑的前缀过渡 也是使用RS和RA消息 七、路由器重定向 使用重定向消息,类型为137 路由器使用ICMPV6重定向消息通知链路上的节点,在链路上存在一个更好的转发数据包的路由器. 默认是启用的 R1(config-if)#no ipv6 redirects 关闭重定向 八、Ping echo 128 echo reply 129 《静态路由》 建议写法: ipv6 route 2001::/64 e0 fe80::1234:abcd:1234:abcd (下一跳的link local地址) ----------------------------------------------------------------------------------------- <RIP>--ripng 在IPV6中使用UDP521端口,在IPV4中是520端口 使用组播地址:FF02::9 操作半径15跳 R1(config)#ipv6 unicast-routing R1(config)#ipv6 router rip yucedu 必须要有一个进程号 R1(config-if)#ipv6 rip yucedu enable 必须进入接口下开启接口的RIP Show ipv6 route Show ipv6 route rip show ipv6 rip show ipv6 rip database IPV6的metric值出口和入口都加1. IPV6的水平分割是整个路由器开启(在进程中关闭),IPV4是在接口下开关的,在帧中继的HUB-spoke模式中要关闭水平分割 <OSPF> 在IPV6中使用的是OSPFV3版 R1(config)#Ipv6 router ospf 110 R1(config-router)#Router-id 2.2.2.2 注意:必须使用一个类似IPV4地址的标识,必须手工指定,不能自动选 R1(config)#Int s0 R1(config-if)#Ipv6 ospf 110 area 0 也是在接口下宣告 R1(config)#Int lo0 R1(config-if)#Ipv6 ospf 110 area 0 环回口依然是主机路由,128位,可通过改网络类型来改动 Show ipv6 route ospf R1(config)#Int s0 R1(config-if)#Ipv6 ospf neighbor 2001::2 注意OSPF手工指邻居在接口下做,而IPV4是在进程下做 <is-is> R1(config)#Router isis R1(config-router)#Net 49.0001.2222.2222.2222.00 R1(config-router)#Log-adjacency-changes all 当邻居起来时出个提示 R1(config)#Int s0 R1(config-if)#Ipv6 router isis IPV4的ISIS也是在接口下启用 重分布直连: R1(config)#Router isis R1(config-router)#Redistribute connected 在IPV4中直接在ISIS进程中重分布 R1(config)#Router isis R1(config-router)#Address-family ipv6 在IPV6中重分布必须进这一进程 R1(config-router-af)#Redistribute connected 注意重分布命令必须在address-family进程中用 《BGP》 使用TCP179端口,和IPV4中一样 R1(config)#Router bgp 3 R1(config-router)#No autosummary R1(config-router)#bgp router-id 3.3.3.3 (一定要手工指定) R1(config-router)#No synchronization R1(config-router)#Neighbor 2001:13::1 remote-as 1 R1(config-router)#Address-family ipv6 注意进入address-family进程下 R1(config-router-af)#Neighbor 2001:13::1 activate 必须在address-family进程下激活,否则不起效 R3(config-router-af)#network 3::/64 也要在address-family下宣告 注意:IBGP中指下一跳也要在addres-family Show bgp ipv6 neighbor Show bgp ipv6 summary 注意bgp与ipv6反过来了 Show bgp ipv6 查看路由 Clear ip bgp * 清邻居的命令和IPV4中一样 《IPV6 ACL》 在IPV6中,ACL必须命名,写法类似IPV4命名访问列表 1、标准的访问列表可以基于源和目的进行过滤 2、扩展的访问列表可以基于源地址、目的地址、传输层协议、源端口、目的端口及其他特性进行过滤。 事实上IPV6没有标准和扩展之分了。 例一: Ipv6 access-list yucedu Deny ipv6 2001:12::2/128 any Permit ipv6 any any Int s0 Ipv6 traffic-filter yucedu out 在接口下调用 Ipv6的access-list语句的后面默认隐含三条语句: Permit icmp any any nd-ns Permit icmp any any nd-na Deny ipv6 any any 例二: ipv6 access-list yucedu permit tcp any host 2001::1 eq telnet 在接口应用了访问列表后,P包不通会提示AAAAA Prefix-list 例:在R1上,只允许2002:1::/64和2001:12::/64的路由传给R3 ipv6 prefix-list yucedu permit 2001:12::/64 ipv6 prefix-list yucedu permit 2002:1::/64 默认最后有deny any ipv6 router rip xwx distribute-list prefix-list yucedu out Serial1 clear ipv6 rip xwx 在IPV6中,分布列表后只能跟prefix,不能跟ACL ----------------------------------------------------------------------------------------- 《IPV4到IPV6的过渡解决方案》 IPV6 over IP Tunnel方案 Tunnel R2(config)#int tunnel 2 R3(config)#int tunnel 3 tunnel source 2.2.2.2 tunnel source 3.3.3.3 tunnel destination 3.3.3.3 tunnel destination 2.2.2.2 tunnel mode ipv6ip tunnel mode ipv6ip ipv6 enable ipv6 enable show ipv6 interface tunnel 2 注意在采用IPV6IP模式时,会用Tunnel源IP地址来生成本Tunnel的link-local地址,即使你不用ipv6 enable命令,而采用ipv6 unnumbered 命令借用别的地址,结果还是一样。 R2(config)#ipv6 router ospf 110 R2(config-router)#router-id 2.2.2.2 R2(config)#int tunnel 2 R2(config-if)#ipv6 ospf 110 area 0 R2(config)#int e0 R2(config-if)#ipv6 ospf 110 area 0 <6 TO 4>自动Tunnel方案 特点: 1、自动tunnel 2、只要指一条静态路由就OK 前提:首先要注意E0接口的地址必须和源地址配合,且必须用2002这一前缀开头 R2(config)#int tunnel 2 R3(config)#int tunnel 3 tunnel source 2.2.2.2 tunnel source 3.3.3.3 tunnel mode ipv6ip 6to4 tunnel mode ipv6ip 6to4 ipv6 enable ipv6 enable 实际上会按源地址生成link-local地址 R2(config)#ipv6 route 2002::/16 tunnel 2 R3(config)#ipv6 route 2002::/16 tunnel 3 必须写上静态路由
30KB
包头市人口分布.zip
2020-11-11包头市2019年人口矢量shp数据,坐标系为wgs84坐标系。包头市2019年人口矢量shp数据,坐标系为wgs84坐标系。
25KB
http映射1.1- 应用层路由.zip
2019-07-17名称及版本: http映射1.1(应用层路由) 官方网址:betsell.net 介绍说明: 相信很多做过“皇冠足球投注平台或维护”或者一些经常需要变更服务器的技术人员来说,会有一个很头痛的技术问题:那就是客户要求经常要求更换服务器(至少更换IP)。 大部分情况都是直接把程序安装到新的服务器去,当然也包括导入和导出数据库等一系列工作。要是新服务器的配置环境遇到什么问题的话,恐怕需要花更多的时间。 和传统的端口映射软件不同之处在于:一般端口映射是tcp/ip层影射,而这个是http协议层的影射,意味着软件会识别http协议和进行http级的转换处理(例如http包头里的地址信息将会被修改——达到转换目的)。 注意:如果服务器原有IIS并向保留使用它的话,请将IIS的80端口改成其他端口。(下边实例会教你如何做) 例子: 定义: 方案1:隐藏你的真实服务器IP,并设多个迷惑IP——多个域名指向同一IP,但真实服务器均为分布式,那么只要使对应的域名均指向执行映射的服务器,在规则里写上域名的目的是让软件区别你欲映射的真实IP; 映射配置:yourdomainA.com,202.128.x.1 yourdomainB.com,202.128.x.2 方案2:让IIS、Apache看起来均在一个服务器里被兼容——相信很多时候会头痛如果能让APS.Net和Linux的apche兼容到一起,答案是否定的,及时可以恐怕也太麻烦。现在可以使用两台机器非常简单地达到目的。首先把winddowns的IIS的端口修改成8080(非80)端口。并执行软件就可以了。规则如下: 映射配置:yourdomainA.com,202.128.x.1:8080 yourdomainB.com,202.128.x.2:80 这样一来yourdomainA.com 能执行ASP.Net程序,而yourdomainB.com指向的Linux服务器能执行其他CGI。
-
下载
Android10系统源代码
Android10系统源代码
-
下载
Java面试突击-V3.0.pdf
Java面试突击-V3.0.pdf
-
下载
v3.0-JavaGuide面试突击版最新.pdf
v3.0-JavaGuide面试突击版最新.pdf
-
下载
浙江省山河联盟学校2020-2021学年高一下学期4月月考生物试卷 Word版含答案.docx
浙江省山河联盟学校2020-2021学年高一下学期4月月考生物试卷 Word版含答案.docx
-
下载
HealthCircle.shader
HealthCircle.shader
-
下载
广东省信宜市第二中学2020-2021学年高二下学期期中热身物理试题 Word版含答案.docx
广东省信宜市第二中学2020-2021学年高二下学期期中热身物理试题 Word版含答案.docx
-
下载
新疆巴音郭楞蒙古自治州第二中学2021届高三第一学期第二次摸底考试地理试卷 Word版含答案.doc
新疆巴音郭楞蒙古自治州第二中学2021届高三第一学期第二次摸底考试地理试卷 Word版含答案.doc
-
下载
河北省实验中学2021届高三下学期4月学情调研政治试题 Word版含答案.doc
河北省实验中学2021届高三下学期4月学情调研政治试题 Word版含答案.doc
-
下载
四川省仁寿一中北校区等四校2020-2021学年高一下学期第一次月考政治试题 Word版含答案.docx
四川省仁寿一中北校区等四校2020-2021学年高一下学期第一次月考政治试题 Word版含答案.docx
-
下载
新疆巴音二中2021届高三上学期第四次月考数学(文)试卷 Word版含答案.doc
新疆巴音二中2021届高三上学期第四次月考数学(文)试卷 Word版含答案.doc
