文档中心 > 117数据 > Linux网络协议

Linux网络协议

最近更新时间:2024-07-16 11:50:47

【一】OSI 网络模型

OSI (开放系统互联)模型是国际标准化组织提出的一个概念框架,旨在为不同的计算机和网络在全球范围内的互联提供标准化指导。这个模型将计算机网络体系结构划分为七个层次,从上到下依次为:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。每一层都提供了清晰的接口,有助于理解工业标准的TCP/IP协议。各层实际上是协议的集合,例如应用层不仅指应用程序,还包括大量应用层协议,确保应用程序在网络中有效运行。

以下是对OSI七层模型的详细说明:

(1)应用层

应用层是网络应用程序使用的层,与用户最近。它通过协议如FTP(文件传输协议)、HTTP/HTTPS(网页浏览协议)、SMTP(邮件传输协议)、Telnet(远程登录协议)提供服务。网络应用指那些利用互联网的计算机应用程序来执行用户操作。

(2)表示层
表示层是OSI模型的第六层,从应用层接收数据,这些数据以字符和数字形式出现。表示层将这些字符和数据转换成机器可理解的二进制格式,即“翻译”功能,将人类语言转换成机器语言。在数据传输之前,表示层会对原始数据进行压缩,减少所需比特数。这对于实时视频和音频传输尤为重要,以保持数据传输的完整性。

(3)会话层
会话层是OSI模型的第五层,作为用户应用程序和网络之间的接口。其主要职责是为两个实体的表示层提供建立和使用连接的方法。会话层负责组织和协调两个会话进程之间的通信,并管理数据交换。用户可以按照半双工、单工和全双工的方式建立会话,使用专门设计的、更易记的地址进行连接。

(4)传输层
传输层是OSI模型的第四层,是网络体系结构中的关键层之一,负责在两个主机进程间提供通信服务。传输层具有复用和分用功能,保证数据传输的可靠性。它通过流量控制、分段/重组和差错控制确保数据在终端用户之间透明传输。传输层的一些协议是面向连接的,能追踪和重传失败的分段。

(5)网络层
网络层是OSI模型的第三层,是最复杂的一层,也是通信子网的最高层。其主要任务是通过路由选择算法,为报文或分组在通信子网中选择最佳路径。它负责在数据链路层与传输层之间转发信息,建立、维持和终止网络连接。具体来说,网络层将数据链路层的数据转换为数据包,通过路径选择、分段组合和路由控制,将信息从一个网络设备传送到另一个。

(6)数据链路层
数据链路层是OSI模型的第二层,负责建立和管理节点间的链路。其主要功能是通过各种控制协议,将有差错的物理信道变为无差错的、可靠传输数据帧的数据链路。在计算机网络中,物理链路由于各种干扰是不可靠的。因此,数据链路层通过差错控制和流量控制方法,将物理层提供的比特流转换为可靠的数据链路。

(7)物理层
物理层是OSI模型的第一层,涉及电气、机械、功能和规程特性的统一标准。这四个方面的高度统一是实现全球范围内网络互通的基础。

【二】 TCP/IP 协议

当前我们使用的互联网起源于ARPANET。ARPANET最初使用的是一种名为NCP的网络协议。然而,随着网络的扩展和节点数量的增加,以及用户对网络需求的提升,NCP协议逐渐不能满足ARPANET的发展要求。更重要的是,NCP只能在相同操作系统环境下工作,导致Windows用户无法与MacOS和Android用户通信。因此,ARPANET迫切需要一种新的协议来替代NCP。这个任务交由两位著名的计算机科学家罗伯特·卡恩和温顿·瑟夫来完成,许多人称他们为互联网之父。1974年,他们在IEEE期刊上发表了题为《关于分组交换的网络通信协议》的论文,正式提出了TCP/IP协议,实现了计算机网络间的互联。

TCP/IP并不是单一的协议,而是一个协议簇,由多个不同层次的协议组成。下图展示了OSI模型和TCP/IP模型的对比,以及TCP/IP不同层次的协议。

严格来说,分层模型的目的是将每一层的功能尽可能独立,使其对其他层透明,仅对通信的另一端负责,从而为编程和诊断提供良好的层次隔离。然而,实际情况并非如此。首先,完全按照分层模型进行软件编程会降低效率,分层不如按功能实现模块化。其次,许多功能实现需要跨层交互,这违背了分层模型的初衷。例如,链路层在成帧时需要接收端的物理地址,而该地址必须由网络层通过ARP地址解析来处理,将ARP简单归于某一层并不合适。

(1)网络接口层
网络接口层,也称为数据链路层或链路层,通常包括操作系统中的设备驱动程序和计算机中的网络接口卡,主要处理与电缆物理接口的细节。在TCP/IP协议簇中,链路层协议种类繁多,网络接口层决定了网络形态,但很多协议并非专为TCP/IP设计。

(2)网络层
网络层负责处理分组在网络中的活动,完成路由和寻径功能,提供主机到主机的连接。IP是一个尽力传送、不可靠的协议。

(3)传输层
传输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议簇中,有两个主要传输协议:TCP(传输控制协议)和UDP(用户数据报协议),它们分别承载不同的应用。TCP协议提供可靠但高效的服务,而UDP协议则不可靠但高效。

(4)应用层
应用层负责具体的应用,如HTTP访问、FTP文件传输、SMTP/POP3邮件处理。几乎所有的TCP/IP实现都会提供以下通用应用程序:远程登录(Telnet)、文件传输协议(FTP)、域名管理(DNS)、简单网络管理协议(SNMP),如图所示:

IP协议是TCP/IP协议族中最核心的协议。它提供不可靠、无连接的服务,依赖其他层的协议进行差错控制。在局域网环境中,IP协议通常封装在以太网帧中传输。所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送,如图所示:

Ethernet帧头 IP头部 TCP头部 上层数据 FCS

在IP网络中传输的单位称为IP数据包,IP数据包包括IP报头和更高层协议的相关数据。IP数据包的报头至少为20个字节,其中包括版本、报头长度、服务类型、总长度、标识、标志、段偏移量、生存期、协议、头部校验和、源地址、目标地址、可选项和数据。引入IP报头字段是为了为网络实体提供互联机制,IP报头不仅包含大量IP数据包信息,如源和目标IP地址、数据包内容等,还为网络实体提供了从源到目标地址之间传送数据包的处理方法。

如图所示为IP数据报头字段结构:

版本 报头长度 服务类型 总长度
标识 标志 段偏移量
生存期 协议 头部校验和
源地址
目标地址
可选项
数据

如表所示为IP数据报头字段说明:

IP 头部字段 说明
版本 占用4位,用于指示IP协议的版本号,目前常见的是IPv4,即0100
报头长度 占4位,对于普通IP数据报,该字段值为5
服务类型 占8位,其中前3位用于优先权子字段,但现已被忽略,第8位保留未使用
总长度 占16位,指示整个数据报的长度,最大可达65535字节
标识 占16位,用于唯一标识主机发送的每一个数据报
标志 占3位,指示数据报是否需要分段
段偏移量 占13位,数据报分段时,此字段指示该段相对于原始数据报起始位置的偏移量
生存期 占8位,设置数据报最多可以通过的路由器数量
协议 占8位,指示IP层所封装的上层协议类型
头部校验和 占16位,基于IP头部计算得到的校验码
源地址 占32位,指示发送IP数据报的源主机地址
目标地址 占32位,指示接收IP数据报的目标主机地址
可选项 占32位,用于定义一些可选功能,如记录路径、时间戳等

如果您的问题还未解决,可以 提交工单寻求帮助。

免费试用30+款云服务产品 即刻开始您的上云之旅
免费试用