netstat (WinXP) ตรวจสอบการใช้งาน network ภายในเครื่อง


netstat 20 แสดงการใช้งาน network ทุกๆ 20 วินาที
netstat -a แสดงการเชื่อมต่อ port ทั้งหมดภายในเครื่อง รวมทั้ง port ที่เปิดรอการเข้ามาติดต่อ
netstat -e แสดงค่าสถิติต่างๆ ในการรับส่งข้อมูลต่างๆ
netstat -n แสดงการใช้งาน network โดยแสดง address เป็น IP
netstat -r แสดงข้อมูลใน routing table

column Proto แสดง protocol ที่เครื่องกำลังเชื่อมต่ออยู่ เช่น TCP, UDP
column Local Address แสดง ชื่อหรือ IP เครื่อง : หมายเลข port ที่เปิดบริการ
column Foreign Address แสดง ชื่อหรือ IP เครื่อง : หมายเลข port ที่เชื่อมต่อกับภายในเครื่องที่ใช้งานอยู่
column State แสดง สถานะการติดต่อ



















































State Description
LISTENING รอรับการติดต่อผ่าน Local Address และ Local Port ที่เปิดไว้
SYN_SENT มีการขอติดต่อออกไป (SYN) รอการตอบกลับยืนยันการติดต่อ (SYN,ACK)
SYN_RECEIVED ได้รับการขอติดต่อ (SYN) ตอบรับการขอติดต่อ (SYN,ACK) รอการตอบกลับยืนยันการติดต่อ (ACK of SYN)
ESTABLISHED เชื่อมต่อกันเรียบร้อยพร้อมรับ-ส่งข้อมูล
FIN_WAIT_1 มีการขอจบการติดต่อ (FIN) รอการตอบกลับยืนยันขอจบการติดต่อ (ACK) หรือ รอรับแจ้งปิดการเชื่อมต่อ (FIN)
CLOSING ได้รับแจ้งปิดการเชื่อมต่อ (FIN) ตอบกลับการแจ้งปิดการเชื่อมต่อ (ACK)
FIN_WAIT_2 ได้รับการตอบกลับยืนยันขอจบการติดต่อ (ACK of FIN) รอรับแจ้งปิดการเชื่อมต่อ (FIN)
TIME_WAIT ได้รับแจ้งปิดการเชื่อมต่อ (FIN) ตอบกลับการแจ้งปิดการเชื่อมต่อ (ACK) หรือ ได้รับการตอบกลับยืนยันขอจบการติดต่อ (ACK of FIN) รอคอยปิดการเชื่อมต่อ (2MSL)
CLOSE_WAIT ได้รับการขอจบการติดต่อ (FIN) ตอบกลับยืนยันขอจบการติดต่อ (ACK) เริ่มปิดการเชื่อมต่อ
LAST_ACK แจ้งปิดการเชื่อมต่อกลับ (FIN) รอการตอบกลับการแจ้งปิดการเชื่อมต่อ (ACK)
CLOSED หมดช่วงเวลาเซ็กเมนท์ (MSL) หรือได้รับการตอบกลับยืนยันขอจบการติดต่อ (ACK of FIN) ปิดการเชื่อมต่อเรียบร้อย





+---------+ ---------\ active OPEN
| 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



อ้างอิง:
* https://svn.tools.ietf.org/html/rfc793
* http://www.giffyhackman.com/main/index.php?option=com_content&view=article&id=24&Itemid=38
* Internet