当我通过城域以太网链路传输文件时,我在networking上收到了过多的TCP Dup ACK和TCP快速重传。 这两个站点由一个sonicwall路由器连接,所以站点只有一个跳远。 这里是wireshark的截图, 这里是整个捕捉。 在这个捕获中,客户端是192.168.2.153,服务器是192.168.1.101。这是从我的系统到服务器的一个跟踪路由(ping时间通常在10ms以下): user@pc567:~$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:e0:b8:c8:0c:7e inet addr:192.168.2.153 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::2e0:b8ff:fec8:c7e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:244994 errors:0 dropped:0 overruns:0 frame:0 TX packets:149148 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:319571991 (319.5 MB) TX bytes:12322180 (12.3 MB) Interrupt:16 user@pc567:~$ traceroute -n […]
看来Ubuntu的每个版本都有不同的方式来启用到本地X服务器的远程连接。 我在问这个问题,而我自己做了一些研究:我怎么能让X服务器在我的机器上监听TCP端口6000,从而允许远程X客户端连接到所述端口并使用我的显示器?
在我的一个繁忙的Debian Lenny服务器上,我正在考虑禁用TCP Window Scaling 。 为什么? 我想启用syn cookie ,它禁用TCP窗口缩放。 这台服务器是本地防火墙,并防止syn洪水攻击可能是一件好事,对吧? 内核日志有许多“ TCP:Treason uncloaked! ”消息。 它似乎不是一个攻击,经常发生了很多年,但它仍然关注我。 据我所知,这个消息是客户端和服务器之间关于TCP窗口大小的分歧的结果,通常不是什么大不了的事情。 所以我问自己: “盒子真的需要TCP窗口缩放吗? 在我尝试做基准testing之前,查询ServerFault的boffins似乎是谨慎的。 一些相关的细节: 许多(10-30%)的请求是针对5-50MB的文件 大文件以稳定的比特率(〜2Mbps)发送, 客户在互联网上,在250公里内90% TCP窗口缩放有多大价值? CPU是否有很大的影响? 如果是这样,多less? networking性能是否降低? 延迟不会打扰我,但吞吐量低于最低阈值。 还有什么我可能会失踪? †= 3Gbps的LACP网卡+数以亿计的HTTP请求+每月数十TB的stream量
问题在于标题。 我想知道这个的原因是因为我正在编写一个tcp服务,并想探索一些原因,因为他们可能会对我的工作有所了解。
如何在linux的simplehttpserver上从8000更改端口?
我不明白为什么创build一个新的TCP连接被认为是一个昂贵的任务。 基本上build立一个新的连接是指执行TCP的三次握手。 所以这是发送两个数据包,接收一个。 考虑到数以千计的(数据)数据包将随之而来,握手不可能是昂贵的部分。 它可以?
我的MacOS上有一个networking问题,需要排除故障。 我知道TCP套接字有内部超时,如果远程方没有响应(但没有正常断开连接)将closures连接。 是否可以使用任何命令/工具来检查此超时(S)的确切值?
我想知道两个相同序列号的段是否到达目的地,哪一段会被接受? 例如: 客户端将数据包发送到服务器并等待确认。 但是它没有在时间线内收到确认(由于一些networking问题,这个段需要时间到达服务器),所以开始再次发送相同的段。 现在在服务器端,如果两个数据包同时到达会发生什么情况。
为什么在TCPbuild立连接时使用3次握手? 意思是,为什么使用双向握手是不够的?
在处理连接的进程获取stream之前,我需要对来自已知tcp主机:端口的传入stream量进行一些小的修改。 例如,让192.168.1.88是运行Web服务器的远程主机。 我需要的是,当我的本地主机上的进程接收到来自192.168.1.88:80(例如浏览器)的数据时,数据首先被replace为text-B text-A ,如下所示: 127.0.0.1:…连接到192.168.1.88:80 127.0.0.1:…发送到192.168.1.88:80: GET / 192.168.1.88:80发送到127.0.0.1:…: HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text 该数据被系统截获并传递给一个程序,其输出是: HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text 系统将如此更改的数据提供给进程处理127.0.0.1:…,如果它来自192.168.1.88:80。 假设我有一个基于stream的方式来进行更改(例如使用sed ),预处理传入的tcpstream最简单的方法是什么? 我想这会涉及iptables ,但我不是很擅长。 请注意,应用程序应该觉得要处理原来的主机,所以设置代理不可能是一个解决scheme。