資源簡介
NAT(Network Address
Translators),網絡地址轉換:網絡地址轉換是在IP地址日益缺乏的情況下產生的,它的主要目的就是為了能夠地址重用。NAT分為兩大類,基本的NAT和NAPT(Network
Address/Port Translator)。
最開始NAT是運行在路由器上的一個功能模塊。
最先提出的是基本的NAT,它的產生基于如下事實:一個私有網絡(域)中的節(jié)點中只有很少的節(jié)點需要與外網連接(呵呵,這是在上世紀90年代中期提出的)。那么這個子網中其實只有少數(shù)的節(jié)點需要全球唯一的IP地址,其他的節(jié)點的IP地址應該是可以重用的。
因此,基本的NAT實現(xiàn)的功能很簡單,在子網內使用一個保留的IP子網段,這些IP對外是不可見的。子網內只有少數(shù)一些IP地址可以對應到真正全球唯一的IP地址。如果這些節(jié)點需要訪問外部網絡,那么基本NAT就負責將這個節(jié)點的子網內IP轉化為一個全球唯一的IP然后發(fā)送出去。(基本的NAT會改變IP包中的原IP地址,但是不會改變IP包中的端口)
代碼片段和文件信息
/*?P2P?程序客戶端
?*?
?*?文件名:P2PClient.c
?*
?*?日期:2004-5-21
?*
?*?作者:shootingstars(zhouhuis22@sina.com)
?*
?*/
#pragma?comment(lib“ws2_32.lib“)
#include?“windows.h“
#include?“..\proto.h“
#include?“..\Exception.h“
#include?
using?namespace?std;
UserList?ClientList;
#define?COMMANDMAXC?256
#define?MAXRETRY????5
SOCKET?PrimaryUDP;
char?UserName[10];
char?ServerIP[20];
bool?RecvedACK;
void?InitWinSock()
{
WSADATA?wsaData;
if?(WSAStartup(MAKEWORD(2?2)?&wsaData)?!=?0)
{
printf(“Windows?sockets?2.2?startup“);
throw?Exception(““);
}
else{
printf(“Using?%s?(Status:?%s)\n“
wsaData.szDescription?wsaData.szSystemStatus);
printf(“with?API?versions?%d.%d?to?%d.%d\n\n“
LOBYTE(wsaData.wVersion)?HIBYTE(wsaData.wVersion)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9841??2008-08-25?10:38??P2PClient\P2PClient.cpp
?????文件???????4324??2004-05-21?22:55??P2PClient\P2PClient.dsp
?????文件????????541??2004-05-21?21:55??P2PClient\P2PClient.dsw
?????文件??????33792??2008-08-25?10:38??P2PClient\P2PClient.ncb
?????文件??????53760??2008-08-25?10:38??P2PClient\P2PClient.opt
?????文件???????1498??2008-08-25?10:24??P2PClient\P2PClient.plg
?????文件????????907??2004-05-22?08:47??P2PClient\P2PClient.sln
????..A..H.??????8192??2004-05-22?09:24??P2PClient\P2PClient.suo
?????文件???????4361??2004-05-22?08:47??P2PClient\P2PClient.vcproj
?????文件???????5370??2008-08-25?10:24??P2PServer\P2PServer.cpp
?????文件???????4320??2004-05-21?22:55??P2PServer\P2PServer.dsp
?????文件????????541??2004-05-21?21:51??P2PServer\P2PServer.dsw
?????文件??????53760??2008-08-25?10:42??P2PServer\P2PServer.opt
?????文件???????1338??2008-08-25?10:24??P2PServer\P2PServer.plg
?????文件????????907??2004-05-22?08:47??P2PServer\P2PServer.sln
????..A..H.??????8192??2004-05-22?09:24??P2PServer\P2PServer.suo
?????文件???????4305??2004-05-22?08:47??P2PServer\P2PServer.vcproj
?????文件????????498??2004-05-21?21:58??Exception.h
?????文件???????1725??2004-05-21?22:35??proto.h
?????文件???????8733??2004-05-22?11:16??UDP穿越NAT.TXT
?????文件?????553068??2008-08-25?10:24??P2PClient.exe
?????文件?????188524??2008-08-25?10:24??P2PServer.exe
?????目錄??????????0??2008-09-15?15:30??P2PClient
?????目錄??????????0??2008-09-15?15:30??P2PServer
?-rw-r--r--???????227??2011-08-12?15:27??readme_verysource.com.txt
-----------?---------??----------?-----??----
???????????????948724????????????????????25
- 上一篇:c++ IPv6 文件傳輸
- 下一篇:c++ 聊天室(含server+client)
評論
共有 條評論