草庐IT

TCP_CORK

全部标签

networking - google talk 使用 udp 还是 tcp 数据包?

是否可以判断googletalk是使用tcp还是udp包进行传输。我知道它在应用层使用xmpp协议(protocol),但它是通过tcp还是udp运行的。 最佳答案 您可以通过使用数据包嗅探器观察流量来自己回答这个问题。这比让我们告诉您答案更有启发性。 关于networking-googletalk使用udp还是tcp数据包?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/162

python - 使用 Python 注入(inject)原始 TCP 数据包

用Python注入(inject)原始TCP数据包的合适方法是什么?例如,我有由十六进制数字组成的有效负载,我想将该十六进制数字序列发送到网络守护进程:这样,如果我选择发送“abcdef”,我也会在网络上看到“abcdef”。但不是“6162636566”,如以下情况:new=socket.socket(socket.AF_INET,socket.SOCK_STREAM)new.connect(('127.0.0.1',9999))new.send('abcdef')我可以为此目的使用Python的SOCK_RAW吗?如果是这样,您能否给我一个使用SOCK_RAW发送原始TCP数据包的

c - 当一个不是预期的 TCP 序列号到达时会发生什么?

我正在编写一个程序,该程序使用libpcap捕获数据包并重组TCP流。我的程序只是监控流量,所以我无法控制数据包的接收和传输。我的程序忽略所有非TCP/IP流量。我从ISN计算下一个预期序列号,然后计算连续的SEQ号。我设置了它,以便每个TCP连接都由一个由源IP、源端口、目标IP和目标端口组成的元组唯一标识。一切顺利,直到我收到一个序列号与我预期不同的数据包。我已上传屏幕截图以帮助说明我所描述的内容here.我的问题是:1.“丢失”数据包中的数据在哪里?2.这种情况下的SEQnumberorder如何恢复?3.我能做些什么来处理这些事件。请记住;但是,我并不是在编写遵循TCP的程序。

Python/Twisted - TCP 数据包碎片?

在实现dataReceived方法时,在Twisted中,似乎没有任何引用数据包被分段的示例。在所有其他语言中,这是您手动实现的东西,所以我只是想知道这是否已经为您完成了扭曲或什么?如果是这样,我是否需要在我的数据包前加上长度header?还是我必须手动执行此操作?如果是这样,那会是什么方式? 最佳答案 在dataReceived方法中,您以不确定长度的字符串形式返回数据,这意味着它可能是您协议(protocol)中的完整消息,也可能只是某些“客户端”发送给您的消息的一部分。您将必须检查数据以查看它是否包含协议(protocol)中

tcp - 如果接收到有效负载大小为 0 的有效 TCP 数据包,recv() 将返回什么值

在TCP套接字编程中,如果recv()返回0,则表示对方关闭了连接。但是,据我所知,TCPRFC并未强制要求TCP的有效载荷>0。因此,理论上,TCP堆栈可以接收有效载荷为0的消息。所以,基本上我的问题是,如果recv()收到一个有效负载大小为0的数据包,它会返回什么?如果它返回0,那么我们如何区分它与关闭连接指示。 最佳答案 有效负载大小为0的TCP段无处不在——它们几乎出现在现实世界中的每个TCP流中。每当一方希望确认收到另一方的数据但自己没有数据可发送时,就会发送它们。(这些通常被称为“ACK数据包”,但“ACK数据包”只是一

haskell - 在同一个端口上监听 TCP 和 UDP

如何让Haskell在同一个端口上监听UDP和TCP?这是我目前的代码(基于acme-http):listenOnportm=doprotoTCPdosetSocketOptionsockReuseAddr1setSocketOptionsockNoDelay1bindSocketsock(SockAddrInet(fromIntegralportm)iNADDR_ANY)listensock(max1024maxListenQueue)returnsock)protoUDPdosetSocketOptionsockReuseAddr1bindSocketsock(SockAddrIn

erlang - Erlang 使用哪个 TCP 端口连接到远程节点?

我需要打开一个防火墙端口,以便我可以从一个Erlang节点连接到另一个。有标准端口吗? 最佳答案 您可以使用以下内核应用程序将Erlang使用的TCP端口限制为指定的时间间隔。参数:erl-kernelinet_dist_listen_min9001inet_dist_listen_max9005您还需要启用4369TCP端口,因为epmd使用它.(此端口也可以通过ERL_EPMD_PORT环境变量更改。) 关于erlang-Erlang使用哪个TCP端口连接到远程节点?,我们在Stac

security - 通过未加密的 tcp/ip 安全传输密码

我正处于用于移动客户端-服务器通信的自定义tcp/ip协议(protocol)的设计阶段。在不需要时(数据不敏感),出于开销原因(握手延迟和保存周期),我想避免使用SSL。我的问题是,通过未加密连接传输身份验证信息的最佳做法是什么?目前,我喜欢SRP或J-PAKE(它们生成安全sessiontoken,哈希/盐友好,并允许在必要时启动TLS),我相信它们都是在OpenSSL中实现的。但是,我有点担心,因为我没有看到很多人为此目的使用这些算法。也希望能提供任何有关一般性讨论该主题的Material的指针,因为我找不到任何Material。编辑也许问题应该是:是否存在通过未加密的tcp/i

tcp - 为什么 TCP Server 在接受连接后会立即发送 FIN?

从ethreal数据包捕获中,我看到以下对我来说很奇怪的行为:Client-->Server[SYN]Server-->Client[SYN,ACK]Client-->Server[ACK]Server-->Client[FIN,ACK]Client-->Server[ACK]Client-->Server[TCPSegmentofareassembledPDU](Idon'tknowwhatthismeans)Server-->Client[RST]关于为什么会发生这种情况有什么想法吗?此外,服务器端口是6000。这会导致任何问题吗?我的其他疑问:为什么会有FIN、ACK?不应该只有

java - java中的套接字和TCP

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:howtoimplementTCPserverandTCPclientinjavatotransferfiles我编写的应用程序将通过套接字将文件发送到服务器。它对所有文件从客户端到服务器都是正确的非常重要,没有错误,丢失数据和其他类似的东西。为此,我需要使用我认为的TCP协议(protocol),但我不知道该怎么做。Java中的套接字默认使用TCP。如果不是,我如何通过TCP发送数据?感谢您的帮助和提示。