Questions tagged «tcp»

TCP代表传输控制协议,并且是Internet协议套件的核心协议之一。TCP是Internet协议(IP)的补充,因此整个套件通常称为TCP / IP。

2
在连接到全局编录服务器期间,[PSH,ACK]在做什么?
我的linux服务器正在尝试建立与全局编录服务器的LDAPS连接,并且该连接被丢弃(大概是在GC端)。 出于讨论目的,假设1.1.1.1是Linux服务器,而1.2.3.4是全局编录服务器。 如果尝试telnet在Linux机器上使用,则会看到: [root@foobox ~]# telnet gcfoo.exampleAD.local 3269 Trying 1.2.3.4... Connected to gcfoo.examplead.local. Escape character is '^]'. Connection closed by foreign host. 在第4行和第5行之间没有延迟。它只是立即断开连接。 我认为telnet结果可能有点误导(因为它实际上不适用于任何类型的安全通信),所以我从设备(使用需要LDAPS的实际程序)收集了实际连接尝试的数据包捕获。 这是我所看到的(再次,IP和源端口已重命名以保护无辜者): No. Time Source Destination Protocol Length Info 1 0.000000 1.1.1.1 1.2.3.4 TCP 66 27246 > msft-gc-ssl [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SAC_PERM=1 WS=128 2 0.000162 …
14 ldap  tcp  tcpip 


5
Netcat无法以侦听模式启动
我正在使用CentOS 6.7(最终版)系统,当我尝试以nc侦听模式运行时,它会打印以下内容: # nc -l 1234 nc: Protocol not available 端口未绑定。我也尝试了其他端口号。似乎已经报告了该错误:https : //access.redhat.com/solutions/1753753。不幸的是,它不是很详细。 包装信息: Name : nc Arch : x86_64 Version : 1.84 Release : 24.el6 我还有其他需要尝试的东西吗?
13 linux  centos  tcp  netcat 

1
如何直接通过TCP公开UNIX域套接字
我想要一个UNIX域套接字,例如通过TCP公开的/var/program/program.cmd,让它在端口12345上说。我还希望它在后台全时运行。 最好的方法是什么?如果相关,则系统正在运行Ubuntu 12.04.2。 同样,通过提出的解决方案,它可以在删除并重新创建的域套接字中生存下来吗? 编辑 这是初始化脚本形式的已接受答案的结果:https : //github.com/Wirehive/haproxy-remote
13 linux  ubuntu  tcp  socket 


1
SynProxy无法返回具有非对称双桥拓扑的syn ack数据包
当我使用ssh从172.16.11.5和172.16.10.6连接时,我具有如下所示的非对称双桥拓扑,但是由于SynProxy我无法连接。 ------- | | ---o--- 172.16.11.5 | | -----o----- 172.16.11.6 | | | | default gw 1.1.1.1 | | 1.1.1.2/30 --o----o--- 2.2.2.2/30 | | | | | | (enp10s0f0) ----o----o----- | | | XXX | | | | br1 br0 | synproxy | | ----o----o----- | | | | | …

3
客户端断开连接后,TCP连接能否保持打开状态?
我们有一个服务器应用程序在大约4000个连接处面临TCP耗尽问题。这大约每3或4周发生一次。创建了此服务器应用程序的供应商在检查了netstat -b的输出后告诉我们,即使客户端掉线,某些连接仍保持打开状态。 我已经完成了调查为什么特定的客户端应用程序无法正确关闭TCP连接的任务。我相信,如果关闭了客户端计算机,则无法从服务器报告仍然与该客户端建立了TCP连接。不幸的是,我找不到任何信息来验证我的观点。我不想再浪费时间来研究一个我认为甚至不会成为问题的潜在问题。 tldr; 服务器可以报告与已关闭计算机的已建立连接吗?


4
服务器上的TCP监视:比较netstat与lsof?
我正在监视服务器上的TCP堆栈,以希望一般性地推断出盒子上的应用程序有问题。 我的第一个倾向是测量所有报告状态(LISTEN,ESTABLISHED,FIN_WAIT2,TIME_WAIT等)中的套接字数量,并检测一些异常。 一个队友建议,“ lsof”将是查看TCP堆栈处于哪种状态的更好工具。 服务器故障人群有任何偏好或经验提示吗?
12 linux  unix  tcp  netstat  lsof 

