概念概述
计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。而网络编程就是编写程序使联网的两个或多个设备(比如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口可以很方便地进行网络编程。接下来将介绍网络的一些基础知识,然后讲解如何通过Java语言进行网络编程。
计算机网络
计算机网络出现于20世纪60年代,并在20世纪70年代到90年代之间得到了快速发展。在21世纪,计算机网络成为信息社会的基础设施,深入到了人类社会的方方面面,与人们的生活、工作、学习息息相关。
如同人们之间相互交流需要遵循一定的规则一样,计算机之间的通信也需要遵守一定的规则,即网络协议。
对于计算机网络这个复杂的系统,人们按照解决复杂问题的方法,将其实现的功能划分到不同的层次上,层与层之间通过接口连接。通信的双方具有相同的层次,层次实现的功能由协议数据单元(PDU)来描述。不同系统中的同一层构成了对等层,对等层之间通过对等层协议来理解彼此定义好的规则和约定,并通过其进行通信。所谓的计算机网络体系结构就是计算机网络层次和协议的集合,网络体系结构对计算机网络实现的功能,以及网络协议、层次、接口和服务进行了描述,但是不涉及具体的实现。接口是同一节点内相邻层之间交换信息的连接处,也叫做服务访问点(SAP)。计算机网络的基本模型如下图所示:
前面介绍了计算机网络体系结构的概念,那么究竟计算机网络是如何进行分层的?接下来我们首先介绍OSI参考模型。
世界上第一个网络体系结构是由IBM公司于1974年提出的SNA,之后其他公司也相继提出了自己的网络体系结构,比如:Digital公司的DNA,美国国防部的TCP/IP等。多种网络体系结构并存,其结果就是若采用IBM的结构,只能选择IBM的产品,因为只能于同种结构的网络互联。
为了促进计算机网络的发展,国际标准化组织ISO于1977年成立了一个委员会,在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互连参考模型,即OSI/RM(Open System Interconnection Reference Model)。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如下图(OSI参考模型)所示:
OSI参考模型
OSI参考模型中,各个层次的功能为:
- 物理层。该处于OSI的最底层,是整个开放系统的基础。物理层涉及
通信信道上传输的原始比特流(bits),它的功能主要是为数据端设备提供传送数据的通路以及传输数据。 - 数据链路层。该层的主要任务是实现计算机网络中相邻节点之间的可靠传输,把原始的、有差错的物理传输线路加上数据链路协议以后,构成逻辑上可靠的数据链路。需要完成的功能有链路管理、成帧、差错控制以及流量控制等。其中成帧是对物理层的原始比特流进行界定,数据链路层也能够对帧的丢失进行处理。
- 网络层。网络层涉及源主机节点到目的主机节点之间可靠的网络传输,它需要完成的功能主要包括路由选择、网络寻址、流量控制、拥塞控制、网络互连等。
- 传输层。传输层起着承上启下的作用,涉及源端节点到目的端节点之间可靠的信息传输。传输层需要解决跨越网络连接的建立和释放,对底层不可靠的网络,建立连接时需要三次握手,释放连接时需要四次挥手。
- 会话层和表示层。会话层主要功能是负责应用程序之间建立、维持和中断会话,同时也提供对设备和结点之间的会话控制,协调系统和服务之间的交流,并通过提供单工、半双工和全双工3种不同的通信方式,使系统和服务之间有序地进行通信。表示层关心所传输数据信息的格式定义,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。
- 应用层。应用层为OSI的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。
TCP/IP参考模型
OSI参考模型的初衷是提供全世界范围的计算机网络都要遵循的统一标准,但是由于该模型存在缺陷(主要表现在两个方面:模型和协议),迟迟没有成熟的产品推出。而TCP/IP模型在实践中不断发展完善,取得了巨大的成功。该模型以TCP/IP协议作为核心,可以说没有TCP/IP协议就没有互联网的今天。
TCP/IP,全称为Transmission Control Protocol/Internet Protocol,中文译名为传输控制协议/因特网互联协议。它是Internet最基本的协议、是Internet国际互联网络的基础。
TCP/IP协议是一个开放的网络协议簇,它的名字主要取自最重要的网络层IP协议和传输层TCP协议。TCP/IP协议定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP参考模型采用4层的层级结构,每一层都通过它的下一层所提供的协议来完成自己的需求,这4个层次分别是:网络接口层、互联网层(IP层)、传输层(TCP层)、应用层。OSI和TCP/IP模型对比下图所示:
TCP/IP各层基本介绍:
- 网络接口层.TCP/IP协议对网络接口层没有给出具体的描述,网络接口层对应着物理层和数据链路层。
- 互联网层(IP)层。互联网层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。为了尽快地发送分组,可能沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。互联网层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,互联网层还需要完成拥塞控制的功能。
- 传输层(TCP)层。TCP层负责在应用进程之间建立端到端的连接和可靠通信,它只存在于端节点中。TCP层涉及两个协议,TCP和UDP。其中,TCP协议提供面向连接的服务,提供按字节流的有序、可靠传输,可以实现连接管理、差错控制、流量控制、拥塞控制等。UDP协议提供无连接的服务,用于不需要或无法实现面向连接的网络应用中。
- 应用层。应用层为Internet中的各种网络应用提供服务。