Reputation: 81
How do we know port is listening?
Is there possible to know that port is listening, even if they do not respond?
i.e. when I just bind socket in some programs, but I really do not send ACK back.
1: Packet is received and analyzed.
2: If packet fit meets, ACK is send back.
Like if I can program this thing, or it's networks card HW that is responsible for ACK.
Upvotes: 2
Views: 1362
Reputation: 21507
Some Network Interface Cards (NICs) offer TCP Checksum Offloading (TCO), and some take it a step further with TCP Segmentation Offloading (TSO).
On Linux, you can use ethtool --show-offload <interface>
to show whether TCO/TSO are enabled or not, and you can toggle them with ethtool --offload
.
Source: Section 12.5 of this page.
Upvotes: 1
Reputation: 85
You can find out the list of sockets and connections using netstat command. Use netstat -a and grep for the port in question. You can find out if there is a socket listening on the port you want.
Upvotes: 0
Reputation: 2910
How do we know port is listening?
Your local stack knows. An application needs to register the port.
Is there possible to know that port is listening, even if they do not respond?
If there's no reponse to a SYN sent out the host may be unreachable, the destination port not listening, or the SYN filtered.
i.e. when I just bind socket in some programs, but I really do not send ACK back.
You don't have to worry about SYN and ACK, that's handled by the OS's IP stack. Just set up a listener on destination and then connect the socket from source. If the socket opens you can start talking through the pipe.
Like if I can program this thing, or it's networks card HW that is responsible for ACK.
ACKs are part of the TCP transport protocol handled by the OS's IP stack.
Upvotes: 2