In early days, I "googled" looking for a detailed guide/manual on How TCP/IP works; specially data flow; By example, What happens when I type "http://superuser.com" in web browser and it's receive superuser.com's home page?.
The searches results I founded doesn't work for me; because not completely answer my question.
I found these web pages interesting:
Also, I found the excellent EventHelix diagrams:
Following the examples above, I think TCP/IP works as follow:
- Web Browser take the URL (http://superuser.com), prepare HTTP message properly (maybe a GET request). Web browser needs to know superuser.com's IP address, so query DNS via UDP to translate superuser.com to IP address. If DNS cache found superuser.com's IP address then send response, otherwise look for an authoritative translate. Last, Browser delivery this message plus destination IP address to TCP layer.
- TCP receive message, decide if fragment is necessary, prepare TCP headers and dispatch segments to IP layer.
- IP receive segments, verify if destination IP address is lookup network, local network or remote network, query routing table to obtain gateway IP address, use ARP to find MAC address of gateway IP address, fragment segments if necessary, prepare IP headers and dispatch packets to Data-Link Layer.
- And so on...
The above is far away to being complete and correct.
Where I can find further and complete information about How TCP/IP data flow works? Any help will be greatly appreciated.