这个问题可能不太合逻辑。但我想了解一下。
任何在互联网上提供服务的服务都有一套基于标准和任务的规范和端口,为了启动这些服务,需要定义一套代码,放在操作系统内核中,在后台运行。
我的意思是,每个服务都有一个端口 例如服务 ssh、https、FTP、... 这些服务有端口,连接时需要端口。每个机制都在带有一些源代码的计算机上运行。是真的吗?我想说,为创建网络端口而编写的源代码可能会导致安全问题并出现错误和漏洞?
因为服务中总会存在bug和安全问题。所以可以说源代码有bug,需要创建移植!
答案1
阅读man 2 bind;man 7 raw;man socket
。另请阅读“另请参阅”建议。
当服务器启动时,它会创建一个套接字,并将该套接字配置为从特定端口读取。
其他系统可能会在指定端口上向服务器发送 TCP/IP 数据包。
由服务器决定如何处理数据。
以下是大多数服务器遵循的知名端口列表,请参阅https://en.wikipedia.org/wiki/Well-known_ports 但它是自愿且可配置的。例如,监听端口 80 的 Web 服务器与监听端口 8080 的 Web 服务器没有区别,只是前者打开的是非特权端口。
服务器并非“放置在操作系统内核中”,而是以常规程序的形式运行。如果服务器想要打开“特权”端口 (1-1023),则需要额外的权限,但编写良好的服务器会在特权端口上打开套接字后放弃该权限。