??xml version="1.0" encoding="utf-8" standalone="yes"?>
Red Hat 9 2.4.20-8
Fedora Core 4 2.6.11-1.1369_FC4
Fedora Core 5 2.6.15-1.2054_FC5
Fedora Core 6 2.6.18-1.2798.fc6
Fedora 7 2.6.21-1.3194.fc7
Fedora 8 2.6.23.1-42.fc8
Ubuntu 7.10 2.6.22-14-generic
RedHat as4.0 2.6.9-11.EL
CentOS 5.1 2.6.18
CentOS 5.2 2.6.18
pȝ
# uname -a # 查看内核/操作pȝ/CPU信息
# head -n 1 /etc/issue # 查看操作pȝ版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI讑֤
# lsusb -tv # 列出所有USB讑֤
# lsmod # 列出加蝲的内核模?br /> # env # 查看环境变量
资源
# free -m # 查看内存使用量和交换Z用量
# df -h # 查看各分Z用情?br /> # du -sh # 查看指定目录的大?br /> # grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看I闲内存?br /> # uptime # 查看pȝq行旉、用h、负?br /> # cat /proc/loadavg # 查看pȝ负蝲
盘和分?br /> # mount | column -t # 查看挂接的分区状?br /> # fdisk -l # 查看所有分?br /> # swapon -s # 查看所有交换分?br /> # hdparm -i /dev/hda # 查看盘参数(仅适用于IDE讑֤)
# dmesg | grep IDE # 查看启动时IDE讑֤状?br />
|络
# ifconfig # 查看所有网l接口的属?br /> # iptables -L # 查看防火墙设|?br /> # route -n # 查看路由?br /> # netstat -lntp # 查看所有监听端?br /> # netstat -antp # 查看所有已l徏立的q接
# netstat -s # 查看|络l计信息
q程
# ps -ef # 查看所有进E?br /> # top # 实时昄q程状?br />
用户
# w # 查看zd用户
# id # 查看指定用户信息
# last # 查看用户d日志
# cut -d: -f1 /etc/passwd # 查看pȝ所有用?br /> # cut -d: -f1 /etc/group # 查看pȝ所有组
# crontab -l # 查看当前用户的计划Q?br />
服务
# chkconfig --list # 列出所有系l服?br /> # chkconfig --list | grep on # 列出所有启动的pȝ服务
E序
# rpm -qa # 查看所有安装的软g?/font>
TCP是英文Transport Control Protocol的羃写。从字面理解Q就是传输控制协议。因此,TCP是一U控制协议,他本w不能用来传输数据,它需要通过|络层的IP协议来进行实际数据的传输。这也就是我们常常看刎ͼTCP/IP和TCP/UDPL同时出现的原因。因此,也可以理解ؓ(f)TCP是很多的不同的协议组成,实际上是一个协议组。提供可靠的LC机层数据传输控制协议。这里要先强调一下,传输控制协议是OSI|络的第四层的叫法,TCP传输控制协议是TCP/IP传输?个基本协议的一U。TCP是一U可靠的面向q接的传送服务。它?
一、TCP概述
TCP是英文Transport Control Protocol的羃写。从字面理解Q就是传输控制协议。因此,TCP是一U控制协议,他本w不能用来传输数据,它需要通过|络层的IP协议来进行实际数据的传输。这也就是我们常常看刎ͼTCP/IP和TCP/UDPL同时出现的原因。因此,也可以理解ؓ(f)TCP是很多的不同的协议组成,实际上是一个协议组。提供可靠的LC机层数据传输控制协议。这里要先强调一下,传输控制协议是OSI|络的第四层的叫法,TCP传输控制协议是TCP/IP传输?个基本协议的一U。TCP是一U可靠的面向q接的传送服务。它在传送数据时是分D进行的Q主Z换数据必d建立一个会(x)话。它用比Ҏ(gu)通信Q即数据被作为无l构的字节流q行传输Q没有数据边界。通过每个TCP传输的字D|定顺序号Q以获得可靠性。是在OSI参考模型中的第四层QTCP是用IP的网间互联功能而提供可靠的数据传输QIP不停的把报文攑ֈ|络上,而TCP是负责确信报文到达。在协同IP的操作中TCP负责Q握手过E、报文管理、流量控制、错误检和处理Q控ӞQ可以根据一定的~号序寚w正常序的报文给予从新排列顺序。关于TCP的RFC文有RFC793、RFC791、RFC1700?
二、TCPq接的徏?br /> 建立一个TCPq接Q需要下面的步骤Q?br /> (1)服务器端通过listen来准备接受外来的q接Q称动打开(passive open)?br /> (2) 客户端通过connectq行q接服务器,UCؓ(f)d打开(active open)。在q个操作中,客户端需要发送一个同步数据报(SYN)Q用来通知服务器端开始发送数据的初始序列受通常情况下,同步数据报不携带数据Q它只包含一个IP头部、一个TCP头部和本ơ通信所使用的TCP的选项?br /> (3)服务器端必须对客L(fng)发来的同步数据报SYNq行认Q同时自׃要发送一个同步数据报(SYN)Q它包含客户端发送数据的初始序列受服务器端对在同一q接中发送的数据初始序号和对客户端发送的认信息(ACK)Q都攑֜一个数据报中,一起发送给客户端?br /> (4)客户端也必须发送确认服务器端的同步数据?SYN)?br /> ׃面的步骤来看Q徏立一个TCPq接Q至需要服务器端和客户端进行三个分l数据的交换Q因此,UC为TCP的三路握?three-way handshake)?
W一ơ进行分l数据交换的q程中,分组数据中可能包含着本次通信中可能的TCP选项。这些选项有:(x)
(1) 最大分l?MSS)选项。TCP发送的SYN中带有这个选项Q用来告诉对方它的最大分l数据的大小MSS(Maximum Segment Size),卛_能接收的每个TCP分组数据中的最大数据量。这个选项可以通过TCP_MAXSEG套接口选项获取与设|这个TCP选项?br /> (2) H口大小选项。这是TCP能提供流量控制的主要手段。TCPq接的每一斚w有固定大的~冲I间QTCP的接收端只允许另一端发送接收端~冲区所能接U的数据。这防止较快主使较慢主机的~冲区溢出。TCP双方能够通知Ҏ(gu)的最大窗口大是64K(65535 bytes)Q因为TCP头部相应的标识字D值只用了16位来表示。每个套接口都有一个发送缓冲区和一个接收缓冲区Q接收缓冲区被TCP和UDP用来接收到的数据一直保存到由应用进E来d。对于TCPQTCP通告另一端的H口大小?TCP套接口接收缓冲区不可能溢出,因ؓ(f)Ҏ(gu)不允许发q所通告H口大小的数据。这是TCP的流量控Ӟ如果Ҏ(gu)无视H口大小而发Z过H口大小的数据,则接收方TCP丢弃它Q而对于UDPQ当套接口接收缓冲区放不下接收到的数据报Ӟ此数据报p丢弃。UDP是没有流量控制的Q快的发送者可以很Ҏ(gu)地就Ҏ(gu)慢的接收者,D接收方的UDP丢弃数据报,使数据发生丢失?br /> (3)旉戳选项。时间戳选项使发送方在每个报文段中放|一个时间戳倹{接收方在确认中q回q个数|从而允许发送方为每一个收到的ACK计算RTT?
三、TCPq接的终?br /> l止TCPq接
TCP用三个分l数据徏立一个连接,但要l止一个连接则通常需要需要四个分l数据。过E如下:(x)
(1)先调用close的进E,UCؓ(f)d关闭(active close)。这一端的TCP先发送一个FIN分组数据Q告诉对方,数据发送完毕?br /> (2)接收到FIN分组数据的一端执行被动关?passive close)Q同Ӟ发送对q个FIN的确认ACK分组数据l对斏V确认序号ؓ(f)收到的序号加1。FIN分组数据的接收意味着在当前的q接上,再也不会(x)收到额外的数据?br /> (3)接收到FIN分组数据的一端的应用q程Q将调用close关闭自己的套接口Q同时TCP ?x)发送一个FIN分组数据l另一端?br /> (4)收到q个FIN的分l数据,x行主动关闭的一端对q个FIN分组数据q行认。发回确认ACK分组数据Qƈ确认序可|ؓ(f)收到序号?
在这个过E中Q执行被动关闭的一方可以把认Ҏ(gu)FIN分组数据的ACK分组数据和自p发送的FIN分组数据可以攑ֈ一个分l数据中。TCP的连接终止的q程如下Q?
在上面的q回l果中,State一列,是说明q接的当前状态?br /> TCP的连接状态有Q?br /> (01)CLOSED
(02)LISTEN 被动打开
(03)SYN_RCVD
(04)SYN_SEND
(05)ESTABLISHED 数据传送状?br /> (06)CLOSE_WAIT
(07)LAST_ACK 被动关闭
(08)FIN_WAIT_1
(09)FIN_WAIT_2
(10)CLOSING
(11)TIME_WAIT
TCPq接状态{换示意图如下所C:(x)
| CLOSED | \ -----------
+---------+<---------\ \ create TCB
| ^ \ \ snd SYN
passive OPEN | | CLOSE \ \
------------ | | ---------- \ \
create TCB | | delete TCB \ \
V | \ \
+---------+ CLOSE | \
| LISTEN | ---------- | |
+---------+ delete TCB | |
rcv SYN | | SEND | |
----------- | | ------- | V
+---------+ snd SYN,ACK / \ snd SYN +---------+
| |<----------------- ------------------>| |
| SYN | rcv SYN | SYN |
| RCVD |<-----------------------------------------------| SENT |
| | snd ACK | |
| |------------------ -------------------| |
+---------+ rcv ACK of SYN \ / rcv SYN,ACK +---------+
| -------------- | | -----------
| x | | snd ACK
| V V
| CLOSE +---------+
| ------- | ESTAB |
| snd FIN +---------+
| CLOSE | | rcv FIN
V ------- | | -------
+---------+ snd FIN / \ snd ACK +---------+
| FIN |<----------------- ------------------>| CLOSE |
| WAIT-1 |------------------ | WAIT |
+---------+ rcv FIN \ +---------+
| rcv ACK of FIN ------- | CLOSE |
| -------------- snd ACK | ------- |
V x V snd FIN V
+---------+ +---------+ +---------+
|FINWAIT-2| | CLOSING | | LAST-ACK|
+---------+ +---------+ +---------+
| rcv ACK of FIN | rcv ACK of FIN |
| rcv FIN -------------- | Timeout=2MSL -------------- |
| ------- x V ------------ x V
\ snd ACK +---------+delete TCB +---------+
------------------------>|TIME WAIT|------------------>| CLOSED |
+---------+ +---------+
TCP Connection State Diagram
从上面的图表中,可以做出如下ȝQ?br /> 服务器端的正常状态{换过E如下:(x)
CLOSED --> LISTEN --> SYN_RCVD --> ESTABLISHED --> CLOSE_WAIT --> LAST_ACK --> CLOSED
客户端的正常状态{换过E如下:(x)
CLOSED --> SYN_SENT --> ESTABLISHED --> FIN_WAIT_1 --> FIN_WAIT_2 --> TIME_WAIT --> CLOSED
从上面的q接状态{换中可以看出Q从ESTABLISHED状态的转换有两U,对于客户端和服务器端来说Q是一L(fng)Q即当收到FIN数据报之前,d关闭Q则转换成FIN_WAIT_1Q如果因为收到FIN数据报,而引L(fng)被动关闭Q则转换成CLOSE_WAIT状态?/p>
yum grouplist
sudo yum groupinstall "X Window System" "GNOME Desktop Environment"
or
sudo mount /dev/cdrom /media/cdrom
sudo yum --disablerepo=\* --enablerepo=c5-media groupinstall "X Window System" "GNOME Desktop Environment"
Error:
Missing Dependency: libgaim.so.0 is needed by package nautilus-sendto
more detail: https://bugzilla.redhat.com/show_bug.cgi?id=250403
Resolved:
wget http://mirror.centos.org/centos/5/os/i386/CentOS/nautilus-sendto-0.7-5.fc6.i386.rpm ~
sudo rpm -Uvh --nodeps ~/nautilus-sendto-0.7-5.fc6.i386.rpm
repeat install.
top
1.作用
top命o用来昄执行中的E序q程Q用权限是所有用戗?
2.格式
top [Q] [d delay] [q] [c] [S] [s] [i] [n]
3.主要参数
dQ指定更新的间隔Q以U计?br />qQ没有Q何gq的更新。如果用者有用户Q则top命o会(x)以最高的优先序执行?br />cQ显CE完整的路径与名U?br />SQ篏U模式,?x)将己完成或消失的子行程的CPU旉累积h?br />sQ安全模式?br />iQ不昄M闲置(Idle)或无?Zombie)的行E?br />nQ显C更新的ơ数Q完成后会(x)退出top?
? top命o的显C?
在图1中,W一行表C的目依次为当前时间、系l启动时间、当前系l登录用h目、^均负载。第二行昄的是所有启动的q程、目前运行的、挂?Sleeping)的和无用(Zombie)的进E。第三行昄的是目前CPU的用情况,包括pȝ占用的比例、用户用比例、闲|?Idle)比例。第四行昄物理内存的用情况,包括ȝ可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行昄交换分区使用情况Q包括ȝ交换分区、用的、空闲的和用于高速缓存的大小。第六行昄的项目最多,下面列出了详l解释?br />PIDQProcess IDQ:(x)q程标示受?br />USERQ进E所有者的用户名?br />PRQ进E的优先U别?br />NIQ进E的优先U别数倹{?br />VIRTQ进E占用的虚拟内存倹{?br />RESQ进E占用的物理内存倹{?br />SHRQ进E用的׃n内存倹{?br />SQ进E的状态,其中S表示休眠QR表示正在q行QZ表示僉|状态,N表示该进E优先值是负数?br />%CPUQ该q程占用的CPU使用率?br />%MEMQ该q程占用的物理内存和d存的癑ֈ比?br />TIMEQ:(x)该进E启动后占用的ȝCPU旉?br />CommandQ进E启动的启动命o名称Q如果这一行显CZ下,q程?x)有一个完整的命o行?br />top命o使用q程中,q可以用一些交互的命o来完成其它参数的功能。这些命令是通过快捷键启动的?br /><I格>Q立d新?br />PQ根据CPU使用大小q行排序?br />TQ根据时间、篏计时间排序?br />qQ退出top命o?br />mQ切换显C内存信息?br />tQ切换显CE和CPU状态信息?br />cQ切换显C命令名U和完整命o行?br />MQ根据用内存大进行排序?br />WQ将当前讄写入~/.toprc文g中。这是写top配置文g的推荐方法?
可以看到Qtop命o是一个功能十分强大的监控pȝ的工P对于pȝ理员而言其重要。但是,它的~点是会(x)消耗很多系l资源?
更多的请看:(x)http://www.QQread.com/windows/2003/index.Html
free
1.作用
free命o用来昄内存的用情况,使用权限是所有用戗?
2.格式
free [QbQkQm] [Qo] [Qs delay] [Qt] [QV]
3.主要参数
Qb Qk QmQ分别以字节QKB、MBQؓ(f)单位昄内存使用情况?br />Qs delayQ显C每隔多秒数来昄一ơ内存用情c?br />QtQ显C内存d列?br />QoQ不昄~冲节列?
4.应用实例
free命o是用来查看内存用情늚主要命o。和top命o相比Q它的优Ҏ(gu)使用单,q且只占用很的pȝ资源。通过QS参数可以使用free命o不间断地监视有多内存在使用Q这样可以把它当作一个方便实时监控器?br />Qfree Qb Qs5
使用q个命o后终端会(x)q箋不断地报告内存用情况(以字节ؓ(f)单位Q,?U更Cơ?
更多的请看:(x)http://www.qqread.com/windows/2003/index.html
uptime 命o
我曾l看到资料上Ԍload avarage <3 pȝ良好Q大? 则有严重的性能问题。注意,q个D应当除以CPU数目?br />如果load avarage=8 ,CPU=3,8/3=2.666Q?.66q个DC系l状态良?br />大于5也不一定是严重性能问题Q有可能是的主机提供的服务过了他能够提供的能力,需要扩容了。要具体看看?