大白话系列之计算机网络OSI介绍

此文章只是进行简单的科普方便非计算机学生进行阅读如果有哪里描述不精准望指正
在这里插入图片描述

1、计算机网络的各层协议及作用?

OSI7层体系结构是是学者定义的它更加标准,但是在七层协议定义之前,我们已经在使用民间的的五层协议,并且经过了市场的检验所以我现在以五层协议为准来进行描述

物理层:

它决定这如何传输0、1比特信号(比如曼彻斯特编码),用来屏蔽具体的传输介质和物理设备的一个差异
链路层:通过建立和节点之间的链路在物体层提供的比特流基础上通过差错控制、流量控制等来纠正数据错误,决定了两两之间如何传输、如何发送、如何结束数据包,什么时候叫做发送开始,什么时候叫做发送完毕,以及接受的开始与完毕。

网络层:

大规模的传输,决定了如何进行广域网的传输,如何对广域网的目标进行定位

网络层的功能就开始比较务实了,在网络层,存在一个叫做IP协议的存在,这个IP协议非常重要,其主要功能就是寻址和路由,寻址指的是在IP协议中会为每一台参与网络的计算机赋予一个IP地址,然后我们想和一个IP地址通信的话,就通过某种方式制定好那个IP地址,然后我们的数据就会发送到相应的那台计算机上去。而数据真正的在复杂的网络连接中寻址的过程,就是通过IP协议提供的路由功能实现的。路由功能通过路由算法和路由器实现。由于以前使用的是IPV4它是32位 ,只能提供40亿个地址,所以就有了子网划分具体的在下一篇文章中进行讲解

传输层:

保证能够稳定传输数据,在传输数据的时候能够抗干扰,出问题之后能够自动修复,传输层主要保证能够稳定传输数据的,如果数据有差错,能够检测到,或者出现超时的情况也能检测到。在这一层中存在两种重要的协议:TCP和UDP协议,其中TCP协议最为出名。

​ TCP协议的TCP 的全称叫传输控制协议(Transmission Control Protocol),大部分应用使用的正是 TCP 传输层协议,比如 HTTP 应用层协议。TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。

UDP 相对来说就很简单,简单到只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高。当然,UDP 也可以实现可靠传输,把 TCP 的特性在应用层上实现就可以,不过要实现一个商用的可靠 UDP 传输协议,也不是一件简单的事情。

需要注意的是在传输层还存在一个有趣的东西:SOCKET,这算是一个面向程序员的工具,在封装应用的时候,程序员在应用的代码内部使用这个工具,将我们的数据通过应用层协议发送出去,同时程序员还可以通过这个工具监听相应的端口,获取到远程发送过来的信息,并加以解析,需要注意的是这时一个传输层中的存在。

很多应用层协议需要参考tcp协议,内网的很多自定义协议都要参考tcp协议,大部分时间是看tcp协议存在什么弱点,然后就补上,只有了解tcp协议才能进行有效的代码编辑。

“只需要具备这四层就能保证在网络中稳定的传输数据了”

应用层:

可以自定义很多协议,比如http协议,邮箱协议等都是基于其他层基础上能够精准定位

很多应用层协议的编写需要参考TCP协议,内网很对自定义协议都要参考TCP协议,大部分时间是看TCP协议存在什么弱点,然后补上,只有了解TCP协议才能进行有效的代码编辑

位于计算机网络的最上层,我们直接能接触到的就是应用层,换句话说大部分普通用户直接接触到的是应用层实现的应用,而这些应用才是在直接和应用层打交道,但在浏览器中我们这些普通用户也是能够直接和应用层打交道的,那就是http,http协议是一个典型的应用层协议,我们只要遵循这个协议,按照这个协议进行书写并发送请求,就能够得到一个回应,应用层只需要专注于为用户提供引用功能,比如httpftptelnetdnssmtp等。

应用层关注的并不是如何传输数据,而是我把这个数据发送出去,并在正确的位置接收过来,准确的说,是:应用层关注应用和应用之间的数据传输,它的存在使得不同计算机上的应用能够准确的进行数据的传达,而不会发生A应用的数据发送到B应用上去。同时应用层还面向用户,它的存在让用户有了一种可读性更高的网络请求发起的方式。在应用层提供一种叫做Socket接口的东西,用户通过调用这个接口就可以把数据发送出去,这有点像我们在发快递的时候通过快递员将快递发送出去,我们只考虑在上边书写一个正确的地址,然后就不用管了,对我们而言,这个东西已经发送出去了,然后就等着收到回应就好了。

OSI七层后三层:

没有边界只有对应用层进行了逻辑上的细分,没有明显的边界,因此五层比较准确。应用层的协议主要基于TCP协议,才能实现精准传输。传输一些文本内容,对内容精确度要求高的需要基于tcp协议传输,传输一些对精确度要求低但是对速度要求高的东西如音频视频或者聊天信息可以使用UDP协议传输

为啥TCP/IP要分层呢

这里我是这么理解的,它就是我们在编程思想中的面向接口编程,各层是独立的下一层只需要知道对应的接口就行,如果当任意一层发生了变化的时候(比如技术更新了)只有保证接口不变其他层的代码都不用发生任何变化,如果当网络发展到一定地步了发现某一层不需要了甚至可以直接将他舍弃掉

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值