草庐IT

network-drive

全部标签

networking - 为什么 TCP 头中同时包含 ACK 和 SEQ 字段?

既然TCPheader是一个比较大的开销,为什么不采用ACK和SEQ共享同一个字段的方式进行压缩,仍然可以通过header中的flags来区分呢? 最佳答案 因为它们不是专门使用的。下面是最重要的:连接协商,即三次握手:(来源:wikimedia.org)图片来自维基共享资源。它介绍了TCP连接是如何协商的,并显示了ACK和SEQ在同一个标​​头中一起使用以建立连接(我写这个是为了确保答案对您有所帮助,即使有一天图片会消失)。 关于networking-为什么TCP头中同时包含ACK和S

networking - TCP 兼容性 : Why is TCP not compatible with packet broadcast and multicasting actions?

**http://en.wikipedia.org/wiki/User_Datagram_Protocol:**“与TCP不同,UDP兼容数据包广播(发送给本地网络上的所有人)和多播(发送给所有订阅者)。” 最佳答案 “兼容”在这里是一个非常糟糕的选择。真正描述的是“支持”。TCP是一种点对点协议(protocol),从设计上讲。时期。TCP多播是一个自相矛盾的术语。编辑:我更新了维基百科页面以反射(reflect)此评论。编辑2:令人难以置信的是,自发布此问题以来,有人已从维基百科UDP页面中删除了所有提及多播的内容。我修好了它。

networking - Netmap/PF_RING 和 TCP 分段卸载和大型接收卸载

在由Netmap或PF_RING支持的自定义用户空间网络堆栈中,使用TCP分段卸载和/或大型接收卸载的能力是否丢失?我唯一能找到任何提到NIC卸载w.r.t的地方。Netmap或PF_RING在Netmap:anovelframeworkforfastpacketI/O中,但它是否可用或者它是否在NIC中透明运行对我来说并不明显:PopularhardwarefeaturesrelatedtoTCPacceleration,suchashardwarechecksummingorevenencryption,TxSegmentationOffloading,LargeReceiveOffl

networking - UDP 打洞 : one Symmitric and another non-symmetric NAT

我正在尝试使用打洞实现P2P。这是流程:两个Peers(P1,P2)将向服务器(S)发送1个数据包。Server(S)回复都告诉别人IP:PORTP1和P2接收此UDP数据包,知道对方的外部/公共(public)ip:port。P1,P2开始向其他对等端公共(public)IP:PORT发送数据包。一旦对等点收到其他对等点的数据包,我就认为这个洞已经打好了,并将这个套接字提供给我的应用程序。我在不同的路由器上进行了测试,结果如下:当P1和P2都在非对称NAT(完整/受限锥形)上时,我没有遇到任何问题。当P1=非对称且P2=对称时:-----router-1(对称NAT)+router-

networking - TCP header 选项 : SACK-permitted (Selective Acknowledgments) negotiation

我正在做一个研究项目,需要拆分tcp连接。所以我有一些特殊的问题,这些问题可能会在我的发展中发生。问题在于理解TCPSACK允许的协商。我阅读了RFC,但在那里找不到答案。对于两个tcp程序之间的3次tcp握手:A和B。如果A向B发送TCPSYN并允许SACK,B肯定会响应一个SACK允许的SYN/ACK数据包吗?如果B在没有允许SACK的情况下用TCPSYN/ACK回复,这是否意味着1)SACK-permited只在A上启用。A可以选择性的确认来自A的tcp包,但是A不能选择性的确认来自B的tcp包。或2)A和B都没有启用SACK-permited如果A在没有允许SACK的情况下向B

networking - 已发送 FIN 的 TCP 端点是否仍发送 keepalive?

发送FIN表示该端不会发送任何数据。但是它能发送TCPkeepalive吗?如果它可以那么它与“在FIN之后发送东西”的声明相矛盾,即使它是keepalive而不是数据。如果它不发送keepalive,它不会检测另一端是否消失了。例如:客户端发送FIN并返回ACK。服务器随后发送了一个丢失的重置。客户端可以检测到服务器已经离开的唯一方法是发送keepalive,这将通过重置进行响应,然后客户端关闭。这会发生吗? 最佳答案 根据RFC-1122:Keep-alivepacketsMUSTonlybesentwhennodataorac

networking - TCP 校验和中的错误率?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。ImprovethisquestionTCP和UDP(有时)使用简单的校验和来确保内容正确。我想知道的是关于数据包损坏频率的任何经验数据或估计,但对于具有标准计算机和互联网连接的人来说具有正确的校验和。现在我知道这可能因ISP质量、硬件质量等因素而有很大差异,但我只想听听有关这方面的任何信息。

networking - 是否有任何协议(protocol)规范允许使用 TCP 或 UDP?

是否有任何网络协议(protocol)不是严格意义上的TCP或UDP,但可以与其中任何一个一起使用?例如,HTTP、FTP、STMP、RTMP始终是TCP。DNS、SNMP、DHCP、RIP始终是UDP。有什么既可以是TCP也可以是UDP的东西吗?还是我的上述断言有误?RTSP是我所知道的一个奇怪的东西,它同时使用TCP和UDP来控制音频/视频/质量,但它对每个发送的内容都有严格的要求。我问的是标准的、已发布的或至少是常用的协议(protocol),而不是自定义协议(protocol)。 最佳答案 DNS可以使用UDP或TCP;当响

networking - 当两台计算机监听同一个端口并且路由器通过该端口接收数据包时会发生什么

我想问的是如果两台电脑监听同一个端口,一个信息包通过WANIp和同一个端口进入路由器。数据包会发送到两台计算机吗?两者都不?一个还是另一个?浏览器电脑1-(内网IP)->192.168.1.3-(监听端口)->4444电脑2-(内网IP)->192.168.1.2-(监听端口)->4444计算机3-(连接并发送)->24.157.358.45:4444数据包->计算机1和计算机2VB6中的代码是:LAN.LocalPort=4444LAN.Protocol=sckTCPProtocolLAN.Listen我在VB6Professional中使用MicrosoftWinSockContr

networking - 我的网络浏览器如何解析域名?

我正在开发一个应该能够联系DNS服务器的网络应用程序。我想知道最好的方法是什么。我想到了浏览器。例如,Firefox或Chrome如何解析我在URL栏中输入的域名?我的意思是,我输入http://www.google.com,它怎么知道必须向IP209.85.195.104发出TCP请求?谢谢! 最佳答案 在最简单的情况下,浏览器会使用诸如gethostbyname()之类的函数将名称解析为地址。但是,此功能并不总是以方便浏览器的方式实现(它通常会阻塞直到获得答案)。今天的浏览器开始使用"DNSprefetch",浏览器将在页面加载