1、 前言
TCP协议(Transmission Control Protocol,传输控制协议),为应用层提供可靠的、面向连接的和基于流(stream)的服务。TCP协议使用超时重传、数据确认等方式来确保数据包正确地发送至目的端,因此TCP服务是可靠的
下面利用tcpdump来观察和分析TCP连接的建立与关闭过程。首先介绍测试环境:开启两台Linux虚拟机,然后将网络均连接到同一局域网下,这里是均连接至路由器。机器A的IP地址为:192.168.1.106;机器B的IP地址为:192.168.1.149
配置环境,在机器B上进行如下操作:
首先查看防火墙80端口是否打开
sudo iptables -L -n
这里看出80端口防火墙未打开
开放80端口防火墙:
sudo iptables -A INPUT -ptcp --dport 80 -j ACCEPT
操作过程如下图:
接下来打开指定端口,这里使用80端口登录,因此打开80端口,Linux下打开某个端口的操作为:
sudo nc -lp 80 & #打开80端口,即telnet
sudo netstat -an | grep 80 #查看是否打开80端口
结果如图所示:
这里看到80端口已经处于LISTEN状态。
上述操作也可用来解决以下问题:
telnet: Unable to connect to remote host: Connection refused
2、建立过程
参考谢希仁版计算机网络,TCP连接的建立过程如下: