端口
什么是端口号?
端口号是用于在计算机网络中标识不同应用程序或服务的数字标识。它允许网络上的不同设备和应用程序之间进行数据交换和通信。
标记正在计算机设备上运行的应用程序的,被规定为一个 16 位的二进制,范围是0~65535
端口的分类
周知端口:0~1023,被预先定义的知名应用占用 (如: HTTP占用80,FTP占用21)。
注册端口: 1024~49151,分配给用户进程或某些应用程序。
动态端口:49152到65535,之所以称为动态端口,是因为它 一般不固定分配某种进程,而是动态分配。
注意:我们自己开发的程序一般选择使用注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。(同一台计算机上的不同应用程序不能使用相同的端口号,否则会发生端口冲突导致应用程序无法正常工作)
协议
通信协议:网络上通信的设备,事先规定的连接规则,以及传输数据的规则被称为网络通信协议。(为了让全球所有的上网设备都能够互联)
OSI,TCP/IP
开放式网络互联标准:OSI网络参考模型(全球网络互联标准)
TCP/IP网络模型:事实上的国际标准
TCP/IP协议是一组规范,包括传输控制协议(TCP)和Internet协议(IP)。TCP负责将数据分割为小块并在网络上进行可靠传输,而IP则负责标识和寻址数据包,以便正确路由到目的地。
基于TCP/IP协议的网络通信通常遵循以下步骤:
-
建立连接:通信的两端需要建立连接才能开始数据传输。客户端向服务器发送连接请求,服务器接受请求并建立连接。
-
数据传输:一旦连接建立,数据可以在两个方向上进行传输。发送方将数据分割为较小的数据包,并为每个数据包添加必要的头部信息,例如源地址、目标地址和校验和等。
-
数据接收:接收方接收到数据包后,检查数据的完整性和正确性。如果数据包完整无误,接收方将确认接收并发送确认消息。如果数据包有错,则发送方将重传该数据包。
-
连接关闭:一旦数据传输完成,通信的两端可以关闭连接,释放资源,并结束通信。
传输层的2个通信协议
UDP(User Datagram Protocol): 用户数据报协议,
TCP(Transmission Control Protocol): 传输控制协议
UDP协议
特点:无连接,不可靠通信
不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口,目的地IP、程序端口和数据(限制在64KB内)等
发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故是不可靠的。
UDP总结:通信效率高,适合语音通话,视频直播等
TCP协议
特点: 面向连接、可靠通信
TCP的最终目的:要保证在不可靠的信道上实现可靠的传输
TCP主要有三个步骤实现可靠传输:三次握手建立可靠连接,传输数据进行确认,四次挥手断开连接。
可靠连接:确定通信双方,收发消息都是正常无问题的。
三次握手(客户端与服务端):
①发出连接请求----->
②<-----返回一个响应
③再次发出确认消息,建立连接----->
传输数据会进行确认,以保证数据传输的可靠性
四次挥手(客户端与服务端):
①发出断开连接请求----->
②<-----返回一个响应:稍等
③<-----返回一个响应:确认断开
④发出正式确认断开连接----->
目的:确认双方数据的收发都已经完成
TCP总结:通信效率相对不高,适合网页、文件下载,支付等