⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pike_devel.sgml

📁 用来作为linux中SIP SERVER,完成VOIP网络电话中服务器的功能
💻 SGML
字号:
<!-- Module Developer's Guide --><chapter>    <chapterinfo>	<revhistory>	    <revision>		<revnumber>$Revision: 1.2 $</revnumber>		<date>$Date: 2004/08/24 09:00:35 $</date>	    </revision>	</revhistory>    </chapterinfo>    <title>Developer's Guide</title>    <para>	One single tree (for both IPv4 and IPv6) is used. Each node contains a byte, the &ip;	addresses stretching from root to the leafs.    </para>    <example>	<title>Tree of &ip addresses</title>	<programlisting format="linespecific">	   / 193 - 175 - 132 - 164tree root /                  \ 142	  \ 195 - 37 - 78 - 163	   \ 79 - 134</programlisting>	</example>    <para>	To detect the whole address, step by step, from the root to the leafs, the nodes corresponding	to each byte of the ip address are expanded. In order to be expended a node has to be hit	for a given number of times (possible by different addresses; in the previous example, the	node <quote>37</quote> was expended by the 195.37.78.163 and 195.37.79.134 hits).    </para>    <para>	For 193.175.132.164 with x= reqs_density_per_unit:    </para>    <itemizedlist>	<listitem>	    <para>		After first req hits -> the <quote>193</quote> node is built.	    </para>	</listitem>	<listitem>	    <para>		After x more hits, the <quote>175</quote> node is build; the hits of		<quote>193</quote> node are split between itself and its child--both of them gone		have x/2.	    </para>	</listitem>	<listitem>	    <para>		And so on for node <quote>132</quote> and <quote>164</quote>.	    </para>	</listitem>	<listitem>	    <para>		Once <quote>164</quote> build the entire address can be found in the		tree. <quote>164</quote> becomes a leaf. After it will be hit as a leaf for x		times, it will become <quote>RED</quote> (further request from this address will		be blocked).	    </para>	</listitem>    </itemizedlist>    <para>	So, to build and block this address were needed 3*x hits. Now, if reqs start coming from	193.175.132.142, the first 3 bytes are already in the tree (they are shared with the previous	address), so I will need only x hits (to build node <quote>142</quote> and to make it	<quote>RED</quote>) to make this address also to be blocked.  This is the reason for the	variable number of hits necessary to block an &ip;.    </para>    <para>	The maximum number of hits to turn an address red are (n is the address's number of bytes):    </para>    <para>	1 (first byte) + x (second byte) + (x / 2) * (n - 2) (for the rest of the bytes) + (n - 1)	(to turn the node to red).    </para>    <para>	So, for IPv4 (n = 4) will be 3x and for IPv6 (n = 16) will be 9x. The minimum number of hits	to turn an address red is x.    </para></chapter><!-- Keep this element at the end of the fileLocal Variables:sgml-parent-document: ("pike.sgml" "book" "chapter")End:-->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -