﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-textbox-随笔分类-网络</title><link>http://www.cnitblog.com/textbox/category/8655.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 15 Jul 2012 16:43:02 GMT</lastBuildDate><pubDate>Sun, 15 Jul 2012 16:43:02 GMT</pubDate><ttl>60</ttl><item><title>Recv与Send的超时 </title><link>http://www.cnitblog.com/textbox/archive/2012/07/14/82931.html</link><dc:creator>零度</dc:creator><author>零度</author><pubDate>Sat, 14 Jul 2012 08:30:00 GMT</pubDate><guid>http://www.cnitblog.com/textbox/archive/2012/07/14/82931.html</guid><wfw:comment>http://www.cnitblog.com/textbox/comments/82931.html</wfw:comment><comments>http://www.cnitblog.com/textbox/archive/2012/07/14/82931.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/textbox/comments/commentRss/82931.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/textbox/services/trackbacks/82931.html</trackback:ping><description><![CDATA[
		<h2 class="title content-title">用setsockopt()来控制recv()与send()的超时</h2>
		<p>在send(),recv()过程中有时由于网络状况等原因，收发不能预期进行,而设置收发超时控制： <br />在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数，<br />int nNetTimeout=1000;//1秒， <br />//设置发送超时 <br />setsockopt(socket，SOL_SOCKET,SO_SNDTIMEO，(char *)&amp;nNetTimeout,sizeof(int)); <br />//设置接收超时 <br />setsockopt(socket，SOL_SOCKET,SO_RCVTIMEO，(char *)&amp;nNetTimeout,sizeof(int)); <br />这样做在Linux环境下是不会产生效果的，须如下定义：struct timeval timeout = {3,0}; <br />//设置发送超时 <br />setsockopt(socket，SOL_SOCKET,SO_SNDTIMEO，(char *)&amp;timeout,sizeof(struct timeval)); <br />//设置接收超时 <br />setsockopt(socket，SOL_SOCKET,SO_RCVTIMEO，(char *)&amp;timeout,sizeof(struct timeval)); <br />有两点注意就是： <br />1）recv
 
