socket传输数据时,如果不采用加密的方式,使用tcpdump抓包可获取传输数据,这里简单记录一下,用于以后深入分析。
socket通信可以参考之前写的博客:
https://blog.csdn.net/xiadeliang1111/article/details/85210205
服务端启动之后:
客户端发送:
./client 127.0.0.1 "welcome to helloworld"
参数1为IP,此处设置的是127.0.0.1, 传输内容为 welcome to helloworld
使用tcpdump进行抓包
命令:
tcpdump host (IP) and port (port) -i (eth0) -w file_name.pcap
如:
tcpdump host 127.0.0.1 and port 4321 -i lo -w socket_test.pcap
上面代码中socket通信时,使用IP为127.0.0.1,端口为4321,所以使用tcpdump抓取的主机IP为127.0.0.1,端口为4321,网卡为本地回环地址,-w为将数据写入文件socket_test.pcap
使用wireshark查看socket_test.pcap文件,分析数据
取两组数据进行查看,可以看到源地址127.0.0.1,目的地址127.0.0.1,以及端口4321,
再看TCP/IP三次握手:
第一行客户端先发送一个SYN包
第二行服务端收到SYN包之后,发送一个SYN,ACK包
第三行客户端再发送ACK包,握手成功
第四行客户端发送传输数据
可以看到传输内容:welcome to helloworld
因此,非加密时,传输内容可被捕获到,传输数据时,应使用加密传输。
再下面几行就是挥手的过程。
到这里,简单的抓包分析就结束了,涉及的点主要是socket,TCP/IP协议,tcpdump使用,以后再继续深入研究。