网络分层,网络传输

本文详细解释了网络分层模型的原因,包括HTTP请求的传递过程、重传机制的应用、TCP和UDP的区别,以及数据在传输层和网络层的职责。作者还讨论了数据链路层如以太网和Wi-Fi的角色。
摘要由CSDN通过智能技术生成

  今天有人问我 网络连接的问题,我跟他说了个大概,总觉的说的不清晰,就写个文章总结一下。

  我们知道一系列协议组成了一个四层的网络分层模型,那为什么要分层呢?

说到为什么要分层 先看一张简化版本的网络结构图(自己画的  有点糙)

正常我们发送一个htpp请求 我们会从客户端出发 路过中间节点 可能是网关 也可能是路由 我们并不知道他们是怎么传输的,也没必要知道。 

好,讲到现在也没说我们为什么要分层,好像不需要分层,我们发送http请求通过一系列的传递到服务器这个事好像就结束了。

但是!我们的网络不是一直稳定的,有可能出现不稳定的事情,我们传输过程中有一个传输节点坏掉了,那我们的请求就发送不过去了,怎么解决?好解决,从新发一次就好了,但是我怎么知道我这个消息丢了呢?我们可以让服务器收到消息后,给我们返回一条收到的消息 ,那客户端就知道收到消息了,但是如果一直没收到,到了超时的时间,那客户端就从新传一次。好,你说服务器回复的时候出问题了,那也没关系,我们客户端多发一次也没关系,服务端记录一下,知道这个消息收过了,就不处理了。关键是这个机制很重要东西丢了可以重传,我们不可能要求我们的传输环境是百分百纯净的,那么重传机制是很有必要的。

好上面说了重传机制,那么我们数据不能全都是很小的数据,数据越大,传输时间越长,那我们阻塞的可能性也越大,那我们如果经常重传,那显然是不合适的,这个问题也需要解决,怎么解决,那我们为了降低传输的时间,降低数据的大小,我们可以把数据切一下,把一大坨数据,我们切成一块块的小数据,当某块数据失败了,我们只重传那一小块数据就可以了。这不就减少了更改错误的成本,因为有分快传输了 那我们就要分层了。为什么分层?因为我们应用层协议不只有http,还有别的 如smtp(传邮件)DNS(做域名服务)等一系列应用层协议,他们也需要分块传输,我们做程序的都知道抽出一个接口去做事,那我们就抽出来一个层级。

终于说到分层了,那我们画个图 

这样我们应用层接收到消息,我们是不做处理的,直接扔给下边一层,那http不负责传输,负责传输的是谁呢?是tcp,tcp只是一个协议,并不是一个分层,因为分层里不只有tcp,这个层应叫传输层,tcp只是传输层其中的一个协议,tcp可以保证数据的稳定传输,能把数据分块一个个传输,也可以拼接数据,这就tcp的作用,这就讲了两层了。那为什么还要往下分层呢?

因为不是所有数据都是需要重传的,比如我们说的udp协议,这个传递失败了我们是不需要重传,比如直播,打游戏等,我们有很多这样情况,我们udp是不需要重传的,但是他们都有一个共同的需求,那就是从送数据,都需要从客户端到服务器,那我们就继续往下分呗,再抽一层就是网络层,用来传输。实际上我们传输层就只负责拼装,负责传输的就是我们网络层了。

那网络层负责的是什么了那就是传输了,他什么都不需要管,只看上面传输层发来消息,说让他传 他就传,传完我往上一扔就不管了,所以是否重传,是否成功,什么都不管的。这就是网络层/ip层。好像已经完整了,但我们还有一层 叫做数据链路层。

数据链路层是 以太网,wifi啊等一系列东西, 我们网线插得电脑就叫以太网,现在我们是统一了,其实我们两个人商量好其实也是可以交互的,所以说我们的网络,目前统一使用的网线连接的就叫做以太网,以太网就是标准之一,所以简单说,目前我们用网线连接的都是以太网,但这句话不是精准的。所以wifi和以太网,是为我们提供现实中的物理支持的。

这一块基本靠我的理解简单的说完了,有什么不对的,或者漏的,希望看到的大佬给讲解一下,让我多进步一些。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值