()的第四个参数需为MSG_WAITALL，在阻塞模式下不等到指定数目的数据不会返回，除非超时时间到。还要注意的是只要设置了接收超时，在没有
MSG_WAITALL时也是有效的。说到底超时就是不让你的程序老在那儿等，到一定时间进行一次返回而已。 <br />2）即使等待超时时间值未到，但对方已经关闭了socket， 则此时recv()会立即返回，并收到多少数据返回多少数据。</p>
<img src ="http://www.cnitblog.com/textbox/aggbug/82931.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/textbox/" target="_blank">零度</a> 2012-07-14 16:30 <a href="http://www.cnitblog.com/textbox/archive/2012/07/14/82931.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WinSocket模型 :select(选择);WSAAsyncSelect异步选择）;WSAEventSelect（事件选择）;OverlappedI/O（重叠式I/O）以及Completionport（完成端口）</title><link>http://www.cnitblog.com/textbox/archive/2010/03/19/64724.html</link><dc:creator>零度</dc:creator><author>零度</author><pubDate>Fri, 19 Mar 2010 04:12:00 GMT</pubDate><guid>http://www.cnitblog.com/textbox/archive/2010/03/19/64724.html</guid><wfw:comment>http://www.cnitblog.com/textbox/comments/64724.html</wfw:comment><comments>http://www.cnitblog.com/textbox/archive/2010/03/19/64724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/textbox/comments/commentRss/64724.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/textbox/services/trackbacks/64724.html</trackback:ping><description><![CDATA[上面这些模型区别主要是一下几个方面<br />  如何监控socket的变化<br />  如何通知socket的变化<br /> <br />1.select  : <br />     应用场合:主要面向的是某些使用U n i x操作系统的计算机，它们采用的是B e r k e l e y套接字方案。s e l e c t模型已集成到Winsock 1.1中，它<br />                      使那些想避免在套接字调用过程中被无辜“锁定”的应用程序，采取一种有序的方式，同时进行对多个套接字的管理.<br />     原理: 利用select函数，我们判断套接字上是否存在数据，或者能否向一个套接字写入数据.<br /><br /><br />2.WSAAsyncSelect :<br />     应用场合:用于帮助应用程序开发者面向一些早期的16位Windows平台（如WindowsforWorkgroups），适应其“落后”的多任务消息环<br />                      境。应用程序仍可从这种模型中得到好处，特别是它们用一个标准的Windows例程（常称为“winproc”），对窗口消息进行<br />                      管理的时候。该模型亦得到了MicrosoftFoundationClass微软基本类，MFC）对象CSocket的采纳, <br /><br />             原理:利用WSAAsyncSelect来处理FD_READ、FD_WRITE、FD_ACCEPT、FD_CONNECT、FD_CLOSE消息<br />3 WSAEventSelect:<br />      应用场合: 各种异步Socket 程序. WSAWaitForMultipleEvents 限制最多只能等待64个Event . <br />              原理: 将socket的各种变化通过Event来通知 区别WSAAsyncSelect 窗口消息来通知<br /><br />4.OverlappedI/O:<br />       应用场合: 与WSAEventSelect模式类似<br />               原理:  将socket的各种变化通过Event来通知  并多了一个绑定的event处理过程.<br /><br />5.Completionport:<br />       应用场合: 完成端口”模型是迄今为止最为复杂的一种I / O模型。然而，假若一个应用程序同时需要管理为数众多的套接字，那么采用这种模 <br />                         型，往往可以达到最佳的系统性能！但不幸的是，该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性，<br />                         只有在你的应用程序需要同时管理数百乃至上千个套接字的时候，而且希望随着系统内安装的C P U数量的增多，应用程序的性<br />                          能也可以线性提升，才应考虑采用“完成端口”模型<br />               原理: 完成端口模型要求我们创建一个Wi n 3 2完成端口对象，通过指定数量的线程，对重叠I / O请求进行管理，以便为已经完成的重<br />                          叠I / O请求提供服务<br /><br /><img src ="http://www.cnitblog.com/textbox/aggbug/64724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/textbox/" target="_blank">零度</a> 2010-03-19 12:12 <a href="http://www.cnitblog.com/textbox/archive/2010/03/19/64724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP与UDP</title><link>http://www.cnitblog.com/textbox/archive/2009/12/26/63396.html</link><dc:creator>零度</dc:creator><author>零度</author><pubDate>Sat, 26 Dec 2009 04:15:00 GMT</pubDate><guid>http://www.cnitblog.com/textbox/archive/2009/12/26/63396.html</guid><wfw:comment>http://www.cnitblog.com/textbox/comments/63396.html</wfw:comment><comments>http://www.cnitblog.com/textbox/archive/2009/12/26/63396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/textbox/comments/commentRss/63396.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/textbox/services/trackbacks/63396.html</trackback:ping><description><![CDATA[UDP和TCP的对比：<p class="grey">TCP优缺点：</p><p class="grey">优点：<br />
         1．TCP提供以认可的方式显式地创建和终止连接。<br />
         2．TCP保证可靠的、顺序的（数据包以发送的顺序接收）以及不会重复的数据传输。<br />
         3．TCP处理流控制。<br />
         4．允许数据优先<br />
         5．如果数据没有传送到，则TCP套接口返回一个出错状态条件。<br />
         6．TCP通过保持连续并将数据块分成更小的分片来处理大数据块。—无需程序员知道</p><p class="grey">缺点： TCP在转移数据时必须创建（并保持）一个连接。这个连接给通信进程增加了开销，让它比UDP速度要慢。</p><p class="grey">UDP优缺点：<br />
         1．UDP不要求保持一个连接<br />
         2．UDP没有因接收方认可收到数据包（或者当数据包没有正确抵达而自动重传）而带来的开销。<br />
         3．设计UDP的目的是用于短应用和控制消息<br />
         4．在一个数据包连接一个数据包的基础上，UDP要求的网络带宽比TDP更小。</p><img src ="http://www.cnitblog.com/textbox/aggbug/63396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/textbox/" target="_blank">零度</a> 2009-12-26 12:15 <a href="http://www.cnitblog.com/textbox/archive/2009/12/26/63396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP 概念（转）</title><link>http://www.cnitblog.com/textbox/archive/2009/12/26/63395.html</link><dc:creator>零度</dc:creator><author>零度</author><pubDate>Sat, 26 Dec 2009 04:04:00 GMT</pubDate><guid>http://www.cnitblog.com/textbox/archive/2009/12/26/63395.html</guid><wfw:comment>http://www.cnitblog.com/textbox/comments/63395.html</wfw:comment><comments>http://www.cnitblog.com/textbox/archive/2009/12/26/63395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/textbox/comments/commentRss/63395.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/textbox/services/trackbacks/63395.html</trackback:ping><description><![CDATA[
		<h1>基本概念</h1>
		<hr />
		<h2 id="tcp-connect">1.TCP连接的三路握手</h2>
		<center>
				<img src="http://duangw.cn/computer/history/unix-net-prog/images/tcp-connect.GIF" />
				<br />
				<img src="http://www.embedu.org/Column/images/Column179-2.jpg" />
				<br />
		</center>
		<p>简要说明：</p>
		<ol>
				<li>服务器必须准备好接受外来的连接，这通过调用socket、bind和listen函数完成，称为被动打开(passive open)；</li>
				<li>客
