Questions tagged «tcp»

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



6
如何被动监控tcp数据包丢失?(Linux)
如何被动监视与机器之间的TCP连接上的数据包丢失? 基本上,我想要一个位于后台的工具,它监视TCP ack / nak / re-transmission来生成报告,该报告关于“似乎”对等IP地址正在遭受严重损失。 我在SF中发现的大多数此类问题建议使用iperf之类的工具。但是,我需要监视与机器上真实应用程序之间的连接。 这些数据只是放在Linux TCP堆栈中吗?

8
ping尝试中的“ TTL在传输中过期”是什么意思?
当我们尝试ping到另一个网段中的服务器时,我们收到消息“ TTL传输中过期”。当我们运行tracert时,4个ip地址会无限地重复它们: 14 60 ms 59 ms 60 ms xxx.xxx.xxx.2 15 83 ms 81 ms 82 ms xxx.xxx.xxx.128 16 75 ms 80 ms 81 ms xxx.xxx.xxx.249 17 81 ms 78 ms 80 ms xxx.xxx.xxx.250 18 82 ms 80 ms 77 ms xxx.xxx.xxx.2 19 102 ms 101 ms 100 ms xxx.xxx.xxx.128 …
55 networking  tcp  ping  ttl 

10
Windows TCP窗口缩放过早达到高原
场景:我们有许多Windows客户端定期将大文件(FTP / SVN / HTTP PUT / SCP)上传到距离服务器100-160毫秒的Linux服务器。我们办公室的同步带宽为1Gbit / s,服务器是AWS实例或物理托管在美国DC中。 最初的报告是,上传到新服务器实例的速度要慢得多。这在测试中和从多个位置产生出来;客户端从Windows系统向主机看到稳定的2-5Mbit / s。 我iperf -s在一个AWS实例上爆发,然后从办公室的Windows客户端爆发: iperf -c 1.2.3.4 [ 5] local 10.169.40.14 port 5001 connected with 1.2.3.4 port 55185 [ 5] 0.0-10.0 sec 6.55 MBytes 5.48 Mbits/sec iperf -w1M -c 1.2.3.4 [ 4] local 10.169.40.14 port 5001 connected with 1.2.3.4 …


9
为什么服务器不发送SYN / ACK数据包以响应SYN数据包
最近,我们发现TCP连接问题主要限于浏览我们网站的mac和Linux用户。 从用户的角度来看,它表示与我们的网站的连接时间非常长(> 11秒)。 我们已经设法跟踪了该问题的技术特征,但无法弄清为什么会发生或如何解决。 基本上,正在发生的事情是客户端的计算机正在发送SYN数据包以建立TCP连接,而Web服务器接收到它,但是没有以SYN / ACK数据包响应。客户端发送了许多SYN数据包后,服务器最终以SYN / ACK数据包进行响应,其余连接一切正常。 而且,当然,这是解决问题的方法:它是间歇性的,不会一直发生(尽管确实会在10%到30%的时间之间发生) 我们使用Fedora 12 Linux作为操作系统,使用Nginx作为Web服务器。 Wireshark分析的屏幕截图 更新: 在客户端上关闭窗口缩放可阻止该问题的发生。现在我只需要一个服务器端解析(我们不能让所有的客户端都这样做):) 最终更新: 解决方案是关闭我们公众可以访问的服务器上的TCP窗口缩放 和 TCP时间戳。
46 linux  tcp  web-server 


5
可以将TCP和UDP数据包拆分为几部分吗?
TCP数据包可以分段到达接收者吗? 例如,如果我使用TCP协议发送20个字节,我可以100%确定一次将恰好接收20个字节,而不是10个字节,然后再接收10个字节左右吗? UDP协议也有同样的问题。 我知道UDP是不可靠的,数据包不能全部到达或以不同的顺序到达,但是单个数据包呢?如果到达,我可以确定它是完整的包装,而不是一个包装吗?
41 networking  tcp  udp 


4
如何通过命令行使cURL使用keepalive?
我正在尝试验证与正在运行的Tomcat Web服务器通信期间是否正在使用HTTP持久连接。当前,我可以从浏览器(例如Chrome)中检索服务器上的资源,并使用netstat验证是否已建立连接: # visit http://server:8080/path/to/resource in Chrome [server:/tmp]$ netstat -a ... tcp 0 0 server.mydomain:webcache client.mydomain:55502 ESTABLISHED 但是,如果使用curl,我将永远不会在netstat中看到服务器上的连接。 [client:/tmp]$ curl --keepalive-time 60 --keepalive http://server:8080/path/to/resource ... [server:/tmp]$ netstat -a # no connection exists for client.mydomain 我也尝试使用以下curl命令: curl -H "Keep-Alive: 60" -H "Connection: keep-alive" http://server:8080/path/to/resource 这是我的客户端计算机的curl版本: [server:/tmp]$ curl -V curl 7.19.5 (x86_64-unknown-linux-gnu) …
36 http  tcp  curl  netstat  keepalive 

1
某些网站上的随机TCP RST,这是怎么回事?
短版:连接到某些网站时,我网络上的一台Windows Server 2012计算机正在出现持久性但间歇性的TCP RST。他们来自哪里的邓诺。查看wireshark日志以获取我的分析和问题。 长版: 我们在其中一台服务器上运行缓存Web代理,以为我们的小型办公室提供服务。一位同事报告说,连接到某些站点时出现很多“连接重置”或“页面无法显示”错误,但是刷新通常可以解决此问题。 我验证了浏览器的行为,然后通过尝试在服务器本身上使用未代理的浏览器来更直接地进行验证。但是到麻烦站点的ping和traceroutes没有显示任何问题,问题似乎仅限于TCP连接。 然后,我编写了一个脚本来测试受影响的站点,方法是直接通过cURL向它们发送HTTP HEAD请求并检查它们成功的频率。典型的测试如下所示:(这是未代理的,直接在不良服务器上运行) C:\sdk\Apache24\htdocs>php rhTest.php Sending HTTP HEAD requests to "http://www.washingtonpost.com/": 20:21:42: Length: 0 Response Code: NULL (0%) 20:22:02: Length: 0 Response Code: NULL (0%) 20:22:22: Length: 0 Response Code: NULL (0%) 20:22:42: Length: 0 Response Code: NULL (0%) 20:23:02: Length: 3173 Response Code: …

4
DNS查询是否总是通过UDP传输?
我花了一些时间研究这个主题,但似乎找不到确切的答案,因此我相当有信心这不是重复的,尽管我的问题是基于安全需求,但我认为它仍然是安全的在这里询问,但是让我知道是否需要将其移至安全社区。 从本质上讲,DNS查询是否曾经使用TCP(如果这样,这会发生什么情况)?同样,我只在谈论查询。他们有可能通过TCP传输吗?如果域的最大长度不能超过253个字节,而UDP数据包则可以最大为512个字节,那么查询是否总是会像UDP一样出局?我认为可解析的查询可能不够大,无法要求使用TCP。如果DNS服务器收到对大于253字节的域的请求,服务器会丢弃它/不尝试解决它吗?我敢肯定,我在这里做了一些错误的假设。 在某些情况下,我正在与安全小组合作,将DNS查询加入其安全监视工具中,并且由于各种原因,我们决定将通过DNS服务器和域控制器上的标准数据包捕获来捕获此流量。核心要求是捕获所有DNS查询,以便它们可以识别哪个客户端尝试解析任何给定的域。基于此要求,我们与捕获DNS响应或其他流量(例如区域传输)无关,这也是由于我们需要尽可能限制日志量这一事实所驱动。因此,我们计划仅捕获发往DNS服务器并通过UDP发送的DNS查询。有关更多背景信息(问题范围在这里蔓延),现在有人提出我们可能需要扩展安全性。的可见性,以便他们可以监视诸如在DNS上运行的秘密通道之类的活动(这也需要捕获DNS响应以及随后的TCP流量)。但是即使在这种情况下,我也认为任何出站DNS流量都将以查找/查询的形式出现,并且即使来自恶意来源,它们也总是通过UDP传输(由于第一段中的原因)。因此,这带来了一些其他问题: 我们至少不会使用我概述的方法来捕获一半的对话吗?还是客户端会发出不是查询形式的DNS流量?(可能像对DNS服务器响应的某种回复,并且可能最终通过TCP发出) 是否可以将DNS查询修改为使用TCP?DNS服务器会接受并响应通过TCP发出的DNS查询吗? 不确定是否相关,但我们确实将DNS请求限制在授权的DNS服务器上,并阻止所有其他通过端口53出站的流量。我绝对是菜鸟,因此对于我的问题不符合要求,我们深感抱歉,并告诉我我应该如何修改。

3
尽管SYN_RECV连接数较少,但日志中仍存在“可能的SYN泛洪”
最近,我们有一个apache服务器,由于SYN泛洪,响应速度非常慢。解决方法是启用tcp_syncookies(net.ipv4.tcp_syncookies=1 in /etc/sysctl.conf)。 如果您需要更多背景知识,我在这里发布了一个与此有关的问题。 启用syncookie之后,我们大约每60秒开始在/ var / log / messages中看到以下消息: [84440.731929] possible SYN flooding on port 80. Sending cookies. Vinko Vrsalovic告诉我,这意味着syn待办事项已满,因此我将tcp_max_syn_backlog提高到4096。在某些时候,我还通过发出来将tcp_synack_retries降低到3(从默认值5降低)sysctl -w net.ipv4.tcp_synack_retries=3。之后,频率似乎下降了,消息间隔大约在60到180秒之间变化。 接下来,我发出sysctl -w net.ipv4.tcp_max_syn_backlog=65536,但仍在日志中获取消息。 在所有这些过程中,我一直在观察SYN_RECV状态下的连接数(通过运行watch --interval=5 'netstat -tuna |grep "SYN_RECV"|wc -l'),它从不超过约240个,远低于积压的大小。但是我有一台Red Hat服务器,它徘徊在512左右(此服务器的限制是默认值1024)。 是否还有其他tcp设置会限制待办事项的大小,或者我吠叫了错误的树?SYN_RECV连接的数量是否应该netstat -tuna与待办事项的大小相关? 更新资料 尽我所能告诉我,我在这里处理合法连接,netstat -tuna|wc -l徘徊在5000左右。我今天一直在研究此问题,并从last.fm员工那里找到了这篇帖子,这非常有用。 我还发现启用syncookies时tcp_max_syn_backlog不起作用(按照此链接) 因此,下一步,我在sysctl.conf中设置以下内容: net.ipv4.tcp_syn_retries = 3 # default=5 net.ipv4.tcp_synack_retries = 3 …
30 linux  tcp  kernel  flooding 

3
调整iSCSI存储
这是有关iSCSI 的规范问题,我们可以将其用作参考。 iSCSI是一种协议,它将SCSI命令作为有效负载放入TCP网络数据包。因此,与光纤通道相比,它面临着一系列不同的问题。例如,如果链路拥塞并且交换机的缓冲区已满,则默认情况下,以太网将丢弃帧,而不是告诉主机减速。这导致重传,从而导致极少的存储流量出现高延迟。 有此问题的解决方案,具体取决于客户端操作系统,包括修改网络设置。对于以下操作系统列表,最佳的iSCSI客户端配置是什么样的?是否需要更改开关上的设置?那存储呢? VMWare 4和5 Windows Hyper-V 2008和2008r2 裸机上的Windows 2003和2008 裸机上的Linux AIX VIO 您碰巧认为其他任何相关的操作系统

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.