草庐IT

TCP_CORK

全部标签

TCP 窗口和缓冲区 - 检查我的理解?

我目前正在尝试实现单向TCP,我只想对TCP发送方/接收方窗口和接收缓冲区的行为进行一些澄清。我对开窗过程的理解是这样的:窗口大小表示发送方一次可以发送的最大未确认字节数。这个尺寸是在连接时商定的。TCP发送方应跟踪序列号较低的ACK,并在收到ACK时将数据包标记为已确认。如果最低序列号(它正在跟踪)与当前窗口中的第一个字节匹配,则将窗口向右滑动。现在,我对接收缓冲区的理解...当数据包乱序到达时使用。数据被放入缓冲区,接收方不对其进行确认,而是继续确认在最早的无序数据包之前收到的最后一个数据包。这导致发送方在重复的ACK号之后“快速”重传下一个数据包。这是否是对这两个概念的正确理解,

java - 通过tcp向logstash发送数据

我在从一个简单的Java应用程序向我的logstash实例发送日志数据时遇到了一些问题。对于我的用例,我试图避免使用log4jlogback,而是通过原始tcp套接字在单独的行上批处理json事件。这样做的原因是我希望通过awslambda函数将数据发送到logstash,这意味着将日志存储到磁盘可能无法解决问题。我的logstash配置文件如下所示:input{tcp{port=>5400codec=>json}}filter{json{source=>"message"}}output{elasticsearch{host=>"localhost"protocol=>"http"i

networking - 为什么 TCP/IP 套件中的最大端口范围是 65535?

我的疑问是-一个端口是合乎逻辑的,那么为什么要这样限制呢?为什么我不能有9924593或类似的端口? 最佳答案 查看packetformat对于TCP段。端口标识符是无符号的16位整数,这意味着您可以输入的最大数字是216-1=65535。 关于networking-为什么TCP/IP套件中的最大端口范围是65535?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3679618

c# - 如何在 C# 中确定 Windows 进程使用的 tcp 端口

是否有托管类/方法可以提供特定Windows进程使用的TCP端口号?我真的在寻找与以下CMD行等效的.NET:netstat-ano|find/i"listening" 最佳答案 除了PID,看看这个:IPGlobalPropertiesipProperties=IPGlobalProperties.GetIPGlobalProperties();IPEndPoint[]endPoints=ipProperties.GetActiveTcpListeners();TcpConnectionInformation[]tcpConnec

http - 如何重新组装tcp段?

我现在正在使用winpcap开发一个项目..因为我知道被嗅探的数据包通常是碎片化的数据包。如何重组这个TCP段?..有什么想法、建议或可用的教程吗?..我认为这是我可以查看HTTPheader的唯一方法...谢谢!.. 最佳答案 tcp是一种字节流协议(protocol)。您的http应用程序发送的字节序列被封装在tcp数据段中,并且在将数据传递到另一端的应用程序之前重新创建字节流。由于您正在使用winpcap访问tcp数据段,因此您需要转到数据段的数据部分。tcp的header固定长度为20个字节+您需要使用winpcapapi确

ios - 是否可以在 Apple iOS 设备上激活 TCP keepalive

Apple设备===路由器===WiFi模块Apple设备(iPhone)正在通过TCP连接连接到WiFi模块端口2000。我想在Apple设备上激活TCPkeepalive数据包发送,以查明与WiFi模块的TCP连接何时丢失(模块已关闭)。我的直播设置CFReadStreamRefreadStream;CFWriteStreamRefwriteStream;CFStreamCreatePairWithSocketToHost(NULL,(CFStringRef)CFBridgingRetain(moduleIPaddress),port2000,&readStream,&writeS

c - 打印 TCP 数据包数据

在TCP通信中,当数据包从以太网传输到网络(IP)层时,我想打印该数据包中存在的数据?我在linux上工作。我得到一些信息,它可以在linux内核代码的帮助下完成,即在linuxNAT防火墙代码中。但是我在哪里可以获得内核源代码?这些编码在哪里完成? 最佳答案 如何打印TCP数据包中的数据下面是一个完全满足您需要的示例:Hook接收到的TCP数据包并打印它们的有效负载。如果你想从接收到的数据包中打印一些其他信息(比如二进制数据),你只需要稍微修改一下这条评论下的部分:/*-----从收到的TCP数据包打印所有需要的信息------*

tcp - 通过互联网同步时钟

我正在使用我自己的协议(protocol)通过互联网在两台专用计算机之间发送实时关键数据。当然会涉及延迟。为了调试和优化,我喜欢让两台计算机使用相同的时基。也就是说,我需要知道他们时钟的时差,以便我可以更好地判断延迟。当然,相对主义等并不能真正让我完美地同步它们,但我希望尽可能接近。仅依靠NTP似​​乎不够好-根据我的经验,时钟可能会关闭半秒(澄清:到目前为止,我依赖Apple提供的默认设置)。我至少需要1/10秒范围内的精度。两台电脑距离不会太远,ICMPping时间通常小于100ms。有什么建议如何做到这一点?(目前,涉及的机器运行OSX,所以如果您知道适合它们的解决方案,那将是一

python - 使用 TCP 套接字发送/接收数据包

最近,我设法在我的PC和我的RaspberryPi上创建了套接字,以实现这两个设备之间的通信。目前,客户端能够自动向服务器发送消息。我想知道,是否可以修改脚本以发送tcp数据包而不是纯文本消息,因为我非常希望将来使用我的PC来控制树莓派,而无需ssh/etc。我看过一些示例,但由于我在编写自己的脚本/代码方面没有太多经验,所以我不太确定如何去做。如果有人可以通过解释和一些示例(如果可能的话)指导我朝着正确的方向前进,我将不胜感激。无论如何,这是我目前正在运行的服务器/客户端脚本:客户:importsocketimportsysimportstructimporttime#mainfun

scala - 如何使用 Akka Streams 实现一个简单的 TCP 协议(protocol)?

我尝试实现了一个简单的基于TCP的协议(protocol),用于与AkkaStreams交换消息(见下文)。但是,似乎传入消息没有立即处理;也就是说,在客户端接连发送两条消息的场景中,第一条消息仅在从服务器发送某些内容后打印:Att=1,on[client]AisenteredAtt=2,on[client]BisenteredAtt=3,on[server]ZisenteredAtt=4,on[server]AisprintedAtt=5,on[server]YisenteredAtt=6,on[server]Bisprinted我期望/想看到的:Att=1,on[client]Ai