Java网络编程核心技术详解(视频微课版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 小结

简单地理解,计算机网络的任务就是传输数据。为了完成这一复杂的任务,国际标准化组织ISO提供了OSI参考模型,这种模型把互联网络分为七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每个层有明确的分工,并且在层与层之间,下层为上层提供服务。这种分层的思想简化了网络系统的设计过程。例如在设计应用层时,只需考虑如何创建满足用户实际需求的应用,在设计传输层时,只需考虑如何在两个主机之间传输数据,在设计网络层时,只需考虑如何在网络上找到一条发送数据的路径,即路由。

由于OSI参考模型过于庞大和复杂,使它难以投入实际运用中。与OSI参考模型相似的TCP/IP参考模型吸取了网络分层的思想,但是对网络的层次做了简化,并且在网络各层(除主机-网络层外)都提供了完善的协议,这些协议构成了TCP/IP集,简称TCP/IP。TCP/IP参考模型分为四层,分别是应用层、传输层、网络互联层和主机-网络层。每一层都有相应的协议,IP和TCP是协议集中最核心的两个协议。

IP位于网络互联层,用IP地址来标识网络上的各个主机,IP把数据分为若干数据包,然后为这些数据包确定合适的路由。路由指把数据包从源主机发送到目标主机的路径。

TCP位于传输层,保证两个进程之间可靠的传输数据。每当两个进程之间进行通信时,都会建立一个TCP连接,TCP用端口来标识TCP连接的两个端点。在传输层还有一个UDP,它与TCP的区别是,UDP不保证可靠的传输数据。

建立在TCP/IP基础上的网络程序一般都采用客户/服务器通信模式。服务器程序提供服务,客户程序请求获得服务。服务器程序一般昼夜运行,时刻等待客户的请求并及时做出响应。

Java网络程序致力于实现应用层。传输层向应用层提供了套接字Socket接口,Socket封装了下层的数据传输细节,应用层的程序通过Socket来建立与远程主机的TCP连接以及进行数据传输。在Java中,有3种套接字类:java.net.Socket、java.net.ServerSocket和DatagramSocket。其中Socket和ServerSocket类建立在TCP基础上;DatagramSocket类建立在UDP基础上。