Articles of tcpip

何时使用可路由与不可路由的IP地址

据我所知,有几个“ 不可路由的 ”IP范围: 类保留空间10.0.0.0/8 B级保留空间172.16.0.0/12 C类保留空间192.168.0.0/16 E级保留研究240.0.0.0 但是我想我并没有从根本上理解“可路由”和“不可路由”之间的区别。 何时可路由期望通过不可路由,反之亦然?

TCP工作一段时间,然后失败,为什么?

这来自OpenStack的实现,我们有一个修复,但我不明白为什么我们需要这个修复。 我的机器的IP为192.168.20.45 我的默认网关(pfsense)的IP为192.168.20.254 我的OpenStack计算节点的IP为192.168.20.58 虚拟机运行时,在10.60.60.12 我可以ssh到这个虚拟机(从20.45),然后从那里ping google.com,它将保持连接约20坪,然后SSH会话超时和断开连接。 添加一些硬编码的路线已经解决了这个问题,但是让我想知道为什么它一直工作? 我们通过192.168.20.58添加了静态路由到10.60.60.x到pfsense,通过dhcp到所有的客户端,以及通过openvpn和MS VPNconfiguration。 我知道静态路由是如何解决这个问题的,但是我所知道的是在它们到位之前它是如何工作的,为什么这个连接从正常运行到不起作用? 为什么TCP会处理前60个数据包,然后退出工作?

Windows 2008如何特别select临时端口(是否testing以避免冲突)?