9
ping替代tcp?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 检查网络“质量”是一项常见任务,包括等待时间,丢失的数据包数量等。但是“ ping”有许多缺点:-它使用ICMP。许多ISP对于ICMP和TCP流量具有不同的整形器,因此“ ping”将显示10ms的延迟,但是TCP连接将经历1000ms +。-发送很少的数据包。默认情况下,每秒一包。由于TCP协议可以容忍数据包丢失(如果丢失了一半数据包,它可以很好地工作-这是正常的),因此,尚不清楚ping是否会“杀死30%的数据包”杀死连接还是绝对正常。 那么,使用TCP连接代替ICMP并检查Internet连接质量的ping替代方法是否可行?
12 networking  tcp 

2
将防火墙规则减少一半-TCP和UDP的一个iptables规则
我的防火墙上有许多iptables规则,如下所示: iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT 每个地址都有两条规则的捷径吗?一条规则用于tcp,一条规则用于udp?我的意思是我可以做这样的事情: iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT
12 iptables  firewall  tcp  udp 

2
为什么Linux内核没有关闭FIN_WAIT2状态的连接?
我有一个叫长寿命过程中的问题KUBE-代理的存在部分Kubernetes。 问题是,连接有时不处于FIN_WAIT2状态。 $ sudo netstat -tpn | grep FIN_WAIT2 tcp6 0 0 10.244.0.1:33132 10.244.0.35:48936 FIN_WAIT2 14125/kube-proxy tcp6 0 0 10.244.0.1:48340 10.244.0.35:56339 FIN_WAIT2 14125/kube-proxy tcp6 0 0 10.244.0.1:52619 10.244.0.35:57859 FIN_WAIT2 14125/kube-proxy tcp6 0 0 10.244.0.1:33132 10.244.0.50:36466 FIN_WAIT2 14125/kube-proxy 这些连接会随着时间的推移而堆积,从而导致过程异常。我已经向Kubernetes错误跟踪器报告了一个问题,但是我想了解为什么Linux内核没有关闭这种连接。 根据其文档(搜索tcp_fin_timeout),处于FIN_WAIT2状态的连接应在X秒钟后由内核关闭,其中可以从/ proc读取X。在我的机器上,它设置为60: $ cat /proc/sys/net/ipv4/tcp_fin_timeout 60 因此,如果我理解正确,则此类连接应在60秒内关闭。但是事实并非如此,它们会处于这种状态数小时。 虽然我也知道FIN_WAIT2连接是非常不寻常的(这意味着主机正在等待连接的远程端可能已经消失的ACK),但我不明白为什么这些连接不会被系统“关闭” 。 有什么我可以做的吗? 请注意,重启相关过程是万不得已的方法。

4
服务器端的“ TIME_WAIT”如何真正起作用?
我知道有很多关于SE的问题,在达到这一点之前,我相信我阅读了很多重要的问题。 “服务器端TIME_WAIT”是指在服务器端启动了close()的服务器端套接字对的状态。 我经常看到这些与我矛盾的陈述: 服务器端TIME_WAIT无害 您应该设计网络应用程序,让客户端启动close(),因此让客户端承担 TIME_WAIT 我发现这一矛盾的原因是TIME_WAIT,在客户端上可能会出现问题-客户端可能会用尽可用端口,因此从本质上讲,以上建议将负担TIME_WAIT从客户端转移到客户端。服务器端,这不是问题。 TIME_WAIT对于有限的用例,客户端当然只是一个问题。大多数客户端-服务器解决方案都将涉及一台服务器和许多客户端,客户端通常无法处理足够多的连接,因此即使出现问题,也有许多建议可以“合理地”解决(而不是SO_LINGER使用0超时或与tcp_tw sysctls进行干预)TIME_WAIT通过避免太快地创建太多连接来打击客户端。但这并不总是可行的,例如对于以下应用程序类: 监控系统 负载发生器 代理 另一方面,我什至根本不了解服务器端如何提供TIME_WAIT帮助。原因TIME_WAIT甚至在那里,是因为它防止将过时的TCP片段注入到它们不再属于的流中。对于客户端TIME_WAIT,只需简单地使其无法与ip:port该过时的连接建立相同的连接就可以完成连接(使用的对由锁定TIME_WAIT)。但是对于服务器端而言,这是无法避免的,因为本地地址将具有接受端口,并且始终保持相同,并且服务器(仅因经验证明,我仅凭经验证明)无法拒绝连接,原因仅在于传入对等方将创建套接字表中已经存在的相同地址对。 我确实编写了一个程序,该程序显示服务器端TIME-WAIT被忽略。而且,由于测试是在127.0.0.1上完成的,因此内核必须具有一个特殊位,甚至可以告诉它是服务器端还是客户端(因为否则,元组将是相同的)。 来源:http : //pastebin.com/5PWjkjEf,已在Fedora 22(默认网络配置)上测试。 $ gcc -o rtest rtest.c -lpthread $ ./rtest 44400 s # will do server-side close Will initiate server close ... iterates ~20 times successfully ^C $ ss -a|grep 44400 tcp TIME-WAIT 0 …
11 tcp 

