Linux 的网络通信模型

计算机网络模型是为了简化网络的研究、设计与实现而抽象出来的一种结构模型, 通常采用层次模型。在每个层次模型中,将系统所要实现的复杂功能分化为若干个相对简单的细小功能,每一项分功能以相对独立的方式去实现。

OSI 网络模型

开放系统互联参考模型OSI (Open Systcm Interconnection Reference Mode)是国际标准化组织(ISO)提出的一个设计和描述网络通信的基本框架,包括了物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(共7层)。

通常把OSI网络模型的低四层(物理层、数据链路层、网络层、传输层)称为数据流层,而把高三层(会话层、表示层、应用层)称为应用层。
TCP/IP协议模型和OSI模型的比较

  • 物理层
    计算机网络的最底层,也是最基础的层,是有关物理设备通过物理媒体进行互连的描述和规定。物理层协议定义了接口的机械特性、电气特性、功能特性、规程特性,其以比特流的方式传送来自数据链路层的数据,而不去理会数据的含义或格式。
  • 数据链路层
    该层承担了两个数据设备(计算机等)通过物理层进行无差错传输数据帧的工作,通常来说这些数据帧的传输都需要等待接收方的确认,若有错误或者丢失的数据帧必须重新传送。
  • 网络层
    该层负责信息寻址以及将逻辑地址与名字转换为物理地址。在网络层中传输的是数据包,其需要选择合适的路径转发数据包,使发送方的教据包能够正确无误地按地址寻找到接收方的路径,并将数据包交给接收方。网络层通常还需要对数据包进行重组以满足数据链路层对数据帧大小的要求,并且还需要考虑不同协议之间的互联问题。
  • 传输层
    该层负责在不同子网中的两个数据设备之间,数据包可以可靠、顺序、无错地传输,在该层中传输的是数据段,其向高层用户提供端到端的可靠的透明传输服务,为不同进程间的数据交换提供可靠的传送手段。
  • 会话层
    其是利用传输层提供的端到端服务,向表示层或会话用户提供会话服务。会话层的主要功能是在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。
  • 表示层
    其负责在不同的数据格式之间进行转换操作,以实现不同计算机系统间的信息交换,以及负责编码、加密、压缩等操作。
  • 应用层
    其直接和用户以及应用程序进行数据交互,包括了大量的应用协议,如 Telnet、SSH、DNS、HTTP 等。

TCP/IP协议及其网络模型

TCP/IP协议的分层

TCP/IP协议是一组在网络中提供可靠数据传输和无连接数据服务的协议,其中提供可靠数据传输的协议称为传输控制协议(TCP),提供无连接数据包服务的协议称为网际协议(IP)。

TCP/IP协议并不是只有TCP和IP两个协议,而是包含很多其他协议的一个同络协议集合。

TCP/IP协议的出现时间比OSI更早,其也有自己的网络模型,可以分为网络接口层、网络层、传输层、应用层共4个部分。
TCP/IP协议模型和OSI模型的比较
TCP/IP 协议是一系列(到目前为止有100多个)协议的集合,这些协议分别对应 TCP/IP 协议的每个层次。
TCP/IP的模型层次和对应的协议

  • 应用层
    提供各种常用的高层协议,包括FTP (文件传输)、TLENET (远程登录)、SMTP(简单邮件传送)、 HTTP (超文本传输)、DNS (域名服务)等。
  • 传输层
    提供从发送方端口到接收方端口的数据传输协议,最常用的协议是 TCP 和 UDP 协议。
  • 网络协议层
    负责检查网络拓扑结构,以决定传输数据的最佳路由,最重要的功能是实现 IP 地址和主机的对应,最常用的协议包括IP (网际协议)、ICMP ( 因特网控制消息协议)、ARP (地址解释协议)等。
  • 网络接口层
    主要用于实现数据在物理上的传输,即正确的发送和接收IP的分组,其涉及的协议和具体的网络相关,例如令牌网、分组交换网的相关协议等。

Linux 中的 TCP/IP 模型

Linux中的TCP/IP模型结构

  • 在用户态的最上层是各种网络应用程序,包括浏览器、邮件服务器等,使用例如 ftp、ssh 等网络协议。
  • 网络应用程序通过 BSD Sockets (BSD套接字)和 INET Sockets (INET套接字)这两个套接字接口以及 TCP 或者 UDP 协议进行数据交互,其中 INET 套接字协议还可以直接和IP协议进行数据交互。
  • TCP 协议和 UDP 协议分别是可靠的有连接的通信协议和不可靠的无连接的通信协议,它们都会和IP协议进行数据交互,它们和IP协议一起被统称为协议层。
  • 在协议层下方即为网络接口层,如PPP、以太网(Ethermet)等,需要注意的是网络设备并不完全等同于物理设备,因为一些网络设备是完全由软件实现的。
发布了71 篇原创文章 · 获赞 131 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43239560/article/details/101619776