第一篇:浅析网络数据包发送流程

网络中,数据包从客户端到服务端是通过特定方式传输的,也涉及到各种协议,下面以某宝购物为例,简述一下网络中数据包发送流程。

 

某宝购物系统流程:

1、输入网址www.xxxx.com,DNS协议进行解析,找到对应的IP地址x.x.x.x。

2、浏览器一般是HTTP协议,或者HTTPS协议。客户端浏览器打包HTTP请求。

DNS,HTTP,HTTPS为应用层。经过应用层封装后,浏览器会将应用层的包交给传输层去完成,通过socket编程来实现。传输层有两种协议,TCP与UDP。这里使用的是TCP,面向连接。TCP会保证这个包能够到达目的地。如果不能到达,就会重新发送,直到到达。

TCP协议里有两个端口,一个是浏览器监听的端口,一个是电商服务器监听的端口,通信时,会根据端口来判断数据包发送给哪个进程。

3、传输层封装完毕,浏览器将包交给网络层。网络层的协议是IP协议,IP协议里,有源IP,目的IP,这里的源IP就是浏览器机器的IP,目的IP就是电商服务器的IP。

4、操作系统知道了目标IP,会判断这个IP是本地还是外地,本地的IP地址,可以直接访问;外地的IP地址,需要通过网关。在操作系统启动的时候,就会被DHCP协议配置IP地址,以及默认的网关。比如,这里的客户端电脑IP是192.168.1.101,网关为192.168.1.1,操作系统会根据ARP协议查找到网关在哪,获取到网关的MAC地址。

5、操作系统将IP交给下一层,也就是MAC层。网卡再将包发出去。这个包先到达网关,网关收到之后,会判断下一步往哪里走。网关往往是一个路由器,到某个IP应该怎么走,这个叫做路由表。

路由器有点像玄奘西行路过的一个个国家的一个个城关。每个城关都连着两个国家,每个国家相当于一个局域网,在每个国家内部,都可以使用本地的MAC地址进行通信。

6、路由器与路由器之间会有路由协议,常用的是OSPF,BGP。网络包知道了下一步去哪个城关,当找到对应城关之后,会根据目标IP,通过ARP协议,找到目标服务器的MAC地址。当通过城关之后,根据MAC地址找到目标服务器。

 

7、目标服务器发现MAC地址对上了,取下MAC头,发送给操作系统的网络层。发现IP也对上了,取下IP头。IP头里会写上上一层封装的TCP协议,交给传输层。TCP层收到包之后,会回复一个包,表明自己收到了。这个回复会沿着刚才的方向走回去,报个平安。

 

8、如果一段时间还是没有收到包,发送端的TCP会重新发送这个包,还是上面的过程,直到收到回复。这个重试不是你的浏览器重新将下单这个动作重新请求一次。对于浏览器来讲,就发送了一次下单请求,TCP层不断自己闷头重试。除非TCP这一层出了问题,例如连接断了,才轮到浏览器的应用层重新发送下单请求。

 

9、大概数据包发送流程就是如此,第一次握手成功之后,会继续发送其他数据包来完成此次购物操作。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值