当两台计算机通过网络通信时,互相发送的消息被分割为离散的块,称为数据包(packet)。计算机操作系统的网络层必须捕捉数据包,并在数据包到达时数据包保存起来。然后,计算机可能没有做够的带宽同时处理所有数据包。因此,网络通常会将数据包缓存起来(或保存起来),直到更高的层次有机会处理它们。数据包应该以到达的顺序处理,因此这个问题特别适合于queue结构。下面是一个简单的PacketBuffer类,其中带有解释代码的注释,这个类将收到的数据包保存在queue中,直到数据包被处理。这是一个模板,因此网络层中的不同层次可以使用它处理不同类型的数据包,例如IP包或TCP包。
这个类允许客户指定最大大小,因为操作系统为了避免使用过多内存,通常会限制可以保存的数据包的数目。当缓存区变满时,后续到达的数据包都被丢弃了。这个类的实际应用需要使用多线程。C++11提供了一些同步类,允许对共享对象的线程安全访问。如果没有提供显式的同步,那么任何SLT类都无法安全地用于多线程环境。
★关于WorkWin公司电脑监控软件★
WorkWin的使命是打造Work用途的Windows 电脑系统,有效规范员工上网行为,让老板知道员工每天在做什么(监控包括屏幕、上网在内的一举一动),限制员工不能做什么(禁止网购、游戏、优盘等)。
WorkWin基于纯软件设计,非常容易使用,无需添加或改动任何硬件,使用一台管理机监控全部员工机电脑。历经南京网亚十余年精心打造,此时此刻每天都有成千上万企业电脑正在运行WorkWin,选择WorkWin选择“赢”。
版权所有,南京网亚计算机有限公司 。本文链接地址: 网络计算机数据包缓冲