Questions tagged «tcp»

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

5
我正在设计一个每秒处理10000个TCP连接的系统,我会遇到什么问题?
我有一个运行CentOS的相对较新的8核盒子。我想开发一个使用TCP的统计服务器。这非常简单,它接受TCP连接,增加计数器并关闭连接。问题是它至少需要每秒执行至少10k次请求。我怀疑CPU /内存不会有问题,但是我更担心人为限制(例如半开连接),我可能需要在服务器上对其进行配置以允许这种数量的存储量。那么,这可能吗?我应该注意哪些设置?我的NIC无法处理吗?

6
转储没有tcpdump的tcp连接
在centos机器上,我想转储tcp连接-我想查看服务器是否尝试将请求发送到某个IP。通常,tcpdump可以解决问题-但未安装tcpdump,并且不能选择安装软件(由于公司政策)。恐怕netstat不会显示单个请求。 所以我想知道我还有其他选择。我在服务器上确实具有root用户访问权限。
17 linux  tcp 

1
tcpdump会看到iptables丢弃的数据包吗?
我有一个具有以下简单规则的防火墙: iptables -A INPUT -p tcp -s 127.0.0.1/32 --dport 6000 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.16.20/32 --dport 6000 -j ACCEPT iptables -A INPUT -p tcp --dport 6000 -j REJECT 现在,假设我正在像这样使用TCPDUMP: tcpdump port 6000 而且我有主机192.168.16.21试图连接到port 6000。 会/应该tcpdump输出一些来自的数据包192.168.16.21吗?

7
为什么下载文件时比较校验和是一个好习惯?
提供ISO文件以供下载的网站通常会提供这些文件的md5校验和,我们可以用来确认该文件已正确下载并且未损坏。 为什么这是必要的?当然,TCP的纠错属性就足够了。如果未正确接收到数据包,则将重新发送该数据包。TCP / IP连接的本质不保证数据完整性吗?
16 tcp 

1
永远使用netcat代理
我正在用netcat代理VNC TCP服务器端口。代理计算机运行linux。 这是我使用的命令: mkfifo backpipe nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe 10.1.1.116是“远程”计算机,原始VNC服务在端口5902上运行。执行此命令后,本地计算机上的VNC服务可用于其他计算机。 但是在每个VNC会话之后,netcat“代理服务器”都会停止,这就是netcat的工作方式。 VNC会话终止后,如何使netcat保持“代理服务”运行? 解决方法是将netcat命令行置于无限循环中: mkfifo backpipe while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done 但是我更喜欢一个“官方的” netcat解决方案,它根本不会中断服务。 我已经阅读了有关“-”参数的信息,但是不确定是否适合这种情况,并且我还无法正确应用它。 附加说明: 当然,我可以通过ssh隧道以不同的方式来做到这一点,但是我想要一个没有加密开销的解决方案,以使其对VNC客户端尽可能地敏感。否则,可以使用其他代理解决方案。 客户端必须是VNC,不可能有其他协议。
16 linux  proxy  tcp  service  netcat 

9
300次连接后Apache Tomcat阻塞
我们在EC2上托管的Tomcat前面有一个apache网络服务器,实例类型非常大,具有34GB的内存。 我们的应用程序处理许多外部Web服务,而我们的外部Web服务非常糟糕,在高峰时段需要近300秒才能响应请求。 在高峰时段,服务器仅阻塞300个httpd进程。ps -ef | grep httpd | wc -l = 300 我已经在Google上搜索,发现了很多建议,但似乎没有任何效果。 我在apache和tomcat中都增加了最大连接数和最大客户端数的限制。以下是配置详细信息: // apache <IfModule prefork.c> StartServers 100 MinSpareServers 10 MaxSpareServers 10 ServerLimit 50000 MaxClients 50000 MaxRequestsPerChild 2000 </IfModule> // tomcat <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="600000" redirectPort="8443" enableLookups="false" maxThreads="1500" compressableMimeType="text/html,text/xml,text/plain,text/css,application/x-javascript,text/vnd.wap.wml,text/vnd.wap.wmlscript,application/xhtml+xml,application/xml-dtd,application/xslt+xml" compression="on"/> //Sysctl.conf net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 fs.file-max = 5049800 vm.min_free_kbytes = …

6
通过TCP连接分割pcap文件的工具?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为服务器故障的主题。 2年前关闭。 是否有工具可以将每个TCP连接的数据包捕获文件(以pcap格式)拆分为单独的文件?(而不是可能需要在捕获上运行两次的本地生成的Shell脚本...)。类似于wireshark的“跟随TCP流”,但用于命令行(恐怕wireshark在显示700 MB数据包捕获时会消耗大量内存) 我看了看tcpflow,但看起来它产生的文件比原始pcap文件大得多,而且似乎不是pcap格式。

1
在HTTP2下,多久启动一次新的TCP连接?
我知道HTTP2旨在将所有内容都保持在单个TCP连接下,并且我想知道TCP连接断开的频率。 例如,如果我访问youtube,进行一些浏览,离开站点,然后返回,我将重新使用相同的HTTPS连接(就TCP 4元组而言,不是会话),还是使用其他HTTPS连接? 其中很多可能是特定于应用程序的,并且取决于浏览器如何实现,但是在标准的任何地方都指定了它吗?
15 http  https  tcp 

