OSI模型的优点在于:
- 将网络通信过程划分成更小、更简单的组件,这有助于组件的开发、设计和故障排除
- 通过标准化网络组件,让不同的厂商能够协作开发
- 定义了每层执行的功能
- 让不同类型的网络硬件和软件能够通信
OSI规范最大的作用是帮助在不同的主机之间传输数据。
OSI模型包括7层,分为上3层和下4层,上3层指定了终端中应用程序如何彼此通信以及如何与用户交流;下4层指定了如何进行端到端的数据传输。如下图:
下面是我在学习每层的一些笔记
应用层
应用层是用户与计算机交流的场所,它负责确定目标通信的可用性,并判断是否有足够的资源进行想要的通信。应用层是实际应用程序之间的接口,这意味着如word、IE等应用程序并不位于应用层,而是与应用层协议交互。
表示层
表示层是向应用程序提供数据,并负责数据转换和代码格式化,从本质上说,该层就是一个转换器,提供编码和转换功能。
会话层
会话层负责表示层实体之间建立、管理和终止会话,还对设备或节点之间的对话进行控制。提供了3种不同的模式:单工、半双工和全双工。
传输层
传输层将数据进行分段并重组成数据流。它提供了端到端的数据传输服务,并建立逻辑连接。它提供了建立、维护、拆除虚电路的机制,还提供传输错误检测和恢复机制。传输层使用确认、排序和流量控制。它还提供透明的数据传输,从而对高层隐藏随网络而异的信息。TCP和UDP就运行在这一层,TCP是一种面向连接的可靠传输,UDP是无连接的不可靠的。
下面是面向连接(可靠)的协议
- 流量控制
流量控制旨在提供一种机制,让接收方能够控制发送方发送的数据量
- 面向连接的通信
传输设备首先与其对等系统建立面向连接的会话(这种虚电路的建立称之为开销),成为三次握手,然后传输数据。传输完成后,执行呼叫终止,拆除虚电路。
三次握手的步骤:
- 第一个是"连接协定"数据段,用于请求同步
- 接下来的数据段确认请求,并在主机之间确定连接参数(即规则)。这些数据段也请求同步接收对方的排序,已建立双向连接
- 最后一个数据段也是用来进行确认的,它通知目标主机连接协定已被接受且连接已建立,可以开始传输数据了。当数据传输完成后,就会产生呼叫终止,以断开虚电路
在面向连接的可靠数据传输中,数据报到达接收主机的顺序与发送顺序完全相同;如果顺序被打乱了,传输将失败。如果有任何的数据段丢死、重复和受损,传输也将失败。为解决此问题,可以让接收主机确认它收到的每个数据段。
如果服务具有以下特征,就是面向连接的
- 建立虚电路(如三次握手)
- 使用排序技术
- 使用确认
- 使用流量控制
- 流量控制方式包含缓冲、窗口技术和拥塞避免
3.窗口技术
-
窗口大小控制了一方传输给另一方的信息量。
如果未收到所有应确认的字节,接收方应缩小窗口,以改善通信