我想写一个NAT网关,可是,如果用原始套接字,直接实现在IP层的转发,那对于像TCP这样的协议数据报来说,就绕过了TCP层,而TCP的一些确保可靠性的机制也就没有了,该怎么办?
有没有以前做过NAT的高手,给点思路。

解决方案 »

  1.   

    Linux内核实现了NAT的功能,其源码是公布的,你可以参考参考。
      

  2.   

    Linux内核的源代码在哪里找?
      

  3.   

    http://www-900.ibm.com/developerWorks/cn/education/linux/l-lpi6/tutorial/l-lpi6-3-3.html
      

  4.   

    NAT的原理及其注意事项:
    http://www.copathway.com/itbookreview/view_paper.asp?paper_id=819
      

  5.   

    问题是,在windows下怎么实现呀?
    要在IP层还是链路层?
      

  6.   

    一般不要考虑链路层,直接从网络层/IP层实现。
    在局域网中,如果你需要做到对MAC进行NAT转换,那么才需要做到链路层的。
      

  7.   

    能给我一份吗 
    my e-mail:[email protected]