TCP, 即传输控制协议(Transmission Control Protocol),是一种面向连接的协议,特点是可靠和面向字节流传输。其中可靠的保证就是著名的三次握手和四次挥手。要想了解其中的过程和原理,动手实践是最好的方式,因为根据现象来理解原理能更深刻。推荐使用的是tcpdump,这是最常用的抓包工具之一。对于访问量大的网络程序可能会经常出现连接等问题,所以熟练使用tcpdump,能很好地分析出问题的原因。
tcpdump用法:更多参数用法参考 man tcpdump 命令
tcpdump [ -AbdDefhHIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ -P in|out|inout ]
[ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,… ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ expression ]
下面是一次完整的三次握手、数据交互和四次挥手过程: tcpdump -nS port 10129 (10129: 监听端口;-n:不将ip地址转换成服务器名;-S:打印完整seq和ack序号;另外如果客户端和服务器在同一台机器需要加 -i lo 参数)
表示客户端Client(172.31.1.22:60755)通过内网请求服务器Server(172.31.3.178:10129),流程图如下:
发表评论