在 TCP/IP 上发送 ACK 是软件还是硬件?

问题描述 投票:0回答:3

我们如何知道端口正在侦听?

是否有可能知道端口正在侦听,即使它们没有响应?

即当我只是在某些程序中绑定套接字时,但我确实没有发回ACK。

1: Packet is received and analyzed.
2: If packet fit meets, ACK is send back.

就像我可以对这个东西进行编程,或者是网卡硬件负责 ACK。

sockets network-programming port tcp
3个回答
2
投票

我们如何知道端口正在侦听?

您的本地堆栈知道。应用程序需要注册端口。

是否有可能知道端口正在侦听,即使它们没有响应?

如果发送出的 SYN 没有响应,则主机可能无法访问、目标端口未侦听或 SYN 已被过滤。

即当我只是在某些程序中绑定套接字时,但我确实没有发回ACK。

您不必担心 SYN 和 ACK,它们由操作系统的 IP 堆栈处理。只需在目标上设置一个侦听器,然后从源连接套接字即可。如果套接字打开,您就可以开始通过管道进行通信。

就像我可以对这个东西进行编程,或者是网卡硬件负责 ACK。

ACK 是由操作系统的 IP 堆栈处理的 TCP 传输协议的一部分。


0
投票

您可以使用netstat命令找出套接字和连接的列表。 对有问题的端口使用 netstat -a 和 grep。 您可以查看是否有套接字正在监听您想要的端口。


0
投票

一些网络接口卡 (NIC) 提供 TCP 校验和卸载 (TCO),有些则更进一步提供 TCP 分段卸载 (TSO)。

在 Linux 上,您可以使用

ethtool --show-offload <interface>
显示 TCO/TSO 是否启用,并且可以使用
ethtool --offload
进行切换。

来源:本页第 12.5 节。

© www.soinside.com 2019 - 2024. All rights reserved.