草庐IT

TCP_DENIED

全部标签

tcp - 为什么TCP/UDP checksum最后补齐了?

在TCP/UDP中,发送方对16位字进行异或运算,最后的结果再次补码得到校验和。现在,这样做是为了使接收方可以使用数据和校验和重新计算校验和,如果结果都是1,则可以确定(好吧,几乎!)没有错误。我的问题是为什么我们必须在发件人处对结果进行最终补充。我们不妨这样发送它,以便当接收方重新计算校验和时,它必须检查所有零,而不是像其他情况那样检查所有零。 最佳答案 因为0有特殊的意义。它用于指示要忽略校验和计算。 关于tcp-为什么TCP/UDPchecksum最后补齐了?,我们在StackOv

阻塞模式下的 Linux TCP 套接字

当我以阻塞模式创建TCP套接字并使用send(或sendto)函数时,函数调用何时返回?是否必须等到套接字的另一端接收到数据?那样的话,如果网络堵车,会不会堵很久? 最佳答案 发送方和接收方(以及可能的中介)都会缓冲数据。数据发送成功并不能保证接收端已经收到。通常写入阻塞套接字,只要发送方缓冲区中有空间就不会阻塞。一旦发送方的缓冲区已满,写入将阻塞,直到其中有空间用于整个写入。如果写入部分成功(接收方关闭套接字、将其关闭或发生错误),则写入返回的字节数可能少于预期。随后的写入应该给出错误或返回0-这种情况在TCP套接字上是不可逆的。

php - 想要手动发送 SYN ACK 数据包来建立 TCP 连接(如果可能的话在 PHP 中)

如何在php中将自己的SYN和ACK数据包发送到服务器。我不希望系统做任何事情,我想创建自己的数据包,并自己发送它们以建立TCP连接。这可以在php中完成,还是我必须为此使用C++,或者python或bash(shell脚本),这是最简单的。有人可以指导我到一个好地方来了解SYN和ACK数据包的内容到底是什么吗?我知道SYN数据包具有IP地址,以及有关将服务器的ACK回复发送到何处的其他详细信息。谢谢,苹果264 最佳答案 听起来您正在寻找PHP的原始网络库。快速搜索出现了prnl.不过,跨操作系统的支持可能并不均衡;所谓的“原始套

boost - boost::asio tcp 套接字关闭是否阻塞?

boost::asioTCPsocketaccept/read/write均提供异步版本,但不提供关闭版本。在我的代码中,我只调用socket.close(),大多数时候它工作正常。它触发了正常的TCP关闭。但有时,close()只是关闭套接字而没有关闭TCP。结果,我不得不调用shutdown()来代替。但我不想阻止我的代码。shutdown()是否在boost:asio中阻塞?关闭()怎么样?close()是否阻塞? 最佳答案 首先,Boost.Asio中的shutdown()和close()调用调用底层的BSD套接字实现。因此

c# - 偶尔接收到的TCP数据顺序错误,不完整

我已经用Java创建了TCP服务器应用程序,并用C#创建了一个客户端应用程序。当我发送数据时,客户端有时会乱序接收数据,有时部分数据会完全丢失。基本上,我在服务器(java)中使用的代码如下所示(已剥离):ServerSocketwelcomeSocket=newServerSocket(port);SocketconnectionSocket=welcomeSocket.accept();outputStream=newDataOutputStream(socket.getOutputStream());//CreatestreamoutputStream.writeBytes(me

tcp - ZeroMQ 客户端失去连接

我有一个客户端(PULL)连接到服务器(PUSH)。起初他们工作得很好。但稍后连接断开,客户端ZeroMQ不会尝试重新连接到服务器。一件神秘的事情是,如果我在客户端和服务器端执行netstat,客户端显示连接仍然​​是ESTABLISHED,而服务器端没有相应的条目。我想这就是客户端不重新连接的原因。PS:客户端和服务器在不同的IDC,两者之间有带宽限制。但是当断开连接发生时,我们的监视器显示它没有达到频带限制。而且,当我在服务器端执行netstat时(当连接正常时),有时Send-Q列非常大,然后下降到0。这就是我所拥有的全部信息。如果您需要更多详细信息,请告诉我。

tcp - 在 RUDP、UDT、LWIP、DCCP 中广播

在ReliableUDP(RUDP)、UDT、LWIP和DCCP协议(protocol)中,哪些协议(protocol)可以支持BROADCAST机制?哪个更可靠并且有拥塞控制? 最佳答案 “可靠的UDP”是许多不同实现相关的通用名称。例如,Plan9'sRUDP是一种简单可靠的点对点数据报协议(protocol),具有基本的流量控制。“UDT”是另一种点对点协议(protocol),但针对当前TCP拥塞逻辑失败的高延迟高带宽环境,例如洲际文件传输。该协议(protocol)以拥塞为代价实现可靠传输,数据包通过大量推送以减少往返AC

c - TCP 100% 可靠吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。虽然TCP是一个提供重传和确认机制的可靠协议(protocol),但我认为它不是100%可靠的,因为send()的成功返回并不能确保数据已经到达目标端点,只意味着数据是复制到内核缓冲区。有没有什么机制让应用知道数据是否成功到达目的地?一种可能的解决方案是在应用层中建立某种确认机制?

python - 仅使用 TCP 的 Scapy DNS 请求格式错误

我使用scapy和python来构建我的DNS请求。UDP请求没问题,但当我想使用TCP(使用与UDP完全相同的请求)时,Wireshark说我的DNS请求格式错误。这是我的python代码:fromscapy.allimport*ip=IP(dst="130.104.254.1")dns=DNS(rd=1,qd=DNSQR(qname="google.be",qtype="A"))SYN=ip/TCP(sport=RandNum(1024,65535),dport=53,flags="S",seq=42)SYNACK=sr1(SYN)ACK=ip/TCP(sport=SYNACK.d

java - 如何解码来自 TCP 套接字的数据

我正在尝试使用python制作的服务器和java制作的客户端制作一个非常简单的聊天程序。但是我不知道如何解码服务器从客户端接收到的数据。客户端发送并编码为UTF-8。只是打印它看起来像这样:http://i.imgur.com/0usK6j7.jpg首先从UTF-8解码它看起来像这样:http://i.imgur.com/Ctwivl4.jpg我假设可以删除NUL字符或\x00。包装整个消息的b''也是如此。第二个字符似乎指定了消息的长度。但是我该如何解码呢?我应该手动删除字符吗?我知道这是一个非常基本的问题,之前可能有人问过,但我什至不知道要搜索什么。 最