关于Port与Protocol的疑问:为何已有协议仍需端口?
为什么有了协议还需要端口?
简单说,协议和端口管的是完全不同的事儿:
- 协议定义的是数据传输的规则:比如怎么打包数据、怎么验证完整性、怎么处理丢包重传,相当于快递行业的“配送标准流程”。
- 端口是机器上应用程序的标识:相当于你家的门牌号,用来告诉系统“收到的这段数据要交给哪个程序处理”。
举个实际的例子:你电脑上同时开着浏览器(用HTTP协议)、微信(基于TCP协议)、FTP客户端(用FTP协议)。这些服务都依托TCP/IP协议栈传输数据,如果没有端口,当一堆数据包发到你电脑上时,系统根本分不清哪段是给浏览器的网页内容,哪段是微信的消息,哪段是FTP的文件。
每个应用程序启动时会绑定一个或多个端口,比如HTTP默认用80端口,HTTPS用443,SSH远程登录用22。操作系统会维护一个“端口-进程”的映射表,收到数据包后,就根据包内的端口号,把数据转发给对应的进程处理。
说白了,协议解决的是“怎么传对”的问题,端口解决的是“传给谁”的问题,两者配合才能让多服务在同一台机器上正常工作。
内容的提问来源于stack exchange,提问作者Victoria
相关产品推荐
相关产品推荐

