چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

TCP/IP详解 / 卷2, 实现

(美)[G.R.赖特]Gary R. Wright, (美)[W.R.史蒂文斯]W. Richard Stevens著 ; 陆雪莹等译; 赖特; Gary Wright; 史蒂文斯; W.Richard Stevens; 陆雪莹

قیمت نهایی

۴۴٬۰۰۰ تومان۴۹٬۰۰۰ تومان۱۰٪ تخفیف
  • تخفیف زمان‌دار−۵٬۰۰۰ تومان

۵٬۰۰۰ تومان صرفه‌جویی نسبت به قیمت اصلی

نسخه اصلی و اورجینال

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

مشخصات کتاب

سال انتشار
۲۰۰۴
فرمت
PDF
زبان
چینی
حجم فایل
۵۱ مگابایت
شابک
9787111075660، 9787111075677، 9787111075684، 7111075668، 7111075676، 7111075684

دربارهٔ کتاب

《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。《TCP/IP详解·卷2:实现》适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。 海报: 封面 书名 版权 前言 目录 第1章 概述 1.1 引言 1.2 源代码表示 1.2.1 将拥塞窗口设置为1 1.2.2 印刷约定 1.3 历史 1.4 应用编程接口 1.5 程序示例 1.7 网络实现概述 1.6 系统调用和库函数 1.8 描述符 1.9 mbuf与输出处理 1.9.1 包含插口地址结构的mbuf 1.9.2 包含数据的mbuf 1.9.3 添加IP和UDP首部 1.9.4 IP输出 1.9.5 以太网输出 1.9.6 UDP输出小 1.10.2 IP输入 1.10 输入处理 1.10.1 以太网输入 1.10.3 UDP输入 1.10.4 进程输入 1.11 网络实现概述(续) 1.12 中断级别与并发 1.13 源代码组织 1.14 测试网络 1.15 小结 2.1 引言 第2章 mbuf:存储器缓存 2.2 代码介绍 2.2.1 全局变量 2.2.2 统计 2.2.3 内核统计 2.3 mbuf的定义 2.4 mbuf结构 2.5 简单的mbuf宏和函数 2.5.2 MGET宏 2.5.1 m_get函数 2.5.3 m_retry函数 2.5.4 mbuf锁 2.6 m_devget和m_pullup函数 2.6.1 m_devget函数 2.6.2 mtod和dtom宏 2.6.3 m_pullup函数和连续的协议首部 2.6.4 m_pullup和IP的分片与重组 2.6.5 TCP重组避免调用m_pullup 2.6.6 m_pullup使用总结 2.7 mbuf宏和函数的小结 2.8 Net/3联网数据结构小结 2.9 m_copy和簇引用计数 2.10 其他选择 2.11 小结 3.2 代码介绍 3.2.1 全局变量 3.1 引言 第3章 接口层 3.2.2 SNMP变量 3.3 ifnet结构 3.4 ifaddr结构 3.5 sockaddr结构 3.6 ifnet与ifaddr的专用化 3.7 网络初始化概述 3.8 以太网初始化 3.9 SLIP初始化 3.10 环回初始化 3.11 if_attach函数 3.12 ifinit函数 3.13 小结 第4章 接口:以太网 4.1 引言 4.2 代码介绍 4.2.1 全局变量 4.2.2 统计量 4.2.3 SNMP变量 4.3 以太网接口 4.3.1 leintr函数 4.3.2 leread函数 4.3.3 ether_input函数 4.3.4 ether_output函数 4.3.5 lestart函数 4.4 ioctl系统调用 4.4.1 ifioctl函数 4.4.2 ifconf函数 4.4.3 举例 4.4.4 通用接口ioctl命令 4.4.5 if_down和if_up函数 4.4.6 以太网、SLIP和环回 4.5 小结 第5章 接口:SLIP和环回 5.1 引言 5.2 代码介绍 5.2.1 全局变量 5.3.1 SLIP线路规程:SLIPDISC 5.3 SLIP接口 5.2.2 统计量 5.3.2 SLIP初始化:slopen和slinit 5.3.3 SLIP输入处理:slinput 5.3.4 SLIP输出处理:sloutput 5.3.5 slstart函数 5.3.6 SLIP分组丢失 5.3.7 SLIP性能考虑 5.3.8 slclose函数 5.3.9 sltioctl函数 5.4 环回接口 5.5 小结 第6章 IP编址 6.1 引言 6.1.1 IP地址 6.1.2 IP地址的印刷规定 6.1.3 主机和路由器 6.2 代码介绍 6.3 接口和地址小结 6.4 sockaddr_in结构 6.5 in_ifaddr结构 6.6 地址指派 6.6.1 ifioctl函数 6.6.2 in_control函数 6.6.3 前提条件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSTADDR 6.6.4 地址指派:SIOCSIFADDR 6.6.5 in_ifinit函数 6.6.6 网络掩码指派:SIOCSIFNETMASK 6.6.8 获取接口信息 6.6.7 目的地址指派:SIOCSIFDSTADDR 6.6.9 每个接口多个IP地址 6.6.10 附加IP地址:SIOCAIFADDR 6.6.11 删除IP地址:SIOCDIFADDR 6.7 接口ioctl处理 6.7.1 leioctl函数 6.7.2 slioctl函数 6.7.3 loioctl函数 6.9 ifnet实用函数 6.8 Internet实用函数 6.10 小结 第7章 域和协议 7.1 引言 7.2 代码介绍 7.2.1 全局变量 7.2.2 统计量 7.3 domain结构 7.4 protosw结构 7.5 IP的domain和protosw结构 7.6 pffindproto和pffindtype函数 7.7 pfctlinput函数 7.8 IP初始化 7.8.1 Internet传输分用 7.8.2 iP_init函数 7.9 sysctl系统调用 7.10 小结 第8章 IP:网际协议 8.1 引言 8.2.1 全局变量 8.2.2 统计量 8.2 代码介绍 8.2.3 SNMP变量 8.3 IP分组 8.4 输入处理:ipintr函数 8.4.1 ipintr概观 8.4.2 验证 8.4.3 转发或不转发 8.4.4 重装和分用 8.5 转发:ip_forward函数 8.6 输出处理:ip_output函数 8.6.1 首部初始化 8.6.2 路由选择 8.6.3 源地址选择和分片 8.7 Internet检验和:in_cksum函数 8.8 setsockopt和getsockopt系统调用 8.8.1 PRCO_SETOPT的处理 8.8.2 PRCO_GETOPT的处理 8.9 ip_sysctl函数 8.10 小结 第9章 IP选项处理 9.1 引言 9.2 代码介绍 9.2.1 全局变量 9.2.2 统计量 9.3 选项格式 9.4 ip_dooptions函数 9.5 记录路由选项 9.6 源站和记录路由选项 9.6.1 save_rte函数 9.6.2 ip_srcroute函数 9.7 时间戳选项 9.8 ip_insertoptions函数 9.9 ip_pcbopts函数 9.10 一些限制 9.11 小结 第10章 IP的分片与重装 10.1 引言 10.2 代码介绍 10.2.2 统计量 10.3 分片 10.2.1 全局变量 10.4 ip_optcopy函数 10.5 重装 10.6 ip_reass函数 10.7 ip_slowtimo函数 10.8 小结 11.1 引言 第11章 ICMP:Internet控制报文协议 11.2 代码介绍 11.2.1 全局变量 11.2.2 统计量 11.2.3 SNMP变量 11.3 icmp结构 11.4 ICMP的protosw结构 11.5 输入处理:icmp_input函数 11.6 差错处理 11.7 请求处理 11.7.1 回显询问:ICMP_ECHO和ICMP_ECHOREPLY 11.7.2 时间戳询问:ICMP_TSTAMP和ICMP_TSTAMPREPLY 11.7.3 地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY 11.7.4 信息询问:ICMP_IREQ和ICMP_IREQREPLY 11.7.5 路由器发现:ICMP_ROUTERADVERT和ICMP_ROUTERSOLICIT 11.8 重定向处理 11.9 回答处理 11.10 输出处理 11.11 icmp_error函数 11.12 icmp_reflect函数 11.13 icmp_send函数 11.14 icmp_sysctl函数 11.15 小结 第12章 IP多播 12.1 引言 12.2 代码介绍 12.2.1 全局变量 12.2.2 统计量 12.3 以太网多播地址 12.4 ether_multi结构 12.5 以太网多播接收 12.6 in_multi结构 12.7 ip_moptions结构 12.8 多播的插口选项 12.9 多播的TTL值 12.9.1 MBONE 12.9.2 扩展环搜索 12.10 ip_setmoptions函数 12.10.1 选择一个明确的多播接口:IP_MULTICAST_IF 12.10.2 选择明确的多播TTL:IP_MULTICAST_TTL 12.10.3 选择多播环回:IP_MULTICAST_LOOP 12.11 加入一个IP多播组 12.11.1 in_addmulti函数 12.11.2 slioctl和loioctl函数:SIOCADDMULTI和SIOCDELMULTI 12.11.3 leioctl函数:SIOCADDMULTI和SIOCDELMULTI 12.11.4 ether_addmulti函数 12.12 离开一个IP多播组 12.12.1 in_delmulti函数 12.12.2 ether_delmulti函数 12.13 ip_getmoptions函数 12.14 多播输入处理:ipintr函数 12.15 多播输出处理:ip_output函数 12.16 性能的考虑 12.17 小结 第13章 IGMP:Internet组管理协议 13.1 引言 13.2.1 全局变量 13.2.2 统计量 13.2 代码介绍 13.2.3 SNMP变量 13.3 igmp结构 13.4 IGMP的protosw的结构 13.5 加入一个组:igmp_joingroup函数 13.6 igmp_fasttimo函数 13.7 输入处理:igmp_input函数 13.7.1 成员关系查询:IGMP_HOST_MEMBERSHIP_QUERY 13.7.2 成员关系报告:IGMP_HOST_MRMBERSHIP_REPORT 13.8 离开一个组:igmp_leavegroup函数 13.9 小结 第14 IP多播选路 14.1 引言 14.2 代码介绍 14.2.1 全局变量 14.2.2 统计量 14.2.3 SNMP变量 14.3 多播输出处理(续) 14.4 mrouted守护程序 14.5 虚拟接口 14.5.1 虚拟接口表 14.5.2 add_vif函数 14.5.3 del_vif函数 14.6 IGMP(续) 14.6.1 add_lgrp函数 14.6.2 del_lgrp函数 14.6.3 grplst_member函数 14.7 多播选路 14.7.1 多播选路表 14.7.2 del_mrt函数 14.7.3 add_mrt函数 14.7.4 mrtfind函数 14.8 多播转发:ip_mforward函数 14.8.1 phyint_send函数 14.8.2 tunnel_send函数 14.9 清理:ip_mrouter_done函数 14.10 小结 第15章 插口层 15.1 引言 15.3 socket结构 15.2 代码介绍 15.4 系统调用 15.4.1 举例 15.4.2 系统调用小结 15.5 进程、描述符和插口 15.6 socket系统调用 15.6.1 socreate函数 15.6.2 超级用户特权 15.7 getsock和sockargs函数 15.8 bind系统调用 15.9 listen系统调用 15.10 tsleep和wakeup函数 15.11 accept系统调用 15.12 sonewconn和soisconnected函数 15.13 connect系统调用 15.13.1 soconnect函数 15.13.2 切断五连接插口和外部地址的关联 15.14 shutdown系统调用 15.15.1 soo_close函数 15.15 close系统调用 15.15.2 soclose函数 15.16 小结 第16章 插口I/O 16.1 引言 16.2 代码介绍 16.3 插口缓存 16.4 write、writev、sendto和sendmsg系统调用 16.5 sendmsg系统调用 16.6 sendit函数 16.6.1 uiomove函数 16.6.2 举例 16.6.3 sendit代码 16.7 sosend函数 16.7.1 可靠的协议缓存 16.7.2 不可靠的协议缓存 16.7.4 性能问题 16.8 read、readv、recvfrom和recvmsg系统调用 16.7.3 sosend函数小结 16.9 recvmsg系统调用 16.10 recvit函数 16.11 soreceive函数 16.11.1 带外数据 16.11.2 举例 16.11.3 其他的接收操作选项 16.11.4 接收缓存的组织:报文边界 16.11.5 接收缓存的组织:没有报文边界 16.11.6 控制信息和带外数据 16.12 soreceive代码 16.13 select系统调用 16.13.1 selscan函数 16.13.2 soo_select函数 16.13.3 selrecord函数 16.13.4 selwakeup函数 16.14 小结 17.1 引言 17.2 代码介绍 第17章 插口选项 17.3 setsockopt系统调用 17.4 getsockopt系统调用 17.5 fcntl和ioctl系统调用 17.5.1 fcntl代码 17.5.2 ioctl代码 17.6 getsockname系统调用 17.7 getpeername系统调用 17.8 小结 18.2 路由表结构 18.1 引言 第18章 Radix树路由表 18.3 选路插口 18.4 代码介绍 18.4.1 全局变量 18.4.2 统计量 18.4.3 SNMP变量 18.5 Radix结点数据结构 18.6 选路结构 18.7 初始化:route_init和rtable_init函数 18.8 初始化:rn_init和rn_inithead函数 18.9 重复键和掩码列表 18.10 rn_match函数 18.11 rn_search函数 18.12 小结 第19章 选路请求和选路消息 19.1 引言 19.2 rtalloc和rtallocl函数 19.3 宏RTFREE和rtfree函数 19.4 rtrequest函数 19.5 rt_setgate函数 19.6 rtinit函数 19.7 rtredirect函数 19.8 选路消息的结构 19.9 rt_missmsg函数 19.10 rt_ifmsg函数 19.11 rt_newaddrmsg函数 19.12 rt_msgl函数 19.13 rt_msg2函数 19.14 sysctl_rtable函数 19.15 sysctl_dumpentry函数 19.16 sysctl_iflist函数 19.17 小结 第20章 选路插口 20.1 引言 20.2 routedomain和protosw结构 20.3 选路控制块 20.4 raw_init函数 20.5 route_output函数 20.6 rt_xaddrs函数 20.7 rt_setmetrics函数 20.8 raw_input函数 20.9 route_usrreq函数 20.10 raw_usrreq函数 20.11 raw_attach、raw_detach和raw_disconnect函数 20.12 小结 第21章 ARP:地址解析协议 21.1 介绍 21.2 ARP和路由表 21.3.2 统计量 21.3 代码介绍 21.3.1 全局变量 21.3.3 SNMP变量 21.4 ARP结构 21.5 arpwhohas函数 21.6 arprequest函数 21.7 arpintr函数 21.8 in_arpinput函数 21.9.2 arptfree函数 21.9.1 arptimer函数 21.9 ARP定时器函数 21.10 arpresolve函数 21.11 arplookup函数 21.12 代理ARP 21.13 arp_rtrequest函数 21.14 ARP和多播 21.15 小结 22.1 引言 第22章 协议控制块 22.2 代码介绍 22.2.1 全局变量 22.2.2 统计量 22.3 inpcb的结构 22.4 in_pcballoc和in_pcbdetach函数 22.5 绑定、连接和分用 22.6 in_pcblookup函数 22.7 in_pcbbind函数 22.8 in_pcbconnect函数 22.9 in_pcbdisconnect函数 22.10 in_setsockaddr和in_setpeeraddr函数 22.11 in_pcbnotify、in_rtchange和in_losing函数 22.11.1 in_rtchange函数 22.11.2 重定向和原始插口 22.11.3 ICMP差错和UDP插口 22.11.4 in_losing函数 22.12 实现求精 22.13 小结 23.2 代码介绍 23.1 引言 第23章 UDP:用户数据报协议 23.2.1 全局变量 23.2.2 统计量 23.2.3 SNMP变量 23.3 UDP的protosw结构 23.4 UDP的首部 23.5 udp_init函数 23.6 udp_output函数 23.6.2 UDP检验和计算和伪首部 23.6.1 在前面加上IP/UDP首部和mbuf簇 23.7.1 对收到的UDP数据报的一般确认 23.7 udp_input函数 23.7.2 分用单播数据报 23.7.3 分用多播和广播数据报 23.7.4 连接上的UDP插口和多接口主机 23.8 udp_saveopt函数 23.9 udp_ctlinput函数 23.10 udp_usrreq函数 23.12.1 UDPPCB高速缓存 23.11 udp_sysctl函数 23.12 实现求精 23.12.2 UDP检验和 23.13 小结 第24章 TCP:传输控制协议 24.1 引言 24.2 代码介绍 24.2.1 全局变量 24.2.2 统计量 24.2.3 SNMP变量 24.3 TCP的protosw结构 24.4 TCP的首部 24.5 TCP的控制块 24.6 TCP的状态变迁图 24.7 TCP的序号 24.8 tcp_init函数 24.9 小结 25.1 引言 第25章 TCP的定时器 25.2 代码介绍 25.3 tcp_canceltimers函数 25.4 tcp_fasttimo函数 25.5 tcp_slowtimo函数 25.6 tcp_timers函数 25.6.1 FIN_WAIT_2和2MSL定时器 25.6.2 持续定时器 25.6.3 连接建立定时器和保活定时器 25.7 重传定时器的计算 25.8 tcp_newtcpcb算法 25.9 tcp_setpersist函数 25.10 tcp_xmit_timer函数 25.11 重传超时:tcp_timers函数 25.11.1 慢起动和避免拥塞 25.11.2 精确性 25.12 一个RTT的例子 25.13 小结 26.2 tcp_output概述 26.1 引言 第26章 TCP输出 26.3 决定是否应发送一个报文段 26.4 TCP选项 26.5 窗口大小选项 26.6 时间戳选项 26.6.1 哪个时间戳需要回显,RFC1323算法 26.6.2 哪个时间戳需要回显,正确的算法 26.6.3 时间戳与延迟ACK 26.7 发送一个报文段 26.8 tcp_template函数 26.9 tcp_respond函数 26.10 小结 第27章 TCP的函数 27.1 引言 27.2 tcp_drain函数 27.3 tcp_drop函数 27.4 tcp_close函数 27.4.1 路由特性 27.4.2 资源释放 27.5 tcp_mss函数 27.6 tcp_ctlinput函数 27.7 tcp_notify函数 27.8 tcp_quench函数 27.9 TCP_REASS宏和tcp_reass函数 27.9.1 TCP_REASS宏 27.9.2 TCP_REASS函数 27.10 tcp_trace函数 27.11 小结 28.1 引言 第28章 TCP的输入 28.2 预处理 28.3 tcp_dooptions函数 28.4 首部预测 28.5 TCP输入:缓慢的执行路径 28.6 完成被动打开或主动打开 28.6.1 完成被动打开 28.6.2 完成主动打开 28.7 PAWS:防止序号回绕 28.8 裁剪报文段使数据在窗口内 28.9 自连接和同时打开 28.10 记录时间戳 28.11 RST处理 28.12 小结 第29章 TCP的输入(续) 29.1 引言 29.2 ACK处理概述 29.3 完成被动打开和同时打开 29.4 快速重传和快速恢复的算法 29.5 ACK处理 29.6 更新窗口信息 29.7 紧急方式处理 29.8 tcp_pulloutofband函数 29.9 处理已接收的数据 29.10 FIN处理 29.11 最后的处理 29.12 实现求精 29.13 首部压缩 29.13.1 引言 29.13.2 首部字段的压缩 29.13.3 特殊情况 29.13.4 实例 29.13.5 配置 29.14 小结 笫30章 TCP的用户需求 30.1 引言 30.2 tcp_usrreq函数 30.3 tcp_attach函数 30.4 tcp_disconnect函数 30.5 tcp_usrclosed函数 30.6 tcp_ctloutput函数 30.7 小结 笫31章 BPF:BSD分组过滤程序 31.1 引言 31.2 代码介绍 31.2.1 全局变量 31.3 bpf_if结构 31.2.2 统计量 31.4 bpf_d结构 31.4.1 bpfopen函数 31.4.2 bpfioctl函数 31.4.3 bpf_setif函数 31.4.4 bpf_attachd函数 31.5 BPF的输入 31.5.1 bpf_tap函数 31.5.2 catcnpacket函数 31.5.3 bpfread函数 31.6 BPF的输出 31.7 小结 第32章 原始IP 32.1 引言 32.2 代码介绍 32.2.1 全局变量 32.2.2 统计量 32.3 原始IP的protosw结构 32.5 rip_input函数 32.4 rip_init函数 32.6 rip_output函数 32.7 rip_usrreq函数 32.8 rip_ctloutput函数 32.9 小结 结束语 附录A 部分习题的解答 附录B 源代码的获取 附录C RFC1122的有关内容 参考文献

قیمت نهایی

۴۴٬۰۰۰ تومان