|
发表于 2007-8-11 19:40:47
|
显示全部楼层
原帖由 deitx11 于 2007-8-11 18:20 发表
在三分之一部分的连接都是走的80
其实这个思路是错误的,在tcp对外请求的连接里,是本地开放一个端口(1024以上依次进行)监听答复,而不管他请求的是什么服务.
例如对外请求一个web(80)请求,纯理论上(指完全不存在其他请求),本地开放1025开始监听,并递送请求给目的地址,在递送的报文里,包括这个等待答复的本地端口,服务端回应的时候就是回应这个1025端口,在这个请求还没完成的时候,你再发送第二个请求,那么就会依次开放1026端口作为本地监听端口,而这个请求的回应则会到达1026.这些端口只有两种结果,一个是服务端回应完成,本地监听端口关闭结束监听,或者timeout,也是结束监听.
然后再复杂一点,我们在加上NAT的情况,(依然是纯理论完全不存在其他连接的情况下)就是A客户机1025递送一个请求给NAT,然后NAT也开放(NAT的)1025(注意这个1025和前面的1025并没有关联关系),且把这个请求递送给服务端,在这个时候,B客户机1025端口也递送一个请求给NAT,NAT开放1026,并把请求递送给服务端.NAT会有一个池维护对应的NAT表,记录什么端口是那个客户机那个端口的请求,服务端回应的时候,就能沿回路从新达到正确的对应客户端.
所以在NAT上,要考虑端口的可用性.
(在本例里,的确2~3个NAT IP池都可以,我只是说,最好3个稳妥而已) |
|