输入一个网址之后发生了什么

**

输入一个网址之后发生了什么

**

这篇文章是我作为一个网络工程专业的学生最近复习简单总结的,更侧重TCP/IP体系的流程

  1. 首先打开浏览器(应用程序,软件)输入一个网址,这个网址(URL)也就是域名。
    需要通过DNS解析得到域名对应的ip地址

    2.浏览器产生一个http请求数据报文,发送到传输层,访问传输层的80端口,因为是TCP协议,所以在真正发送http请求数据报之前,需要与对方(http服务器)通过3次握手建立连接。建立连接之后,才把刚刚的http数据包发送到服务端。

    3.tcp三次握手,以及http数据请求报文更具体是怎么发发到服务端的:在第1步我们有了目的地址,应用层把对应数据报文通过接口发到下一层的网络层进行处理,网络层封装源ip地址,目的ip地址等信息形成数据包;
    然后需要得到对方的MAC地址,ip层把数据包向下发送到数据链路层。首先检查本地的ARP缓存(如果之前与对方通信过会有对应ip地址与MAC地址的缓存),如果有缓存,直接转发,如果没有缓存,通过ARP广播,得到对方的MAC地址。这时通过封装源MAC,目的MAC地址等信息形成数据帧,转发到服务端。

    4.服务端收到数据帧后,确认目的MAC地址与自己MAC地址对应后,对其进行处理,开始数据帧的解封装,先拆分出数据包交给自己的网络层处理,最后交给自己的应用层(http服务器),来对刚才发来的http请求报文处理后,形成http回应报文。然后把这个回应报文用和上面相同的过程发送回客户端。

ping的过程不同,ICMP协议位于网络层,所以由用户进程发起,直接到网络层产生ICMP请求数据包,跳过了应用层和传输层。
FAFFAS
从网上找了一个图,方便理解,类似这个qq发送的过程,输入网址与这个图的区别就是应用层(浏览器)是不是发的“你好”,而是由相关协议产生了http请求数据包,然后像下面的层依次封装,到对端(即web服务器端)再依次解封装。

注:上面一些具体的步骤如:DNS是怎么解析域名的;tcp连接刚建立时的三次
握手与结束连接时的四次挥手;http服务器是怎么处理数据包,给client发送的cookie,以及最终怎么把html页面渲染后展现给client端的步骤都没有展开说。以后有机会补充吧

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值