计算机网络协议(OSI模型)
2019-06-09
***
OSI七层模型
计算机网络中较为重要的就是ISO(国际标准化组织)所制定的OSI七层网络模型,如图所示:
目前数据之间的通信都是以这个模型为标准进行传输,举个例子:
用户的浏览器可以看做是客户端,用户在网页去访问一个页面的时候就会按照OSI的标准进行传输,而目前基本所有的浏览器遵循的都是Http协议进行数据交互,这里的$\color{red}{http}$其实就是应用层所遵循的协议之一,下面我将讲述一下我对七层协议的理解:
物理层
顾名思义,所谓的物理层就是根据光纤类型,网线类型以及各种传输速率将比特流(一串二进制数据)转换成强弱电流进行传输,接收端也同样具备$\color{red}{物理层}$将强弱电流转换成比特,也就是所谓的数模转换和模数转换,然后数据会进入下一层数据链路层。比较常见的物理层就是网卡。
数据链路层
数据链路层主要目的是通过纠错码保证数据的可靠性,将错误数据进行尝试修正,无法修正的数据进行重发处理,它将从物理层获取到的比特流转换成帧然后传输到网络层。比较常见的就是交换机。
网络层
网络层IP地址和数据链路层mac地址详解
为了从成千上万个网络节点中找到最佳节点,网络层孕育而生,它的主要目的是通过ARP协议(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,通过中间节点作为媒介最终到达目的网络)将中间节点或者最终目的的网络地址(IP地址)转换成物理地址(mac地址),当到达最终目的网络地址时进入传输层。比较常见的就是路由器。
传输层
传输层TCP/UDP详解
上面的网络层是点到点传输,而传输层是端到端的传输,所谓的端到端也就是端口(进程)的意思,前三层主要负责的是$\color{red}{原始数据的传输}$,而后四层主要负责的是发送主机和接收主机之间的交互,其保证了数据的可靠性,TCP会将网络层获取到的帧分片成多个数据包,UDP在MTU(576)以内会将数据完整发送,否则超出MTU值将在网络层进行IP分片,每个数据包有着复杂的结构,数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成,包括包头和包体,包头是固定长度,包体的长度不定,各字段长度固定,双方的请求数据包和应答数据包的包头结构是一致的,不同的是包体的定义。
会话层
传输层的作用是可靠的、有序的发送数据,而会话层的目的是保证发送方和接收方的主机不能紊乱,了解TCP协议都知道,TCP是一种基于字节流的全双工,面向连接的传输协议,它会经历三次握手以及四次挥手的过程,这一过程存在多次创建连接和释放连接的请求,如果不对请求进行管理,会发生数据紊乱的可能,为了防止请求紊乱的可能,会话层进行了维持和终止端与端之间的传输。
表示层
由于数据的结构以及编码格式在不同主机与系统之间可能有所差异,所以在会话层与应用层之间建立了表示层,表示层的目的也很容易理解,就是将会话层中到的数据转换成接收主机所能识别的数据结构并控制数据之间的联接。
应用层
对于不同的程序可能有不同的实现原理,这些实现的需要特定的通信规则,这是我们需要应用层来定义规则来实现程序之间的功能,这些规则就是协议,例如DNS、FTP、Telnet、SMTP、HTTP、RIP、NFS等协议。
TCP/IP协议
关于TCP/IP,必须知道的十个知识点
在互联网中OSI七层模型只是一种参考,而具体的实现就不得不提到TCP/IP协议,它是目前计算机网络的标准,由美国国防部发布,TCP/IP协议是对OSI的实现,将上三层结合为应用层,将下两层归结为链路层(网络接口层),如图所示为OSI七层模型与TCP/IP之间的关系图:
TCP/IP协议中发送的数据会在每一层添加自己的报文手部和数据信息,在接收方会将数据层层解套出来,最后获取到真正的数据。如下图所示:
以上就是我对OSI七层模型的见解
---
感谢大家的观看
---