本文简单介绍一下开放网络互联(OSI,Open Systems Interconnection)模型以及网络体系结构中的七个层次。
什么是 OSI 模型
OSI 模型是一个描述网络功能的概念框架。它不是一组规则,而是一个用于理解网络如何运作的工具。
OSI 模型由七层网络组成。
什么是层呢?层是对网络上的功能和行为进行分类和分组的一种方式。
在 OSI 模型中,层的组织结构从最具形态和最物理到不太有形,虚拟但更接近最终用户。
如何记住所有层的名字呢?很简单。
请不要把暗号告诉任何人(Please Do Not Tell the Secret Password to Anyone)。
- Please | 物理层(Physical Layer)
- Do | 数据链路层(Data Link Layer)
- Not | 网络层(Network Layer)
- Tell(the)| 传输层 (Transport Layer)
- Secret | 会话层(Session Layer)
- Password (to) | 表示层(Presentation Layer)
- Anyone | 应用层(Application Layer)
注意: 虽然某些技术(比如协议)在逻辑上比起其他层来说可能“属于”某一层,但并非所有的技术都完全契合 OSI 单个层。例如以太网、Wifi 程序在不止一层上工作。
OSI 只是一个模型,一个工具,并不是一组规则。
OSI 第一层
第一层是 物理层。第一层中有很多技术 – 从物理网络社保、布线到电缆如何连接到设备之间的一切。另外,除电缆外,信号的类型和传输方式还可以是什么?(如无线)
第一层的数据单元是比特(bit)。
比特是可传输数字信息的最小单元。比特是二进制的,要么为0要么为1。字节(byte)由八个比特组成,用于表示单个字符,比如字母、数字或符号。
总结
第一层包含的是基础设施,它让网络通信变成可能。
它定义了用于激活、维护和停用网络设备之间的物理连接的电气、机械、程序和功能规范。-- 来源
OSI 第二层
第二层是 数据链路层。它定义了数据的传输格式、可以在节点间流动的数据量大小、数据流动可以持续的时长,以及在流中检测到错误时应采取的措施。
第二层的数据单元是 帧。
每一帧都包括一个帧头、主体和一个帧尾。
- 帧头:通常包括源节点和目的节点的 MAC 地址。
- 主体:由要传输的比特组成。
- 帧尾:包括错误检测信息。当检测到错误时,根据实现或网络的配置或协议,帧可能被丢弃,或者错误会被报告给上面的层,用于进一步错误校正。
总结
数据链路层允许局域网内的各个节点彼此相互通信。这一层建立了线路规划、流量控制和错误控制的基础。
OSI 第三层
第三层是网络层。第三层的主力是路由器,通过路由器在网络间或跨网发送消息。不仅仅是节点到节点的通信,还可以进行网络到网络的通信。
第三层的数据单元是数据包。通常,每个数据包都包含一个帧加上一个ip地址的包装。
总结
第三层允许节点连接到因特网并跨越不同网络发送数据。
OSI 第四层
第四层是传输层。
第四层中最有名的两个协议是传输控制协议(TCP,Transmission Control Protocol)和用户数据报协议(UDP,User Datagram Protocol)。
TCP 是一个面向连接的协议,优先保证的是数据的质量而不是速度。
TCP 显式地与目的节点建立连接,并要求在数据传输时进行源节点与目的节点之间的握手操作。握手能够确认数据已经被接收。如果目的节点没有收到所有的数据,TCP 就会要求进行重传。
TCP 也会确保数据包以正确的顺序交付或者重组。
UDP 是一个无连接的协议,优先保证速度而不是数据的质量。UDP 不要求进行握手,这也正是它被称为无连接的原因。
因为 UDP 不必等待确认,所以它可以以更快的速度发送数据,但并非所有的数据都能成功传输,我们也不会知道哪些数据传输失败了。
如果信息被拆分成多个数据报,除非这些数据报都包含一个序列号,否则 UDP 无法确保以正确的顺序重组数据包。
TCP 和 UDP 的区别
TCP在哪里使用?
- 发送电子邮件
- 传输文件
- 网页浏览
UDP在哪里使用?
- 赌博
- 视频流
- 在线视频聊天
区别
基础 | 传输控制协议 (TCP) | 用户数据报协议 (UDP) |
---|---|---|
服务类型 | TCP 是一种面向连接的协议。连接方向是指通信设备在传输数据之前应建立连接,并在传输数据后关闭连接。 | UDP 是面向数据报的协议。这是因为打开连接、维护连接或终止连接不会产生任何开销。UDP 对于广播和组播类型的网络传输非常有效。 |
可靠性 | TCP 是可靠的,因为它保证将数据传输到目标路由器。 | 在 UDP 中无法保证将数据传输到目标。 |
错误检查机制 | TCP 提供了广泛的错误检查机制。这是因为它提供了流量控制和数据确认。 | UDP 只有使用校验和的基本错误检查机制。 |
确认 | 存在确认段。 | 无确认段。 |
序列 | 数据排序是传输控制的一个功能协议 (TCP)。这意味着数据包按顺序到达接收方。 | UDP 中没有数据排序。如果需要订单,则必须由应用层进行管理。 |
速度 | TCP 比 UDP 慢。 | UDP 比 TCP 更快、更简单、更高效。 |
转发 | 在TCP中可以重新传输丢失的数据包,但在UDP中则不能。 | 在用户数据报协议 (UDP) 中不会重新传输丢失的数据包。 |
标头长度 | TCP 有一个 (20-60) 字节可变长度标头。 | UDP 有一个 8 字节的固定长度标头。 |
重量 | TCP是重量级的。 | UDP 是轻量级的。 |
握手技巧 | 使用 SYN、ACK、SYN-ACK 等握手 | 这是一个无连接协议,即没有握手 |
广播 | TCP 不支持广播。 | UDP 支持广播。 |
协议 | TCP 由 HTTP、HTTP、FTP、SMTP 和 Telnet 使用。 | UDP 由 DNS、DHCP、TFTP、SNMP、RIP 和 VoIP 使用。 |
流类型 | TCP 连接是一个字节流。 | UDP 连接是消息流。 |
开销 | 低但高于 UDP。 | 非常低。 |
应用 | 该协议主要用于需要安全可靠的通信程序的情况,例如电子邮件、网上冲浪和军事服务。 | 该协议用于需要快速通信但不考虑可靠性的情况,例如 VoIP、游戏流媒体、视频和音乐流媒体等。 |
总结
传输层通过将消息分割成多个数据包提供端到端的消息传输,支持面向连接的和无连接的通信。
OSI 第五层
第五层是 会话层,负责建立、维持和终止会话。
总结
会话层负责初始化、维持并终止两个用户应用程序之间的连接。它响应来自表示层的请求,并向传输层发起请求。
OSI 第六层
第六层是 表示层,负责数据的格式,比如字符编码与转换,以及数据加密。
加密:SSL 或 TLS 加密协议位于第六层。这些加密协议为网络上的节点提供身份认证和数据加密功能,帮助确保传输的数据抵御恶意用户的攻击。TLS 是 SSL 继任者。
总结
表示层负责格式化与加密数据。
OSI 第七层
第七层是 应用层。
顾名思义,这一层最终负责支持用户程序使用的服务。应用程序包括安装在操作系统中的软件程序,比如因特网浏览器(例如 Firefox)或文字处理程序(例如 Microsoft Word)。
总结
应用层拥有用户应用程序运行所需的服务和功能,不包括应用程序本身。
感谢大家读到这里,后续还会有其他相关文章,欢迎继续阅读。