我想要一个程序来确定捕获的TCP会话中使用的TCP拥塞控制算法.
引用的维基百科文章指出:
TCP New Reno是最常用的算法,SACK支持很常见,是Reno/New Reno的扩展.大多数其他竞争提案仍需要评估.从2.6.8开始,Linux内核将默认实现从reno切换到BIC.在2.6.19版本中,默认实现再次更改为CUBIC.
也:
复合TCP是TCP的Microsoft实现,它同时维护两个不同的拥塞窗口,目的是在不损害公平性的同时在LFN上实现良好性能.它已经与Microsoft Windows Vista和Windows Server 2008一起广泛部署,并已移植到较旧的Microsoft Windows版本以及Linux.
确定使用哪种CC算法(来自第三方捕获会话)的策略是什么?
更新
这个项目构建了一个工具来完成这个:
互联网最近已从均匀拥塞控制演变为异构拥塞控制.几年前,互联网流量主要由标准TCP AIMD算法控制,而互联网流量现在由许多不同的TCP拥塞控制算法控制,如AIMD,BIC,CUBIC,CTCP,HSTCP,HTCP,HYBLA,ILLINOIS,LP, STCP,VEGAS,VENO,WESTWOOD +和YEAH.然而,对于具有异构拥塞控制的因特网的性能和稳定性研究的工作很少.一个根本原因是缺乏不同TCP算法的部署信息.该项目的目标是:
Run Code Online (Sandbox Code Playgroud)1) develop tools for identifying the TCP algorithms in the Internet, 2) conduct large-scale TCP-algorithm measurements in the Internet.
network-programming tcp network-protocols congestion-control
在Java中,我不能使用无符号字节的字节数组(来自诸如Wire Shark之类的东西)并将其放入java ....因为我将得到编译错误,因为大于127十进制/ 0x07F的任何东西都不被视为byte,但作为一个int .... IE:
byte[] protocol = { 0x04, 0x01, 0x00, 0x50, /*error*/0xc1, /*error*/0xdb, 0x1c, /*error*/0x8c,
0x4d, 0x4f, 0x5a, 0x00 };
Run Code Online (Sandbox Code Playgroud)
需要一种好的方法来处理取无符号的char数组并将它们作为文字放入Java中.
如何在没有端口号的情况下检查远程主机是否已启动?有没有其他方法我可以检查其他使用常规ping.
远程主机可能会丢弃ping数据包
这可能不是典型的stackoverflow问题.
我的一位同事一直在猜测基于流的路由将成为网络中的下一个重点. Openflow提供了在大型应用,IT数据中心等中使用低成本交换机的技术; 取代思科,惠普等交换机和路由器.理论上,您可以使用简单的配置创建这些openflow交换机的层次结构,例如.没有生成树.开放流将仅使用交换机层次结构(无路由器)的知识将每个流路由到适当的交换机/交换机端口.该解决方案旨在为企业节省资金并简化网络.
问:他猜测这可能会极大地改变企业网络.出于多种原因,我持怀疑态度.我想听听你的想法.
请告诉我是否存在用于boost :: asio的UDT协议后端?
UDT是一种可靠的基于UDP的应用级数据传输协议,适用于广域高速网络上的分布式数据密集型应用.(http://udt.sourceforge.net/index.html)
有时我的Facebook朋友会混淆HTTP_REFERER和HTTP_REFERRER,因为在字典中只有referrer.为什么拼错的标准协议定义了,为什么他们不试图纠正错误?
有没有可以找到有关Logitech Unifying Receiver的文档或SDK的地方?
我最近获得了一个无线鼠标,它带有一个Logitech Unifying Receiver(一个插入计算机并与鼠标/其他兼容设备(如键盘)通信的小型USB加密狗).
我想尝试为我的智能手机编写一个假装是鼠标并将数据发送到接收器的应用程序.
我能够通过使用usbmon来监控来自USB总线的数据,并且可能会使用它来解决问题,但想知道我是否能够在互联网上找到我需要的信息,而不必自己推导出来.
我将尝试在Android上使用SL4A,如果这有帮助的话.
我有3个简单的问题.
我在网上搜索了一个实际的解释,却找不到一个.总而言之,是一些技术性的诽谤.
我正在尝试使用C实现一个选择性重复协议用于网络分配,但我很难理解如何为每个单独的数据包模拟计时器.我只能访问一个计时器,只能调用下面描述的功能.
/* start timer at A or B (int), increment in time*/
extern void starttimer(int, double);
/* stop timer at A or B (int) */
extern void stoptimer(int);
Run Code Online (Sandbox Code Playgroud)
Kurose和Ross在他们的网络教科书中提到过
单个硬件定时器可用于模拟多个逻辑定时器的操作[Varghese 1997].
我发现了类似任务的以下提示
您可以使用单个物理计时器模拟多个虚拟计时器.基本思想是在一个到期时间内保留一系列虚拟定时器,物理定时器将在第一个虚拟定时器到期时关闭.
但是,我无法访问除RTT之外的任何时间变量,因为模拟器位于另一个抽象层上.在这种情况下,如何为单个数据包实现计时器?
我试图解释一个小型网络视频的URI中方案和协议之间的区别.
我想起来了的地方,我可以澄清,"不是所有的方案与协议通过查看分组的点文件:在RFC方案在这里.
在RFC文档中,它引用了我们对可以使用文件方案完成的操作的讨论.然后说:
有关可对文件执行的标准化操作的示例,请参阅POSIX文件和目录操作[POSIX].
如果协议是"规则系统或商定程序",它们对"标准化操作"意味着什么?他们是否也同意如何处理某些事情的程序?
我不能再进一步了,因为POSIX部分没有任何链接,但我真正想知道的是,如果我能在我的视频中说出来,而没有人对我大喊大叫:
"并非所有的方案都有一个协议!所以不是协议的几个不同的操作发生了." (但他们是什么?这句话是正确还是错误?)<-----
因为它听起来像我发生的那些其他操作(例如在文件:方案上)也可能是协议,因为它们是某些东西的标准.
或者有一个协议意味着只有一种商定的方式来做某事而且它不应该被允许发生的其他多个操作开放?
题:
最后,我对协议与其他方案操作的研究让我得出结论,说协议是不同的,因为它们是一个规则系统或商定的 通信程序或两个或多个实体之间的信息传递,计算机系统或工具.
虽然只是广泛而且说文件方案等方案可能会发生其他可能的行为.(我仍然不知道这些行为中的一些是否符合多个可能的协议,或者它们是否真的完全不同而且根本不是协议)
作为一个想要对协议的定义与标准操作更加确定的人,我希望我能得到另一个专家意见,说我的上述结论是正确的或错误的.