运行netstat -s -p tcp
给我这样的输出
TCP Statistics for IPv4
Active Opens =
Passive Opens =
Failed Connection Attempts =
Reset Connections =
Current Connections =
Segments Received =
Segments Sent =
Segments Retransmitted =
现在,为了计算丢弃的传入数据包的数量,我需要计算Segments Retransmitted
/Segments Received
吗?
我在网上看到说需要用Segments Retransmitted
/来计算Segments Sent
,但这似乎是错的。链接:示例 1 示例 2
如果这不是正确的方法,我该如何计算或生成丢弃的传入数据包的百分比?
答案1
您无法根据该结果计算出丢弃的传入数据包的数量。
如果数据包被丢弃,您的系统将无法接收它。TCP 采用确认系统。当收到一个数据包时,接收方会发送一个 ACK。然后发送方会发送另一个。如果没有收到数据包,接收系统不知道肯定有什么问题,但发送方知道,因为 ACK 从未返回,所以它会重新发送。
但是,您可以计算丢弃的传出数据包。即“重新传输的段数/已发送的段数”。发送的段总数包括所有丢弃的段。重新传输的段是由于发送系统(在本例中为您的系统)未从 TCP 进程收到 ACK 并重新发送数据包直到收到 ACK 或连接失败而重新发送的所有段。
因此,要计算丢弃的传入数据包,您必须进入发送系统并计算该特定连接丢弃的传出数据包。