网络是怎么连接的?

从在浏览器中输入网址,到屏幕上显示出网页的内容,在这个只有几秒的过程中,发生了些什么?

1. Web浏览器

首先,用户输入网址(URL)。浏览器对URL进行解析,确定了web服务器和文件名,根据这些信息生成HTTP请求消息。浏览器本身不具备发送能力,因此需要委托操作系统。对于操作系统要提供的不是域名,而是IP地址。因此,浏览器调用Socket库中的解析器,进行域名/IP转换(DNS)。

2. 协议栈、网卡

Socket库将收到的HTTP消息作为数据转交给协议栈。TCP按照网络包的长度对数据进行拆分,在每个包前面加上TCP头部并转交给IP。IP在TCP包前面加上IP头部,然后查询MAC地址并加上MAC头部,然后把包转交给网卡驱动。网卡驱动收到IP发来的包,将其转交给网卡并发出发送指令。网卡检查以太网的可发送状态,将包转换成电信号通过双绞线发送出去。

3. 集线器、交换机、路由器

信号通过双绞线到达集线器。集线器将信号广播到所有端口,这样信号便到达交换机。交换机是通过MAC头部中接收方MAC地址来判断转发目标的,而路由器则是根据IP头部的IP地址来判断的。使用地址不同,记录转发目标的表也不同。IP(路由器)负责将包送到通信对象这一整体过程,而其中将包传输到下一个路由器的过程是由以太网(交换机)来负责的。根据信息,并将包转发到输出端口。

4. 接入网

互联网接入路由器根据收到的包的接收方IP地址查询自身的路由表找到输出端口,并将包转发到输出端口。互联网接入路由器输出到互联网的包带有PPPoE头部和PPP头部。ADSL Modem将收到的包拆分成ATM信元。ADSL Modem将拆分后的ATM信元转换成电信号通过电话线发送出去。ADSL Modem发送的信号经过电线杆上的电话线到达电话局的DSLAM。DSLAM将收到的电信号还原成ATM信元并发送给BAS。BAS将ATM信元还原成网络包,根据接收方IP地址进行转发。BAS转发的包被加上L2TP头部并通过隧道。网络包达到位于隧道口的隧道路由器,L2TP头部和PPP头部被丢弃,通过互联网流向web服务器。

5. 防火墙、缓存服务器

通过骨干网之后,网络包最终到达了Web服务器所在的局域网。防火墙(保安)会对进入的包进行检查,判断是否允许通过。web服务器前面如果有缓冲服务器,会拦截通过防火墙的包。如果用户请求的页面已经缓存在服务器上,则代替服务器向用户返回页面数据。如果请求的页面没有被缓存,缓存服务器会将请求转发给web服务器。

6. Web服务器

Web服务器收到包后,网卡和网卡驱动会接收这个包并转发给协议栈。协议栈依次检查IP头部和TCP头部,如果没有问题则取出HTTP消息的数据块并进行组装。HTTP消息被恢复成原始状态,然后通过socket库转交给web服务器。web服务器分析HTTP消息的内容,并根据请求内容将读取的数据返回给客户端。最后,当响应到达客户端后,浏览器会从中读取网页的数据并在屏幕上显示出来。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值