相关疑难解决方法(0)

TCP和UDP之间的区别?

TCP和UDP有什么区别?

我知道TCP用于非时间关键应用程序,UDP用于需要快速传输数据的游戏或应用程序.我知道TCP用于HTTP,HTTP,FTP,SMTP和Telnet.我知道UDP用于DNS和DHCP.

但为什么?TCP和UDP的哪些特性使它们对各自的用例有用?

udp network-programming tcp protocols

138
推荐指数
7
解决办法
13万
查看次数

TCP“连接”是如何维护的,HTTP Keep-Alive 对它有何影响?

我是一名应用程序开发人员,希望更多地了解我这些年来一直在提出的请求的传输层。我也一直在学习更多的后端知识,并且正在使用 websockets 构建我自己的实时数据服务,这让我很好奇数据实际上是如何移动的。

因此,我已经了解了 TCP,并且我了解它是如何工作的,但是仍然有一个术语让我感到困惑——“TCP 连接”。我到处都看到它,实际上有一个线程打开了完全相同的问题……但正如 OP 在评论中所说,实际上没有人回答这个问题: TCP 与 UDP - 什么是 TCP 连接?

“当我们说两台主机之间建立了连接时,这是什么意思?如果我能得到一个神奇的显微镜并检查服务器或客户端,然后 - 啊哈! - 找到连接,我会看什么at?操作系统代码分配的一些变量?某种表中的一些条目?它如何以及何时到达那里,以及如何以及何时从那里删除”

我一直在阅读以试图自己解决这个问题,
这是一个很好的资源,详细介绍了 HTTP 流,还提到了“TCP 连接” https://blog.catchpoint.com/2010/09/17/anatomyhttp/

这是关于 HTTP Keep-alive 的另一个线程,相同的“TCP 连接”: HTTP Keep Alive 和 TCP keep alive


我的理解:
当客户端想要来自服务器的数据时,会发生 SYN/ACK 握手,建立这种“连接”,双方就起始序列号、最大数据包大小等达成一致。

只要这个“连接”仍然打开,客户端就可以请求/接收数据而无需再次握手。TCP Keep-alive 发送心跳来保持这个“连接”打开

1)不知何故,HTTP Header“Keep-alive”也使这个 TCP“连接”保持打开状态,即使 HTTP 标头是数据包有效载荷的一部分,并且 TCP 层解析 HTTP 标头似乎没有意义?

对我来说,字面意义上的两台机器之间的“连接”似乎永远无法关闭,因为客户端总是可以自由地使用数据包(例如第一个 SYN 数据包)访问服务器

2)TCP“连接”是否只是客户端和服务器从对方的IP地址保存序列号?也许这只是一个标志,上面写着“嘿,这个客户端很酷,不用握手就可以接受来自他们的消息”?那么关闭连接只是从内存中擦除数据吗?

connection tcp http

5
推荐指数
1
解决办法
642
查看次数

标签 统计

tcp ×2

connection ×1

http ×1

network-programming ×1

protocols ×1

udp ×1