您的位置:首页 > 其它

学长的疑惑???

2015-06-24 12:18 295 查看
下面是一个学长的困惑:

于是,一个困惑了我很久的问题就产生了。如果一个socket创建后并与80端口

绑定后,是否就意味着该 socketsocket占用了80端口呢? 如果是这样的,那么当其accept一个请求后,生成的新的socket到底使用的是什么端口呢?(我一直以为系统会默认给其分配一个空闲的端口号)?如果是一个空闲端口,那一定不是80端口了,于是以后的TCP数据包的目标端口就不是80了---防火墙一定会阻止其通过的!实际上,我们看到,防火墙并没有阻止这样的连接,而且这是最常见的连接请求和处理方式。我不解的就是,为什么防火墙没有阻止这样的连接???它是如何判断那条连接是因为connect80端口生成的???

是不是TCP数据包里有什么特别的标志???或者说,防火墙记住了什么东西???

我的解答:

在客户端的目的IP和端口,填的的还是服务器的IP和端口,所以防火墙允许通过

新建的套接字只在服务器上,客户端并不使用新建立的套接字进行通信

之后的处理是交由服务器来处理

服务器,看到客户端的源IP和端口,之后,就交由子进程处理

所以:”于是以后的TCP数据包的目标端口就不是80了---防火墙一定会阻止其通过的“这句话,的前提错啦,因为,以后的TCP数据包的目标端口还是80端口。所以,防火墙不会阻止的

于是,以后的TCP数据包的目标端口,还照样是:80端口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: