我已经想了好几天了。我基本上了解网络和数据包的工作原理。但是当一个意外的数据包到达时会发生什么?比如,当我没有发送网站索引请求时,但它还是将索引发送到我的机器?我的浏览器会弹出吗?它会忽略它吗?有没有办法真正抓住它?
答案1
在几乎所有情况下,它都会被忽略。
答案2
不可能这样。网络服务器向您发送网页的过程的一部分就是您请求该网页。没有您的请求,它根本无法发生。您的问题就像“如果麦当劳在汽车餐厅给我食物,而我却没有点餐,会发生什么?”好吧,如果您没有点餐,您就不会在汽车餐厅窗口。
例如,当你请求一个网页时,浏览器做的第一件事就是将本地端口与该 Web 服务器的连接关联起来。必须首先发生,或者根本就没有办法向浏览器发送任何数据。
如果没有分配本地端口,您的计算机将认为数据包是错误的。这种情况确实会发生。例如,如果一台机器重新启动,然后收到用于重新启动时丢失的连接的数据包,或者您的 Internet 连接被分配了以前属于其他人的 IP 地址,并且您收到了他们的会话的数据包。您的计算机将尝试将数据包与本地会话匹配,失败,并发回RST
(重置),要求发送者认为连接异常终止。