计算机网有哪些条件?
这个网,得从TCP/IP协议说起 网络的本质是数据传输,而能够可靠、高效地传输数据的关键在于正确建立和维持一条连接(Connection);要构建一个网,需要解决两个问题:
1.如何找到“另一头”:也就是如何发现主机或者网络,并与之建立起连接。这包括了主机和网络寻址以及路由选择等问题。
2.如何传递信息:也就是怎样在两个连接之间可靠、高效地传送数据。这包括数据报文的格式、错误纠正等方法。 TCP/IP解决了上述所有问题,从而构建起了当今的互联网。
实际上,我们当前所经历的互联网,只是TCP/IP协议的一个子集而已。为了支持各种应用的需求,TCP/IP定义了若干层级的服务。这些服务可以看作是一个个大箱子,应用程序通过这个箱子来与远端进行通信。
这个箱子就是端口(Port),每一个端口对应于TCP/IP协议栈中的一个逻辑部件。
例如,用于文件传输服务的FTP所需要的端口就有21和20。 由于端口直接与硬件相关联,因此可以通过端口号来指定一个特定的主机和网络接口。这样,即使网络连接失败,应用程序也可以转到其他网络接口上进行通信——只要这些接口所对应的端口相同,那么应用程序就不必修改代码就能完成切换。 这大大简化了编程的过程。但是,这也带来了一些问题。最典型的就是所谓的Nginx问题。由于Nginx是一种类似于HTTP服务器的东西,并且它能够同时处理多个请求,因此许多的应用程序都以为它们一直在访问Nginx,而不是实际上的真正源点服务器。这样一来,当真正的源点服务器无法工作时,Nginx会误以为一切正常,因而继续向客户端提供服务。这种错觉使得故障更加难以排查。