之前对于网络的各种概念都是很懵懂,读完了《网络是如何连接的》这本书,很多概念都渐渐的变得清晰起来。这本书解释的是从用户在浏览器中输入一个网址到显示网页内容的过程,短短的几秒钟的时间,背后却是一整套网络架构在运转,一整本书也只是阐述了复杂网络世界的一个边角。通过人类的分散协作把互联网这样一个复杂的架构运行起来,真的不容易。
现在让我们回顾一下用户在浏览器中输入一个网址到显示网页内容的全过程:
- 用户输入网址
- 浏览器向 Socket 库发出请求,创建一个 socket 连接到服务端,发出 HTTP 请求连接。下面交给协议栈(TCP/IP 协议)处理
- TCP 协议将请求拆分成多个部分,添加 TCP 头部
- IP 协议添加 IP 头部,然后查询并添加距离最近的路由器的 MAC 地址
- 协议栈交给网卡驱动程序处理,网卡驱动程序通过网卡将数字信息转换成电信号,通过双绞线发送给 MAC 地址指定的路由器
- 中间通过集线器、交换机、互联网接入路由器、ADSL Modem、DSLAM、BAS、隧道、隧道专用路由器,最终进入到互联网中,发往服务器或者缓存服务器的局域网
- 数据包(MAC + IP + TCP + HTTP 数据块)通过防火墙检查
- 通过防火墙的检查后,数据包被转交给缓存服务器(如果有)或者服务器处理
- 服务器处理的话,网卡和网卡驱动会将电信号转换成数字信号,交给协议栈处理
- IP 和 TCP 协议检查数据包是否有问题,如果没问题则取出 HTTP 数据块并进行组装
- HTTP 消息被恢复成原始状态,然后交给 socket 库处理,并转交给服务器
- 服务器解析 HTTP 请求,返回对应的内容
网友评论