学长的疑惑???
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端口
于是,一个困惑了我很久的问题就产生了。如果一个socket创建后并与80端口
绑定后,是否就意味着该 socketsocket占用了80端口呢? 如果是这样的,那么当其accept一个请求后,生成的新的socket到底使用的是什么端口呢?(我一直以为系统会默认给其分配一个空闲的端口号)?如果是一个空闲端口,那一定不是80端口了,于是以后的TCP数据包的目标端口就不是80了---防火墙一定会阻止其通过的!实际上,我们看到,防火墙并没有阻止这样的连接,而且这是最常见的连接请求和处理方式。我不解的就是,为什么防火墙没有阻止这样的连接???它是如何判断那条连接是因为connect80端口生成的???
是不是TCP数据包里有什么特别的标志???或者说,防火墙记住了什么东西???
我的解答:
在客户端的目的IP和端口,填的的还是服务器的IP和端口,所以防火墙允许通过
新建的套接字只在服务器上,客户端并不使用新建立的套接字进行通信
之后的处理是交由服务器来处理
服务器,看到客户端的源IP和端口,之后,就交由子进程处理
所以:”于是以后的TCP数据包的目标端口就不是80了---防火墙一定会阻止其通过的“这句话,的前提错啦,因为,以后的TCP数据包的目标端口还是80端口。所以,防火墙不会阻止的
于是,以后的TCP数据包的目标端口,还照样是:80端口
相关文章推荐
- shell学习二十五天----神器的管道符
- (转)Java 内存整理——堆、栈、常量池
- iOS9地图增公共交通导航功能 中国300个城市可用
- 找到突破的点——认识自己
- POJ2155:Matrix(二维树状数组,经典)
- 关于Char思考题
- Python中的默认参数详解
- tableWidget用法
- 两次密码输入一致性验证,控件焦点设置
- js值的类型和函数传参
- 同步静态和非静态同步的区别
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
- 11.2 对数组归并排序
- 【技术分享】很详细的JS底层分析
- jq 获取select text
- 介绍JavaScript的一个微型模版
- 二叉树链表的前,中,后序遍历
- android windows 上JNI编程
- tomcat7通过setenv.bat设置JAVA_HOME
- HTMl5的sessionStorage和localStorage