﻿<?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博客-小白的计算机博客</title><link>http://www.cnitblog.com/603736112/</link><description>技术交流</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 05:58:35 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 05:58:35 GMT</pubDate><ttl>60</ttl><item><title>Netstat命令</title><link>http://www.cnitblog.com/603736112/archive/2007/06/27/29107.html</link><dc:creator>白凯帆</dc:creator><author>白凯帆</author><pubDate>Wed, 27 Jun 2007 04:06:00 GMT</pubDate><guid>http://www.cnitblog.com/603736112/archive/2007/06/27/29107.html</guid><wfw:comment>http://www.cnitblog.com/603736112/comments/29107.html</wfw:comment><comments>http://www.cnitblog.com/603736112/archive/2007/06/27/29107.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/603736112/comments/commentRss/29107.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/603736112/services/trackbacks/29107.html</trackback:ping><description><![CDATA[netstat命令的功能是显示网络连接、路由表和网络接口信息，可以让用户得知目前都有哪些网络连接正在运作。 <br>该命令的一般格式为：
<p>&#160;</p>
<p>netstat [选项]</p>
<p>命令中各选项的含义如下：</p>
<p>-a 显示所有socket，包括正在监听的。</p>
<p>-c 每隔1秒就重新显示一遍，直到用户中断它。</p>
<p>-i 显示所有网络接口的信息，格式同&#8220;ipconfig -e&#8221;。</p>
<p>-n 以网络IP地址代替名称，显示出网络连接情形。</p>
<p>-r 显示核心路由表，格式同&#8220;route -e&#8221;。</p>
<p>-t 显示TCP协议的连接情况。</p>
<p>-u 显示UDP协议的连接情况。</p>
<p>-v 显示正在进行的工作。</p>
<p>[例]在本地机上使用netstat命令。</p>
<p>$ netstat</p>
<p>Active Internet connections （w/o servers）</p>
<p>Proto Recv-Q Send-Q Local Address Foreign Address State </p>
<p>Active UNIX domain sockets （w/o servers）</p>
<p>Proto RefCnt Flags Type State I-Node Path</p>
<p>unix 1 [ ] STREAM CONNECTED 270 @00000008</p>
<p>unix 1 [ ] STREAM CONNECTED 150 @00000002</p>
<p>unix 1 [ ] STREAM CONNECTED 104 @00000001</p>
<p>unix 1 [ ] STREAM CONNECTED 222 @00000004</p>
<p>unix 1 [ ] STREAM CONNECTED 171 @00000003</p>
<p>unix 1 [ ] STREAM CONNECTED 271 /dev/log</p>
<p>unix 1 [ ] STREAM CONNECTED 225 /dev/log</p>
<p>unix 1 [ ] STREAM CONNECTED 223 /dev/log</p>
<p>unix 1 [ ] STREAM CONNECTED 203 /dev/log</p>
<p>unix 1 [ ] STREAM CONNECTED 105 /dev/log</p>
<p>&#8230;&#8230;</p>
<p>nslookup命令</p>
<p>nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器，就可以用这个命令查看不同主机的IP地址对应的域名。</p>
<p>该命令的一般格式为：</p>
<p>nslookup [IP地址/域名]</p>
<p>[例]在本地机上使用nslookup命令。</p>
<p>$ nslookup</p>
<p>Default Server: name.tlc.com.cn</p>
<p>Address: 192.168.1.99</p>
<p>&gt; </p>
<p>在符号&#8220;&gt;&#8221;后面输入要查询的IP地址或域名并回车即可。如果要退出该命令，输入exit并回车即可。</p>
<p>finger命令</p>
<p>finger命令的功能是查询用户的信息，通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息，需要在用户名后面接&#8220;@主机名&#8221;，采用[用户名@主机名]的格式，不过要查询的网络主机需要运行finger守护进程。</p>
<p>该命令的一般格式为：</p>
<p>finger [选项] [使用者] [用户@主机]</p>
<p>命令中各选项的含义如下：</p>
<p>-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。 -l 除了用-s选项显示的信息外，还显示用户主目录、登录shell、邮件状态等信息，以及用户主目录下的.plan、.project和.forward文件的内容。</p>
<p>-p 除了不显示.plan文件和.project文件以外，与-l选项相同。</p>
<p>　</p>
<p>[例]在本地机上使用finger命令。</p>
<p>$ finger xxq</p>
<p>Login: xxq Name: </p>
<p>Directory: /home/xxq Shell: /bin/bash</p>
<p>Last login Thu Jan 1 21:43 （CST） on tty1</p>
<p>No mail.</p>
<p>No Plan.</p>
<p>　</p>
<p>$ finger</p>
<p>Login Name Tty Idle Login Time Office Office Phone</p>
<p>root root *1 28 Nov 25 09:17</p>
<p>&#8230;&#8230;</p>
<p>ping命令</p>
<p>ping命令用于查看网络上的主机是否在工作，它向该主机发送ICMP ECHO_REQUEST包。有时我们想从网络上的某台主机上下载文件，可是又不知道那台主机是否开着，就需要使用ping命令查看。</p>
<p>该命令的一般格式为：</p>
<p>ping [选项] 主机名/IP地址</p>
<p>命令中各选项的含义如下：</p>
<p>-c 数目 在发送指定数目的包后停止。</p>
<p>-d 设定SO_DEBUG的选项。</p>
<p>-f 大量且快速地送网络封包给一台机器，看它的回应。</p>
<p>-I 秒数 设定间隔几秒送一个网络封包给一台机器，预设值是一秒送一次。</p>
<p>-l 次数 在指定次数内，以最快的方式送封包数据到指定机器（只有超级用户可以使用此选项）。</p>
<p>-q 不显示任何传送封包的信息，只显示最后的结果。</p>
<p>-r 不经由网关而直接送封包到一台机器，通常是查看本机的网络接口是否有问题。</p>
<p>-s 字节数 指定发送的数据字节数，预设值是56，加上8字节的ICMP头，一共是64ICMP数据字节。</p>
<p><br>TurboLinux系统提供了大量命令和许多实用工具软件，本书由于篇幅的关系，主要介绍了TurboLinux的一些常用命令和实用软件。读者可以使用系统提供的联机帮助手册获取更多的信息。</p>
<p>TurboLinux系统的联机手册中有大量的可用信息，根据其内容分成若干节。在Linux联机帮助手册上，几乎每个命令都有说明。因此，当用户对于Linux上的一个命令不会用或是不太了解时，就请使用联机帮助命令。</p>
<p>本章主要介绍几个常用的联机帮助命令。包括：</p>
<p>man 查询每个命令的使用方法</p>
<p>help 查询Shell命令</p>
<p>whereis 查询某个命令的位置</p>
<p>locate 查询某个文件的位置</p>
<p>man命令</p>
<p>这个命令应该是每个Linux系统上都有的。它格式化并显示在线的手册页。通常使用者只要在命令man后，输入想要获取的命令的名称（例如 ls），man就会列出一份完整的说明，其内容包括命令语法、各选项的意义以及相关命令等。</p>
<p>该命令的一般形式为：</p>
<p>man [选项] 命令名称</p>
<p>命令中各选项的含义分别为：</p>
<p>-M 路径 指定搜索man手册页的路径，通常这个路径由环境变量MANPATH预设，如果在命令行上指定另外的路径，则覆盖MANPATH的设定。</p>
<p>-P 命令 指定所使用的分页程序，缺省使用/usr/bin/less&#8211;is，在环境变量MANPAGER中预设。</p>
<p>-S 章节 由于一个命令名称可能会有很多类别，至于类别，列出如下：</p>
<p>　</p>
<p>章节 说明</p>
<p>1 一般使用者的命令</p>
<p>2 系统调用的命令</p>
<p>3 C语言函数库的命令</p>
<p>4 有关驱动程序和系统设备的解释</p>
<p>5 配置文件的解释</p>
<p>6 游戏程序的命令</p>
<p>7 其他的软件或是程序的命令</p>
<p><br>有关系统维护的命令 </p>
<p>　</p>
<p>-a 显示所有的手册页，而不是只显示第一个。</p>
<p>-d 这个选项主要在检查时使用，如果用户加入了一个新的文件，就可以用这个选项检查是否出错，这个选项并不会列出文件内容。</p>
<p>-f 只显示出命令的功能而不显示其中详细的说明文件。</p>
<p>-p string 设定运行的预先处理程序的顺序，共有下列几项：</p>
<p>e eqn t tbl</p>
<p>g grap r refer</p>
<p>p pic v vgrind</p>
<p>-w 不显示手册页，只显示将被格式化和显示的文件所在位置。</p>
<p>例如：查看cd命令的使用方法。</p>
<p>$ man cd</p>
<p>cd（n） Tcl Built-In Commands cd（n）</p>
<p>_________________________________________________________________</p>
<p>NAME</p>
<p>cd - Change working directory</p>
<p>SYNOPSIS</p>
<p>cd ?dirName?</p>
<p>_________________________________________________________________</p>
<p>DEs criptION</p>
<p>Change the current working directory to dirName, or to the</p>
<p>home directory （as specified in the HOME environment vari-</p>
<p>able） if dirName is not given. Returns an empty string.</p>
<p>KEYWORDS</p>
<p>working directory</p>
<p>Tcl 1</p>
<p>（END）</p>
<p>可以按q键退出man命令。</p>
<p>help命令</p>
<p>help命令用于查看所有Shell命令。用户可以通过该命令寻求Shell命令的用法，只需在所查找的命令后输入help命令，就可以看到所查命令的内容了。</p>
<p>　</p>
<p>例如：查看od命令的使用方法。</p>
<p>$ od --help</p>
<p>　whereis命令</p>
<p>这个程序的主要功能是寻找一个命令所在的位置。例如，我们最常用的ls命令，它是在/bin这个目录下的。如果希望知道某个命令存在哪一个目录下，可以用whereis命令来查询。</p>
<p>该命令的一般形式为：</p>
<p>whereis [选项] 命令名</p>
<p>说明：一般直接使用不加选项的whereis命令，但用户也可根据特殊需要选用它的一些选项。</p>
<p>该命令中各选项的含义分别为：</p>
<p>b 只查找二进制文件</p>
<p>m 查找主要文件</p>
<p>s 查找来源</p>
<p>u 查找不常用的记录文件</p>
<p>例如：查找ls命令在什么目录下。</p>
<p>$ whereis ls</p>
<p style="FONT-SIZE: 10pt">ls:/bin/ls/usr/man/man1/ls.1 </p>
<img src ="http://www.cnitblog.com/603736112/aggbug/29107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/603736112/" target="_blank">白凯帆</a> 2007-06-27 12:06 <a href="http://www.cnitblog.com/603736112/archive/2007/06/27/29107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP/IP协议体系结构简介 </title><link>http://www.cnitblog.com/603736112/archive/2007/06/27/29106.html</link><dc:creator>白凯帆</dc:creator><author>白凯帆</author><pubDate>Wed, 27 Jun 2007 03:58:00 GMT</pubDate><guid>http://www.cnitblog.com/603736112/archive/2007/06/27/29106.html</guid><wfw:comment>http://www.cnitblog.com/603736112/comments/29106.html</wfw:comment><comments>http://www.cnitblog.com/603736112/archive/2007/06/27/29106.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/603736112/comments/commentRss/29106.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/603736112/services/trackbacks/29106.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">1、TCP/IP协议栈 <br><br>四层模型 <br>TCP/IP这个协议遵守一个四层的模型概念：应用层、传输层、互联层和网络、接口层。 <br><br>网络接口层 <br>模型的基层是网络接口层。 <br><br>负责数据帧的发送和接收，帧是独立的网络信息传输单元 。 <br>网络接口层将帧放在网上，或从网上把帧取下来。 <br><br>互联层 <br>互联协议将数据包封装成internet数据报，并运行必要的路由算法。 <br>这里有四个互联协议： <br>网际协议IP：负责在主机和网络之间寻址和路由数据包。 <br>地址解析协议ARP：获得同一物理网络中的硬件主机地址。 <br>网际控制消息协议ICMP：发送消息，并报告有关数据包的传送错误。 <br>互联组管理协议IGMP：被IP主机拿来向本地多路广播路由器报告主机组成员。 <br><br>传输层 <br>传输协议在计算机之间提供通信会话 。 <br>传输协议的选择根据数据传输方式而定。 <br>两个传输协议： <br>传输控制协议TCP：为应用程序提供可靠的通信连接。 适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。 <br>用户数据报协议UDP：提供了无连接通信，且不对传送包进行可靠的保证。适合于一次传输小量数据，可靠性则由应用层来负责。 <br><br>应用层 <br>应用程序通过这一层访问网络。 <br><br>网络接口技术 <br>IP使用网络设备接口规范NDIS向网络接口层提交帧。IP支持广域网和本地网接口技术。 <br><br>串行线路协议 <br>TCP/IPG一般通过internet串行线路协议SLIP或点对点协议PPP在串行线上进行数据传送。(是不是我们平时把它称之为异步通信，对于要拿LINUX提供建立远程连接的朋友应该多研究一下这方面的知识)<br><br>2、ARP <br><br>　　要在网络上通信，主机就必须知道对方主机的硬件地址(我们不是老遇到网卡 的物理地址嘛)。地址解析就是将主机IP地址映射为硬件地址的过程。地址解 析协议ARP用于获得在同一物理网络中的主机的硬件地址。 <br><br>解释本地IP地址(要了解地址解析工作过程的朋友看好了) <br><br>主机IP地址解析为硬件地址： <br>(1)当一台主机要与别的主机通信时，初始化ARP请求。当该IP断定IP地址是 本地时，源主机在ARP缓存中查找目标主机的硬件地址。 <br>(2)要是找不到映射的话，ARP建立一个请求，源主机IP地址和硬件地址会被 包括在请求中，该请求通过广播，使所有本地主机均能接收并处理。 <br>(3)本地网上的每个主机都收到广播并寻找相符的IP地址。 <br>(4)当目标主机断定请求中的IP地址与自己的相符时，直接发送一个ARP答复， 将自己的硬件地址传给源主机。以源主机的IP地址和硬件地址更新它的ARP 缓存。源主机收到回答后便建立起了通信。 <br><br>解析远程IP地址 <br><br>不同网络中的主机互相通信，ARP广播的是源主机的缺省网关。 <br>目标IP地址是一个远程网络主机的话，ARP将广播一个路由器的地址。 <br><br>(1)通信请求初始化时，得知目标IP地址为远程地址。源主机在本地路由表中 查找，若无，源主机认为是缺省网关的IP地址。在ARP缓存中查找符合该网关 记录的IP地址(硬件地址)。 <br>(2)若没找到该网关的记录，ARP将广播请求网关地址而不是目标主机的地址。 路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由 器以传送到目标主机的网络，最终达到目标主机。 <br>(3)在路由器上，由IP决定目标IP地址是本地还是远程。如果是本地，路由器 用ARP(缓存或广播)获得硬件地址。如果是远程，路由器在其路由表中查找该 网关，然后运用ARP获得此网关的硬件地址。数据包被直接发送到下一个目标 主机。 <br>(4)目标主机收到请求后，形成ICMP响应。因源主机在远程网上，将在本地路 由表中查找源主机网的网关。找到网关后，ARP即获取它的硬件地址。 <br>(5)如果此网关的硬件地址不在ARP缓存中，通过ARP广播获得。一旦它获得 硬件地址，ICMP响应就送到路由器上，然后传到源主机。 <br><br>ARP缓存 <br>　　为减少广播量，ARP在缓存中保存地址映射以备用。ARP缓存保存有动态项 和静态项。动态项是自动添加和删除的，静态项则保留在CACHE中直到计算机重新启动。 <br>ARP缓存总是为本地子网保留硬件广播地址(0xffffffffffffh)作为一个永久项。 此项使主机能够接受ARP广播。当查看缓存时，该项不会显示。 每条ARP缓存记录的生命周期为10分钟，2分钟内未用则删除。缓存容量满时， 删除最老的记录。 <br>　　加入静态(永久)记录 <br>　　通过添加静态ARP项可减少ARP请求访问主机的次数。 <br><br>ARP包的结构 <br>ARP结构的字段如下： <br>硬件类型--使用的硬件(网络访问层)类型。 <br>协议类型--解析过程中的协议使用以太类型的值。 <br>硬件地址长度--硬件地址的字节长度，对于以太网和令牌环来说，其长度为6字节。 <br>协议地址长度--协议地址字节的长度，IP的长度是4字节。 <br>操作号--指定当前执行操作的字段。 <br>发送者的硬件地址--发送者的硬件地址。 <br>发送者的协议地址--发送者的协议地址。 <br>目的站硬件地址--目标者的硬件地址。 <br>目的站协议地址--目标者的协议地址。 <br><br>3、ICMP和IGMP <br><br>　　internet控制消息协议ICMP是用于报告错误并代表IP对消息进行控制。 IP运用互联组管理协议IGMP来告诉路由器，某一网络上指导组中的可用主机。 <br><br>ICMP <br><br>　　ICMP源抑制消息：当TCP/IP主机发送数据到另一主机时，如果速度达到路由器或者链路 的饱和状态，路由器发出一个ICMP源抑制消息。 <br><br>ICMP数据包结构 <br><br>类型：一个8位类型字段，表示ICMP数据包类型。 <br><br>代码：一个8位代码域，表示指定类型中的一个功能。如果一个类型中只有一种功能，代码域置为0。 <br><br>检验和：数据包中ICMP部分上的一个16位检验和。 指定类型的数据随每个ICMP类型变化的一个附加数据。 <br><br>IGMP <br><br>　　IGMP信息传给别的路由器以使每个支持多路广播的路由器获知哪个主机组和哪个网络 中。 <br><br>IGMP包结构 <br><br>版本：IGMP的版本，值一般为0x1h。 <br><br>类型：IGMP消息的类型。 <br><br>0x1h类型称为主机成员请求，在多路广播路由器上用于指定多级组中的任何成员轮询一个网络。 <br><br>0x2h类型称为主机成员报告，在主机上用于发布指定组 中的成员情况或对一个路由器的主机成员请求进行回答。 未用：未用的域名被发送者置零且被接收者忽略。 <br><br>检验和：IGMP头的一个16位检验和。 <br><br>组地址：主机用该组地址在一个主机成员请求中存储IP多路广播地址。在主机成员请求中， 组地址被全置零，而且硬件级的多路广播地址被用来标示主机组。 <br><br>4、IP <br><br>　　　IP是一个无连接的协议，主要就是负责在主机间寻址并为数据包设定路由，在交换数据前它并不建立会话。因为它不保证正确传递，另一方面，数据在被收到时，IP不需要收到确认，所以它是不可靠的。 <br><br>有一些字段，在当数据从传输层传下来时，会被附加在数据包中，我们来看一下这些字段： <br><br>源IP地址：用IP地址确定数据报发送者。 <br><br>目标IP地址：用IP地址确定数据报目标。 <br><br>协议：告知目的机的IP是否将包传给TCP或UDP。 <br><br>检查和：一个简单的数学计算，用来证实收到的包的完整性。 <br><br>TTL生存有效时间：指定一个数据报被丢弃之前，在网络上能停留多少时间(以秒计)。它避免了包在网络中无休止循环。路由器会根据数据在路由器中驻留的时间来递减TTL。其中数据报通过一次路由器，TTL至少减少一秒。 <br><br>　　根据我们前面提到关于ARP的知识，如果IP地址目标为本地地址时，IP将数据包直接传 给那个主机；如果目标地址为远程地址的话，IP在本地的路由表中查找远程主机的路由(看来好象我们平时拨114一样)。如果找到一个路由，IP用它传送数据包。如果没找到呢，就 会将数据包发送到源主机的缺省网关，也称之为路由器。(很多时候一直在搞网关和路由器 的定义，其实我觉得在学的时候不一定死抠概念，现在硬件和软件结合的产品越来越多了， 一时很分清的，只要我们运用的时候可以解决实际问题嘛。) <br><br>　　这样当路由器收到一个包后，该包向上传给IP： <br><br>(1)如果交通阻塞(听起来蛮可怕的)，包在路由器中停滞，TTL至少减1或更多。要是它降到0的话，包就会被抛弃。</span>
<img src ="http://www.cnitblog.com/603736112/aggbug/29106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/603736112/" target="_blank">白凯帆</a> 2007-06-27 11:58 <a href="http://www.cnitblog.com/603736112/archive/2007/06/27/29106.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>