启动=>start: send to same addr:port
联通1=>condition: Received?
BUDP=>end: UDP Blocked
Public1=>condition: Public IP == Local IP?
NONAT=>operation: No NAT
SED2=>operation: send to diff addr:port2
联通2=>condition: Received?
SFireWall=>end: Symmetric FireWall
OIP=>end: Open Internet
Check=>operation: NAT detected
OUTIPP=>operation: send to diff addr:port2
联通3=>condition: Received?
FCNAT=>end: Full Core NAT
Check2=>operation: send to same addr:port
SAMEIP=>condition: same Public IP first
SNAT=>end: Symmetric NAT
OUTIPP2=>operation: send to diff addr:port3
联通4=>condition: Received?
RPNAT=>end: Restricted port NAT
RCNAT=>end: Restricted cone NAT
启动->联通1
联通1(no)->BUDP
联通1(yes)->Public1
Public1(yes)->NONAT->SED2->联通2
联通2(no)->SFireWall
联通2(yes)->OIP
Public1(no)->Check->OUTIPP->联通3
联通3(yes)->FCNAT
联通3(no)->Check2->SAMEIP
SAMEIP(no)->SNAT
SAMEIP(yes)->OUTIPP2->联通4
联通4(NO)->RPNAT
联通4(YES)->RCNAT