快捷搜索:  汽车  科技

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事除此之外,我们还需要知道Linux 网络I/O 模型和Java JDK中的I/O 模型:由于 OSI 参考模型把服务划得过于琐碎,先定义参考模型再定义协议,有点理想化。 TCP / IP 模型则正好相反, 通过已有的协议归纳总结出来的模型,成为业界的实际网络协议标准。TCP / IP 是有由 I E T F 建议、推进其标准化的一种协议, 是 IP 、 TCP 、HTTP 等协议的集合。TCP / IP是为使用互联网而开发制定的协议族, 所以互联网的协议就是 TCP / IP。TCP / IP 每层的主要协 议详情如下:OSI 参考模型:O S I 参考模型将网络协议提供的服务分成 7 层,并定义每一层的服务内容, 实现每一层服务的是协议, 协议的具体内容是规则。上下层之间通过接口进行交互,同一层之间通过协议进行交互。 O S I 参考模型只对各层的服务做了粗略的界定, 并没有对协议进行详

我们用手机连接上网的时候,会用到许多网络协议。从手机连接 W i F i 开始, 使用的是 8 0 2 . 11 (即 W L A N ) 协议, 通过 W L A N 接入网络; 手机自动获取网络配置,使用的是 D H C P 协议,获取配置后手机才能正常通信。这时手机已经连入局域网,可以访问局域网内的设备和资源, 但还不能使用互联网应用,例如:微信、抖音等。想要访问互联网,还需要在手机的上联网络设备上实现相关协议, 即在无线路由器上配置 N AT、 P P P O E 等功能, 再通过运营商提供的互联网线路把局域网接入到互联网中, 手机就可以上网玩微信、刷抖音了。常见的网络主要有:

  1. 局域网 : 小范围内的私有网络, 一个家庭内的网络、一个公司内的网络、一个校园内 的网络都属于局域网。
  1. 广域网: 把不同地域的局域网互相连接起来的网络。运营商搭建广域网实现跨区域的网络互连。
  2. 互联网: 互联全世界的网络。互联网是一个开放、互联的网络, 不属于任何个人和任何机构, 接入互联网后可以和互联网的任何一台主机进行通信。

简单来说,就是手机、无线路由器等设备通过多种网络协议实现通信。网络协议就是为了通信各方能够互相交流而定义的标准或规则, 设备只要遵循相同的网络协议就能够实现通信。那网络协议又是谁规定的呢? ISO 制定了一个国际标准OSI , 其中的 OSI 参考模型常被用于网络协议的制定。常见的网络协议:

  1. 面向连接协议(TCP协议):在发送数据之前, 在收发主机之间连接一条逻辑通信链路。好比平常打电话,输入完对方电话号码拨出之后, 只有对方接通电话才能真正通话,通话结束后将电话机扣上就如同切断电源。TCP协议是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用, 例如文件传输。
  1. 面向无连接协议(UDP协议):不要求建立和断开连接。发送端可于任何时候自由发送数据。如同去寄信, 不需要确认收件人信息是否真实存在,也不需要确认收件人是否能收到信件,只要有个寄件地址就可以寄信了。U D P 是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。适用于实时应用, 例如: I P 电话、视频会议、直播等

网络模型

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事(1)

从计算机网络层面来说,常见网络模型主要有OSI 参考模型和TCP/IP 模型两种,主要表达如下:

OSI 参考模型:

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事(2)

