最近在初学《计算机网络(自顶向下方法)》,涉及到不少协议以及其他知识点,因此在这里将它们整理并联系起来帮助记忆理解。
这里以主机A向服务器B发起一个HTTP请求为例:
假设服务器主机名:www.someschool.edu
请求的文件目录:/somedir/page.html
第一步:
主机A希望从服务器B获取一个html文件,因此打算发送一个请求报文给服务器B。但此时主机A只知道服务器的名字,但并不知道服务器的IP地址。
利用DNS目录服务获取IP地址【DNS执行步骤P84】:主机A上的DNS应用客户端利用UDP向本地DNS服务器递归查询服务器IP地址【DNS查询流程图P87图2-18】,本地DNS服务器通过迭代查询一次通过根DNS服务器、TLD DNS服务器、权威DNS服务器最终获取到目标服务器的IP地址,并将其反馈给主机A。
第二步:
既然已经获取到了服务器B的IP地址,就能建立主机A与服务器B之间的TCP连接了,HTTP报文就可以通过TCP连接发送给服务器B。
TCP连接建立【P109 P128】:
首先,主机A新建一个socket,并分配一个源端口号【端口号的范围P126】。这时候已知利用源、目的IP,并分配好源端口号,然后再分配一个目的端口号,以此4个值来标识刚刚新建的socket。
然后,主机A向目标服务器B的“欢迎socket”所对应的12000端口发送TCP连接建立请求的TCP报文段,这个报文段包括了源、目的IP、端口号总共4个值。
在主机A与服务器B的“三次握手”期间,服务器B新建一个socket。和主机A上的socket一样&#x