▶1.网络协议的计算思维特征
为了减少网络通信的复杂性,专家们将网络通信过程划分为许多小问题,然后为每个问题设计一个通信协议(如RFC)。这样使得每个协议的设计、编码和测试都比较容易。这样网络通信就需要许多协议,如TCP/IP标准就包含了数千个因特网协议(如RFC1~RFC6455)。为了减少复杂性,专家们又将网络功能划分为多个不同的层次,每层都提供一定的服务,使整个网络协议形成层次结构模型。网络协议的层次模型具有以下特征。
(1)完整性。将一个复杂的网络通信过程分解为几个层次处理,大大降低了每个层次的复杂性。网络协议的分层不能模糊,每一层都必须明确定义,而且不会引起误解。网络协议必须是完整的,对每种可能出现的情况必须规定相应的具体操作。
(2)独立性。网络协议分层后,各层之间相互独立,高层不必关心低层的实现细节,做到每层各司其职。每个网络层次内部的具体操作方式,其他层次不必了解。只要服务内容和层次之间的接口不变,层次内协议的实现方法可灵活改变。
(3)标准接口。每个网络协议层次都提供标准的服务,使不同层次之间易于合作。网络协议的每一层都必须提供标准接口,使开发商易于提供网络软件和网络设备。
(4)灵活性。只要网络协议结构不变,某个网络层次内部的变化不会对其他层次产生影响,因此每个层次的软件或设备可以单独升级或改造,这有利于网络的维护和管理。
“层次结构”的计算思维,大大简化了很多复杂问题的处理过程。
▶2.OSI/ISO网络体系结构
网络层次模型和通信协议的集合称为网络体系结构。常见的网络体系结构有OSI/ISO(开放式系统互连/国际标准化组织)、TCP/IP(传输控制协议/网间协议)等。OSI/ISO网络体系结构模型分为7个层次,它们分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。OSI/ISO模型还规定了每层的功能,以及不同层之间如何进行通信协调。由于各方面的原因,OSI/ISO网络体系结构并没有在计算机网络中得到实际应用,它往往作为一个理论模型进行网络分析。
▶3.TCP/IP网络体系结构
TCP/IP是IETF(因特网工程任务组)定义的网络体系结构模型,它规范了主机之间通信的数据包格式、主机寻址方法和数据包传送方式。如图7-7所示,TCP/IP模型定义了4个层次:应用层、传输层、网络层和网络接口层。
1)应用层
应用层的主要功能是为用户提供各种网络服务和解决各种软件系统之间的兼容性。应用层提供了各种网络服务,因此这层的网络协议非常多。例如,网页服务(HTTP超文本传输协议、HTML超文本标记语言等)、电子邮件服务(SMTP简单邮件传送协议、POP3邮局协议)、文件传输服务(FTP)、域名服务(DNS)、即时通信(如微信)服务等。
TCP/IP协议可以应用在各种不同结构的计算机中。机器之间会存在大量兼容性问题,如不同文件系统有不同的文件命名规则;不同系统采用不同的字符编码标准;不同系统之间传输文件的方式也各不相同等。这些兼容性问题都由应用层协议来处理。
2)传输层
传输层的功能是报文分组、数据包传输、流量控制等。传输层主要由TCP(传输控制协议)和UDP(用户数据报协议)两个网络协议组成。
TCP协议提供可靠传输服务,它采用了三次握手、发送接收确认、超时重传等技术。确认机制和超时重传的工作过程如下:发送端的TCP对每个发送的数据包分配一个序号,然后将数据包发送出去。接收端收到数据包后,TCP将数据包排序,并对数据包进行错误检查,如果数据包已成功收到,则向对方发回确认信号(ACK);如果接收端发现数据包损坏,或在规定时间内没有收到数据包,则请求对方重传数据包。如果发送端在合理往返时间内没有收到接收端的确认信号,就会将相应的数据包重新传输(超时重传),直到所有数据安全正确地传输到目的主机。
UDP是一种无连接协议(通信前不进行三次握手连接),它不管对方状态就直接发送数据;UDP也不提供数据包分组,因此不能对数据包进行排序,也就是说,报文发送后,无法得知它是否安全到达。因此,UDP提供不可靠的传输服务,UDP传输的可靠性由应用层负责。但是这并不意味UDP不好,UDP协议具有资源消耗小,处理速度快的优点。UDP主要用于文件传输和查询服务,如FTP、DNS等;网络音频和视频数据传送通常采用UDP协议,因为偶尔丢失几个数据包,不会对音频或视频效果产生太大影响。尤其在实时性很强的通信中(如视频直播比赛等),前面丢失的数据包,重传过来后已经没有意义了,如QQ和微信的音频和视频聊天就采用UDP。
通俗地说,UDP就像发短信,只管发出去,不管对方是不是空号(网络不可达)、能不能收到等情况。而TCP好像打电话,双方通话时,要确定对方是否开机(网络可达),对方是不是忙音(通信确认),然后还需要对方接听(通信连接)。
3)网络层
网络层的主要功能是为网络内主机之间的数据交换提供服务,并进行网络路由选择。网络层接收到分组后,根据路由协议(如OSPF)将分组送到指定的目的主机。
网络层主要有IP(网际协议)和路由协议等。IP提供不可靠的传输服务。也就是说,它尽可能快地把分组从源节点送到目的节点,但是并不提供任何可靠性保证。
4)网络接口层
网络接口层的主要功能是建立网络的电路连接和实现主机之间的比特流传送。电路连接工作包括传输介质接口形式、电气参数、连接过程等。比特流传送工作包括:通过计算机中的网卡和操作系统中的网络设备驱动程序,将数据包按比特一位一位地从一台主机(计算机或网络设备),通过传输介质(电缆或微波)送往另一台主机。
由于因特网设计者注重的是网络互联,所以网络接口层没有提出专门的协议。并且允许采用早期已有的通信子网(如X.25交换网、以太网等),以及将来的各种网络通信协议。这一设计思想使得TCP/IP可以通过网络接口层,连接到任何网络中,如100G以太网、DWDM(密集波分复用)光纤网络、WLAN(无线局域网)等。