浏览器输入一个url发生了什么事

#广域网数据传播流程

eg.浏览器输入www.baidu.com发生的事情

1.源主机封装:从高到低封装
(1)在应用层,基于DNS协议,查找www.baidu.com这个域名对应的ip地址(目的ip)
(2)从应用层到数据链路层,依次基于HTTP,TCP,IP,以太网这些协议来封装
(3)子网掩码+目的ip的到目的网段,发现和源主机若是同网段,下一跳设备就是目的主机;若不在一个网段,就网网关发
(4)基于ARP协议,通过网关ip找到对应的MAC

2.发送到交换机
(1)基于MAC地址转换表,通过目的MAC找到对应的端口
(2)如果找不到,就广播喊话来找

3.发送到路由器
(1)从下到上分用
(2)基于NAPT协议,将局域网的源ip和源port,修改为路由器公网的ip和port
(3)基于路由功能,根据目的IP计算出下一跳设备,是哪个设备到目的主机更近
(4)从上到下封装:修改源ip和port为路由器的公网ip和port;修改源mac为路由器的mac,目的mac为下一跳设备的mac(路由功能找到下一跳设备的ip,再通过路由器ARP缓存表,查询ip对应的port)

4.路途中经过的网络设备
(1)分用
(2)封装 设置目的mac(同上面的路由器)

5.到达目的主机
(1)从下到上分用
分用到网络层:目的ip和我一直,就再次分用
分用到传输层:根据目的port把数据报交给对应的 端口(如tomcat)来处理
分用到应用层:tomcat程序根据应用层http协议来解析
(2) tomcat处理请求
基于HTTP协议来解析请求报文
将http请求封装为servlet的请求对象,根据请求路径找到对应的servlet对象,调用service方法
然后执行到servlet重写的doxxx方法
设置servlet响应对象
tomcat封装响应对象为http协议的响应报文
(3)tomcat返回响应
从上到下封装,再发送数据回起点(源ip,port改为目的ip和port;目的ip,port改为源ip,port)
先发送回路由器
路由器还需查找局域网内的主机,再把数据发送给对应主机

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值