计算机网络是什么?
简单地理解,计算机网络的任务就是传输数据。为了完成这一复杂的任务,国际标准化组织ISO提供了OSI参考模型,这种模型把互联网网络分为7层,分别是:
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
每个层有明确的分工,并且在层与层之间,下层为上层提供服务。这种分层的思想简化了网络系统的设计过程。
例如:
1、在设计应用层时候只需要考虑创建满足用户实际需求的应用;
2、在设计传输层时,只需要考虑如何在两个主机之间传输数据;
3、在设计网络层时,只需要考虑如何在网络上找到一条发送数据的路径,即路由。
由于OSI参考模型过于庞大和复杂,使它难以投入到实际运用中。与OSI参考模型相似的TCP/IP参考模型洗去了网络分层的思想,但是对网络的层次做了简化,并且在网络各层(除了主机-网络层外)都提供了完善的协议,这些协议构成了TCP/IP协议集,简称TCP/IP协议。
TCP/IP参考模型分为4个层:应用层、传输层、网络互联层和主机-网络层。在每一层都有相应的协议,IP协议和TCP协议是协议集中最核心的两个协议。
IP协议位于网络互联层,用IP地址来标识网络上的各个主机,IP协议把数据分为若干数据包,然后为这些数据包确定合适的路由。路由就是把数据包从源主机发送到目标主机的路径。
TCP协议位于传输层,保证两个进程之间可靠地传输数据。每当两个进程之间进行通信,就会建立一个TCP连接,TCP协议用端口来标识TCP连接的两个端点。在传输层还有一个UDP协议,它与TCP协议的区别是,UDP不保证可靠地传输数据。
建立在TCP/IP协议基础上的网络程序一般都采用客户端/服务器通信模拟股市。服务器提供服务,客户程序获得服务。服务器程序一般昼夜运行,时刻等待客户的请求并及时作出响应。
Java网络程序致力于实现应用层,传输层向应用层提供了套接字Socket接口,Socket封装了下层的数据传输细节,应用层的程序通过Socket来建立与远程主机的连接,以及进行数据传输。在Java中,有三种套接字类:
java.net.Socket、java.net.ServerSocket和DatagramSocket。
其中Socket和ServerSocket类建立在TCP协议基础上;DatagramSocket类建立在UDP协议基础上。