随着网络速度越来越快,费用越来越低,很多产品已经面向网络编程,不管是web服务器, socket通信,网络数据库等等,在我们开发过程中,很少注意的一个问题,就是端口,一般如果作为开发人员的话,服务端都会注意选择一个端口,但是客户端一般都不会注意着个问题,最近查了一下端口的问题,来分享一下这个问题。
网络模型
这是一张7层的网络结构图,不管是5层或者7层,基本都差不多,只是解释不同。
在网络传输的过程中,都是端到端的数据传输,不管是UDP还是TCP,那么什么是端到端呢,可以这么认为,我们知道IP地址是对应机器网卡的,网络在传输的过程中,通过IP地址就可以找到对应的机器,那么另外一个问题就是怎么在机器上找到对应的应用程序,这就是我们所使用的端口,那么端口是网络的第几层的定义呢?那就是传输层,在7层网络里面的第四层(如上图),在IP的上一层,网络传输层有两种协议TCP, UDP,熟悉socket编程的时候,就知道我们在决定使用TCP/UDP 的时候除了指定协议,还要指定端口(server 端必须