OSI七层协议:
1.物理层:传输比特流(0101, 单位比特。数模转换和模数转换),定义物理设备标准。
2.数据链路层:定义了如何格式化数据以进行传输,和控制对物理介质的访问。该层将比特数据组成为帧。( 交换机)
3.网络层:将网络地址翻译成对应的物理地址,决定如何将数据从发送方路由到接受方(路由器;单位是数据包。有IP协议)
4.传输层:解决主机间的数据传输。(传输协议, 流量控制,接收方接收数据快慢程度;还可以分割大的数据包; TCP和UDP协议)
5.会话层:建立和管理应用程序之间的通讯。( 自动收发包和寻址)
6.表示层:解决不同系统之间的通信语法的问题。
7.应用层:让你更方便的应用从网络中接收到的数据。关注TCP/IP协议中的http协议
OSI的简单模型
第一层 物理层
首先解决 两台物理机之间的通信需求
具体就是
机器A往机器B发送比特流 ,机器B能收到这些比特流
这便是物理层要做的事情
物理层主要定义了物理设备的标准
如:网线的类型、光纤的接口类型、各种传输介质的传输速率
它的主要作用是传输比特流
即所谓的0101二进制数据
将他们转换为电流强弱来进行传输
到达目的后,再转换为0101的机器码
也就是我们常说的数模转换和模数转换
这一层的数据叫做比特
网卡就是工作在这一层
第二层 数据链路层
在传输比特流的过程中,可能会产生错传,以及数据传输不完整的可能
因此,数据链路层就应运而生
数据链路层定义了如何格式化数据以进行传输,以及如何控制对物理介质的访问
这一层还提供错误检测和纠正,以确保数据传输的可靠性
本层将比特数据组成了帧,其中交换机工作在这一层。对帧解码,并根据帧中包含的数据把数据发送到正确的接收方。
第三层 网络层
那么随着网络节点的不断增加,点对点通信的时候是需要经过多个节点的
那么如何找到目标节点,如何选择最佳路径,便成为了首要需求。
此时便有了第三层网络层
其主要功能是将网络地址翻译成对应的物理地址并决定如何将数据从发送方路由到接受方
网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费,来决定从一个网络中节点A到另一个网络节点
中B的最佳路径
由于网络层处理并智能指导数据传送路由器连接网络各段
所以路由器属于网络层
此层的数据我们称之为数据包
本层我们需要关注的协议主要是TCP/IP协议里面的IP协议
随着网络通信进一步扩大通信过程中需要发送大量的数据如海量文件传输的可能需要很长时间
第四层 传输层
随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输等,可能需要很长时间,而网络再通信的过
程中,会中断好多次,
此时为了保证准确性,需要对发出去的数据进行切分,切割为一个一个的段落,进行发送,其中一个段落丢失了,该怎么办?要
不要重传,每个段落要按照顺序到达吗?这个便是传输层需要考虑的问题。
传输层解决了主机间的数据传输,数据间的传输可以是不同网络的,并且传输层解决了传输质量的问题。该层称之为OSI中最重
要的一层。
传输协议同时进行流量控制或者基于接受方可接受数据的快慢程度,规定适当的发送速率,除此之外,传输层按照网络能处理的
最大尺寸,将较强的数据包进行强制分割
第五层 会话层
现在我们已经保证给正确的计算机发送正确的封装之后的信息了
但是用户级别的体验好不好,难道我每次都要调用tcp去打包,去调用ip去找路由,自己去发?
当然不行,当然我们要建立一个自动收发包,自动寻址的功能,于是发明了会话层,
会话层的作用就是建立和管理应用程序之间的通讯
第六层 表示层
现在我们能保证,应用程序自动收发包和寻址了。
但我要用linux给win发包,两个系统语法不一致,就像安装包一样,exe是不能再linux上面去执行的,shell再win下也是不能直接
运行的。
于是需要表示层帮我们解决不同系统之间的通信语法的问题,在表示层,数据将按照网络能理解的方案进行格式化,这种格式化
也因所使用的网络的类型不同而不同。
第七层 应用层
此时虽然发送发知道自己发送的是什么东西,转换成字节数组之后是多长,但接收方不知道,
所以应用层的网络协议诞生了,它规定发送方和接受方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且
消息头里必须记录消息体的长度等信息,以防便接受方能够正确解析。
应用层旨在让你更方便的应用从网络中接收到的数据,至于数据的传递,没有该层,你也可以在两台电脑之间传递数据,只不过
传来传去就是一堆1和0组成的字节数组。
该层需要我们重点关注的时与之对应的tcp/ip协议中的http协议
TCP/IP和OSI概念模型的区别