OSI 和 TCP/IP 网络分层模型详解(基础)
OSI 和 TCP/IP 网络分层模型详解(基础)
计算机网络是现代信息技术的基础,而理解网络分层模型则是掌握网络技术的关键。本文将详细介绍OSI七层模型和TCP/IP四层模型,帮助读者建立清晰的网络知识体系。
OSI 七层模型
OSI(Open Systems Interconnection)七层模型是由国际标准化组织(ISO)提出的一个网络分层模型。其结构如下图所示:
每一层都专注于完成特定的功能,并且依赖下一层提供的服务。例如,传输层需要使用网络层提供的路由和寻址功能,以确定数据传输的目标位置。
尽管OSI七层模型在理论上非常完善,但实际应用中存在一些问题:
- 缺乏商业驱动力
- 协议实现复杂且效率低
- 标准制定周期长,无法及时进入市场
- 层次划分不合理,功能重复
尽管如此,学习OSI七层模型仍然很有价值,因为它提供了重要的理论基础。
TCP/IP 四层模型
TCP/IP(Transmission Control Protocol/Internet Protocol)四层模型是目前广泛采用的网络分层模型,可以看作是OSI七层模型的精简版本。它由以下四层组成:
- 应用层
- 传输层
- 网络层
- 网络接口层
虽然TCP/IP模型与OSI模型不能完全对应,但可以大致对应如下:
应用层(Application layer)
应用层位于传输层之上,主要负责两个终端设备上的应用程序之间的信息交换。它定义了信息交换的格式,数据会被封装成报文并交给传输层进行传输。
应用层协议定义了网络通信规则,常见的应用层协议包括:
- HTTP(超文本传输协议)
- SMTP(简单邮件传输协议)
- POP3/IMAP(邮件接收协议)
- FTP(文件传输协议)
- Telnet(远程登录协议)
- SSH(安全外壳协议)
- RTP(实时传输协议)
- DNS(域名系统)
传输层(Transport layer)
传输层的主要任务是为两台终端设备进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”意味着多种应用可以使用同一个传输层服务。
传输层常见的协议有:
- TCP(传输控制协议):提供面向连接的、可靠的数据传输服务
- UDP(用户数据报协议):提供无连接的、尽力而为的数据传输服务
网络层(Network layer)
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,分组也叫IP数据报。
网络层的主要任务还包括选择合适的路由,使源主机运输层所传下来的分组,能通过网络层中的路由器找到目的主机。
网络层常见的协议有:
- IP(网际协议)
- ARP(地址解析协议)
- ICMP(互联网控制报文协议)
- NAT(网络地址转换协议)
- OSPF(开放式最短路径优先)
- RIP(路由信息协议)
- BGP(边界网关协议)
网络接口层(Network interface layer)
网络接口层可以看作是数据链路层和物理层的合体。其主要功能包括:
- 数据链路层的作用是将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
- 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。
网络接口层的重要功能和协议包括差错检测技术、多路访问协议、CSMA/CD协议、MAC协议和以太网技术等。
网络分层的原因
网络分层的主要原因有:
各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。
提高了整体灵活性:每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。
大问题化小:分层可以将复杂的网络问题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。
本文原文来自CSDN