一次请求涉及的网络协议(详解)

1.发请求
用户发送域名(网址),操作系统使用DNS域名解析协议,通过域名获得ip地址 ,获得ip地址之后,浏览器会通过http协议,https协议 打包请求,DNS、http处于应用层,经过应用层封装后,浏览器会将数据包交给下一层传输层去传输,对于http请求一般会使用tcp协议,经过传输层的封装后,数据包会到网络层,使用ip协议进行封装,数据包会变为ip包,里面包含 目标服务器的Ip地址,当前浏览器所在机器的ip地址,操作系统会将这个数据包发给网关。

网关往往是个路由器,在电脑启动的时候会通过DHCP协议,为电脑分配一个默认的ip地址以及默认的网关,默认的网关一般为192.16.8.1.1

操作系统怎样将数据包发给网关?
操作系统会对他所在局域网的所有的设备大吼一声,谁是192.16.8.1.1 ?网关会回复他,自己的Mac地址,通过MAC地址获取ip地址的协议是ARP协议, 在拿到网关的MAC地址之后,操作系统会通过通过网卡将这个数据包发出去,因为有网关的MAC 地址,数据包就可以到达网关,网关在收到数据包之后,(网关是个路由器),他可以判断 到目标ip地址接下来应该怎么走。
2.请求传输
在网关之间进行传输
网关之间相互沟通接下来应该怎么走,这种沟通的协议叫路由协议,数据包到下一个网关之后, 会问,接下来应该怎么走,一路走,一路问,一直到最后一个网关,最后一个网关收到数据包后,会在他所处的局域网大口一声,谁是目标服务器,目标服务器会回复一个MAC地址,这样数据包就可以到达目标服务器,(根据目标服务器IP获取MAC地址 ARP协议)
3.处理请求
在目标服务器收到数据包之后,会取下MAC头,如果MAC地址对上了,就会将他交给操作系统的网络层(ip协议),如果ip地址也对上了,就取下ip头,将他交给操作系统的传输层,在tcp层对每一个数据包都有一个回复,来告诉发送端的传输层,数据包以及收到了。

需要注意,这个回复并不是这次请求的结果,仅仅是TCP层的一个确认回复,因为数据包一旦出了传输层,在发送过城中,可能会因为各种原因丢失,所以在目标端收到数据包之后,都需要一个确认回复,用来告诉发送端,数据包已经平安到达,如果一段时间,发送端没有收到这个回复,发送端会对这个回复请求重发,这才是为什么tco被称为面向连接的,可靠的协议,要主要这里的重发并不是浏览器将这个请求重新请求一次,浏览器只发送一次请求,所有的确认和重发都是tcp层自己处理。

当数据包平安到达tcp层之后,tcp包中有目标端口号,通这个端口号就可以找到服务器上监听这个端口号的进程。

假设是一个tomcat,数据包将交给进程处理,tomcat在收到数据包之后,会通过http协议知道要请求的是哪个网页,往往tomcat只是一个接待者,负责统一处理所有的请求,而不是所有的事情都自己做,他需要将这次请求的任务交给专门的进程去处理。

一般通过RPC调用(远程过程调用)来实现,在服务器处理完之后,会将处理结果打包成一个http请求,接着,数据包会像来时一样,通过网关,最终到达发送端的电脑,最后由浏览器将请求结果显示在页面。

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

4.总结
一个请求,从浏览器出发,通过网关之间传输,最后由服务器处理,并且将结果展示回复给浏览器的全过程。
在这里插入图片描述
5.以www.baidu.com为例
http在传输层使用tcp协议,需要ip+端口 ,端口 http协议使用80, ip是通过dns协议将网址转化为Ip, 建立tcp连接,浏览器给web服务器发送http请求报文,web服务器回复http应答报文,若关闭tcp连接,短连接,若不关闭,继续等待数据传输则为长连接。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值