auto commit
This commit is contained in:
parent
23f183e332
commit
1ad01b547d
@ -83,7 +83,7 @@
|
||||
* [SMTP](#smtp)
|
||||
* [动态主机配置协议 DHCP](#动态主机配置协议-dhcp)
|
||||
* [点对点传输 P2P](#点对点传输-p2p)
|
||||
* [在浏览器中输入 www.baidu.com 后执行的全部过程](#在浏览器中输入-wwwbaiducom-后执行的全部过程)
|
||||
* [Web 页面请求过程](#web-页面请求过程)
|
||||
* [常用端口](#常用端口)
|
||||
* [参考资料](#参考资料)
|
||||
<!-- GFM-TOC -->
|
||||
@ -810,15 +810,23 @@ DHCP
|
||||
|
||||
P2P 是一个分布式系统,任何时候都有对等方加入或者退出。使用分布式散列表 DHT,可以查找洪流中的资源和 IP 地址映射。
|
||||
|
||||
## 在浏览器中输入 www.baidu.com 后执行的全部过程
|
||||
## Web 页面请求过程
|
||||
|
||||
1、客户端浏览器通过 DNS 解析到 www.baidu.com 的 IP 地址 220.181.27.48,通过这个 IP 地址找到客户端到服务器的路径。客户端浏览器发起一个 HTTP 会话到 220.161.27.48,然后通过 TCP 进行封装数据包,输入到网络层。
|
||||
1. 向 DNS 服务器发送 DNS 查询报文来解析域名。
|
||||
|
||||
2、在客户端的传输层,把 HTTP 会话请求分成报文段,添加源和目的端口,如服务器使用 80 端口监听客户端的请求,客户端由系统随机选择一个端口如 5000,与服务器进行交换,服务器把相应的请求返回给客户端的 5000 端口。然后使用 IP 层的 IP 地址查找目的端。
|
||||
2. 开始进行 HTTP 会话,需要先建立 TCP 连接。
|
||||
|
||||
3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
|
||||
3. 在运输层的传输过程中,HTTP 报文被封装进 TCP 中。HTTP 请求报文使用端口号 80,因为服务器监听的是 80 端口。连接建立之后,服务器会随机分配一个端口号给特定的客户端,之后的 TCP 传输都是用这个分配的端口号。
|
||||
|
||||
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定 IP 地址的 MAC 地址,然后发送 ARP 请求查找目的地址,如果得到回应后就可以使用 ARP 的请求应答交换的 IP 数据包现在就可以传输了,然后发送 IP 数据包到达服务器的地址。
|
||||
4. 在网络层的传输过程中,TCP 报文段会被封装进 IP 分组中,IP 分组经过路由选择,最后到达目的地。
|
||||
|
||||
5. 在链路层,IP 分组会被封装进 MAC 帧中,IP 地址解析成 MAC 地址需要使用 ARP。
|
||||
|
||||
6. 客户端发送 HTTP 请求报文,请求获取页面。
|
||||
|
||||
7. 服务器发送 HTTP 相应报文,客户端从而获取该页面。
|
||||
|
||||
8. 浏览器得到页面内容之后,解析并渲染,向用户展示页面。
|
||||
|
||||
|
||||
## 常用端口
|
||||
@ -838,4 +846,3 @@ P2P
|
||||
|
||||
- 计算机网络 第七版
|
||||
- 自顶向下计算机网络
|
||||
- [ 计算机网络之面试常考 ](https://www.nowcoder.com/discuss/1937)
|
||||
|
Loading…
Reference in New Issue
Block a user