Java DatagramSocket ಮತ್ತು SOCKS5 UDP ರಿಲೇ
TCP ಸಂಪರ್ಕಗಳು ಈಗಾಗಲೇ SOCKS ಬಳಸುತ್ತಿದ್ದರೂ Java UDP ಸಾಕೆಟ್ಗೆ SOCKS5 UDP ಅನುಷ್ಠಾನ ಏಕೆ ಬೇಕು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ.
ನಿಮ್ಮ Java HTTP ವಿನಂತಿ SOCKS ಮೂಲಕ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ UDP ವೈಶಿಷ್ಟ್ಯವು ಇನ್ನೂ ಸಂಚಾರವನ್ನು ನೇರವಾಗಿ ಕಳುಹಿಸುತ್ತದೆ ಅಥವಾ ವಿಫಲವಾಗುತ್ತದೆ. JVM ನ SOCKS ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿಸುವುದು DatagramSocket ಗೆ SOCKS5 UDP ಅನುಷ್ಠಾನವನ್ನು ನೀಡುವುದಿಲ್ಲ.
DatagramSocket API ನೆಟ್ವರ್ಕ್ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳಿಗೆ ವಿಳಾಸ ಮಾಡಿದ ಡೇಟಾಗ್ರಾಮ್ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಅದರ connect() ವಿಧಾನವು ಆ ಸಾಕೆಟ್ಗೆ ಸಹವರ್ತಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಅದು ಸಹವರ್ತಿಯೊಂದಿಗೆ SOCKS ಮಾತುಕತೆ ನಡೆಸುವುದಿಲ್ಲ.
SOCKS5 UDP ಮಾರ್ಗಕ್ಕೆ ಹೆಚ್ಚುವರಿ ಕೆಲಸ ಬೇಕು
SOCKS5 TCP ನಿಯಂತ್ರಣ ಸಂಪರ್ಕದ ಮೇಲೆ ಸ್ಥಾಪಿಸಲಾದ UDP ಸಂಘಟನೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ನಂತರ ಕ್ಲೈಂಟ್ ಪ್ರಾಕ್ಸಿ ಒದಗಿಸಿದ ರಿಲೇ ವಿಳಾಸದೊಂದಿಗೆ ಸುತ್ತುವರಿದ ಡೇಟಾಗ್ರಾಮ್ಗಳನ್ನು ವಿನಿಮಯ ಮಾಡುತ್ತದೆ. ಪ್ರತಿ ಸುತ್ತುವರಿದ ಸಂದೇಶವು ತನ್ನ ಗಮ್ಯಸ್ಥಾನವನ್ನು ಗುರುತಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಅನುಷ್ಠಾನವು ಆ ಚೌಕಟ್ಟನ್ನು ಮತ್ತು ನಿಯಂತ್ರಣ ಸಂಪರ್ಕದ ಜೀವಿತಾವಧಿಯನ್ನು ನಿರ್ವಹಿಸಬೇಕು.
ಸಾಮಾನ್ಯ UDP ಸಾಕೆಟ್ ಅನ್ನು ಪ್ರಾಕ್ಸಿಯ TCP ಕೇಳುವ ಪೋರ್ಟ್ಗೆ ತೋರಿಸುವುದು ಆ ಹಂತಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಕಚ್ಚಾ ಡೇಟಾಗ್ರಾಮ್ಗಳನ್ನು ಆ ವಿಳಾಸಕ್ಕೆ ಕಳುಹಿಸುವುದು ಸಂಘಟನೆಗೆ ಪರ್ಯಾಯವಲ್ಲ.
SOCKS5 UDP ರಿಲೇ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಬೆಂಬಲಿಸುವ ಲೈಬ್ರರಿ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ ಮತ್ತು ಸರ್ವರ್ ಕೂಡ ಅದನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ. SOCKS ಬೆಂಬಲವನ್ನು ಜಾಹೀರಾತು ಮಾಡುವ ಲೈಬ್ರರಿ ಕೇವಲ TCP CONNECT ಅನ್ನು ಮಾತ್ರ ಅನುಷ್ಠಾನಗೊಳಿಸಬಹುದು. ಪ್ರೋಟೋಕಾಲ್ ವಿಶೇಷಣೆಯು ಆ ಆದೇಶಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ.
UDP ರಿಲೇಗೂ ಬಳಸಬಹುದಾದ ಮಾರ್ಗ ಬೇಕು
ಪ್ರಾಕ್ಸಿಗೆ ಯಶಸ್ವಿ TCP ಸಂಪರ್ಕವು ನಿಯಂತ್ರಣ ಮಾರ್ಗವನ್ನು ಮಾತ್ರ ಸ್ಥಾಪಿಸುತ್ತದೆ. ಫೈರ್ವಾಲ್ಗಳು ಅಥವಾ NAT ವರ್ತನೆ ರಿಲೇಗೆ ಕಳುಹಿಸಿದ ಡೇಟಾಗ್ರಾಮ್ಗಳಿಗೆ ಇನ್ನೂ ಅಡ್ಡಿಪಡಿಸಬಹುದು. ಅಪ್ಲಿಕೇಶನ್ ಗಮ್ಯಸ್ಥಾನ ಆಫ್ಲೈನ್ ಆಗಿದೆ ಎಂದು ತೀರ್ಮಾನಿಸುವ ಮೊದಲು ಹಿಂತಿರುಗಿಸಿದ ರಿಲೇ ಎಂಡ್ಪಾಯಿಂಟ್ ಮತ್ತು ಯಾವುದೇ ರಿಲೇ ದೋಷವನ್ನು ಸಂಗ್ರಹಿಸಿ.
ಅಂತಿಮವಾಗಿ, SOCKS ಸಾಗಣೆ ಬೆಂಬಲವು UDP ಗೆ ವಿತರಣಾ ಖಾತರಿಗಳನ್ನು ಸೇರಿಸುವುದಿಲ್ಲ. ಮಾರ್ಗ ಬದಲಾದ ನಂತರವೂ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ವಂತ ಕಾಲಮಿತಿಗಳು, ನಷ್ಟ ನಿರ್ವಹಣೆ ಮತ್ತು ಸಂದೇಶ ಗಾತ್ರದ ಮಿತಿಗಳು ಅನ್ವಯಿಸುತ್ತವೆ.