Articles of tcp

为什么防火墙允许http响应数据包到达我的主机端口,比如48406,尽pipe我的主机不允许任何入站连接?

我的主机被允许一切出站和没有任何入站的规则阻止。 如果我向某个网站发出http请求,网站服务器会响应我主机上的某个端口,例如48406。 现在,入站规则中不允许使用48406端口,为什么允许响应报文通过墙?

TCP端口号

因为我已经知道每个TCP连接有一个特定的端口号(目标和源)… 给一个请求到服务器时,发件人端使用源端口号,并与多个请求此端口号递增..(纠正我,如果我错了这个) 我的问题是在这个数字重置或者总是独一无二的?

奇怪的3秒tcp连接延迟(Linux,HTTP)

我们的静态内容服务器偶尔会遇到奇怪的3秒钟的等待时间。 通常情况下,ApacheBench运行(> 10000请求,并发1或40,没有区别,但保持closures)看起来像这样: 连接时间(ms) 分钟平均值[+/- sd]中值最大值 连接:2 10 152.8 3 3015 处理:2 8 34.7 3 663 等待:2 8 34.7 3 663 总计:4 19 157.2 6 3222 在特定时间内服务的请求的百分比(毫秒) 50%6 66%7 75%7 80%7 90%9 95%11 98%223 99%225 100%3222(最长请求) 我已经尝试了很多东西: – Apache2 2.2.9与工人或prefork MPM,没有区别(与KeepAliveTimeout 10-15) – Nginx的0.6.32 – 各种TCP参数(net.core.somaxconn = 3000,net.ipv4.tcp_sack = 0,net.ipv4.tcp_dsack = 0) – 将文件/ DocumentRoot放在tmpfs上 […]

Ubuntu:压缩,但不encryption,TCP隧道?

如何在两台主机之间build立TCP连接的隧道,以便testing几种不同的压缩algorithm? 我知道stunnel和SSH,但要避免encryption的开销。 为了避免TCP-in-TCPstream量问题,UDP作为传输很好。 基本上,在源和目的地,我想尝试通过几个广泛使用的压缩程序来pipe理TCP数据stream。 (gzip,bzip2,lzma,lzo等)。 如何才能做到这一点? (使用Ubuntu 10.10) 谢谢

如何打开,空闲的networking连接看起来像物理?

假devise算机A和B已经build立了TCP连接,现在两台计算机上的相应应用程序都不会发送任何数据10秒(*)。 在这10秒内,是否有任何物理上的stream动阻止了连接,或者“a和b有一个开放的networking连接”,只是两台计算机上的软件状态? 感谢任何提示! (*)进一步假设超时被定义为例如20秒,所以连接不被破坏。

在Linux中查找TCP初始窗口段大小

我运行Centos [user ~]$ cat /etc/redhat-release CentOS release 6.2 (Final) 用内核 3.0.4-x86_64-linode21 如何检查我的操作系统中的TCP初始窗口大小? 我需要validationIW是10。

devise一个持久的asynchronousTCP协议

