上图为7层协议
7层协议的不足
- OSI 的专家缺乏实际经验,他们在完成 OSI 标准时缺乏商业驱动力
- OSI 的协议实现起来过分复杂,而且运行效率很低
- OSI 的层次划分不太合理,有些功能在多个层次中重复出现
五层网络协议,各层功能,各层协议
1 第五层——应用层(application layer)
- 应用层(application layer):是体系结构中的最高。直接为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供服务。把应用层交互的数据单元称为报文
- 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,DNS,POP3,SNMP,Telne
- DNS协议是基于UDP的应用层协议,它的功能是根据用户输入的域名,解析出该域名对应的IP地址,从而给客户端进行访问。
2. 第四层——运输层(transport layer)
- 运输层(transport layer):负责向两个主机中进程之间的通信提供通用的服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能
- 复用,就是多个应用层进程可同时使用下面运输层的服务。可以理解为通用
- 分用,就是把收到的信息分别交付给上面应用层中相应的进程。
- 运输层主要使用以下两种协议:
(1) 传输控制协议TCP(Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
(2) 用户数据包协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
3. 第三层——网络层(network layer)
分组交换网上的不同主机提供通信服务 IP RIP ARP OSPF等协议
-
1.路由选择与分组转发。 目的是为了选择最佳路径。
2.异构网络互联。 把不同类型的网络联接起来,形成一个更大的网络。
3.拥塞控制。解决方法:开环控制 闭环控制
- IP 协议:
(1)IP协议提供了IP地址,并将源目IP地址夹带在通信数据包里面,为路由器指明通信方向;
(2)IP协议只能指明数据包的源目通信方即"这是谁的送给谁的",但不能保证数据包一定能到达对方,数据是否会被丢弃以及丢弃之后如何处理。所以,上面才有这句:"IP协议提供面向无连接不可靠传输功能"。那么,如果出现丢包且需要重传时,谁来解决呢?这就需要TCP/IP协议栈另外一个"半壁江山"来实现,大家肯定猜到了:TCP协议能解决以上这些IP协议不能实现的功能。
(3) IP协议不仅仅只有"快递单"功能,它还能防止数据包环路、为数据打上重要或不重要等标签实现流量控制、能验证数据包是否损坏、能实现数据包分片和组装功能;
- IP 协议:
4. 第二层——数据链路层(data link layer)
工作于物理层和网络层之间(1)网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等).例如 这一层在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路。提供物理地址寻址功能。二层交换机工作在这一层。
5. 第一层——物理层(physical layer) 比特
- 物理层(physical layer):实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异
补充:
会话层:建立、管理 用户之间的会话
表示层:信息的语法语义 以及他们之间的关联 例如 数据的加解密 压缩 解压缩
TCP/IP 四层模型
- 应用层
- 传输层
- 网络层
- 网络接口层:(数据链路层和物理层的合体。)
为什么网络要分层
- 各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。
- 提高了整体灵活性 :每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。
- 大问题化小 : 分层可以将复杂的网络间题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化
OSI七层和TCP/IP四层的区别
OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。
OSI协议实现起来过分复杂,而且运行效率低,层次划分不合理,很多功能在多个层次重复出现
OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。