tcp/ip协议2实现的插图,数据结构7 (27 - 29章)

(166) 166 二七1 TCP的函数 函tcp_drain,tcp_drop

在这里插入图片描述

(167) 167 二七2 TCP的函数 函tcp_close上

在这里插入图片描述

(168) 168 二七3 TCP的函数 函tcp_close下

在这里插入图片描述

(169) 169 二七4 TCP的函数 函in_localaddr,tcp_mss上

在这里插入图片描述

(170) 170 二七5 TCP的函数 函tcp_mss下

在这里插入图片描述

(171) 171 二七6 TCP的函数 函tcp_ctlinput

在这里插入图片描述

(172) 172 二七7 TCP的函数 函tcp_notify

在这里插入图片描述

(173) 173 二七8 TCP的函数 函tcp_quench

在这里插入图片描述

(174) 174 二七9 TCP的函数 宏TCP_REASS及tcp_reass上

在这里插入图片描述

(175) 175 二七10 TCP的函数 函tcp_reass下

在这里插入图片描述

(176) 176 二七11 TCP的函数 结构tcp_debug与函tcp_trace

在这里插入图片描述

(177) 177 二八0a tcp_dooptions

在这里插入图片描述

(177) 177 二八0b 带外数据的提取流程

在这里插入图片描述

(178) 178 二八0c tcp_input0 综述

在这里插入图片描述

(179) 179 281 验证 TCP 检验和

在这里插入图片描述

(180) 180 282 快速处理时间戳,转换为主机字节序,查找报文的 inpcb

在这里插入图片描述

(181) 181 283 为 so_q0 添加套接字,为非 listen 态处理 tcp 选项

在这里插入图片描述

(182) 182 284 首部预测算法

在这里插入图片描述

(183) 183 285 完善 listen 态收到的连接

在这里插入图片描述

(184) 184 286 完善 listen 或 syn_sent 状态时收到的连接

在这里插入图片描述

(185) 185 287 处理 syn_sent 态收到的连接

在这里插入图片描述

(186) 186 288 处理 SYN 报文中携带的数据 , 基于时间戳识别过期报文

在这里插入图片描述

(187) 187 289a 处理报文段前部的重复数据

在这里插入图片描述

(188) 188 289b 解释自连接和同时打开

在这里插入图片描述

(189) 189 2810 处理进程终止后到达的数据,删除超出接收窗口的数据,记录时间戳

在这里插入图片描述

(190) 190 2811 处理报文中的 RST 标志

在这里插入图片描述

(191) 191 2912a ack处理概述

在这里插入图片描述

(192) 192 2912b 收到 ack 后进入状态3 到 4,及快速重传

在这里插入图片描述

(193) 193 2913 收到 ack 后计算 RTT 及更新发送缓存相关变量

在这里插入图片描述

(194) 194 2914 收到 ack 后的状态图变迁

在这里插入图片描述

(195) 195 2915 收到 ack 后更新成员 snd_wnd , snd_wl1 , snd_wl2

在这里插入图片描述

(196) 196 2916 接收紧急数据及函tcp_pulloutofband

在这里插入图片描述

(197) 197 2917 从报文中接收正常数据

在这里插入图片描述

(198) 198 2918 处理收到的 FIN

在这里插入图片描述

(199) 199 2919 最后的记录debug与调用 tcp 输出

在这里插入图片描述

(200) 200 2920 汇总哪里调用了dropwithreset

在这里插入图片描述

