Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当应用层将数据发送到传输层传递给服务器时,它如何知道与哪个端口号进行通信?
确切地说,TCP 段包含作为标头的目标端口号,它是如何确定的呢?
必须告知申请。该端口要么是 etc/services 中列出的标准端口,在这种情况下getaddrinfo()API 会告诉您,要么它是通过应用程序的配置提供的,或者它被硬连接到源代码中。
getaddrinfo()
应用程序在创建到服务器的套接字连接时建立端口号。套接字知道它绑定到哪个本地 IP/端口,以及它连接到哪个远程 IP/端口。只要使用该套接字发送数据,就会使用这些值。传输层知道将哪些值放入 IP 和 TCP 标头中。