5
英特尔AMT(主动管理技术)如何不干扰TCP / IP主机堆栈?
我一直在使用的Intel开发套件包括一个远程管理功能 (另请参见此处的Ubuntu手册页),该功能允许在操作系统挂起时进行远程重启。 它具有侦听与操作系统共享的IP地址上的几个端口(具体来说为16992和16993)的功能。(通过侦听DHCP请求或发出自己的DHCP请求;我不确定,但是在这种模式下它使用共享的MAC地址) 我让它在单独的IP地址上运行,因为我担心一个潜在的用例:AMT如何防止主机网络堆栈与其冲突? 换句话说,英特尔管理软件现在正在侦听(至少)两个带外且不了解操作系统的TCP端口。假设我启动了到远程主机的TCP连接,并且主机堆栈选择16992或16993作为本地端口以侦听[包返回框]。 从远程主机返回的数据包不会被“刺破”并且永远不会到达操作系统吗?还是有一些预防措施,例如Linux内核中的Intel驱动程序知道TCP应该避开端口16992?(似乎不太可能,因为这是与操作系统无关的功能。)或者管理接口是否可以将发送到端口16992(不属于已知管理会话)的流量转发回主机堆栈? 无论哪种方式,我都不愿意将其用于网络密集型负载,直到我了解其工作原理。我搜索了英特尔文档,也找不到任何内容。 我想可以通过启动约30,000个TCP连接并检查连接是否有效(即使端口重叠)也可以进行测试。但是我还没有机会这样做。 (注:我意识到这个问题类似于基于Intel vPro的计算机如何维护IP连接?,但是该问题通常是解决连接问题,而不是解决与主机堆栈重叠的特定TCP端口的问题。)
15 networking  tcp  amt 


2
查找短暂的TCP连接所有者进程
tcpdump在与apache服务器的本地连接上运行时,我发现TCP连接正在建立,并每2秒立即关闭一次。我如何找到造成这些问题的过程?netstat -ctp没有帮助,连接速度太快,并且TIME_WAIT的进程标识符未显示。 他们原来是haproxy探针,我可以通过进行验证strace,但是我仍然不知道有什么方法可以首先确定haproxy。

1
net.core.rmem_max和net.ipv4.tcp_rmem之间的区别
net.core.rmem_max和net.ipv4.tcp_rmem的第三个值之间有什么区别?哪个具有较高的TCP连接优先级? 对于下面的两个示例,tcp连接的最大缓冲区是多少? Case 1: sysctl -w net.core.rmem_max=7388608 sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608' Case 2: sysctl -w net.core.rmem_max=8388608 sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'

2
我的TCP连接是否受到我国政府的破坏?
我怀疑我国政府正在以某种方式销毁TCP连接上收到的ACK数据包。 当我尝试在80以外的端口上建立与外部主机的TCP连接时,TCP握手将不会成功。我捕获了pcap文件(gmail.pcap:http ://www.slingfile.com/file/aWXGLLFPwb ),我发现我的计算机在发送TCP SYN后将收到ACK,但没有回复它会发送的SYN ACK RST。 我检查了来自外部主机的ACK数据包,但这似乎完全合法。我知道的序列号和所有标志都是正确的。谁能告诉我为什么我的计算机(Linux计算机)将发送RST数据包?
14 networking  firewall  tcp  rst 

1
我对计算MTU有什么误解?
好的,我刚刚解决了几个Xserve,Netgear GSM7224和Drobo B800i之间的巨型帧问题。原来Xserves(Mac OS X 10.6.8 Server)和Drobo B800i接受MTU的字节数通常是预期的(1500-9000),但是Netgear似乎希望它包含各种以太网标头/页脚(预告片) ),最后我最终为Xserves&Drobo配置了9000的MTU,并将Netgear端口设置为9216的MTU。 我已经使用以下命令在Netgear上测试和验证两个Xserve之间的MTU(注意:这是Mac OS X命令,Windows和Linux有所不同): ping -D -s <mtu> <ip_address> traceroute -F <ip_address> <mtu> 前者在man页面中的用法为:“指定要发送的数据字节数。默认值为56,当与8个ICMP标头数据组合时,它转换为64个ICMP数据字节。” 在测试中,我发现,ping -D 1472 <ip_address>是等效MTU 1500的归因于8个字节ICMP头数据的加20个字节的IP报头(参见此和本)。一切都说得通。 现在,为什么对9000 MTU使用等效命令ping -D -s 8164 <ip_address>?我已经确认这是极限,直到我开始收到“发送到:消息太长”错误,而且9000 MTU可以正常traceroute -F <ip_address> 9000工作,traceroute -F <ip_address> 9001但不能正常工作。那么,为什么是8164?我期望8972(MTU-28个字节,就像1500 MTU一样)。 另外,为什么要为Netgear设置9216 MTU?我算出了42个字节的MAC和以太网标头(包括CRC),再加上20个IP标头(应该被MTU占用了)。 我对这个数学真的很生疏,知道我只是想念一些东西。


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.