(201)

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编辑推荐 “我在全国各地教授Cisc0联网课程.每本新的有名的数据通信的书我都听说了,因为我的学生们拿它们作为课程的参考书。Stevens的《TCP/IP详解卷1 协议》的到来如同一枚炸弹的爆炸……学生们被这本书所倾倒。我刚读完《TCP/IP详解卷2:实现》。如果说卷1像一枚炸弹,则卷2就是一枚重磅炸弹!” “在读完Stevens的《TCP/IP详解卷1协议》后,我认为很难再有另一本如此有用的书了,但卷2就是这样一本书。有些人可能会问,如果你不是一个专职的网络程序员,如何让这本书适合于你。因为在我最初使用UNIX的日子里,回答‘这到底是如何工作的?’的标准答案是‘看源代 码’。用这本书,你不仅能看源代码,还有一个最清晰的解释:它们是如何互相配合起来的。” 《TCP/IP详解》系列覆盖了TCP/IP的许多方面.提供了一个高效直观的方法来学习联网协议族。 《TCP/IP详解卷2:实现》详尽地说明了TCP/IP协议是如何实现的。目前还没有更多的 书——此卷是唯一一本书,本书全面讲解了来源于44BSD—Lite版本的事实上的标准实现.这个 实现是运行在世界上成千上万个系统上的TCP/IP实现的基础。 500个示例总共15000行代码都是真正正在使用的代码,《TCP/IP详解卷2:实现》使用一种举例说明的方法来帮助你精通TCP/IP实现。你会掌握以下问题:插口API和协议族之间的关系,一个主机实现和一个路由器实现之间的区别等。另外本书覆盖了4.4BSD—Lite版本的最新特性,包括多播,长肥管道支持、窗口缩放、时间戳选项、防止序列号环绕及很多其他主题。 本书覆盖范围广,它基于一个当前正使用的标准,并且有详尽的示例,因此它是任何使用TCP/IP的人员一个不可缺少的资源。 内容简介 本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。本书适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。 作者简介 Gary R.Wright 研究TCP/IP多年。他是Connix公司的董事长,这个公司的基地在康涅狄格州,它提供Internet接入和咨询服务。 W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品;《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1 概述  1.1 引言 1.2 源代码表示  1.2.1 将拥塞窗口设置为  1.2.2 印刷约定 1.3 历史 1.4 应用编程接口 1.5 程序示例 1.6 系统调用和库函数 1.7 网络实现概述 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 输入处理 1.10.1 以太网输入 1.10.2 IP输入 1.10.3 UDP输入 1.10.4 进程输入 1.11 网络实现概述(续) 1.12 中断级别与并发 1.13 源代码组织 1.14 测试网络 1.15 小结 第2 mbuf:存储器缓存 2.1 引言 2.2 代码介绍 2.2.1 全局变量  2.2.2 统计  2.2.3 内核统计  2.3 mbuf的定义  2.4 mbuf结构  2.5 简单的mbuf宏和函数  2.5.1 m_get函数  2.5.2 MGET宏  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_pul lup  2.6.6 m_pullup使用总结  2.7 mbuf宏和函数的小结  2.8 Net/3联网数据结构小结  2.9 m_copy和簇引用计数  2.10 其他选择  2.11 小结 第3 接口层 3.1 引言 3.2 代码介绍  3.2.1 全局变量   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 环回初始化  …… 第4 接口:以太网 第5 接口:SLIP和环回 第6 IP编址 第7 域和协议 第8 IP:网际协议 第9 IP选项处理 第10 IP的分片与重装 第11 ICMP:Internet控制报文协议 第12 IP多播 第13 ICMP:Internet组管理协议 第14 IP多播选路 第15 插口层 第16 插口I/O 第17 插口选项 第18 Radix树路由表 第19 选路请求和选路消息 第20 选路插口 书摘插图 第1 概述  1.1 引言   本介绍伯克利(Berkeley)联网程序代码。开始我们先看一段源代码并介绍一些通篇要用的印刷约定。对各种不同代码版本的简单历史回顾让我们可以看到本书中的源代码处于什么位置。接下来介绍了两种主要的编程接口,它们在Unix与非Unix系统中用于编写TCP/IP协议。   然后我们介绍一个简单的用户程序,它发送一个UDP数据报给一个位于另一主机上的日期,时间服务器,服务器返回一个UDP数据报,其中包含服务器上日期和时间的ASCIl码字符串。这个进程发送的数据报经过所有的协议栈到达设备驱动器,来自服务器的应答从下向上经过所有协议栈到达这个进程。通过这个例子的这些细节介绍了很多核心数据结构和概念,这些数据结构和概念在后面的节中还要详细说明。 本的最后介绍了在本书中各源代码的组织,并显示了联网代码在整个组织中的位置。  1.2 源代码表示   1.2.1 将拥塞窗口设置为1   这是文件tcp—subr.c中的函数tcp—quench。这些源文件名引用4.4BSD-Lite发布的文件。4.4BSD在1.13节中讨论。每个非空白行都有编号。正文所描述的代码的起始和结束位置的行号记于行开始处,如本段所示。有时在段前有一个简短的描述性题头,对所描述的代码提供一个概述。   这些源代码同4.4BSD—Lite发行版一样,偶尔也包含一些错误,在遇到时我们会提出来并加以讨论,偶尔还包括一些原作者的编者评论。这些代码已通过了GNU缩进程序的运行,使它们从版面上看起来具有一致性。制表符的位置被设置成4个栏的界线使得这些行在一个页面中显示得很合适。在定义常量时,有些#ifdef语句和它们的对应语句#endif被删去(如:GATEWAY和MROUTING,因为我们假设系统被作为一个路由器或多播路由器)。   ……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值