【发布时间】:2019-11-13 02:45:17
【问题描述】:
假设有 2 个节点 - A 和 B。他们每个人都维护一个状态,这是他们记忆中的一个数字。如果 A 以某种方式向 B 发送 increment,则 B 将返回 1。 A 再次发送increment,B 将返回2。等等。 B 也一样。A 和 B 都可以自动更新其状态。
为了发送increment,假设B 启动一个TCP 服务器来接受连接,A 是与B 建立连接的客户端。A 可以通过建立的TCP 连接向B 发送increment。
现在,问题是:B 是否也可以通过同一连接向 A 发送increment,并且 A 可以通过该连接返回自己的状态吗?
另外,A 和 B 是否可以同时发送increments 并通过同一个连接相互响应?这样如果 A 和 B 同时发送 increment 给对方,他们可以回复 1。
如果 A 和 B 建立 2 个连接,则一个简单的问题 - A 作为客户端将increment 发送给 B,另一个作为服务器从 B 响应 increment。因为有 2连接时,A 和 B 可以同时发送“增量”。但是我想知道A和B是否可以仅通过一个TCP连接交换数据?有什么协议支持吗?
【问题讨论】:
-
TCP 在两个对等点之间创建一个连接,并且任何一个都可以通过连接发送和接收数据,甚至可以同时进行,并且任何一个都可以随时终止连接。 TCP 没有服务器或客户端的概念,只有对等点。客户端/服务器概念是一个应用程序概念。你不会在 TCP RFC 中找到任何关于客户端或服务器的信息。
标签: networking tcp