O S I 参考模型将网络协议提供的服务分成 7 层,并定义每一层的服务内容, 实现每一层服务的是协议, 协议的具体内容是规则。上下层之间通过接口进行交互,同一层之间通过协议进行交互。 O S I 参考模型只对各层的服务做了粗略的界定, 并没有对协议进行详细的定义,但是许多协议都对应了 7 个分层的某一层。所以要了解网络,首先要了解 O S I 参考模型:

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事(3)

  1. 应用层:O S I 参考模型的第 7 层( 最高层)。应用程序和网络之间的接口, 直接向用户提供服务。应用层协议有电子邮件、远程登录等协议。
  1. 表示层:O S I 参考模型的第 6 层。负责数据格式的互相转换, 如编码、数据格式转换和加密解密等。保证一个系统应用层发出的信息可被另一系统的应用层读出。
  2. 会话层:O S I 参考模型的第 5 层。主要是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。
  1. 传输层:O S I 参考模型的第 4 层。为上层协议提供通信主机间的可靠和透明的数据传输服务, 包括处理差错控制和流量控制等问题。只在通信主机上处理, 不需要在路由器上处理。
  2. 网络层:O S I 参考模型的第 3 层。在网络上将数据传输到目的地址, 主要负责寻址和路由选择。
  1. 数据链路层:O S I 参考模型的第 2 层。负责物理层面上两个互连主机间的通信传输, 将由 0、 1 组成的比特流划分成数据帧传输给对端,即数据帧的生成与接收。通信传输实际上是通过物理的传输介质实现的。 数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址, 而数据链路层则只负责送一个分段内的数据。
  2. 物理层:O S I 参考模型的第 1 层( 最底层)。负责逻辑信号( 比特流) 与物理信号(电信号、光信号)之间的互相转换,通过传输介质为数据链路层提供物理连接。

TCP/IP 模型:

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事(4)

由于 OSI 参考模型把服务划得过于琐碎,先定义参考模型再定义协议,有点理想化。 TCP / IP 模型则正好相反, 通过已有的协议归纳总结出来的模型,成为业界的实际网络协议标准。TCP / IP 是有由 I E T F 建议、推进其标准化的一种协议, 是 IP 、 TCP 、HTTP 等协议的集合。TCP / IP是为使用互联网而开发制定的协议族, 所以互联网的协议就是 TCP / IP。TCP / IP 每层的主要协 议详情如下:

  1. 网络接入层:TCP / IP 是以 O S I 参考模型的物理层和数据链路层的功能是透明的为前提制定的,并未对这两层进行定义,所以可以把物理层和数据链路层合并称为网络接入层。网络接入层是对网络介质的管理,定义如何使用网络来传送数据。但是在通信过程中这两层起到的作用不一样, 所以也有把物理层和数据链路层分别称为硬件、网络接口层。 TCP / IP分为四层或者五层都可以,只要能理解其中的原理即可。设备之间通过物理的传输介质互连, 而互连的设备之间使用 M A C 地址实现数据传输。采用 M A C 地址,目的是为了识别连接到同一个传输介质上的设备。
  1. 网络层:相当于 OSI 模型中的第 3 层网络层, 使用 I P 协议。 I P 协议基于 I P 地址转发分包数据,作用是将数据包从源地址发送到目的地址。TCP / IP 分层中的网络层与传输层的功能通常由操作系统提供。 路由器就是通过网络层实现转发数据包的功能。
  2. 传输层:相当于 OSI 模型中的第 4 层传输层, 主要功能就是让应用程序之间互相通信,通过端口号识别应用程序, 使用的协议有面向连接的 TCP 协议和面向无连接的 UDP 协议。
  1. 应用层:相当于 OSI 模型中的第 5 - 7 层的集合, 不仅要实现 O S I 模型应用层的功能,还要实现会话层和表示层的功能。 HTTP 、 POP3 、 TELNET 、 SSH、 F T P 、 SNMP 都是应用层协议。

除此之外,我们还需要知道Linux 网络I/O 模型和Java JDK中的I/O 模型:

Linux 网络I/O 模型:

Linux的内核将所的外部设备看作一个文件来操作,对于一个文件的读写操作会调用内核提供的系统命令,返回一个文件描述符(fd File Descriptor);同时,在面对一个Socket的读写时也会有相应的套接字描述符(socketfd Socket File Descriptor) 描述符是一个数字,它指向内核中的一个结构体 比如文件路径,数据区等。Linux 网络I/O 模型是按照UNIX网络编程来定义的,主要有:

阻塞I/O模型(Blocking I/O ):

软件系统的模块类型有哪些:如何正确理解软件应用系统中关于系统通信的那些事(5)

猜您喜欢: