TCP的函数-ax88772c,usb2.0转网口,市场上最具性价比的方案

时间:2024-07-30 05:03:13
【文件属性】:

文件名称:TCP的函数-ax88772c,usb2.0转网口,市场上最具性价比的方案

文件大小:55.88MB

文件格式:PDF

更新时间:2024-07-30 05:03:13

TCP IP详解 全三卷

第27章 TCP的函数 27.1 引言 本章介绍多个T C P函数,它们为下两章进一步讨论 T C P的输入打下了基础: • t c p _ d r a i n是协议的资源耗尽处理函数,当内核的 m b u f用完时被调用。实际上,不做 任何处理。 • t c p _ d r o p发送R S T来丢弃连接。 • t c p _ c l o s e执行正常的T C P连接关闭操作:发送 F I N,并等待协议要求的 4次报文交换 以终止连接。卷1的1 8 . 2节讨论了连接关闭时双方需要交换的 4个报文。 • t c p _ m s s处理收到的M S S选项,并在T C P发送自己的M S S选项时计算应填入的M S S值。 • t c p _ c t l i n p u t在收到对应于某个 T C P报文段的 I C M P差错时被调用,它接着调用 t c p _ n o t i f y处理I C M P差错。t c p _ q u e n c h专门负责处理I C M P的源站抑制差错。 • T C P _ R E A S S宏和t c p _ r e a s s函数管理连接重组队列中的报文段。重组队列处理收到的 乱序报文段,某些报文段还可能互相重复。 • t c p _ t r a c e向内核的T C P调试循环缓存中添加记录 (插口选项S O _ D E B U G)。运行t r p t ( 8 )程序可以打印缓存内容。 27.2 t c p _ d r a i n函数 t c p _ d r a i n是所有T C P函数中最简单的。它是协议的 p r _ d r a i n函数,在内核的m b u f用 完时,由m _ r e c l a i m调用。图1 0 - 3 2中,i p _ d r a i n丢弃其重组队列中的所有数据报分片, 而U D P则不定义自己的资源耗尽处理函数。尽管 T C P也占用m b u f—位于接收窗口内的乱序 报文段—但N e t / 3实现的 T C P并不丢弃这些 m b u f,即使内核的 m b u f已用完。相反, t c p _ d r a i n不做任何处理,假定收到的 (但次序差错 )的T C P报文段比 I P分片重要。 27.3 t c p _ d r o p函数 t c p _ d r o p在整个系统中多次被调用,发送 R S T报文段以丢弃连接,并向应用进程返回差 错。它与关闭连接 (t c p _ d i s c o n n e c t函数 )不同,后者向对端发送 F I N,并遵守T C P状态变 迁图所规定的连接终止步骤。 图2 7 - 1列出了调用t c p _ d r o p的7种情况和相应的e r r n o参数。 图2 7 - 2给出了t c p _ d r o p函数。 2 0 2 - 2 1 3 如果TCP收到了一个SYN,连接被同步,则必须向对端发送RST。t c p _ d r o p把状态 设为C L O S E D,并调用t c p _ o u t p u t。从图2 4 -1 6可知,C L O S E D状态的t c p _ o u t f l a g s数组中 包含R S T标志。 2 1 4 - 2 1 6 如果e r r n o等于E T I M E D O U T,且连接上曾收到过软差错 (如E H O S T U N R E A C H),


网友评论