草庐IT

some-network

全部标签

networking - 有哪些不使用 TCP 或 UDP 等端口的基于 IP 的协议(protocol)?

我正在学习通常称为TCP/IP的互联网协议(protocol)(IP)。据我了解,传输控制协议(protocol)(TCP)实际上与IP完全不同。它是IP之上的一层,可以进行更多的数据完整性控制。而且,据我所知,所谓的“端口”,例如HTTP协议(protocol)的“端口80”,是TCP的东西,而不是IP的东西。那么,哪些在底层使用Internet协议(protocol)的协议(protocol)不使用端口的概念?如果您可以链接到实现此类协议(protocol)的开源软件,那就太好了。 最佳答案 Cisco有一个他们的路由器支持的协

networking - TCP 版本和 AIMD

当我们谈论TCP时,我们经常谈论加性增加乘性减少。特别是我们建议我们将拥塞窗口大小减少2倍以防止数据包丢失。但是,我认为实际上有多种方法是否正确?在TCP-Tahoe中,我们实际上根本不执行AIMD。当我们超时或发生三重dup-ack时,CWND设置为1,慢启动再次开始(注意这不是乘法减少)。在TCP-Reno中,我们在三次重复确认时设置CWND:=CWND/2,在超时时设置CWND:=1。(注意只有第一个实例是乘法减少)将CWND一分为二是称为快速恢复的过程的一部分,这是(且仅是)AIMD实现的地方。以上说法正确吗?因此,您能否根据锯齿波确定TCP版本是Tahoe还是Reno?说Ta

networking - 在游戏中使用多个端口有什么好处?

在游戏中使用多个端口有什么好处?我明白为什么有些人会出于不同的目的结合使用TCP和UDP,但为什么有些游戏会使用多个TCP或UDP端口?这有什么好处吗?我问这个问题是因为我发现自己在为我的游戏编写网络代码,我想知道为什么其他人会不顾一切地拥有多个端口?例如GTAV使用5个UDP端口,而刺客信条启示录使用4个TCP和4个UDP端口。 最佳答案 总是有原因的。它们通常不是(完全)技术性的。例如,一个团队正在研究游戏间聊天功能,而另一个团队正在研究游戏X的服务器-客户端协议(protocol)。然后他们被集成到同一个产品中,但由于成本、时

c# - TCP 套接字错误 : Only one usage of each socket address (protocol/network address/port) is normally permitted

我正在开发一个小型TCP客户端/服务器库。我在创建客户端并将其连接到服务器时遇到了这个问题。它给了我这个异常(exception)每个套接字地址(协议(protocol)/网络地址/端口)通常只允许使用一次我的代码是。publicTCPClient(stringremoteIPAddress,intport){this.remoteIPAddress=IPAddress.Parse(remoteIPAddress);this.port=port;IPEndPointremoteEndPoint=newIPEndPoint(this.remoteIPAddress,this.port);

networking - 定义做某事所需的时间(延迟、吞吐量、带宽)

我了解延迟-消息从发件人到收件人所需的时间-和带宽-在给定时间内可以传输的最大数据量-但我正在努力寻找合适的术语来描述相关事物:如果协议(protocol)是基于对话的——负载在端点之间被拆分成许多来回——那么延迟会影响“吞吐量”1。1这个叫什么,有没有简洁明了的解释? 最佳答案 网上冲浪,尝试优化我的nas(nas4free)的性能我遇到了page描述了这个问题的答案(恕我直言)。特别是这个部分引起了我的注意:"Indatatransmission,TCPsendsacertainamountofdatathenpauses.To

networking - TCP 序列号

为什么我们需要TCP头中的序列号和下一个序列号字段?下面是使用wireshark捕获的数据包中的TCPheader。 最佳答案 首先,Wireshark中[brackets]中的字段是计算字段-它们不在数据包中。Wireshark显示的下一个序列号字段就是这样一个字段。Wireshark通过获取“序列号”字段并将其添加到数据包的有效负载大小来计算。毫不奇怪,这两个数字之间的差异是1430——一个常见的TCP负载大小。TCP中的序列号以字节为单位-它们基本上表示,此数据包的有效负载插入TCP流中的哪个字节位置。“已确认”序列号显示我确

networking - 追踪数据包被阻止/丢弃的位置

当我在中国时,我公司的网站被封锁了大约24小时。我假设它是“伟大的中国防火墙”,但我想知道是否有任何方法可以找出数据包或TCP/IP连接被阻止的确切位置。我能够验证它没有被阻止在我们这一端(我使用本地主机文件指向中国境内的备份服务器)或在我们服务器端(其他人仍然可以连接到两者)ISP)。我尝试了tracert,但只有端口80被重定向。我可以毫无问题地通过ssh连接到服务器。另一个问题是中国的大多数路由器只是丢弃数据包而不响应ping等,因此您无法找到它们的IP地址。future是否有任何工具可以追踪数据包被阻止的位置? 最佳答案 t

networking - 识别假 UDP 数据包

我想识别源IP地址伪造的UDP或TCP数据包。我的猜测是,即使数据包是用具有hping的程序伪造的,MACsrc地址在所有伪造的数据包上仍然是相同的,这是正确的吗?如果我的想法不正确,我如何识别这些被伪造的数据包,并且看起来每个数据包都有不同的来源?谢谢。 最佳答案 MAC地址也可以伪造。使用TCP,很容易识别/处理它。您将使用SYN-ACK回复伪造的SYN数据包。如果它是一个真正的客户端,它会回复一个ACK​​来完成握手。唯一需要注意的是,您必须实现同步cookie,这样您就不会在等待ACK时创建状态和耗尽资源。对于UDP,没有办

networking - TCP URG(紧急数据)是否被确认?

在带有URG标志的TCP段中,也可能有正常数据。接收主机如何处理紧急数据包?如果它不是数据流的一部分,它如何确认紧急数据?它是否承认其余部分?我知道它通常不被使用,但是如果两个主机都支持关于URG标志的相同RFC,它们如何处理带外数据?如果紧急数据是中止消息,接收方将丢弃所有其他数据,但发送方仍需要确认已收到消息。 最佳答案 一些背景知识:TCP紧急机制允许数据流中的一个点被指定为紧急信息的结束点。因此,我们有一个紧急指针,它包含与此tcp段中的序列号的正偏移量。该字段仅在设置了URG控制位时才有意义。关于紧急指针的差异:RFC79

networking - boost::asio tcp async_accept 处理程序未被调用但同步连接工作正常

我有一个TCP客户端,它可以正常调用TCP套接字上的常规连接。但是,对async_connect的调用永远不会触发处理程序。他们都使用几乎相同的代码。区别仅在于调用连接与异步连接。标题#ifndefTCPCLIENT_H#defineTCPCLIENT_H#include#include#include#include#include#includeusingboost::asio::ip::tcp;//HowaboutaninterfaceforoutputtingerrorsclassBoostTCPDebugOutputInterface{public:virtualvoidou