我有一个服务器应用程序,它使用永久连接的input端口,范围是W2k8现在在IANA推荐范围内使用的〜49000-65000。 (由于遗留的原因,改变这个是非常困难的, 所以我将不得不改变Window的范围来避免我的范围,但这不是问题 )。 我一直在研究如何避免与Windows 2008 Server中的短暂端口发生冲突,但无法find有关select临时端口的Windowsalgorithm的详细信息。 当Windowsnetworking层为响应传出TCP / IP连接分配一个“随机”临时端口时, 是否testingbuild议的端口以查看它是否已被使用? (Linux内核似乎做了check_establishedtesting,但仍然可以重复使用一些使用的连接,所以我想知道Windows可能会做出什么样的决定,使看似未使用或闲置的端口closures另一个进程…) 即如果我的服务器在其所有端口上打开winsocks,并保持它们处于LISTENING状态,那么Windows会尊重并忽略它们,因为它们正在使用中? 还是会忽略它们正在使用的事实,并将它们分配给其他进程以用于短暂使用,从而导致冲突? 我发现有时当我的服务器启动时,它不能分配一些端口,因为它们被其他进程用于随机目的 – 这是有道理的,我明白这一点。 但是,我还没有能够certificate它是否设法初始打开的端口随后被“偷”出于短暂的目的(由于大范围和随机性,这是一个难以testing或强制的事情)。 正如我所说,我将重新configurationWindows以避免我的服务器,所以这个问题更多的是好奇心,并更清楚地解释最近的行为(以排除其他可能的错误! 提前致谢

Windows 7上的事件ID 4227 tcp / ip警告

我们正在部署一个新的图像到现场,我们看到tcp / ip事件ID 4227警报定期全天(1-3天)。 事件消息如下所示: 由于所选的本地端点最近用于连接到相同的远程端点,TCP / IP无法build立传出连接。 当传出连接以高速率打开和closures时,通常会发生此错误,导致使用所有可用的本地端口,并强制TCP / IP重新使用本地端口进行传出连接。 为了最大限度地减less数据损坏的风险,TCP / IP标准要求从给定本地端点到给定远程端点的连续连接之间的时间间隔最短。 我创build了一个脚本来监听这个eventid,并立即检查“netstat -ano”。 脚本总结了什么状态的端口,但我没有看到大量的端口打开。 以下是脚本的输出: 50个端口处于LISTENING状态 状态为TIME_WAIT的3个端口 在ESTABLISHED状态的58个端口 我不明白为什么如此less量的港口会触发4227警告。 有没有人有任何见解? PS>我已经设置TcpTimedWaitDelay注册条目为30秒这个链接 。 我还使用这些命令将dynamic端口范围configuration为更大: Netsh int ipv4 set dynamicport udp start = 35535 num = 30000 Netsh int ipv4 set dynamicport tcp start = 35535 num = 30000

具有相对较高的RTT和突发stream量的solaris tcp堆栈的行为

我有一个通过运行Solaris 10的TCP将数据从纽约分发到东京的应用程序。平均吞吐量<1Mbps,峰值吞吐量可以达到每秒20-30Mbps,尽pipe典型的峰值更像是10Mbps。 单个消息大小很小(〜300字节),延迟的一致性是关键。 这意味着我们正试图删除批处理又名,所以老鹰closures&应用程序被configuration为发送而不是队列然后发送。 纽约和东京之间的RTT约为180ms,TCP窗口调整到理论吞吐量在40Mbps左右,也就是1M tcp_xmit_hiwat / tcp_rcv_hiwat。 tcp_max_buf和tcp_cwnd_max也是1M。 这里的问题是,我们经常会间歇性地看到发件人得到EWOULDBLOCK的神秘“暂停”,导致在内部队列中build立起来,然后释放数据。 这里有两个问题 阻塞套接字没有明显的原因,我们似乎没有达到峰值吞吐量,没有任何数据包捕获暗示任何放缓 在“放电期间”(即当发送方套接字不再被阻塞,但它有一个数据缓冲区发送时),我们看到一个稳步增长的锯齿模式的消息速率 前者是解决问题的关键,如果我能解决这个问题,那么后者就不会发生。 然而后者很奇怪,我天真地期待它能够迅速攀升到峰值吞吐量,并保持在那里,直到它通过积压。 CPU利用率在两端都不是问题,SA认为盒子看起来不错。 广域网链路上的networking拥塞也不是问题,networking认为networking看起来不错。 事实上,每个人都认为每件作品看起来都不错,但performance依然不佳! 有关如何优化这种情况的任何想法? 还是要进行调查的事情,可能会提供有关正在发生的事情的暗示?

在某些networking上快速变化的公共IP地址?

我运行/开发了一个在线游戏,我们的许多用户都在东南亚。 我最近去了东南亚,发现了一个惊人的发现。 无论在新加坡还是菲律宾,我都能上网,无论是通过3G,酒店内的局域网还是无线上网,我注意到我的IP地址一直在变化。 我的意思是公共IP地址,而不是私人IP地址。 我可以像whatismyip.com加载一个页面,只需点击重新加载,并看到一个新的IP地址每5-10秒出现一次! 这对我的在线游戏有很多的后果,因为如果给定用户的IP地址发生变化,很多事情会“中断”。 基本上,我想知道更多关于这一点。 有没有一个networking或路由器或范例导致这种名称,所以我可以读它呢? 我不明白为什么一个networking将以这种方式运作。 这是故意的吗? 这是出于安全原因吗? 是否要匿名并保护用户的身份? 还是仅仅是一种在世界其他地方已经过时的“旧”方法? 感谢任何有助于我理解的信息。

在Ubuntu中诊断数据包丢失/高延迟

我们有一个运行Nginx(1.5.2)的Linux机器(Ubuntu 12.04),它作为一个Tornado和Apache主机的反向代理/负载均衡器。 上游服务器在物理上和逻辑上接近(相同的DC,有时是相同的机架)并且在它们之间显示亚毫秒的延迟: PING appserver (10.xx.xx.112) 56(84) bytes of data. 64 bytes from appserver (10.xx.xx.112): icmp_req=1 ttl=64 time=0.180 ms 64 bytes from appserver (10.xx.xx.112): icmp_req=2 ttl=64 time=0.165 ms 64 bytes from appserver (10.xx.xx.112): icmp_req=3 ttl=64 time=0.153 ms 我们每秒接收到大约500个请求的持续负载,而且目前正在从互联网上看到正常的丢包/延迟峰值,即使从基本的ping也是如此: sam@AM-KEEN ~> ping -c 1000 loadbalancer PING 50.xx.xx.16 (50.xx.xx.16): 56 data bytes 64 bytes from loadbalancer: icmp_seq=0 […]

如何在Windows上通过DNS隧道设置TCP?

我已经看到了一些指导,但我没有得到任何工作。 我可以指向我的域名NSlogging,所以这听起来像我应该能够做到这一点。 我试图为服务器部分设置一个DMZ,根本没有运气。

UNCpath由IP“没有networking提供商接受给定的networkingpath”失败,但使用主机名工作

我有一个Windows Server 2003(标准x86)框不寻常的问题。 看起来机器不会通过在UNCpath中使用其IP地址来接受到其共享(本地和其他域成员服务器)的连接。 返回的错误是:“没有networking提供商接受给定的networkingpath” 这是机器的IP地址\\ 10.0.8.x = FAIL的情况 甚至是环回地址\\ 127.0.0.1 = FAIL 甚至\\ localhost = FAIL 但使用主机名(fqdn或不)工作! \\服务器&\\ server.domain.local 此服务器的本地Windows防火墙已closures,ping / rdp /其他服务使用IP地址响应正常。 以下服务正在运行并已重新启动: 电脑浏览器 工作站 服务器 服务器本身也被重新启动。 系统日志中的事件8032表明: 浏览器服务无法在传输\ Device \ NetBT_Tcpip_ {29A6A925-AFB3-47E2-BA59-DDA086DEAE7A}上多次检索备份列表。 备份浏览器正在停止。 域控制器尚未重新启动,没有其他服务器遇到此问题,但该服务器上的日志中存在一些与浏览器(8021)相关的错误。 有没有人有什么build议? 我想避免重新join这个服务器到域名,如果可能的话。

如何将多个子网应用于具有一个NIC的服务器?

我试图通过专用服务器上的一个物理网卡路由多个IP,以便与Proxmox KVM虚拟机配合使用。 我有一个专门的服务器,目前正在运行的Debian 4.4.5-8 3个可用的IP地址使用,将显示为176.xxx.xxx.196(主),176.xxx.xxx.198(在同一子网作为主)和5.xxx.xxx.166(不同的子网)。 我目前试图路由第三个IP地址dedi使用与我已经使用proxmox v2.x设置的VPS,但是我真的很难这样做。 绑定附加IP地址的虚拟接口按预期工作,排除了外部路由问题。 提供者给出了主要子网上IP地址的以下信息: 网关:176.xxx.xxx.193 networking掩码:255.255.255.224 广播:176.xxx.xxx.223 以及第二个子网上IP地址的以下信息: 网关:5.xxx.xxx.161 networking掩码:255.255.255.248 广播:5.xxx.xxx.167 我用/ etc / network / interfaces试过的所有东西都没有工作,或者使networking完全无用。 这是该文件的当前状态,该文件具有在同一子网上工作的辅助IP地址以及IPv6工作,而不是第二个子网。 # Nativen IPv6 Schnittstelle iface eth0 inet6 manual # Bridge IPv4 Schnittstelle (176.xxx.xxx.193/27) auto vmbr0 iface vmbr0 inet static address 176.xxx.xxx.196 netmask 255.255.255.224 gateway 176.xxx.xxx.193 broadcast 176.xxx.xxx.223 bridge_ports eth0 bridge_stp off bridge_fd […]