UDP是如何传输在链路中

UDP是面向无连接的,突然我就有了一个困惑. 无连接是怎么从外网发送到内网的. 答案是路由表.

数据传输

一直有个疑惑为什么要分服务端和客户端, 问题也是在于此. 因为服务端需要在公网以便访问,而客户端常常内网中.所以在编程时服务端往往是,先接受数据在返回,而客户端是先发送在接收. 它们之间发生了什么? 根据相关博客资料考察,当客户端发送数据时会在网络链路的路由器记录路由表(ip+端口), 而同样的服务端返回数据时,会发送数据到下一个路由节点(ip+端口)中.经过了多层路由器的转发,最后返回到了客户端.

服务端客户端链路通讯:

客户端->路由器写入路由表...->服务端 服务端->路由器按路由表发送到下一个节点->客户端接收到 不可避免的因素有很多,路由表刷新,清空,都是导致无法直接发送给客户端的原因.假设路由表始终保存这条虚拟的线路,那么直接通过外网发送至内网也是可以的.

TCP

在不可靠的传输协议基础上而诞生的,当然这个不可靠协协议可能是任意定义的一种(我也不知道). 同样的数据传输方式,然后不同的是,服务端和客户端始终保持连接(可以理解为始终会发送一个数据验证状态,同时也会刷新配置表,当然可能用了更加优化的做法). 除了始终保持连接,还有就是数据的效验. 当然不同于词条,这里是帮助理解,就不在阐述了.