户通过调用connect进行主动打开(active
open)，这引起客户TCP发送一个SYN分节(表示同步)，它告诉服务器客户将在(待建立)连接中发送的数据的初始序列号。一般情况下SYN分节不携
带数据，它只含有一个IP头部、一个TCP头部以及可能有的TCP选项；</li>
				<li>服务器必须确认客户的SYN，同时自己也得发送一个SYNV分节，它含有服务器将在同一连接中发送数据的初始序列号。服务器以单个分节向客户发送SYN和对客户SYN的ACK；</li>
				<li>客户必须确认服务器的SYN。</li>
		</ol>
		<p> </p>
		<h2 id="tcp-close">2.TCP关闭的四个分节</h2>
		<center>
				<img src="http://duangw.cn/computer/history/unix-net-prog/images/tcp-close.GIF" />
		</center>
		<p>简要说明：</p>
		<ol>
				<li>一端的应用程序首先调用close，称这端执行主动关闭(active close)。这端的TCP于是发送一个FIN分节，表示数据发送完毕；</li>
				<li>接收到FIN的另一端执行被动关闭(passive close)。这个FIN由TCP确认，它的接收也作为文件结束符传递给接收方应用程序(放在已排队等候应用程序接收的任何其他数据之后)，因为FIN的接收意味着应用程序在相应连接上再也接收不到额外数据；</li>
				<li>一段时间后，接收到FIN文件结束符的应用程序将调用close关闭它的套接口，这导致它的TCP也发送一个FIN；</li>
				<li>接收到这个FIN的原发送方TCP(即执行主动关闭的那一端)对它进行确认。</li>
		</ol>
		<p> </p>
		<h2 id="tcp-status">3.TCP连接的11种状态极其相互转换</h2>
		<center>
				<img src="http://duangw.cn/computer/history/unix-net-prog/images/tcp-status.GIF" />
		</center>
		<p>简要说明：</p>
		<h4>(1).起始状态(CLOSED)</h4>
		<p>服务器被动打开，进入LISTEN状态；</p>
		<p>客户主动打开，发送SIN分节，进入SYN_SENT状态；</p>
		<h4>(2).被动打开状态(LISTEN)</h4>
		<p>接收到SYN分节，发送ACK，发送SYN后，进入SYN_RCVD状态；</p>
		<h4>(3).主动打开状态(SYN_SENT)</h4>
		<p>应用close或超时，则返回CLOSED状态；</p>
		<p>接收到SYN，发送ACK，发送SYN(同时打开)，进入SYN_RCVD状态；</p>
		<p>接收到SYN，ACK，发送ACK后，进入ESTABLISHED状态；</p>
		<h4>(4).SYN_RCVD状态</h4>
		<p>接收到ACK，则进入ESTABLISHED状态；</p>
		<p>接收到RST，则返回到LISTEN状态；</p>
		<h4>(5).数据传输状态(ESTABLISHED)</h4>
		<p>接收到FIN，发送ACK，进入CLOSE_WAIT状态；</p>
		<p>应用close，发送FIN，进入FIN_WAIT_1状态；</p>
		<h4>(6).CLOSE_WAIT状态</h4>
		<p>应用close，或发送FIN，进入LAST_ACK状态；</p>
		<h4>(7).LAST_ACK状态</h4>
		<p>接收到ACK，则返回到起始状态(CLOSED)；</p>
		<h4>(8).FIN_WAIT_1状态</h4>
		<p>接收到FIN，发送ACK，进入同时关闭状态(CLOSING)；</p>
		<p>接收到ACK，进入FIN_WAIT_2状态；</p>
		<p>接收到FIN，ACK，发送ACK，进入TIME_WAIT状态；</p>
		<h4>(9).同时关闭状态(CLOSING)</h4>
		<p>接收到ACK，进入TIME_WAIT状态；</p>
		<h4>(10).FIN_WAIT_2状态</h4>
		<p>接收FIN，发送ACK，进入TIME_WAIT状态；</p>
		<h4>(11).TIME_WAIT状态</h4>
		<p>经过2MSL超时，返回初始状态(CLOSED)；</p>
		<p> </p>
		<h2 id="ipv4-struct">4.IPv4套接口地址结构</h2>
		<pre>struct in_addr {<br />	in_addr_t s_addr;<br />	/* 32-bit IPv4 address，network byte ordered*/<br />};<br /><br />struct sockaddr_in {<br />	uint8_t sin_len;<br />	/* length of structure(16) */<br /><br />	sa_family_t sin_family;<br />	/* AF_INET */<br /><br />	in_port_t sin_port;<br />	/* 16-bit TCP or UDP port number，network byte ordered */<br /><br />	struct in_addr sin_addr;<br />	/* 32-bit IPv4 address，network byte ordered */<br /><br />	char sin_zero[8];<br />	/* unused */<br />};<br /></pre>
		<p>注意事项：</p>
		<ul>
				<li>我们一般只使用三个成员：sin_family、sin_addr和sin_port；</li>
				<li>IPv4地址和端口号在结构中总是以网络字节序存储；</li>
				<li>一般在使用前，将整个结构初始化为0。</li>
		</ul>
		<p> </p>
		<h2 id="common-struct">5.通用套接口地址结构</h2>
		<pre>struct sockaddr {<br />	uint8_t sa_len;<br /><br />	sa_family_t sa_family;<br />	/* address family:AF_xxx */<br /><br />	char sa_data[14];<br />	/* protocol-spacial address */<br />};<br /></pre>
		<p> </p>
		<h2 id="ipv6-struct">6.IPv6套接口地址结构</h2>
		<pre>struct in6_addr {<br />	uint8_t s6_addr[16];<br />	/* 128-bit IPv6 address，network byte ordered */<br />};<br /><br />#define SIN6_LEN /* required for compile-time tests */<br /><br />struct sockaddr_in6 {<br />	uint8_t sin6_len;<br />	/* length for this struct(24) */<br /><br />	sa_family_t sin6_family;<br />	/* AF_INET6 */<br /><br />	in_port_t sin6_port;<br />	/* transport layer port，network byte ordered */<br /><br />	uint32_t sin6_flowinfo;<br />	/* priority and flow label */<br /><br />	struct in6_addr sin6_addr;<br />	/* IPv6 address，network byte ordered */<br />};<br /></pre>
		<p>注意事项：</p>
		<ul>
				<li>如果系统支持套接口地址结构中的长度成员，则SIN6_LEN常值必须定义；</li>
				<li>IPv6地址族是AF_INET6，而IPv4地址族是AF_INET；</li>
				<li>结构中的成员是有序排列的。</li>
		</ul>
		<p> </p>
		<h2 id="other-datatype">7.其他数据类型</h2>
		<table class="leftAlign">
				<tbody>
						<tr>
								<th>名称</th>
								<th>说明</th>
						</tr>
						<tr>
								<td>int8_t</td>
								<td>带符号的8位整数</td>
						</tr>
						<tr>
								<td>uint8_t</td>
								<td>无符号的8位整数</td>
						</tr>
						<tr>
								<td>int16_t</td>
								<td>带符号的16位整数</td>
						</tr>
						<tr>
								<td>uint16_t</td>
								<td>无符号的16位整数</td>
						</tr>
						<tr>
								<td>int32_t</td>
								<td>带符号的32位整数</td>
						</tr>
						<tr>
								<td>uint32_t</td>
								<td>无符号的32位整数</td>
						</tr>
						<tr>
								<td>sa_family_t</td>
								<td>套接口地址结构的地址族</td>
						</tr>
						<tr>
								<td>socklen_t</td>
								<td>套接口地址结构的长度，一般为uint32_t</td>
						</tr>
						<tr>
								<td>in_addr_t</td>
								<td>IPv4地址，一般为uint32_t</td>
						</tr>
						<tr>
								<td>in_port_t</td>
								<td>TCP或UDP端口，一般为uint16_t</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/textbox/aggbug/63395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/textbox/" target="_blank">零度</a> 2009-12-26 12:04 <a href="http://www.cnitblog.com/textbox/archive/2009/12/26/63395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>万维网络传输原理</title><link>http://www.cnitblog.com/textbox/archive/2009/12/26/63394.html</link><dc:creator>零度</dc:creator><author>零度</author><pubDate>Sat, 26 Dec 2009 03:37:00 GMT</pubDate><guid>http://www.cnitblog.com/textbox/archive/2009/12/26/63394.html</guid><wfw:comment>http://www.cnitblog.com/textbox/comments/63394.html</wfw:comment><comments>http://www.cnitblog.com/textbox/archive/2009/12/26/63394.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/textbox/comments/commentRss/63394.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/textbox/services/trackbacks/63394.html</trackback:ping><description><![CDATA[
		<br />距离上次写东西已经快一个月了。这个月里由于工作和游戏的原因很少给自己充电了。唉！！用不了多久又把学来的东西还回去了。<br />今天写这个还是由于工作原因写的。公司要写一个socket的程序用于监控个个分店的数据。<br />Socket 编程，一个跨越语言统一编程方式。不论在windows和linux平台上的编程原理都是相似的。<br /><br />首先先熟悉一些概念,<br />在现实生活中要实现信息传递就要靠沟通（通讯）。<br />通讯有两种方式： 广播通讯，点对点通讯 。<br />广播通讯<br />   优点：能实现一对多点传递信息，无需知道对方的地址（身份），也无需知道有多少接收点可以接收到信息。<br />   缺点：不能保证每个接受方都能受到信息。 安全性不高，任何接收点都有可能接收到信息，通常需要做较强额外数据加密类加强安全性。<br /><br /><br />点对点通讯<br />  优点：安全性高。别人无法接收到发到目的接收方信息。可以监控到对方的接收状态<br />  缺点：只能一次一对一的传递信息。<br /><br />这两种通讯方式都有其的优点和缺点。结合使用才能发挥作用。如可以通过广播来找一群接收点中的一个点，然后用点对点来通讯。<br /><br /><br />对于电脑网络的通讯来说，网络上的电脑电脑是如何连接在一起而实现点对点通讯的呢？<br />IP和端口 是网络通讯的ID（就跟手机号码和人们的身份证同理）<br />那全世界那么多台电脑的IP地址是如何分配的呢？<br />电脑又怎么会根据IP和端口来知道这些信息应该发到那里去呢？<br />一堆堆的问题在脑海里浮现。要实现只有IP和端口就知道目标电脑在那里就把信息发到那里的功能必须要一个中央单元来管理这些IP地址的信息。全世界的网络就类似一超级树状的网络。树的根点就是那超级中央电脑（这台根电脑是在美国 root serverr）。一般国家（大洲）都会有一个管理这个国家内ip路由的中央电脑。（这也就是为什么打起战来，美国一关闭那台根电脑我们的网络要连接到美国就无法连接了。只能在本国ip访问）<br />说到底就是要实现通讯就要靠路由器(中央电脑也是一个超级路由器），路由器是组建一个区域网的节点（小中央路由电脑）它的IP是由它的父节点来管理的，世界上存在无数个小区域网，他们都是靠一个树状的网络联系在一起。节点就是路由器。我们的信息在网络中传输都会被封装在一个一个的封包里。每发送一层路由器都会加上一层路由外壳，直到找到管理目标IP的路由器为止，再往下传输就是解路由壳了。一层一层的往下剥直到目标电脑。<br /><br />一下面是一些世界的比较高层次的路由服务器。由于IP数字对用户来说比较难记忆，路由器还提供有域名解析。把用户输入的www.XXXX.com在路由器内部解析成ip然后传输。<br /><br />目前全球共有13台域名根服务器(root 
server)。1个为主根服务器，放置在美国；其余12个均为辅根服务器，其中9个放置在美国、欧洲2个(位于英国和瑞典)、亚洲1个(位于日本)。由ICANN管理，互联网名称与数字地址分配机构（The 
Internet Corporation for Assigned Names and 
Numbers，ICANN）是一个非营利性的国际组织，负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。<br /><br />A      
INTERNI.NET                 （美国，弗吉尼亚州）     198.41.0.4 <br />B      美国信息科学研究所      
（美国，加利弗尼亚）     128.9.0.107 <br />C     PSINet公司                     （美国，弗吉尼亚州）     
192.33.4.12 <br />D     马里兰大学                     （美国马里兰州）            128.8.10.90 
<br />E     美国航空航天管理局       （美国加利弗尼亚州）      192.203.230.10 <br />F     
因特网软件联盟              （美国加利弗尼亚州）      192.5.5.241 <br />G    
美国国防部网络信息中心（美国弗吉尼亚州）         192.112.36.4 <br />H    美国陆军研究所               
（美国马里兰州）             128.63.2.53 <br />I      Autonomica公司              
（瑞典斯德哥尔摩）         192.36.148.17 <br />J     VerSign公司                    
（美国弗吉尼亚州）         192.58.128.30 <br />K    RIPE NCC                          
(英国伦敦)                      192.0.14.129 <br />L    
IANA                                 （美国弗吉尼亚州）         198.32.64.12 <br />M    
WIDE Project                     (日本东京）                    202.12.27.33 <br /><br />任何域名解析都要经过这13台根服务器获得顶级索引，并不是说访问 .com 会经过这些服务器，访问 .cn 
就不经过这些服务器。<br /><br />而每一个顶级域，不管是gTLD(通用顶级域)，还是ccTLD(国别顶级域)，它们都有自己的域名服务器(即该顶级域的NS记录)，比如：<br /><br />.com 
&amp; .net 的域名服务器是：[a-m].gtld-servers.net 共13个<br />.org 的域名服务器是：tld1.ultradns.net 
等6个<br />.biz 的域名服务器是：[a-h].gtld.biz 共8个<br />.info 的域名服务器是：tld1.ultradns.net 
等6个<br />.cn 的域名服务器是：ns.cnc.ac.cn 等6个<br />.jp 的域名服务器是：[a-f].dns.jp 共6个<br />等......<br /><br />        
近年来国内网民数增长很快,CN域名注册量也上升了很多,中国已于2003年和2004年引进了域名根服务器的F镜像服务器和J镜像服务器及顶级域名.COM 
.NET的镜像服务器。国内从此有了域名根服务器的镜像服务器(目前这两台域名根服务器的镜像服务器: F镜像服务器在中国电信,J镜像服务器和.COM 
.NET镜像服务器在中国网通)。据说镜像服务器的管理是由技术持有方来进行日常的维护和管理。有了域名根服务器的镜像服务器后,国内解析.CN域名和.COM域名就不用到国外的域名根服务器获得顶级索引了,这将从根本上提高国内网络访问速度<br /><br /><br /><img src ="http://www.cnitblog.com/textbox/aggbug/63394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/textbox/" target="_blank">零度</a> 2009-12-26 11:37 <a href="http://www.cnitblog.com/textbox/archive/2009/12/26/63394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>