我收集了一些网站,这些网站需要发送时间敏感的消息到我的大都会地区的主机,每个主机都有自己的dynamicIP。 直到现在,我一直这样做脚本小子的方式: 每台主机运行一台FTP服务器或者一台HTTP服务器,相应的有一个由其网关打开的端口。 每台主机运行一个程序,监视某个文件夹,并在给定分机的新文件出现时自动打开或打印或执行()。 dynamicIP地址使用dynamicDNS服务。 每个网站做cURL或fsockopen或任何其他和直接与收件人根据需要。 这种方法令人惊讶地可靠,但是出现了明显的问题,需要解决这个问题。 如上所述,这些消息是时间敏感的,需要在terminal用户提交数分钟内检测到故障。 我正在做的是build立一个消息协议。 它将运行在我的控制机器和连接。 就服务而言,网站和主机之间没有区别 – 只有一个设备发送消息到另一个设备。 所以这就是我现在所处的位置。 我有一个骨架的服务器和一个骨架客户端。 他们可以谈判高质量的authentication和encryption。 (TCP)连接是持久的和asynchronous的,并且可以处理分隔的(即,直到\ r \ n或其它任何地方),以及长度前缀(即正好读取n个字节)的消息。 除非有人给我一个更好的主意,我想我会把string作为字节来处理。 所以我正在寻找如何build模协议本身的build议 – 在应用程序级别。 我将主要是传输XML和DLMtypes的文件,以及像“握手”和“是什么在线?”等控制消息。 等等。 我的思路有没有真正的愚蠢? 或者我在开始之前应该阅读的任何内容? 这样的东西 – 拜托,谢谢。 更新: @ mrdenny's是我最终走的方法,所以他得到了答案。 @ Henrik的ZeroMQbuild议也适用,但我基本上已经编码了,切换第三方框架的代码并没有真正帮助devise应用层。 最后,我发现了HTTP的多function性是多么的令人难以置信,而且真的不需要一个自己的协议。 只要让网站提供内容types的应用程序/ json(如果需要,还可以是xml),除了他们已经在做的text / html之外,还可以让收件人发出Web请求,而不是监听和响应文件系统更新。 删除上面描述的所有“script kiddie”开销,更可靠地工作,更好的error handling,易于构build等等。

FreeBSD监听队列溢出 – 不能增加最大队列大小

我有一个非常高的FreeBSD Nginx服务器,我开始得到大量的监听队列溢出: [root@svr ~]# netstat -sp tcp | fgrep listen 80361931 listen queue overflows [root@svr ~]# netstat -Lan | grep "*.80" tcp4 192/0/128 *.80 [root@svr ~]# sysctl kern.ipc.somaxconn kern.ipc.somaxconn: 12288 [root@svr ~]# 但是,我似乎无法增加超过128的最大监听队列长度。我增加了kern.ipc.somaxconn,但它并没有改变最大值。 我错过了什么吗? 谢谢!

我可以找出应用程序正在联系的证书吊销服务器吗?

我试图在运行Windows XP Pro的机器上安装应用程序。 有两个不同的服务器正在联系,都使用相同的通配符证书(GoDaddy)。 一个通过https,一个通过net.tcp与ssl。 两者都是WCF服务。 第一个(通过https)从一开始就工作正常。 但是,TCP连接失败,并显示错误消息“由于吊销服务器已脱机,吊销function无法检查吊销” 我们让IT人员暂时禁用代理,并且TCP连接成功了,但他不能永远离开它,我们需要弄清楚什么是使用撤销服务器。 根据GoDaddy的支持网站上的这篇文章( http://support.godaddy.com/help/article/6723/verifying-a-certificates-validity-on-your-computer ),你需要打开其中的一个撤销检查成功: crl.godaddy.com certificates.godaddy.com crl.starfieldtech.com certificates.starfieldtech.com 我们可以在代理运行的情况下ping通它们,但TCP连接不起作用。 我如何解决这个问题? 有没有一个很好的方法来找出应用程序试图联系的CRL?

TCP通信的最小尺寸

我从设备到TCP服务器每10分钟发送一小部分数据(最多100个字节)。 在我的情况下开销似乎是巨大的(我们支付每个字节)。 我发现我至less有7-10个数据包(三次握手(3),ack请求(2),ack响应(2,可选)和拆分(3))。 总开销至less为400字节(每个数据包为40个字节的TCP / IP标头)。 问题是: 发送如此小量数据的有效方法是什么? (UDP与Ack?) 为什么我的标题大于40个字节(60或52)? 比如这个: 0x0000: 4500 0034 73d7 4000 3506 d2ee 5c17 1b9b [email protected]…\… 0x0010: 2599 61b3 be7e 23a3 31a9 710a 6a2f 6371 %.a..~#.1.qj/cq 0x0020: 8010 0073 2672 0000 0101 080a 02dc 02ef …s&r………. 0x0030: 1dc2 dad6 …. 我怎样才能打印键值列表而不是hex值? (这很小)