When I want to connect to a non-opened port of my Linux-PC from my Windows PC my IP-stack runs into a timeout after some seconds. So what's happening here ? Does my Windows PC not evaluate any ICMP destination / port unreachable message (ICMP packet type 3 / 3) or are they not sent at all from my Linux-PC ?

  • well, that depends entirely on how you are attempting to connect to the port. ICMP operates at the same layer as IP, (not the layer ports are considered at), so if the target system is online, but the port is closed, then there isn't really anything that the system would use ICMP for in order to evaluate whether a port is connectable. TCP/UDP is not part of the ICMP stack. the TCP layer will decide how to handle the issue based on application protocol. for instance HTTP will eventually timeout and return a ERR_Connection_Timeout or ERR_Connection_Refused error. Sep 19 at 16:43
  • Of course ICMP is part of TCP-handling. F.e. the rate-limiting of TCP bases on that TCP gets notified by ICMP that packets have been dropped. Sep 20 at 5:44
  • rate-limiting is not a feature of TCP, but I can tell that you are referring to Flow Control which is a feature. It does not however use ICMP. it uses the windowing features built into TCP. brianstorti.com/tcp-flow-control Rate-limiting is a common feature of firewalls, and there are several forms of congestion control that occur in other layers of the networking stack, but I'm pretty sure you are thinking about source quench messages but that only manifests at the IP layer. Sep 20 at 22:35
  • Of course rate-limiting is a descendant of congesion control and part of TCP. Sep 21 at 4:25


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.