Android开发经验谈Android技术知识Android开发

【socket】- Wireshark抓包分析TCP/IP三次握

2019-09-15  本文已影响0人  拔萝卜占坑

简介

相信很多人都听说过tcp/ip协议中的三次握手建立连接和四次握手断开连接。在面试的时候,总会被面试官问及。然后很多人并不知道具体的过程。下面我将通过wireshark抓包工具来分析socket建立连接时的三次握手和断开连接的四次握手。

TCP/IP握手,数据传输,挥手

这里先恶补一下TCP/IP相关的知识,如果了解,可以直接滚动到下一节内容跳。


TCP:IP.jpeg

Wireshark抓包

这里我用socket做了一个长链接,当客户端连接成功后,服务端写数据到客户端。

192.168.2.2:服务端
192.168.2.4:客户端

服务端写数据代码

val p = ByteArray(l + 3)
p[0] = 1
p[1] = (l and 0x0000FF00 shr 8).toByte()
p[2] = (l and 0x000000FF).toByte()
d.copyInto(p,3,0,l)
outputStream.write(p)
outputStream.flush()

这里一共写了61个字节的数据,第二个和第三个放的是后面数据的长度(58个字节)。

抓包,过滤:ip.addr eq 192.168.2.2 and ip.addr eq 192.168.2.4

Wireshark_抓包.png

至于每个过程SYN,ACK,FIN,PSH的变化可以从Info栏可以清晰的看到。选择某一过程,点开下面对应的三角符号,可以查看更加详细的信息。

上一篇 下一篇

猜你喜欢

热点阅读