Articles of tcp

英特尔AMT(主动pipe理技术)如何不干扰TCP / IP主机堆栈?

我一直使用的英特尔开发工具包包括远程pipe理function (请参阅Ubuntu的手册页 ),在操作系统挂起时允许远程重启。 它具有在与操作系统共享的IP地址上监听几个端口(具体地说是16992和16993)的能力。 (通过侦听DHCP请求或发出自己的;我不知道,但无论哪种方式,它在这种模式下使用共享的MAC地址) 我有一个单独的IP地址运行,因为我担心一个潜在的用例: AMT如何防止主机networking堆栈与它冲突? 换句话说,英特尔pipe理软件现在正在监听(至less)两个TCP端口,带外和操作系统的知识。 比方说,我启动到远程主机的TCP连接,主机堆栈select16992或16993作为本地端口来侦听[返回到数据包的数据包]。 从远程主机返回的数据包是否会被“篡改”而不能到达操作系统? 还是有一些预防措施,如Linux内核中的英特尔驱动程序知道TCP应该避免端口16992? (似乎不太可能,因为这是一个操作系统无关的function。)或者,也许pipe理界面可以转发stream量发送到端口16992不属于已知的pipe理会话回到主机栈? 无论哪种方式,我不愿意使用这个networking密集型负载,直到我明白这是如何工作的。 我搜查了英特尔文档 ,也找不到任何东西。 我想这可以通过启动约30,000个TCP连接来testing,并检查连接是否工作,即使端口重叠。 但我还没有机会这样做。 (脚注:我意识到这个问题与基于英特尔®博锐™处理器的计算机如何维护IP连接类似,但是这些问题通常会解决连接问题,而不是连接到与主机堆栈重叠的特定TCP端口。

我对计算MTU有什么误解?

好的,我刚刚解决了几个Xserves,一个Netgear GSM7224和一个Drobo B800i之间的巨型帧问题。 事实certificate,Xserves(Mac OS X 10.6.8服务器)和Drobo B800i以通常的预期(1500-9000)字节接受MTU,但是Netgear似乎希望它包括各种以太网头/页脚(拖车),我最终以configuration了9000的MTU和Netgear端口设置为9216的MTU的Xserves&Drobo结束了。 我已经使用了以下命令来testing和validationNetgear上两个Xserver之间的MTU(注意:这些是Mac OS X命令,Windows和Linux的命令不同): ping -D -s <mtu> <ip_address> traceroute -F <ip_address> <mtu> 前者的用法在man页中标记为“指定要发送的数据字节数,缺省值为56,当与8个字节的ICMP头数据组合时,转换成64个ICMP数据字节。 在testing中,我发现ping -D 1472 <ip_address>相当于MTU 1500,因为有8个字节的ICMP头部数据加上20个字节的IP头部(见本和这个 )。 这一切都是有道理的。 现在,为什么9000 MTU的等价命令ping -D -s 8164 <ip_address> ? 我已经validation这是我明星之前得到“sendto:消息太长”的错误的限制,但也是9000 MTU正常工作作为traceroute -F <ip_address> 9000作品和traceroute -F <ip_address> 9001不。 那么,为什么8164? 我预计8972(MTU – 28字节,就像1500 MTU)。 另外,为什么Netgear 9216 MTU? 我为MAC和以太网报头(包括CRC)计算了42个字节,加上了20个IP报头(应该吃进MTU)。 我在这个math上真的很生疏,知道我只是想念一些东西。

我的TCP连接是否被我国政府破坏?

我怀疑我国政府是否在TCP连接上销毁收到的ACK数据包。 当我尝试build立到80以外的端口的外部主机的TCP连接时,TCP握手将不会成功。 我捕获了pcap文件(gmail.pcap: http ://www.slingfile.com/file/aWXGLLFPwb),我发现我的电脑在收到TCP SYN后收到ACK,而不是用SYN ACK回复,它会发送一个RST。 我检查了外部主机的ACK数据包,但看起来完全合法。 序列号和我知道的所有标志都是正确的。 谁能告诉我为什么我的电脑(一台Linux机器)将发送RST数据包?

由lsof发现,但不是由netstat发现的套接字

我有一个应用程序正在耗尽文件描述符,显然是通过打开套接字,但我无法确切地知道这些套接字是做什么的。 这些出现在lsof输出中 java 9689 appuser 1010u sock 0,5 263746675 can't identify protocol java 9689 appuser 1011u sock 0,5 263746676 can't identify protocol java 9689 appuser 1012u sock 0,5 263746677 can't identify protocol java 9689 appuser 1014u sock 0,5 263746678 can't identify protocol java 9689 appuser 1015u sock 0,5 263746679 can't identify protocol java 9689 appuser […]

什么“net_ratelimit:44callback抑制”意味着在Linux上?

我正试图在基于Debian的路由器上调整Snort的性能。 我看到像这样的东西: snort packet recv contents failure: No buffer space available 所以我把缓冲区提高到了8M,当这个失效的时候,我尝试了16M,按照http://fasterdata.es.net/fasterdata/host-tuning/linux/上的调整指南: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or […]

在HTTP2下,新的TCP连接多久发起一次?

我明白,HTTP2的目的是保持一切在一个单一的TCP连接,我想知道多久的TCP连接将被拆除。 例如,如果我访问YouTube,做一些浏览,离开网站,然后回来,我将重新使用相同的HTTPS连接(在TCP 4元组,NOT会话方面),还是不同的? 很多这可能是特定于应用程序,并且浏览器如何实现它,但它在标准中的任何地方指定?

我正在devise一个系统来处理每秒10000个TCP连接,我会遇到什么问题?

我有一个运行CentOS的相对较新的8核心盒子。 我想开发一个使用TCP的统计服务器。 它非常简单,它接受TCP连接,增加计数器并closures连接。 问题在于它需要每秒处理至less10K个请求。 我怀疑CPU /内存不会是一个问题,但我更关心人工限制(如半开连接),我可能需要在我的服务器上configuration,以允许这种types的音量。 那么,这可能吗? 我应该注意哪些设置? 我的网卡不能处理吗?

Apache连接后的Tomcat扼stream圈

我们在EC2托pipe的Tomcat前面有一个apache webserver,实例types是34GB内存的超大型。 我们的应用程序处理大量的外部networking服务,并且我们有一个非常糟糕的外部web服务,在高峰时间需要将近300秒响应请求。 在繁忙时间,服务器扼制了大约300个httpd进程。 ps -ef | grep httpd | wc -l = 300 我GOOGLE了,发现了很多build议,但似乎没有任何工作..以下是我已经做了一些configuration,直接从网上资源。 我已经增加了最大的连接和最大的客户端在Apache和Tomcat的限制。 这里是configuration细节: //阿帕奇 <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 = 204800 vm.page-cluster = […]

为什么在下载文件时比较校验和是好的做法?

提供下载ISO文件的网站通常会提供这些文件的md5校验和,我们可以使用这些校验和来确认文件已经正确下载,并且没有被破坏。 为什么这是必要的? 当然TCP的纠错属性是足够的。 如果一个数据包没有被正确接收,它将被重新发送。 TCP / IP连接的本质不是保证数据完整性吗?

curl获取*空响应时如何解决连接问题*

我想知道如何进行故障排除为什么curl请求到Web服务器不起作用。 我不是在寻找那些依赖于我的环境的帮助,我只是想知道如何收集关于通信失败的部分,端口号等的信息。 chad-integration:~ # curl -v 111.222.159.30 * About to connect() to 111.222.159.30 port 80 (#0) * Trying 111.222.159.30… connected * Connected to 111.222.159.30 (111.222.159.30) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10 > Host: 111.222.159.30 > Accept: */* > * Empty reply from server * Connection #0 […]