【发布时间】:2020-02-16 09:20:48
【问题描述】:
我开始在 Windows 操作系统中使用 C++ 进行网络编程。我知道什么是网络协议栈(如 OSI 的教育模型和 TCP/IP 的操作模型)。此外,我知道数据包如何在网络介质中路由和交换,以及更多关于网络编程和通信本身的概念。
但是,我现在知道,当机器 A 中的一个进程想要向机器 B 中的另一个进程发送消息时,该消息必须通过 TCP/IP 堆栈层,直到它可以准备好放在物理介质上以到达目的地在机器 B 中处理。
数据包应该有机器 B 的目标 IP 地址和端口号。但我无法弄清楚以下问题的答案:
为什么要指定一个端口,以及操作系统 (Windows) 中这 6000 多个端口如何相互区分?
如何在 Windows 操作系统中实现 TCP/IP 网络协议栈?它是驱动程序或其他东西。
在 Windows 操作系统中,每个进程都有自己的 TCP/IP 协议,还是 Windows 进程为它们使用相同的 TCP/IP 协议栈?
我知道,这些问题对 StackOverflow 粉丝来说不太好,但不幸的是,我无法在书中找到这些问题的答案,甚至无法通过谷歌搜索找到答案。
【问题讨论】:
标签: c++ windows tcp operating-system network-programming