- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我查看了 tcpdump 手册页并认为我理解那里提供的示例。但是我得到的是我无法完全理解的东西。
原文:模拟器输出
LINE 1: 20:01:13.442111 IP 10.0.0.1.12345 > 10.0.0.2.54321: S 1234:1234(0) win 65535
LINE 2: 20:01:13.471705 IP 10.0.0.2.54321 > 10.0.0.1.12345: S 4321:4321(0) ack 1235 win 65535
LINE 3: 20:01:13.497389 IP 10.0.0.1.14640 > 10.0.0.2.12756: . ack 4322 win 65535
LINE 4: 20:01:13.497422 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 1235:2682(1447) win 65535
LINE 5: 20:01:14.023273 IP 10.0.0.2.12756 > 10.0.0.1.14640: . ack 5768 win 65535
这是我的理解:
LINE 1: 1 sends 2 0 bytes starting with SEQ number 1234
LINE 2: 2 sends 1 0 bytes starting with SEQ number 4321 and an ACK = (1's SEQ + 1) i.e. 1235
LINE 3: 1 sends 2 0 bytes with an ACK = (2's SEQ + 1) i.e. 4322
LINE 4: 1 sends 2 1447 bytes starting with SEQ number 1235 until 2682 (1447 bytes in total)
LINE 5: 2 sends 1 0 bytes with an ACK = 5768? What is this number? Isn't it supposed to be 2683?
也许我遗漏了一些太明显的东西。有人可以指出吗?
编辑 1:模拟器输出(获取一个连接信息)
20:01:13.442111 IP 10.0.0.1.12345 > 10.0.0.2.54321: S 1234:1234(0) win 65535
20:01:13.471705 IP 10.0.0.2.54321 > 10.0.0.1.12345: S 4321:4321(0) ack 1235 win 65535
20:01:13.497422 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 1235:2682(1447) win 65535
20:01:14.573322 IP 10.0.0.2.54321 > 10.0.0.1.12345: . ack 5981 win 65535
20:01:14.593870 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 4129:5576(1447) win 65535
20:01:14.639457 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 7023:8470(1447) win 65535
20:01:14.639606 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 9917:10640(723) win 65535
20:01:14.660971 IP 10.0.0.2.54321 > 10.0.0.1.12345: . ack 11769 win 65535
20:01:14.693847 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 12087:13534(1447) win 65535
20:01:14.726564 IP 10.0.0.2.54321 > 10.0.0.1.12345: . ack 15964 win 65535
问题: ACK好像还是不一样。它是 5981 而不是 2683。
编辑 2:真实 TCP 输出
22:20:14.492625 IP 72.14.204.99.80 > 10.0.2.15.59745: S 255616001:255616001(0) ack 1727704513 win 65535 <mss 1460>
22:20:14.495606 IP 10.0.2.15.59745 > 72.14.204.99.80: . ack 255616002 win 5840
22:20:14.501015 IP 10.0.2.15.59745 > 72.14.204.99.80: P 1727704513:1727705327(814) ack 255616002 win 5840
22:20:14.501746 IP 72.14.204.99.80 > 10.0.2.15.59745: . ack 1727705327 win 65535
22:20:14.562197 IP 72.14.204.99.80 > 10.0.2.15.59745: P 255616002:255616102(100) ack 1727705327 win 65535
22:20:14.562298 IP 10.0.2.15.59745 > 72.14.204.99.80: . ack 255616102 win 5840
22:20:14.630749 IP 10.0.2.15.59745 > 72.14.204.99.80: P 1727705327:1727706096(769) ack 255616102 win 5840
22:20:14.631228 IP 72.14.204.99.80 > 10.0.2.15.59745: . ack 1727706096 win 65535
22:20:14.692324 IP 72.14.204.99.80 > 10.0.2.15.59745: P 255616102:255616338(236) ack 1727706096 win 65535
22:20:14.692361 IP 10.0.2.15.59745 > 72.14.204.99.80: . ack 255616338 win 6432
问题:我按照您的建议进行了尝试,并搜索了一个连接的输出。但是这一次,为什么是ACK而不是SEQ+1呢?
最佳答案
从端口号来看,LINE1、LINE2、LINE5似乎属于一个session,LINE2、LINE4在另一个session。
我强烈建议您使用 tcpdump 抓包,而不是使用 tcpdump 进行数据包分析,然后使用 wireshark 工具分析结果。
编辑:对于模拟器流,它搞砸了。由于10.0.0.1 -> 10.0.0.2的数据包序号不全,所以我想可能是有些数据包没有被抓到,时间上没有显示出真实的状态。所以你可以忽略它。
对于real stream来说,还可以。对于syn包,ack reply = seq +1;对于内容发送,ack = seq + len。流实际上向我们展示了这一点。
关于networking - 需要一些帮助来解释 tcpdump 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338971/
如何告诉tcpdump解析名称并保留未解析的端口号? 来自人: -n Don’t convert host addresses to names. This can be used to a
我正在使用 tcpdump 通过 wlan0 收集数据包数据。但是我发现很多数据包的长度为 0,如下图所示。嗯,长度为 0 的数据包...... tcpdump 可靠还是我错过了什么? 最佳答案 好的
运行“tcpdump -w 1.pcap”时需要限制文件大小。我尝试使用键“-C”来执行此操作,但是当我添加它时,我收到错误“权限被拒绝”。所以: > sudo tcpdump -w 1.pcap t
我正在通过网络适配器捕获 tcp/udp 数据包,并尝试分析数据包以获得一些统计指标,例如带宽速率或协议(protocol)效率。无论如何,我需要使用一些 CLI 工具来监视特定链路(源、目标、端口,
使用 tcpdump 在接口(interface)上捕获 LLDP 数据包的格式是什么? 我尝试了以下格式,但它不起作用: tcpdump -w test.pcap -i eth0 lldp -vv
我想使用 tcpdump 捕获网络流量,如果捕获的数据包增加为 10mb,我想创建另一个文件。我如何使用 tcpdump 安排此操作。请善意地帮助我。谢谢。 最佳答案 tcpdump -W 5 -C
使用 tcpdump 时,我似乎无法看到捕获的所有数据。具体来说,我似乎从帧头丢失了 6 个字节,我想知道是否有人可以解释原因。 为了说明这一点,我在 VMWare 上以仅主机网络配置设置了一个 Ub
我在使用 Android 应用程序中的 TCPDump 时遇到问题。它应该逐行读取 tcpdump 的输出并在我的应用程序中处理它。 问题是: 有时代码工作正常,它会立即读取捕获的数据包。但有时,Re
我都使用过,我的结论是我可以使用 tcpflow 从网页中读取 html 数据,但不能使用 tcpdump 这样做。我得到的最好的结果是一些丑陋的 ASCII 文本,其中有很多句点符号。 我的理解是
我需要在我的 Android 设备上执行 tcpdump 跟踪。 我的设置: 将tcpdump文件推送到sdcard adb push filepath/tcpdump /sdcard/tcpdump
我的电脑上有两个网络接口(interface)。 netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-
Linux中是否有诸如tcpdump之类的实用程序来捕获通过RDMA channel 传输的流量? (Infiniband/RoCE/iWARP) 最佳答案 旧线程,但仍然: 正如Roland指出的那
我有一个巨大的pcap文件(100GB),我对一小部分数据包感兴趣,我知道这些数据包的数量为5,000,000至5,000,020。 如何使用tcpdump读取pcap文件,按数据包编号(或范围)过滤
如何使用 tcpdump 捕获以太网帧并显示本地 PC 使用 UDP、ARP 和 ICMP 协议(protocol)之一发送或接收的任何帧。 我正在尝试这个命令: sudo tcpdump -e ud
我正在使用 tcpdump 捕获网络数据包,当我开始丢弃数据包时遇到问题。我运行了一个通过网络快速交换数据包的应用程序;导致网络带宽较高。 >> tcpdump -i eno1 -s 64 -B 91
是否可以指定tcpdump 测量接收和发送数据包的时间?我知道命令 tcpdump -c 100 指定 tcpdump 在收到 10 个数据包后应该停止。我想指定 tcpdump 在例如 5 分钟后停
运行以下命令时出现错误: sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/tcpdump* 这提供了以下错误: Failed to set cap
我可以为dst指定1个以上的tcpdump IP地址吗? 如果没有,如果我只想要两个特定目的地的流量,该如何很好地过滤信息? 非常感谢你! 最佳答案 是的,您可能有一个过滤器,其中包含多个通过“或”连
我正在寻找在 openwrt 上运行的 tcpdump 二进制文件。该网站仅显示必须构建的源代码。有人指向我包含预构建二进制文件的位置吗?谢谢。 最佳答案 我建议建立一个工作存储库,即: https:
在服务器 # nc -lp 2424 hi server hi client 1 2 3 在客户端 ➜ ~ nc 139.224.xxx.xx 2424 hi server hi client 1
我是一名优秀的程序员,十分优秀!