Networking tcp/udp连接是如何工作的?

Networking tcp/udp连接是如何工作的?,networking,tcp,dns,udp,router,Networking,Tcp,Dns,Udp,Router,我想问一个普通的新手问题。我理解,对于位置a中的计算机连接到位置B中的服务器,数据包必须通过多个网关和多个验证通道发送到多个数据中心,以确保连接请求找到正确的目的地 但是,连接建立后,当计算机和服务器发送/接收数据时,这些数据是否仍需要通过[多个数据中心通过多个网关和多个验证通道]?每个TCP/UDP数据包在源到目标之间都可以有不同的网络路径。然而,有状态TCP连接的连接建立与数据包大小、压缩方法等有关 在网络层-连接是无状态的。请详细阅读OSI模型,您也可以参考它,它很好地解释了OSI的工作原

我想问一个普通的新手问题。我理解,对于位置a中的计算机连接到位置B中的服务器,数据包必须通过多个网关和多个验证通道发送到多个数据中心,以确保连接请求找到正确的目的地


但是,连接建立后,当计算机和服务器发送/接收数据时,这些数据是否仍需要通过[多个数据中心通过多个网关和多个验证通道]?

每个TCP/UDP数据包在源到目标之间都可以有不同的网络路径。然而,有状态TCP连接的连接建立与数据包大小、压缩方法等有关


在网络层-连接是无状态的。请详细阅读OSI模型,您也可以参考它,它很好地解释了OSI的工作原理。

从计算机A发送到计算机B的TCP数据包将被发送到特定的IP地址。如果该TCP地址不在本地LAN上,它将首先通过本地LAN到达指定为本地网关的任何位置。然后,该网关通过连接将其发送到外部网络。此时,它将被传送到ISP中的某个路由器。该路由器将查看目标IP地址并查阅路由表,以找到下一个发送数据包的位置。这通常是网络中其他地方的另一个路由器。这种情况继续下去,(假设每个路由器中都有良好的路由表),数据包在每个跃点上都会更接近其最终目的地。最后,数据包将到达一个路由器,该路由器有一个路由表,该路由表知道该IP地址的实际IP地址或家庭网关,数据包将被发送到该网关。然后,家庭网关可以将数据包传送到该实际IP地址。在某些情况下,在任意一端都可能有一个专用网络,其中专用IP地址/端口组合被转换为公用IP地址,反之亦然

如果计算机A向计算机B发送多个数据包,它们不必全部走完全相同的路径,尽管它们通常会走相同的路径(假设两个端点之间的网络没有问题或拥塞)

在这种情况下,A和B位于不同的专用网络上,计算机A和计算机B之间没有直接连接,因此每个数据包必须沿着从一个路由器到下一个路由器的路径,直到到达最终网关,然后到达目的地地址

但是,连接建立后,当计算机和服务器发送/接收数据时,这些数据是否仍需要通过[多个数据中心通过多个网关和多个验证通道]

如果路由器正在适当地执行其工作,则第一个数据包将采用网络知道的从A到B的最有效路径。没有“更好”的方法发送后续数据包。随后的数据包将遵循相同的过程(到路由器,路由器在路由表中查找下一跳的发送位置等)。如果两个端点相距很远(就网络拓扑而言),那么数据包可能会经过许多路由器。路由器是高度优化的设备,能够每秒传递数百万个数据包,因为这就是数据在任何TCP/IP网络(如internet)上的移动方式


启动TCP连接的第一个数据包与后续数据包的流动方式没有区别。在网络级别,它们只是从源IP地址到目标IP地址的数据包。一旦建立连接,可靠性层将开始跟踪可能丢失的数据包,启动重新传输等。。。但这与给定数据包从a到B的方式无关。

虽然TCP需要连接,但UDP是一种明确的无连接协议。