开发者学堂课程【大数据 ZooKeeper 快速入门: 网络编程:概述&网络通信要素模拟思路】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7576
网络编程:概述&网络通信要素模拟思路
目录
一、网络编程概述
二、网络通信三要素
一、网络编程概述
首先要想进行网络通信得有一个计算机网络,所谓的计算机网络就是指通过通信的线路,包括有线或无线各种方式,再加上交换机或者路由器就可以把不同位置各个独立的计算机连接成一个局域网,在这个局域网中,因为可以彼此互相联系,那么就可以实现各个计算机之间的程序共享,资源的共享,包括一个信息的传递。这就是所谓的计算机网络。
所指的网络编程或者叫网络编译就是指在已经实现网络互联的不同的计算机上可能运行着不同的程序。那么它们之间要想进行数据的传输、数据的交换、新的传递该怎么去实现呢?对于开放的人来说,就是怎么样使用编程语言,比如说Java该怎么样实现在不同的计算机上,不同的网络当中,实现一个信息的交换,信息的传输。
二、网络通信三要素
模拟一下,比如现在要设置有个网络编程,看一下得具备哪些要素?这里有一个局域网,首先是一台机器,这个机器上面运行了一个程序,这个程序是一个聊天软件,是由自己开发的,这个程序的名字叫做TT,专门用来进行一个聊天的程序。
1.IP
要想满足一个跨网络的通信,比如现在在局域网中有很多台机器,要想跨网络通信,怎么样在茫茫的机群当中找到所要通信的那台机器?因此要想进行网络通信,第一条是什么?就是找到那台机器,有个概念,叫做 IP,在网络中,每一个计算机都有一个 IP,这个 IP 一般跟网络的网卡驱动相关。比如说它是一个有线网卡或者无线网卡,有多个网卡,等于多个 IP。IP 是计算机在网络中的唯一标识。
既然是唯一标识,那就可以通过 IP 找到通信所在的机器,比如第一台机器,它的IP在局域网中是192.168.1.6。第二台机器是192.168.1.78。在整个局域网中可能还有其他的IP其他的机器。但是,通过这个IP一定能够唯一地找到,这样就满足了网络通信的第一个要素,能够通过 IP 找到这台机器。
2. 端口号
这时局域网也想进行一个全球的或者更高的跨网络的一个通信,要求使用公网IP,这时候只用局域网192.168.1.66这个网站就通信不了的,这是第一个要素。
接下来是第二个,通过IP找到了,那么在这个程序上在这台机器上,它也运行了这个集体开发的程序。与此同时还运行了其他的一些程序,比如这里还有一些其他的聊天软件,WW 也是聊天的软件,上面还有其他各种各样的程序。连接到这台机器上之后,怎么找到所需要的那个程序呢?所需要的是直接连接到这个 TT 软件上完成一个通信,但是现在有两个程序。这时候要给在计算机中运行的每一个程序一个标号,数据标识,TT 的标号是2000,WW 的标号是2001,上面那个是2002。第一个机器因为是同样的软件,那么标号是2000。这个翻译过来专业术语叫做端口号。
端口号是什么?一台机器上不同程序的标识,也就是通过这种端口号的形式,一定能够找到所需要通信的那个程序,不至于连接到其他方面。因此经过这两个要素,现在怎么办?通过IP找到这台机器,然后通过端口号找到这个程序,这样彼此双方程序已经建立连接了。
3.传输协议
但是,有这样一种场景,第一个机器使用的是中文,另一个机器使用的是英文。在没有翻译软件的情况下,双方进行通信这个格式是不规范的,彼此识别不了。所以想要双方能制定一个统一的标准,统一的格式,达成一个传输的协议,双方都按照这个要求来做,发送数据的时候按照这个协议来进行发送,比如首先发送三个空的字符,然后发送个1010,然后下面开始翻译格式。不管用中文还是英文,最终统一编码的时候都按照固定的编码来进行编译。双方都遵守这个格式,双方都可以去理解都可以遵守。因此要想满足于网络性的还需要一个专业数据叫做传输的协议。
传输协议就是通信双方都遵守达成的传输数据的格式,如果这个协议双方都不遵守或者一方不遵守的话,也不会叫做协议。因此可以想象一下,要想满足一个网络通信编程,应该得具备这三个要素,这叫网络编程。
网络通信的三要素,第一个通过IP在茫茫的机器当中找到唯一想要通信的那台机器,然后再通过端口号找到所要通信的那个程序,最后双方按照统一的传输格式来进行通信,这样就可以实现一个跨网络的机器不同程序之间的通信,这就是一个模拟思路图。