关于可以创建多少个连接(套接字)并将其用于数据传输有不同的限制吗?是否存在家用路由器或商业级路由器有关系吗?
例如,不同的用户对Linksys,D-link或Netgear路由器有不同的体验。有些可能更容易掉线或“阻塞”,特别是如果它们运行的是网络密集型程序(需要将电源线拔下路由器并重新插入)。是由于创建了太多的套接字还是使用了路由器可以支持的过多资源?
最佳答案
路由器本身并不关心套接字,除非它们是有状态的路由器,例如NAT网关。
如果它是有状态的路由器,则每个连接都会在路由器的RAM中占用一些空间,并且当RAM用完时,它必须丢弃旧记录(否则它会崩溃,并且,如果幸运的话,请重新引导,取决于是什么供应商...)
用IP术语表示的“连接”是TCP session (由源IP,源端口,目标IP,目标端口和序列号协议标识)。 UDP或ICMP和 friend 本身没有“连接”,但是有状态的路由器/防火墙通常通过假设源IP,源端口,目标IP,目标端口元组是具有一定超时的“连接”来伪造它。如果一段时间内在该连接上未发现任何流量,则认为该流量已消失。该超时时间可以设置为30秒到一天之间,具体取决于防火墙/路由器。
是的,在一般情况下,商用路由器/防火墙更加强大,因此在有状态时可以跟踪更多连接。您可以获得的最佳路由器通常是价格为$ 400的Linux或xBSD x86盒,带有一两个RAM或两个演出以及一个小的闪存盘以从中启动...
关于network-programming - 创建过多的套接字如何影响甚至使路由器崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/924359/