Articles of tcp

如何监视给定IP的端口的TCPstream量?

我需要看到的是发送到给定IP的端口的TCP消息。 所以例如 127.0.0.1:11000 我怎样才能看到所有的TCP消息被发送到该端口? 这必须与Windows,Windows 2003或XP一起使用 我试过WireShark,但我不知道适当的filter。 soluiton不必wirehark,但解决scheme必须花费什么。

为什么iptables不丢包?

我在我们的iptablesconfiguration文件/ etc / sysconfig / iptables中有以下规则 -A INPUT -s 84.23.99.97 -j DROP 而当我做iptables – 列表我得到以下 Chain INPUT (policy ACCEPT) target prot opt source destination DROP all — 84.23.99.97 anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 但是,如果我做了一个tcpdump,我仍然可以看到这个ip的所有stream量,为什么? tcpdump -ttttn tcp port 1234 | grep […]

查询Linux上套接字的TCP缓冲区大小

有什么方法可以查找TCP套接字的发送/接收缓冲区大小吗? 我使用netstat和ss,以及raw / proc / net / tcp。 那里有很多好东西,包括飞行中的字节数,定时器,进程名等等。 但是我希望能够诊断某些过程是否设置了SO_ {SND,RCV} BUF …以及更有趣的内核实际上为每个SKB使用的值。

如何启用TCPparsingDNS?

我一直在读这个,据我所知,这是可能的,但是, 我知道UDP对于DNSparsing要好得多,但是由于这么多问题有限制,我需要使用TCP,这真的是可能的,我该怎么做? 我正在运行Centos 5.5,我只想要的是任何DNS查询使用TCP而不是udp。 谢谢!

TCP连接保持活动方向

当连接在一定时间(默认2小时)内没有收到数据包时,应发送KEEP-ALIVE数据包。 我的问题是,谁将开始发送KEEP-Alive数据包,客户端,服务器或两者?

TCP握手过程中丢包

我必须实现一个导致文件传输的伪TCP握手。 我没有问题做文件传输:简单的发送确认。 我不能包揽头脑的是如何在三个步骤中的一个步骤中进行三次握手。 例如:我的客户端发送一个SYN数据包。 如果超时(丢包或只是慢)等待SYN-ACK,则重新发送。 服务器发送SYN-ACK。 如果超时等待ACK,则重新发送SYN-ACK。 现在客户如何收到他的ACK?

在linux 3.0内核中增加tcp慢启动初始窗口

我正在检查我的网站IW,并意识到它的4 。 [user~]$ sudo tcpdump -n -i any 'tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn and port 80' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes 10:13:20.971391 IP 175.xxx > 17.xxxhttp: Flags [S], seq 3929903562, win 5840, options [mss 1460,sackOK,TS val 1701657127 […]

networking/ TCP的特征是什么引起了TCP活动和延迟之间的线性关系?

这个问题的核心是我们的应用程序使用websockets实时接口。 我们正在testing我们的应用程序在一个新的环境,但奇怪的是,我们注意到与websocket活动增加相关的TCP websocket数据包日益延迟。 例如,如果在一分钟内发生一个websocket事件而没有任何其他活动,则来自服务器的响应是即时的。 但是,如果我们慢慢增加客户端活动,则服务器响应的延迟会随着线性关系的增加而增加(每个数据包需要更多时间才能到达具有更多活动的客户端)。 对于那些想知道这不是应用程序相关的,因为我们的日志显示,我们的服务器正在运行,并根据需要在100毫秒内响应请求。 一旦服务器处理请求并创buildTCP数据包并将其发送到客户端(而不是相反),延迟就会开始。 体系结构此新环境使用虚拟IP地址运行,并在负载均衡器上使用保留策略来平衡实例之间的stream量。 两个箱子坐在平衡器的后面,所有的交通都穿过它。 我们的主机提供商pipe理平衡器,我们不能控制这部分架构。 理论难道这可能与缓冲新环境中的数据包有关吗? 谢谢你的帮助。

有一次,windows / .net应用程序忽略了tcp fin标志

我遇到了一个我无法解决的networking问题。 在几台运行Windows 8.1的计算机上,并与Windows的HTTP服务器TCP连接进行通信,而不是正确closures。 在响应之后[分成less数,由windows确认,tcp数据包] linux server – 10.14.11.59 – 发送一个包含FIN和ACK标志集的tcp数据包。 这是窗口机器确认 – 10.14.10.195 – 数据包只有ACK标志设置。 linux几次重新发送FIN和ACK标志的数据包,而Windows机器 – 由于某种原因,仍然保持连接打开; 带有RST标志的数据包永远不会被Windows机器发送。 如果发生这种情况,Windows应用程序将等待并最终超时。 这发生在10-50%的尝试之间。 两台机器之间的stream量未经过滤; 基于主机的防火墙closures了。 以避免潜在的问题,我已经禁用TCP卸载在Linux和Windows。 另外在Windows上运行以下代码并重启机器: netsh int tcp set global chimney=disabled netsh int tcp set global autotuninglevel=disabled netsh int tcp set global rss=disabled 数据包捕获: 在这里 。 任何想法将不胜感激!

为什么net.ipv4.tcp_rfc1337默认启用?

tcp_rfc1337设置似乎有一个TIME-WAIT暗杀的解决scheme。 第一个问题是旧的重复数据可能在新的连接中被错误地接受,导致发送的数据被破坏。 第二个问题是,由于旧的重复数据包进入新的连接,连接可能变得不同步并进入ACK循环,这将变得不同步。 第三个也是最后一个问题是旧的重复数据包可能会错误地input新build立的连接并终止新的连接。 从我所读到的问题来看,要解决这个问题,设置在套接字处于TIME-WAIT状态时忽略RST(重置)数据包 。 那么,为什么这个设置默认是启用的呢? 使用这个有什么缺点? 当我研究阻止SYN泛滥攻击时,我实际上已经了解了这个variables。 你认为这个设置有助于阻止它们吗?