📄 目录.txt
字号:
目 录译者序前言第1章 概述 11.1 引言 11.2 源代码表示 11.2.1 将拥塞窗口设置为1 11.2.2 印刷约定 21.3 历史 21.4 应用编程接口 31.5 程序示例 41.6 系统调用和库函数 61.7 网络实现概述 61.8 描述符 71.9 mbuf与输出处理 111.9.1 包含插口地址结构的mbuf 111.9.2 包含数据的mbuf 121.9.3 添加IP和UDP首部 131.9.4 IP输出 141.9.5 以太网输出 141.9.6 UDP输出小结 141.10 输入处理 151.10.1 以太网输入 151.10.2 IP输入 151.10.3 UDP输入 161.10.4 进程输入 171.11 网络实现概述(续) 171.12 中断级别与并发 181.13 源代码组织 201.14 测试网络 211.15 小结 22第2章 mbuf:存储器缓存 242.1 引言 242.2 代码介绍 272.2.1 全局变量 272.2.2 统计 282.2.3 内核统计 282.3 mbuf的定义 292.4 mbuf结构 292.5 简单的mbuf宏和函数 312.5.1 m_get函数 322.5.2 MGET宏 322.5.3 m_retry函数 332.5.4 mbuf锁 342.6 m_devget和m_pullup函数 342.6.1 m_devget函数 342.6.2 mtod和dtom宏 362.6.3 m_pullup函数和连续的协议首部 362.6.4 m_pullup和IP的分片与重组 372.6.5 TCP重组避免调用m_pullup 392.6.6 m_pullup使用总结 402.7 mbuf宏和函数的小结 402.8 Net/3联网数据结构小结 422.9 m_copy和簇引用计数 432.10 其他选择 472.11 小结 47第3章 接口层 493.1 引言 493.2 代码介绍 493.2.1 全局变量 493.2.2 SNMP变量 503.3 ifnet结构 513.4 ifaddr结构 573.5 sockaddr结构 583.6 ifnet与ifaddr的专用化 593.7 网络初始化概述 603.8 以太网初始化 613.9 SLIP初始化 643.10 环回初始化 653.11 if_attach函数 663.12 ifinit函数 723.13 小结 73第4章 接口:以太网 744.1 引言 744.2 代码介绍 754.2.1 全局变量 754.2.2 统计量 754.2.3 SNMP变量 764.3 以太网接口 774.3.1 leintr函数 794.3.2 leread函数 794.3.3 ether_input函数 814.3.4 ether_output函数 844.3.5 lestart函数 874.4 ioctl系统调用 894.4.1 ifioctl函数 904.4.2 ifconf函数 914.4.3 举例 944.4.4 通用接口ioctl命令 954.4.5 if_down和if_up函数 964.4.6 以太网、SLIP和环回 974.5 小结 98第5章 接口:SLIP和环回 1005.1 引言 1005.2 代码介绍 1005.2.1 全局变量 1005.2.2 统计量 1015.3 SLIP接口 1015.3.1 SLIP线路规程:SLIPDISC 1015.3.2 SLIP初始化:slopen和slinit 1035.3.3 SLIP输入处理:slinput 1055.3.4 SLIP输出处理:sloutput 1095.3.5 slstart函数 1115.3.6 SLIP分组丢失 1165.3.7 SLIP性能考虑 1175.3.8 slclose函数 1175.3.9 sltioctl函数 1185.4 环回接口 1195.5 小结 121第6章 IP编址 1236.1 引言 1236.1.1 IP地址 1236.1.2 IP地址的印刷规定 1236.1.3 主机和路由器 1246.2 代码介绍 1256.3 接口和地址小结 1256.4 sockaddr_in结构 1266.5 in_ifaddr结构 1276.6 地址指派 1286.6.1 ifioctl函数 1306.6.2 in_control函数 1306.6.3 前提条件:SIOCSIFADDR、 SIOCSIFNETMASK和 SIOCSIFDSTADDR 1326.6.4 地址指派:SIOCSIFADDR 1336.6.5 in_ifinit函数 1336.6.6 网络掩码指派:SIOCSIFNETMASK 1366.6.7 目的地址指派:SIOCSIFDSTADDR 1376.6.8 获取接口信息 1376.6.9 每个接口多个IP地址 1386.6.10 附加IP地址:SIOCAIFADDR 1396.6.11 删除IP地址:SIOCDIFADDR 1406.7 接口ioctl处理 1416.7.1 leioctl函数 1416.7.2 slioctl函数 1426.7.3 loioctl函数 1436.8 Internet实用函数 1446.9 ifnet实用函数 1446.10 小结 145第7章 域和协议 1467.1 引言 1467.2 代码介绍 1467.2.1 全局变量 1477.2.2 统计量 1477.3 domain结构 1477.4 protosw结构 1487.5 IP 的domain和protosw结构 1507.6 pffindproto和pffindtype函数 1557.7 pfctlinput函数 1577.8 IP初始化 1577.8.1 Internet传输分用 1577.8.2 ip_init函数 1587.9 sysctl系统调用 1597.10 小结 161第8章 IP:网际协议 1628.1 引言 1628.2 代码介绍 1638.2.1 全局变量 1638.2.2 统计量 1638.2.3 SNMP变量 1648.3 IP分组 1658.4 输入处理:ipintr函数 1678.4.1 ipintr概观 1678.4.2 验证 1688.4.3 转发或不转发 1718.4.4 重装和分用 1738.5 转发:ip_forward函数 1748.6 输出处理:ip_output函数 1808.6.1 首部初始化 1818.6.2 路由选择 1828.6.3 源地址选择和分片 1848.7 Internet检验和:in_cksum函数 1868.8 setsockopt和getsockopt系统调用 1908.8.1 PRCO_SETOPT的处理 1928.8.2 PRCO_GETOPT的处理 1938.9 ip_sysctl函数 1938.10 小结 194第9章 IP选项处理 1969.1 引言 1969.2 代码介绍 1969.2.1 全局变量 1969.2.2 统计量 1979.3 选项格式 1979.4 ip_dooptions函数 1989.5 记录路由选项 2009.6 源站和记录路由选项 2029.6.1 save_rte函数 2059.6.2 ip_srcroute函数 2069.7 时间戳选项 2079.8 ip_insertoptions函数 2109.9 ip_pcbopts函数 2149.10 一些限制 2179.11 小结 217第10章 IP的分片与重装 21810.1 引言 21810.2 代码介绍 21910.2.1 全局变量 22010.2.2 统计量 22010.3 分片 22010.4 ip_optcopy函数 22310.5 重装 22410.6 ip_reass函数 22710.7 ip_slowtimo函数 23710.8 小结 238第11章 ICMP:Internet控制报文协议 23911.1 引言 23911.2 代码介绍 24211.2.1 全局变量 24211.2.2 统计量 24211.2.3 SNMP变量 24311.3 icmp结构 24411.4 ICMP 的protosw结构 24511.5 输入处理:icmp_input函数 24611.6 差错处理 24911.7 请求处理 25111.7.1 回显询问:ICMP_ECHO和 ICMP_ECHOREPLY 25211.7.2 时间戳询问:ICMP_TSTAMP和 ICMP_TSTAMPREPLY 25311.7.3 地址掩码询问:ICMP_MASKREQ和 ICMP_MASKREPLY 25311.7.4 信息询问:ICMP_IREQ和ICMP_ IREQREPLY 25511.7.5 路由器发现:ICMP_ROUTERADVERT 和ICMP_ROUTERSOLICIT 25511.8 重定向处理 25511.9 回答处理 25711.10 输出处理 25711.11 icmp_error函数 25811.12 icmp_reflect函数 26111.13 icmp_send函数 26511.14 icmp_sysctl函数 26611.15 小结 266第12章 IP多播 26812.1 引言 26812.2 代码介绍 26912.2.1 全局变量 27012.2.2 统计量 27012.3 以太网多播地址 27012.4 ether_multi结构 27112.5 以太网多播接收 27312.6 in_multi结构 27312.7 ip_moptions结构 27512.8 多播的插口选项 27612.9 多播的TTL值 27712.9.1 MBONE 27812.9.2 扩展环搜索 27812.10 ip_setmoptions函数 27812.10.1 选择一个明确的多播接口:IP_ MULTICAST_IF 28012.10.2 选择明确的多播TTL: IP_ MULTICAST_TTL 28112.10.3 选择多播环回:IP_MULTICAST_ LOOP 28112.11 加入一个IP多播组 28212.11.1 in_addmulti函数 28512.11.2 slioctl和loioctl函数:SIOCADDMULTI和SIOCDELMULTI 28712.11.3 leioctl函数:SIOCADDMULTI和 SIOCDELMULTI 28812.11.4 ether_addmulti函数 28812.12 离开一个IP多播组 29112.12.1 in_delmulti函数 29212.12.2 ether_delmulti函数 29312.13 ip_getmoptions函数 29512.14 多播输入处理:ipintr函数 29612.15 多播输出处理:ip_output函数 29812.16 性能的考虑 30112.17 小结 301第13章 IGMP:Internet组管理协议 30313.1 引言 30313.2 代码介绍 30413.2.1 全局变量 30413.2.2 统计量 30413.2.3 SNMP变量 30513.3 igmp结构 30513.4 IGMP的protosw的结构 30613.5 加入一个组:igmp_joingroup函数 30613.6 igmp_fasttimo函数 30813.7 输入处理:igmp_input函数 31113.7.1 成员关系查询:IGMP_HOST_ MEMBERSHIP_QUERY 31213.7.2 成员关系报告:IGMP_HOST_ MEMBERSHIP_REPORT 31313.8 离开一个组:igmp_leavegroup函数 31413.9 小结 315第14章 IP多播选路 31614.1 引言 31614.2 代码介绍 31614.2.1 全局变量 31614.2.2 统计量 31714.2.3 SNMP变量 31714.3 多播输出处理(续) 31714.4 mrouted守护程序 31814.5 虚拟接口 32114.5.1 虚拟接口表 32214.5.2 add_vif函数 32414.5.3 del_vif函数 32614.6 IGMP(续) 32714.6.1 add_lgrp函数 32814.6.2 del_lgrp函数 32914.6.3 grplst_member函数 33014.7 多播选路 33114.7.1 多播选路表 33414.7.2 del_mrt函数 33514.7.3 add_mrt函数 33614.7.4 mrtfind函数 33714.8 多播转发:ip_mforward函数 33814.8.1 phyint_send函数 34314.8.2 tunnel_send函数 34414.9 清理:ip_mrouter_done函数 34514.10 小结 346第15章 插口层 34815.1 引言 34815.2 代码介绍 34915.3 socket结构 34915.4 系统调用 35415.4.1 举例 35515.4.2 系统调用小结 35515.5 进程、描述符和插口 35715.6 socket系统调用 35815.6.1 socreate函数 359
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -