首页 百科知识 网络协议概述

网络协议概述

时间:2022-10-04 百科知识 版权反馈
【摘要】:通信双方为了进行网络中的数据交换而建立的规则、标准或约定称为网络协议,主要由语法、语义和同步组成。为了保证网络功能的独立性通常将协议分层,网络中常用的分层协议是TCP/IP协议,它是一个协议簇,它实现不同网络之间的互联、资源共享和数据通信。网络协议也可简称为协议。我们将计算机网络的各层及协议的集合称为网络体系结构,如图3-1所示。其主要功能是处理用户信息的表示

任务概述

数据通信是指两个计算机程序之间进行信息传输的过程。通信双方为了进行网络中的数据交换而建立的规则、标准或约定称为网络协议,主要由语法、语义和同步组成。为了保证网络功能的独立性通常将协议分层,网络中常用的分层协议是TCP/IP协议,它是一个协议簇,它实现不同网络之间的互联、资源共享和数据通信。

任务目标

●能够掌握网络协议的定义

●能够理解协议分层的好处

●能够掌握OSI七层网络模型和TCP/IP协议簇

●能够理解并掌握TCP工作原理

学习内容

一、网络协议定义

通信双方为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol)。网络协议也可简称为协议。更进一步讲,网络协议主要由以下三个要素组成:

①语法,即数据与控制信息的结构或格式。

②语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。

③同步,即双方的交互关系和事件顺序。

由此可见,网络协议是计算机网络不可缺少的组成部分。

二、协议簇

复杂的通信系统中,协议是非常复杂的。为了保证网络的各个功能的独立性,通常将协议划分为多个子协议,子协议间保持一种层次结构,子协议的集合通常称为协议簇(协议栈)。

三、协议分层

协议通常有两种不同的形式,一种是用便于阅读和理解的文字描述的,一种是用计算机能够理解的程序代码描述的。为了减少协议设计的复杂性,便于维护,网络设计采用分层结构,协议也是分层执行,每一层利用相邻的下层提供的服务,又向相邻的上层提供服务。我们将计算机网络的各层及协议的集合称为网络体系结构(Architecture),如图3-1所示。

图3-1 分层结构图

1.采用分层的好处

(1)各层之间是独立的。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。

(2)灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则这层以上或以下的各层均不受影响。此外,对某一层提供的服务还可进行修改,当某一层提供的服务不再需要时,甚至可以将这层取消。

(3)结构上可分割开。各层都可以采用最合适的技术来实现。

(4)易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理。

(5)能促进标准化工作。

2.每一层的功能

分层时应注意每一层的功能要明确,通常每一层所要实现的功能往往是下面的一种或几种:

(1)差错控制。使得和网络对端的相应层次的通信更加可靠。

(2)流量控制。控制发送端的发送速率不要太快,使接收端来得及接收。

(3)分段和重装。发送端将要发送的数据块划分为更小的单位,在接收端将其还原。

(4)复用和分用。发送端几个高层会话复用一条低层的链接,在接收端再进行分用。

(5)连接建立和释放。交换数据前先建立一条逻辑链接,数据传送结束后释放链接。

四、OSI参考模型

OSI(Open System Interconnection,开放式系统互联参考模型)是国际标准化组织(International Standards Organization,ISO)制定的模型,把计算机之间的通信从逻辑上分为七个互相连接的协议层,如图3-2所示。

图3-2 OSI参考模型

1.物理层

物理层(Physical Layer)是OSI参考模型的最底层,也是OSI的第一层。主要功能是利用传输介质为数据链路层提供物理链接,实现比特流的透明传输。同时规定了设备的机械、电气、功能和规程特性,尽可能屏蔽掉具体传输介质和物理设备的差异。该层上的物理设备主要有网线、集线器、中继器、调制解调器等。

物理层可能受到的安全威胁是搭线窃听和监听,可利用数据加密、数据标签加密、数据标签、流量填充等方法保护物理层安全。

2.数据链路层

数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输的数据帧。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。

该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;LLC子层的主要任务是建立和维护网络链接,执行差错校验、流量控制和链路控制。该层上的物理设备有网桥、交换机等。

3.网络层

网络层(Network Layer)是OSI模型的第三层,它是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的链接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。该层的物理设备有路由器。

在实现网络层功能时,需要解决的主要问题如下:

(1)寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。

(2)交换:规定不同的信息交换方式。常见的交换技术有电路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。

(3)路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。

(4)链接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。

4.传输层

该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是提供建立、维护和拆除传输链接的功能,向高层屏蔽下层数据通信的细节,即向用户透明地传送报文,传输层在网络层的基础上为高层提供“面向链接”和“面向无链接”两种服务。该层常见的协议:TCP/IP中的TCP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。

5.会话层

会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用链接的方法。将不同实体之间的表示层的链接称为会话,因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。计算机之间的通信分为单工、半双工和全双工通信。会话层的具体功能如下:

(1)会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。

(2)会话流量控制:提供会话流量控制和交叉会话功能。

(3)寻址:使用远程地址建立会话链接。

(4)差错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。

6.表示层

表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是处理用户信息的表示问题,如编码、数据格式转换和加密解密等。表示层的具体功能如下:

(1)数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。

(2)数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。

(3)压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。

(4)数据的加密和解密:可以提高网络的安全性。

7.应用层

应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等。此外,该层还负责协调各个应用程序间的工作。

应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。

五、TCP/IP协议

TCP/IP已成为描述基于IP通信的代名词,它实际上是指整个协议簇,每个协议都有自己的功能。

1.TCP/IP网络参考模型

TCP/IP(Transmission Control Protocol/Internet Protocol)的中译名为传输控制协议/因特网互联协议,又名网络通信协议,是Internet最基本的协议和Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何链入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

图3-3 OSI与TCP/IP

2.TCP/IP模型

(1)网络接入层:物理层定义物理介质的各种特性:机械特性、电子特性、功能特性、规程特性。数据链路层负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据包,交给IP层。ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。RARP是反向地址解析协议,通过MAC地址确定IP地址。

(2)网络层:负责相邻计算机之间的通信。其功能包括三方面。①处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据包,填充包头,选择去往信宿机的路径,然后将数据包发往适当的网络接口。②处理输入数据包:首先检查其合法性,然后进行寻径——假如该数据包已到达信宿机,则去掉包头,将剩下部分交给适当的传输协议;假如该数据包尚未到达信宿机,则转发该数据包。③处理路径、流控、拥塞等问题。

网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)、控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据包是无链接服务。ICMP是网络层的补充,可以回送包文,用来检测网络是否通畅。ping命令就是发送ICMP的echo包,通过回送的echorelay进行网络测试。

(3)传输层:提供应用程序间的通信。其功能包括:格式化信息流,提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,从而提供可靠的数据传输。传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。

(4)应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录使用Telnet协议提供在网络其他主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。应用层协议主要包括如下几个:FTP、Telnet、DNS、SMTP、NFS、HTTP。

六、TCP协议

TCP(Transmission Control Protocol,传输控制协议)是一种面向链接的、可靠的、基于IP地址的传输层协议。TCP提供可靠的数据传输,支持多数据流操作,提供校验、对报文重组等功能。

1.TCP协议头结构

TCP的功能受限于其协议头中所携带的信息,其协议头结构如图3-4所示。

图3-4 TCP头结构

说明:

(1)源端口:16位的源端口包含初始化通信的端口号。源端口和IP地址的作用是标识包文的返回地址。

(2)目的端口:16位的目的端口定义传输的目的。

(3)序列号:TCP链线发送方向接收方的封包顺序号。

(4)确认序号:接收方回发的应答顺序号。

(5)头长度:表示TCP头的双四字节数,如果转化为字节个数需要乘以4。

(6)URG:紧急指针。0为不使用,1为使用。

(7)ACK:请求应答状态。0为请求,1为应答。

(8)PSH:以最快的速度传输数据。

(9)RST:链线复位,首先断线链接,然后重建。

(10)SYN:同步链线序号,用来建立链接。

(11)FIN:同步链线序号。0为结束链线请求,1为结束链线。

(12)窗口大小:目的机使用16位的域告诉源主机,它想收到每个TCP数据段大小。

(13)校验和:它不仅对头数据进行校验,还对封包内容校验。

(14)紧急指针:当URG为1时生效。TCP的紧急方式是发送紧急数据的一种方式。

2.TCP工作原理

TCP提供两个主机间的点对点的通信。TCP从应用层接收数据并将数据处理成字节流。先将字节分段,然后对段进行编号排序进行传输。在两个主机进行通信之前通过“三次握手”完成初始化,使序号同步,并提供两个主机间的控制信息。

TCP建立链接需要三次确认,即“三次握手”;在断开时需四次确认,即“四次挥手”。

3.TCP协议的“三次握手”和“四次挥手”

(1)TCP“三次握手”:TCP是主机对主机层的传输控制协议,提供可靠的链接服务,采用三次握手确认建立一个链接位码,即TCP标志位,有6种标志:SYN(synchronous,建立联机)、ACK(acknowledgement,确认)、PSH(push,传送)、FIN(finish,结束)、RST(reset,重置)、URG(urgent,紧急)。客户机向服务器发送Sequence number(顺序号码)后,服务器向客户机发送Acknowledge number(确认号码)。

第一次握手:客户机发送位码为SYN=1,随机产生Seq number=1234567的数据包到服务器,服务器由SYN=1知道,客户机要求建立联机;

第二次握手:服务器收到请求后要确认联机信息,向客户机发送ACK number=(客户机的Seq+1),SYN=1,ACK=1,随机产生Seq=7654321的包;

第三次握手:客户机收到后检查ACK number是否正确,即第一次发送的Seq number+1,以及位码ACK是否为1,若正确,客户机会再发送ACK number=(服务器的Seq+1),ACK=1,服务器收到后确认Seq值与ACK=1,则链接建立成功。

如图3-5所示。

完成三次握手,客户机与服务器开始传送数据。

图3-5 TCP三次握手

(2)TCP“四次挥手”:由于TCP链接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的链接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP链接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

①客户端发送一个FIN,用来关闭客户到服务器的数据传送。

②服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

③服务器关闭与客户端A的链接,发送一个FIN给客户端。

④客户端发回ACK包文确认,并将确认序号设置为收到序号加1。

如图3-6所示。

图3-6 TCP四次挥手

七、用户数据报协议UDP

UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open Sys-tem Interconnection,开放式系统互联)参考模型中一种无链接的传输层协议,提供面向事务的简单不可靠信息传送服务。

1.UDP协议头结构

UDP协议头结构如图3-7所示。

图3-7 UDP协议头结构

说明:

(1)源端口:16位的源端口号包含初始化通信的端口号。源端口号的IP地址的作用是标识包文的返回地址。

(2)目的地址:16位的目的地址端口域定义传输的目的。端口指明包文接收计算机上的应用程序地址接口。

(3)封包长度:UDP头和数据的总长度。

(4)校验和:与TCP的校验和一样,不仅对头数据进行校验,还对包的内容进行校验。

2.UDP与TCP的区别

(1)TCP(传输控制协议)提供IP环境下的数据可靠传输,是面向链接、端到端的传输;UDP(用户数据报协议,User Data Protocol) 面向非链接的传输,不能提供可靠性、流控、差错恢复功能。

(2)TCP支持的应用协议:Telnet(远程登录)、FTP(文件传输协议)、SMTP(简单邮件传输协议)。TCP用于传输数据量大、可靠性要求高的应用。

UDP支持的应用协议:NFS(网络文件系统)、SNMP(简单网络管理系统)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。

(3)TCP传输速度快,而UDP传输速度慢。

八、ICMP协议

ICMP(Internet Control Message Protocol)是Internet控制包文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

1.ICMP协议头结构

ICMP协议头结构如图3-8所示。

图3-8 ICMP协议头结构

2.ICMP工作原理

ICMP提供出错报告信息。发送的出错包文返回到发送原数据的设备,因为只有发送设备才是出错包文的逻辑接受者。发送设备随后可根据ICMP包文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

我们在网络中经常会用到ICMP协议,比如我们经常使用的用于检查网络通不通的ping命令(Linux和Windows中均有),这个“ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