C/C++教程

OSI参考模型和TCP/IP模型

本文主要是介绍OSI参考模型和TCP/IP模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

    • 1.OSI参考模型
      • 1.1 OSI参考模型简介
      • 1.2 OSI七层参考模型
    • 2.TCP/IP模型
      • 2.1 TCP/IP模型(五层/四层)
      • 2.2 各层对应的协议
    • 3.数据封装解封装过程
    • 4.通信方式

1.OSI参考模型

1.1 OSI参考模型简介

OSI(Open System Interconnect),即开放式系统互连。 一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即OSI七层参考模型。

1.2 OSI七层参考模型

在这里插入图片描述
物理层: 物理层是参考模型中的最底层,主要定义了系统的电气、机械、过程和功能标准。如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。物理层的传输单位为比特流(0和1),即光电信号。 物理层的主要功能是利用传输介质(比如网线、同轴电缆等)为数据链路层提供物理链接,进行数据流的物理传输。

数据链路层: 数据链路层是在通信实体间建立数据链路联接,传输的基本单位为“帧”,并为网络层提供差错控制和流量控制服务 。简单地说,就是建立逻辑连接、进行硬件地址寻址、差错校验等功能。数据链路层的工作过程为:接收网络层的数据包,并在数据包前打上目标MAC(物理)地址,封装成数据帧,建立数据链路。

网络层: 主要为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能。简得来说,网络层就是定义逻辑地址、实现不同网络之间的寻址,理论选择转发数据的最佳路径。网络层的工作过程为:接收传输层的数据段,并在数据段前打上源IP和目标IP地址,封装成数据包。

传输层: 传输层是网络体系结构中高低层之间衔接得一个接口层,它不仅仅是一个单独的结构层,而是整个分析体系协议的核心。传输层主要为用户提供端到端服务。其工作过程为:接收上层的数据,将数据分段处理,在每段数据前打上TCP或UDP报头,并加上端口号,封装成数据段。从而实·现网络中不同主机上的用户进程之间的数据通信。

会话层: 会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层在应用进程中建立、管理和终止会话。会话层可以通过对话控制来决定使用全双工或者半双工通信。

表示层: 表示层为在应用过程之间传送的信息提供表示方法的服务。 表示层的主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化、数据加密与解密、数据压缩与解压缩等。

应用层: 应用层是OSI模型中的最高层,是直接面向用户的一层,用户的通信内容要由应用进程解决 。简单地说,就是网络服务与最终用户的一个接口。应用层提供了不同的协议来保障不同类型的应用所采用的低层通信协议是一致的。需要注意的是应用层并不是应用程序,而是为应用程序提供服务。

2.TCP/IP模型

2.1 TCP/IP模型(五层/四层)

在这里插入图片描述
五层体系结构包括:应用层、运输层、网络层、数据链路层和物理层。

五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层

各层的作用和OSI七层模型是一样的,无非就是将上三层整合成了应用层。

  1. 物理层:负责光电信号传递方式。集线器工作在物理层,采用以太网协议。
  2. 数据链路层:负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。
  3. 网络层:负责地址管理和路由选择。路由器工作在网络层。
  4. 传输层:负责两台主机之间的数据传输。
  5. 应用层:负责应用程序之间的沟通。

2.2 各层对应的协议

在这里插入图片描述

各层协议分析:

物理层:

  • IEEE802.3 有线局域网(以太网)
  • IEEE802.11 无线局域网标准

数据链路层:

  • PPP (Point to Point Protocol)点到点协议
  • Ethernet 以太网协议

网络层:
IP(Internet Protocol,网际协议),又由四个支撑协议组成:

  • ARP(地址解析协议): 是根据IP地址获取物理mac地址的协议

  • RARP(逆地址解析协议): 是根据物理mac地址获取IP地址的协议

  • ICMP(网际控制报文协议):ping 网络连通性检测

  • IGMP(网际组管理协议):一个组播协议,该协议运行在主机和组播路由器之间

单播:一对一发消息
组播:对部分特定的人发消息
广播:对所有人发消息

传输层

  • TCP :传输控制协议 ,是可靠的协议 (安全性高,速度慢)

  • UDP:用户数据报协议 ,是不可靠的协议(安全性不高,速度快)

应用层:

  • HTTP(超文本传输协议):是一个简单的请求-响应协议,现在主要的场景是web服务,就是网页的传输,默认使用tcp的80端口。

  • HTTPS:HTTP+SSL,是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间),默认使用tcp的443端口 。

  • FTP:文件传输协议,基于C/S(Client / Server,客户端 / 服务器)模型,提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,默认使用tcp的20,21端口。

  • TFTP:简单文件传输协议,是一个小而易于实现的文件传送协议,TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别,默认使用udp的69端口。

  • SNMP:简单网络管理协议,专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及集线器等)的一种标准协议,默认使用udp的161端口。

  • SMTP:简单邮件传输协议,一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式,用于邮件的发送,默认使用tcp的25端口。

  • POP3:邮局协议版本3,用于邮件的接收,默认使用tcp的110端口。

  • Telnet:远程登陆协议,一种字符模式的终端服务,可以使用户通过网络进入远程主机或网络设备,然后对远程主机或设备进行操作,默认使用tcp的23端口。

  • SSH:安全的远程登陆协议,默认使用tcp的22端口。

  • DNS:域名解析系统,将域名和IP地址相互映射,默认使用tcp和udp的53端口。

  • DHCP:动态主机配置协议,是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,默认使用udp的67和68端口。

关于端口号:

如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:216)个,端口是通过端口号来标记的,端口号只有整数,范围是从0 到 65535(2^16 -1)。

周知端口:
周知端口是众所周知的端口号,范围从0到1023,就像其中80端口分配给WWW服务,21端口分配给FTP服务等。

注册端口:
端口1024到 49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以用用户端动态选用为源端口。

动态端口:
动态端口的范围是从49152到 65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。

3.数据封装解封装过程

在这里插入图片描述

封装过程:

  1. 用户信息转换为数据,以便在网络上传输。
  2. 数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接。
  3. 数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输。
  4. 数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
  5. 帧转换为比特流,进行传输。

在这里插入图片描述
解封装的过程就是将封装的过程倒过来,一层一层的将包头拆开,最终还原成数据本身

4.通信方式

通信方式分为三种:

1. 单工通信
单工通信只支持数据在一个方向上传输,又称为单向通信。如无线电广播和电视广播都是单工通信。
在这里插入图片描述
2. 半双工通信
半双工通信允许数据在两个方向上传输,但在同一时刻,只允许数据在一个方向上传输,它实际上是一种可切换方向的单工通信。即通信双方都可以发送信息,但不能双方同时发送,也不能同时接受
在这里插入图片描述

3. 全双工通信
全双工通信允许数据同时在两个方向上传输,又称为双向同时通信,即通信的双方可以同时发送和接收数据。如现代电话通信提供了全双工通信。这种通信方式主要用于计算机与计算机之间的通信。

在这里插入图片描述

这篇关于OSI参考模型和TCP/IP模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!