草庐IT

TCP_CORK

全部标签

tcp - 可靠数据传输 (RDT)、Go-Back-N (GBN) 和选择性重复 (SR)

我现在正在学习网络类(class),并试图了解这三种协议(protocol)的用处。我知道他们正在努力使不可靠的链路层(IP)变得可靠。它们实际上在任何地方实现吗?TCP是否实现了其中的任何一个?就此而言,除了TCP和UDP之外,还有其他协议(protocol)在传输层上运行吗?我正在使用Kurose&Ross的《ComputerNetworking》一书。非常感谢任何帮助! 最佳答案 “三个协议(protocol)用在什么地方,我理解他们是在努力让不可靠的链路层(IP)变得可靠。”首先,不要将RDT与GBN和SR混淆,因为GBN和

tcp - 计算最佳窗口大小

我目前正在尝试计算最佳窗口大小。我得到了这些变量:传播延迟:10毫秒比特速度:100kbps帧大小:20字节当传播延迟为10毫秒时,我们在窗口大小为13时得到限制,当传播延迟为20毫秒时,我们在窗口大小为24时得到限制。有没有计算最大窗口大小的公式? 最佳答案 你的问题的公式是:(Bitspeed*2*tp)/buffer*8=窗口大小地点:在您的情况下,Bitspeed=1002*tp=RTT(发​​送和返回包裹所需的时间),在您的情况下为20和buffer=20,20*8得到位大小Windowsize=你要计算的东西希望对您有所

python - TCP Connection Reset by peer 和 Transport End Point 未连接

我们在同一台机器上运行一个TCP服务器客户端架构,客户端在127.0.0.1:30008上连接服务器。我们看到的是,有一段时间TCP连接被服务器重置。我们可以清楚地看到,在tcpdump跟踪中,服务器发送了RST标志。客户端代码是python,服务端代码是C。是什么导致服务器发送这个RSTflat?,此设置用于运行几个月没有任何问题,所以我们很惊讶地看到现在发生了什么。TCP服务器通过另一个UDP端口从其他服务器获取数据,并通过TCP端口30008传输到客户端,客户端在while循环中监听服务器端口。想知道,这种连接RST问题不会发生在UDP连接上吗?有时我们可以看到服务器正在关闭套接

Java - java.net 中的 TCP 三向握手?

简介:作为我大学研究的一部分,我必须找出在滥用TCP三向握手时占用了多少物理内存。更准确地说:当客户端没有用ACK回复时,从而使服务器挂起为它们保留的内存。我查看了可用的软件,但没有找到任何可以让我模拟TCP三向握手的软件。然后我找到了JavaSockets。我浏览了许多教程,但发现它们非常不清楚。此外,他们似乎有一个高级View,不允许我操纵SYN、SYN-ACK、ACK序列。因此,我使用反编译工具进入了实际的java.net。我查看了各种类,但找不到对发送的实际SYN消息的任何引用。有些方法听起来像是在做这件事,但我只能找到方法调用和它们的接口(interface)定义。我找不到实

algorithm - 丢包时 TCP 慢启动 vs 拥塞避免

我最近一直在阅读1988年关于CongestionAvoidanceandControl的论文,并且努力区分慢启动和拥塞避免。但是,有一点我没搞明白,就是丢包后是用什么算法。基于论文和Wikipedia's慢启动的描述,它希望TCP在丢失事件发生后以大小为1的拥塞窗口开始。基于拥塞避免的AIMD算法,拥塞窗口应该在丢包后减半。发生丢包时,哪种算法优先?cwnd会设置为1还是当前大小的一半? 最佳答案 显然答案在同一篇论文的附录B中,我之前跳过了它。组合算法实际上维护了两个状态变量,一个cwnd和一个ssthresh。当丢包超时时,变

linux - 用于管理的永久 TCP 连接

我面临以下情况:我有几台设备(运行ARCHLinux的嵌入式设备),我想随时拥有对每台设备的管理权限。问题是设备位于NAT之后,因此无法建立从服务器到设备的连接。我怎么能做到这一点?我想我可以编写一个在设备上运行的简单服务,该服务在启动时打开与服务器的连接。此TCP连接保持打开状态,可从服务器使用它来管理设备。但是长时间保持TCP连接打开是个好主意吗?如果我有很多设备,例如1000个,我在服务器端是否会遇到1000个打开的TCP连接的问题?有没有别的办法?非常感谢! 最佳答案 ButisitagoodideatokeepTCPcon

heroku - 使用 Ruppell 的套接字插件在 Heroku 上托管 TCP 服务器时出现 "Connection closed by foreign host"错误

我正在尝试在Heroku上托管一个简单的TCP服务器。我正在使用Ruppell'sSocketsHerokuaddon.我的Procfile看起来像这样:web:bundleexecrubyweb.rb-e"production"-p$PORTsocket:./lib/sockets-connect/rs-connruby./tcpserver.rbtcpserver.rb看起来像这样:require'eventmachine'moduleEchoServerdefpost_initputs"--someoneconnectedtotheechoserver!"enddefreceiv

c# - TCP 套接字服务器 - 一种检测传入数据的方法

我正在尝试编写一个服务器,它将监听一个端口,接受传入的客户端连接,然后将该客户端连接放入堆栈中以等待future的消息到达。理想情况下,当消息到达时,我想触发一个事件,然后允许服务器执行操作。我已经写了几乎所有这些......我正在使用AcceptTCPClient()来实际获取一个新的客户端连接,这很好。然后我创建一个线程,将套接字传递给一个保存客户端状态和其他一些数据的类。然而,我能想到的阻止并等待该线程上future传入连接的唯一方法是调用NetworkStream.Read()之类的东西,然后阻塞直到字节到达。所以这里是根本问题-我正在使用Protobuff-net,它允许我反

python - 使用 Scapy 用 Python 编写的 TCP 端口扫描器没有响应

我正在尝试制作一个TCP端口扫描器,但我坚持使用一个非常简单的示例,该示例与我在网上找到的一个更高级的示例串联在一起。我没有收到任何错误。自从我在Linux机器上启动Apache服务器后,我希望代码显示端口80是打开的。代码如下:#!/usr/bin/pythonimportlogginglogging.getLogger("scapy.runtime").setLevel(logging.ERROR)fromscapy.allimport*ip="127.0.0.1"port=80response=sr1(IP(dst=ip)/TCP(dport=port,flags="S"),ve

c# - 一些数据可以在 Tcp 连接中分离吗?

我的问题很简单。一些数据可以在tcp连接中分开吗(如标题所示)?例如,如果我调用MySocket.Send(Encoding.UTF8.GetBytes("thisisatest!");,我是否可以从连接的另一端?即Tcp有多可靠? 最佳答案 TCP通常用作流;不保证无论如何“发送”和“接收”操作将一对一匹配。必须读取15次,每次获取1个字节,这在技术上是有效的(但不太可能)。因此,通常有两种操作模式:一直读到流的末尾(发送方在发送消息后关闭其出站套接字)添加某种框架协议(protocol)对于基于文本的协议(protocol),这