2
300Mbit(14%)处的UDP极端丢包,但不重传的TCP> 800Mbit
我有一个Linux盒子用作iperf3客户端,测试了2个配备Broadcom BCM5721、1Gb适配器(2个端口,但只有1个用于测试)的配置相同的Windows 2012 R2服务器盒。所有机器都通过一个1Gb交换机连接。 以例如300Mbit测试UDP iperf3 -uZVc 192.168.30.161 -b300m -t5 --get-server-output -l8192 导致丢失所有已发送数据包的14%(对于具有完全相同硬件的其他服务器盒,但是使用较旧的NIC驱动程序,丢失大约为2%),即使丢失50Mbit也会发生丢失,尽管严重程度较低。使用等效设置的TCP性能: iperf3 -ZVc 192.168.30.161 -t5 --get-server-output -l8192 产生800Mbit以北的传输速度,没有报告的重新传输。 始终使用以下选项启动服务器: iperf3 -sB192.168.30.161 谁该怪? Linux客户端盒(硬件?驱动程序?设置?)? 编辑:我只是将测试从一个Windows服务器盒运行到另一个,而300Mbit的UDP数据包丢失甚至更高,为22% Windows服务器框(硬件?驱动程序?设置?)? 连接所有测试机器的(单个)开关? 电缆? 编辑: 现在,我尝试了另一个方向:Windows-> Linux。结果:数据包丢失始终为0,而吞吐量最大达到大约 840Mbit -l8192,即分段的IP数据包 250MB,用于无碎片的-l1472IP数据包 我想流量控制会限制吞吐量,并防止数据包丢失。尤其是后者,无碎片的数据远不及TCP吞吐量(无碎片的TCP产生的数据与碎片TCP相似),但是在数据包丢失方面,它相对于Linux-> Windows而言是无限巨大的改进。 以及如何找出? 我确实遵循了服务器上驱动程序设置的常规建议以最大化性能,并尝试启用/禁用/最大化/最小化/更改 中断适度 流量控制 接收缓冲区 的RSS 局域网唤醒 所有卸载功能均已启用。 编辑我也尝试启用/禁用 以太网@线速 各种卸载功能 优先级和VLAN 损失率相近。 …

1
低延迟10GbE-> 1GbE网络的TCP拥塞控制?
我有一台服务器,该服务器具有到交换机的10GbE连接,还有10个客户端,每个客户端有1GbE连接到同一交换机。 在每个客户端上并行运行nuttcp时,我可以以接近线速的速度将10个TCP数据流同时推送到服务器(即,同时从所有10个客户端上每秒传输100兆字节)。 但是,当我反转方向并将数据从服务器发送到客户端时(即10个TCP流,一个流向每个客户端),TCP重传急剧上升,性能下降到每秒30、20甚至10兆字节每个客户。我想增加这些数字,因为这种流量模式代表了我关心的某些应用程序。 我已经验证了我的服务器能够通过与类似服务器的10GbE连接执行相同的实验来饱和10GbE链接。我已经验证我的任何端口上都没有错误。 最后,当我强行限制(限制)接收器的TCP窗口大小时,我可以获得更高的带宽(30-40兆字节/秒);如果将其钳位得非常低,我可以将重传次数设为零(带宽非常低)。 因此,我有理由相信我会超出交换机中的缓冲区,导致由于拥塞而导致数据包丢失。但是,我认为TCP的拥塞控制应该可以很好地解决此问题,最终稳定在线速的50%以上。 所以我的第一个问题很简单:哪种TCP拥塞控制算法最适合我的情况?有很多可用的方法,但是它们似乎主要针对有损网络,高带宽高延迟网络或无线网络……这些都不适合我的情况。 第二个问题:还有什么我可以尝试的吗?
11 linux  networking  tcp 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.