比如局域网的机器网内ip为192.168.2.100,其网关的对外ip是10.100.22.33,
如果这台局域网他要跟一个http服务器通信,那么服务器那里看到的ip是10.100.22.33,但是有没有别的附加信息呢?我不了解tcp协议数据包的格式,是否指定了这台机器在网内的唯一标识?如果不是,那么服务器给10.100.22.33回信息的时候怎么保证网关会正确转发到网内的这台真正发送请求的机器上呢?另外,请说明一下udp的情况。谢谢!

解决方案 »

  1.   

    用Sock5,中间的过程具体不用管TIdTCPClient封装了Sock5,里面有一个SockInfo就是干这个的,具体看一上资料。
      

  2.   

    网关中 NAT (网络地址转换),在起作用,sock5只是其中的一部分
      

  3.   

    只要10.100.22.33地址可以确定就可以建立起TCP连接,也就是说只要两台主机中有一台的IP相对私有,就可以建立起点对点,这是TCP/IP规定的,为什么我也不知道
      

  4.   

    內網<--->代理服務器<--->外網代理服務器的作用也就是NAT 
    sock5是代理方式的一種
      

  5.   

    这个问题我也要关注一下,
    我也一直为这个问题头痛了很久,
    找到解决的办法相互交流一下!!!
    Email:[email protected]
    谢谢!
      

  6.   

    NAT NETWORK ADDRESS TRANSLATION
    网址转换.1)NAT会监视每一个通过它发出去的IP包,将其中的源地址和源端口更换成NAT动态分配的地址和端口.
    用以上这条来解释你的“那么服务器那里看到的ip是10.100.22.33”
    2)更换源端口和源地址后,NAT还会记录下他们之间的对映关系,以备目标主机指定端口返回数据时,可以确保找到内网中的目标客户机.
    NAT中存在一个MAPING TABLE来进行记录这些关系.
    用以上这条来解释"那么服务器给10.100.22.33回信息的时候怎么保证网关会正确转发到网内的这台真正发送请求的机器上呢?"UDP也是一样,底成都是IP包.