OSI七层协议模型
OSI/RM(Open System Interconnection Reference Model)即开放系统互联基本参考模型。
开放,是指非垄断的;系统,是指现实的系统中与互联有关的各部分。
1、物理层
需求:解决两台物理机之间的通信需求,具体就是机器A往机器B发比特流,机器B能够收到这些比特流。
主要工作:主要是定义设备标准,如网线的类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流,就是从1/0转化为电流强弱来进行传输,到达目的地之后再转化为1/0,也就是我们常说的数模转换与模数转换。这一层的数据是比特,网卡就是工作在这一层。
2、数据链路层
需求:在传输比特流的过程中会产生错传、数据传输不完整的可能,数据链路层应运而生。
主要工作:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输性。本层将比特数据转换为帧,其中交换机工作在这一层,对帧解码,并针对帧中包含的信息把数据发送到正确的接收方。
3、网络层
需求:随着网络节点的不断增加,点对点通信时需要经过多个节点,那么如何找到目标节点、选择最佳路径?便有了网络层。
主要工作:将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。此层数据为数据包,路由器属于网络层。
此层需要关注TCP/IP协议中的IP协议。
4、传输层(该层称为OSI模型中最重要的一层)
需求:通讯过程中需要发送大量的数据,如海量文件传输等,可能需要很长时间。而网络在通信的过程中会中断好多次,此时为了保证传输大量文件时的准确性,需要对发送出的数据进行切分,切割为一个一个的段落(即segments)进行发送。那么其中一个段落丢失了该怎么办?要不要重传?每个段落要按照顺序到达吗?
主要工作:解决了主机间的数据传输,数据间的传输可以是不同网络的,并且解决了传输质量的问题。传输协议,同时进行流量控制,或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外传输层按照网络能处理的最大尺寸,将较长的数据包进行强制分割,例如以太网无法接收大于1500字节的数据包,发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一***,以便数据到达接收方节点的传输层时能以正确的顺序重组,该过程即称为排序。
此层需要关注TCP/IP协议中的TCP协议和UDP协议。
5、会话层
需求:现在已经能够给指定计算机发送正确的封装过的信息了,但是用户级别的体验好不好?难道我每次都要调用TCP去打包,然后调用IP协议去找路由,自己去发?当然不行,所以我们要建立一个自动收发包,自动寻址的功能。
主要工作:建立和管理应用程序之间的通信。
6、表示层
需求:现在我能保证应用程序自动收发包和寻址了,但是我要用Linux给window发包,两个系统语法不一致,就像安装包一样,EXE不能在Linux下用,shell在window下也是不能直接运行的。
主要工作:解决不同系统之间的通信语法问题。
7、应用层
主要工作:规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头里必须记录消息体的长度等一系列信息,以方便接收方能够正确地解析发送方发送的数据。应用层旨在让我们更方便地应用不同网络上的数据,至于数据的传递,没有该层也可以在两台电脑间进行,只是只能看到1/0传递。
此层需要关注TCP/IP协议中的HTTP协议。
OSI网络数据处理的流程:
先自上而下,后自下而上处理数据头部。
TCP/IP四层模型
1、链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡,是通过MAC地址传输数据的。
2、网络层(互联网层):处理分组在网络中的活动,比如分组的选路。包括多种协议:
- IP协议:通过路由选择将数据封装后交给链路层。
- ICMP协议(Internet Control MessageProtocol):用于主机和路由器直接传递控制消息,常用的ping就是用这个协议。
- ARP协议(Address Resolution Protocol):是正向地址解析协议,通过IP查找mac地址。
- RARP协议:是反向地址解析协议,通过mac地址查找IP。
3、运输层:主要为两台主机上的应用提供端到端的通信。
- TCP协议:传输控制协议,是面向连接的、可靠的、基于IP的传输层协议。
- UDP协议:用户数据报协议,提供面向事物的、简单、不可靠的信息传输协议。
4、应用层:负责处理特定的应用程序细节。
- FTP协议:文件传输协议,用于文件的上传下载。
- Telnet协议:用户远程登录服务。
- DNS(Domain Name System)协议:域名解析协议,提供域名到IP的解析。
- SMTP(Simple Mail Transfer Protocol)协议:简单的邮件传送协议,用于控制信件的发送中转。
- NFS协议:网络文件系统,用于不同主机间文件共享。
- HTTP协议:超文本传输协议,用于实现互联网访问功能。
TCP/IP协议族的分层:
TCP/IP网络数据处理的流程:
先自上而下,后自下而上处理数据头部。
OSI七层协议和TCP/IP四层协议之间的关系
相同点:
- OSI参考模型和TCP/IP参考模型都采用了层次结构的概念。准确来说,OSI引入了服务、接口、协议、分层的概念,而TCP/IP借鉴了OSI的这些概念建立TCP/IP模型;。
- 都能够提供面向连接和无连接两种通信服务机制。
不同点:
- 前者是七层模型,后者是四层结构。
- 对可靠性要求不同(后者更高)。
- OSI先有模型,后有协议,先有标准,后进行实践,具有通用性 ;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型,不适用于非TCP/IP网络。
- OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为“实际上的国际标准”。
TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。