首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP通信是双向通信吗?

TCP通信是双向通信吗?
EN

Stack Overflow用户
提问于 2011-11-09 02:14:17
回答 1查看 12.1K关注 0票数 6

这确实是一个关于TCP通信的新问题。

TCP通信是双向通信吗?

让我给出一个场景:一个程序正在监听一个TCP端口,比如端口25。外部程序使用随机输出端口(例如端口45000 )连接到第一程序的IP地址(端口25)

因为第一个节目只是在听,这是否意味着

  1. 第一个程序只能接收数据而不能通过端口25发送任何数据?
  2. 如果可以发送数据,如何保护第二个计算机的输出端口45000免受来自第一个程序的恶意攻击?据我所知,防火墙只适用于传入端口。

如有任何答复,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-09 02:40:58

TCP总是双向的.没有像UDP那样的‘发送和忘记’。第一个程序必须打开服务器套接字。这意味着它在端口25上侦听TCP SYN (标志,表示正在打开连接)。如果您的第二个程序在端口25上连接(来自端口45000),则该连接由4个值标识:主机的IP、主机的端口、远程主机的IP、远程主机的端口。此时,在完成3路握手(SYN、SYN、ACK )时,第一个程序从返回的服务器套接字中获取一个客户端套接字,该套接字连接到您的第二个程序。因此,是的,一旦连接,这是双向沟通,你是脆弱的。

防火墙主要阻止传入的通信量。如果您的第一个程序位于防火墙之后,并且没有正确配置防火墙,防火墙将从第二个程序中删除SYN-数据包。不会有任何联系。如果配置正确,防火墙也可以检查出站连接。

就像我说的。一旦连接到远程程序,远程程序就会获得一个客户端套接字,就像本地程序一样,所有通信都是通过它完成的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8059631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档