TCP ಸಂಪರ್ಕ ಸೆಟಪ್
ನಾವು ವೆಬ್ ಬ್ರೌಸ್ ಮಾಡುವಾಗ, ಇಮೇಲ್ ಕಳುಹಿಸುವಾಗ ಅಥವಾ ಆನ್ಲೈನ್ ಆಟವನ್ನು ಆಡುವಾಗ, ಅದರ ಹಿಂದಿನ ಸಂಕೀರ್ಣ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕದ ಬಗ್ಗೆ ನಾವು ಹೆಚ್ಚಾಗಿ ಯೋಚಿಸುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ನಮ್ಮ ಮತ್ತು ಸರ್ವರ್ ನಡುವೆ ಸ್ಥಿರವಾದ ಸಂವಹನವನ್ನು ಖಚಿತಪಡಿಸುವುದು ಈ ಸಣ್ಣ ಹಂತಗಳಂತೆ ಕಾಣುತ್ತದೆ. ಪ್ರಮುಖ ಹಂತಗಳಲ್ಲಿ ಒಂದು TCP ಸಂಪರ್ಕ ಸೆಟಪ್, ಮತ್ತು ಇದರ ತಿರುಳು ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಆಗಿದೆ.
ಈ ಲೇಖನವು ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ನ ತತ್ವ, ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಪ್ರಾಮುಖ್ಯತೆಯನ್ನು ವಿವರವಾಗಿ ಚರ್ಚಿಸುತ್ತದೆ. ಹಂತ ಹಂತವಾಗಿ, ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಏಕೆ ಅಗತ್ಯವಿದೆ, ಅದು ಸಂಪರ್ಕ ಸ್ಥಿರತೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಹೇಗೆ ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ವರ್ಗಾವಣೆಗೆ ಅದು ಎಷ್ಟು ಮುಖ್ಯ ಎಂಬುದನ್ನು ನಾವು ವಿವರಿಸುತ್ತೇವೆ. ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ನ ಆಳವಾದ ತಿಳುವಳಿಕೆಯೊಂದಿಗೆ, ನೆಟ್ವರ್ಕ್ ಸಂವಹನದ ಆಧಾರವಾಗಿರುವ ಕಾರ್ಯವಿಧಾನಗಳ ಉತ್ತಮ ತಿಳುವಳಿಕೆಯನ್ನು ಮತ್ತು TCP ಸಂಪರ್ಕಗಳ ವಿಶ್ವಾಸಾರ್ಹತೆಯ ಸ್ಪಷ್ಟ ನೋಟವನ್ನು ನಾವು ಪಡೆಯುತ್ತೇವೆ.
TCP ತ್ರೀ-ವೇ ಹ್ಯಾಂಡ್ಶೇಕ್ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಸ್ಥಿತಿ ಪರಿವರ್ತನೆಗಳು
TCP ಯು ಸಂಪರ್ಕ-ಆಧಾರಿತ ಸಾರಿಗೆ ಪ್ರೋಟೋಕಾಲ್ ಆಗಿದ್ದು, ಇದಕ್ಕೆ ಡೇಟಾ ಪ್ರಸರಣದ ಮೊದಲು ಸಂಪರ್ಕ ಸ್ಥಾಪನೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ. ಈ ಸಂಪರ್ಕ ಸ್ಥಾಪನೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ.
ಪ್ರತಿಯೊಂದು ಸಂಪರ್ಕದಲ್ಲಿ ಕಳುಹಿಸಲಾದ TCP ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಹತ್ತಿರದಿಂದ ನೋಡೋಣ.
ಆರಂಭದಲ್ಲಿ, ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಎರಡೂ ಮುಚ್ಚಲ್ಪಟ್ಟಿರುತ್ತವೆ. ಮೊದಲನೆಯದಾಗಿ, ಸರ್ವರ್ ಪೋರ್ಟ್ನಲ್ಲಿ ಸಕ್ರಿಯವಾಗಿ ಆಲಿಸುತ್ತದೆ ಮತ್ತು LISTEN ಸ್ಥಿತಿಯಲ್ಲಿರುತ್ತದೆ, ಅಂದರೆ ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಬೇಕು. ಮುಂದೆ, ಕ್ಲೈಂಟ್ ವೆಬ್ಪುಟವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಿದ್ಧವಾಗಿದೆ. ಇದು ಸರ್ವರ್ನೊಂದಿಗೆ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸುವ ಅಗತ್ಯವಿದೆ. ಮೊದಲ ಸಂಪರ್ಕ ಪ್ಯಾಕೆಟ್ನ ಸ್ವರೂಪ ಹೀಗಿದೆ:
ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕವನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ, ಅದು ಯಾದೃಚ್ಛಿಕ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು (client_isn) ಉತ್ಪಾದಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು TCP ಹೆಡರ್ನ "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ" ಕ್ಷೇತ್ರದಲ್ಲಿ ಇರಿಸುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಹೊರಹೋಗುವ ಪ್ಯಾಕೆಟ್ SYN ಪ್ಯಾಕೆಟ್ ಎಂದು ಸೂಚಿಸಲು ಕ್ಲೈಂಟ್ SYN ಫ್ಲ್ಯಾಗ್ ಸ್ಥಾನವನ್ನು 1 ಗೆ ಹೊಂದಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಮೊದಲ SYN ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸರ್ವರ್ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ ಸರ್ವರ್ನೊಂದಿಗೆ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಬಯಸುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಈ ಪ್ಯಾಕೆಟ್ ಅಪ್ಲಿಕೇಶನ್ ಲೇಯರ್ ಡೇಟಾವನ್ನು (ಅಂದರೆ, ಕಳುಹಿಸಲಾದ ಡೇಟಾವನ್ನು) ಹೊಂದಿರುವುದಿಲ್ಲ. ಈ ಹಂತದಲ್ಲಿ, ಕ್ಲೈಂಟ್ನ ಸ್ಥಿತಿಯನ್ನು SYN-SENT ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ.
ಸರ್ವರ್ ಕ್ಲೈಂಟ್ನಿಂದ SYN ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ಅದು ಯಾದೃಚ್ಛಿಕವಾಗಿ ತನ್ನದೇ ಆದ ಸರಣಿ ಸಂಖ್ಯೆಯನ್ನು (server_isn) ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಆ ಸಂಖ್ಯೆಯನ್ನು TCP ಹೆಡರ್ನ "ಸರಣಿ ಸಂಖ್ಯೆ" ಕ್ಷೇತ್ರದಲ್ಲಿ ಇರಿಸುತ್ತದೆ. ಮುಂದೆ, ಸರ್ವರ್ "ಸ್ವೀಕಾರ ಸಂಖ್ಯೆ" ಕ್ಷೇತ್ರದಲ್ಲಿ client_isn + 1 ಅನ್ನು ನಮೂದಿಸುತ್ತದೆ ಮತ್ತು SYN ಮತ್ತು ACK ಬಿಟ್ಗಳನ್ನು 1 ಗೆ ಹೊಂದಿಸುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, ಸರ್ವರ್ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಕ್ಲೈಂಟ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್-ಲೇಯರ್ ಡೇಟಾ ಇರುವುದಿಲ್ಲ (ಮತ್ತು ಸರ್ವರ್ ಕಳುಹಿಸಲು ಯಾವುದೇ ಡೇಟಾ ಇಲ್ಲ). ಈ ಸಮಯದಲ್ಲಿ, ಸರ್ವರ್ SYN-RCVD ಸ್ಥಿತಿಯಲ್ಲಿದೆ.
ಕ್ಲೈಂಟ್ ಸರ್ವರ್ನಿಂದ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಅಂತಿಮ ಪ್ರತ್ಯುತ್ತರ ಪ್ಯಾಕೆಟ್ಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು ಅದು ಈ ಕೆಳಗಿನ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ: ಮೊದಲನೆಯದಾಗಿ, ಕ್ಲೈಂಟ್ ಪ್ರತ್ಯುತ್ತರ ಪ್ಯಾಕೆಟ್ನ TCP ಹೆಡರ್ನ ACK ಬಿಟ್ ಅನ್ನು 1 ಗೆ ಹೊಂದಿಸುತ್ತದೆ; ಎರಡನೆಯದಾಗಿ, ಕ್ಲೈಂಟ್ "ಉತ್ತರ ಸಂಖ್ಯೆಯನ್ನು ದೃಢೀಕರಿಸಿ" ಕ್ಷೇತ್ರದಲ್ಲಿ server_isn + 1 ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸುತ್ತದೆ; ಅಂತಿಮವಾಗಿ, ಕ್ಲೈಂಟ್ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸರ್ವರ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ. ಈ ಪ್ಯಾಕೆಟ್ ಕ್ಲೈಂಟ್ನಿಂದ ಸರ್ವರ್ಗೆ ಡೇಟಾವನ್ನು ಸಾಗಿಸಬಹುದು. ಈ ಕಾರ್ಯಾಚರಣೆಗಳು ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಕ್ಲೈಂಟ್ ESTABLISHED ಸ್ಥಿತಿಯನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ.
ಸರ್ವರ್ ಕ್ಲೈಂಟ್ನಿಂದ ಪ್ರತ್ಯುತ್ತರ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಅದು ಸಹ ಸ್ಥಾಪಿಸಲಾದ ಸ್ಥಿತಿಗೆ ಬದಲಾಗುತ್ತದೆ.
ಮೇಲಿನ ಪ್ರಕ್ರಿಯೆಯಿಂದ ನೀವು ನೋಡಬಹುದಾದಂತೆ, ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಮಾಡುವಾಗ, ಮೂರನೇ ಹ್ಯಾಂಡ್ಶೇಕ್ ಡೇಟಾವನ್ನು ಸಾಗಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ, ಆದರೆ ಮೊದಲ ಎರಡು ಹ್ಯಾಂಡ್ಶೇಕ್ಗಳು ಅಲ್ಲ. ಇದು ಸಂದರ್ಶನಗಳಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಯಾಗಿದೆ. ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಎರಡೂ ಪಕ್ಷಗಳು ಸ್ಥಾಪಿತ ಸ್ಥಿತಿಯನ್ನು ಪ್ರವೇಶಿಸುತ್ತವೆ, ಇದು ಸಂಪರ್ಕವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ, ಆ ಹಂತದಲ್ಲಿ ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಪರಸ್ಪರ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು ಪ್ರಾರಂಭಿಸಬಹುದು.
ಮೂರು ಬಾರಿ ಹಸ್ತಲಾಘವ ಏಕೆ? ಎರಡಲ್ಲ, ನಾಲ್ಕು ಬಾರಿ?
ಸಾಮಾನ್ಯ ಉತ್ತರವೆಂದರೆ, "ಏಕೆಂದರೆ ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ಸ್ವೀಕರಿಸುವ ಮತ್ತು ಕಳುಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ." ಈ ಉತ್ತರ ಸರಿಯಾಗಿದೆ, ಆದರೆ ಇದು ಕೇವಲ ಮೇಲ್ಮೈ ಕಾರಣ, ಮುಖ್ಯ ಕಾರಣವನ್ನು ಮುಂದಿಡುವುದಿಲ್ಲ. ಈ ವಿಷಯದ ಬಗ್ಗೆ ನಮ್ಮ ತಿಳುವಳಿಕೆಯನ್ನು ಆಳಗೊಳಿಸಲು ನಾನು ಮೂರು ಅಂಶಗಳಿಂದ ಟ್ರಿಪಲ್ ಹ್ಯಾಂಡ್ಶೇಕ್ಗೆ ಕಾರಣಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತೇನೆ.
ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ಐತಿಹಾಸಿಕವಾಗಿ ಪುನರಾವರ್ತಿತ ಸಂಪರ್ಕಗಳ ಆರಂಭವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ತಪ್ಪಿಸಬಹುದು (ಮುಖ್ಯ ಕಾರಣ)
ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ಎರಡೂ ಪಕ್ಷಗಳು ವಿಶ್ವಾಸಾರ್ಹ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು ಸ್ವೀಕರಿಸಿವೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಮೂರು ಕಡೆ ಹ್ಯಾಂಡ್ಶೇಕ್ ಮಾಡುವುದರಿಂದ ಸಂಪನ್ಮೂಲಗಳು ವ್ಯರ್ಥವಾಗುವುದನ್ನು ತಪ್ಪಿಸಬಹುದು.
ಕಾರಣ 1: ಐತಿಹಾಸಿಕ ನಕಲು ಸೇರ್ಪಡೆಗಳನ್ನು ತಪ್ಪಿಸಿ
ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ಗೆ ಮುಖ್ಯ ಕಾರಣವೆಂದರೆ ಹಳೆಯ ನಕಲಿ ಸಂಪರ್ಕ ಪ್ರಾರಂಭದಿಂದ ಉಂಟಾಗುವ ಗೊಂದಲವನ್ನು ತಪ್ಪಿಸುವುದು. ಸಂಕೀರ್ಣ ನೆಟ್ವರ್ಕ್ ಪರಿಸರದಲ್ಲಿ, ಡೇಟಾ ಪ್ಯಾಕೆಟ್ಗಳ ಪ್ರಸರಣವನ್ನು ಯಾವಾಗಲೂ ನಿರ್ದಿಷ್ಟ ಸಮಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಗಮ್ಯಸ್ಥಾನ ಹೋಸ್ಟ್ಗೆ ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ನೆಟ್ವರ್ಕ್ ದಟ್ಟಣೆ ಮತ್ತು ಇತರ ಕಾರಣಗಳಿಂದಾಗಿ ಹಳೆಯ ಡೇಟಾ ಪ್ಯಾಕೆಟ್ಗಳು ಮೊದಲು ಗಮ್ಯಸ್ಥಾನ ಹೋಸ್ಟ್ಗೆ ಬರಬಹುದು. ಇದನ್ನು ತಪ್ಪಿಸಲು, ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು TCP ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.
ನೆಟ್ವರ್ಕ್ ದಟ್ಟಣೆಯಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಕ್ಲೈಂಟ್ ಬಹು SYN ಸಂಪರ್ಕ ಸ್ಥಾಪನೆ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಕಳುಹಿಸಿದಾಗ, ಈ ಕೆಳಗಿನವುಗಳು ಸಂಭವಿಸಬಹುದು:
1- ಇತ್ತೀಚಿನ SYN ಪ್ಯಾಕೆಟ್ಗಳ ಮೊದಲು ಹಳೆಯ SYN ಪ್ಯಾಕೆಟ್ಗಳು ಸರ್ವರ್ಗೆ ಬರುತ್ತವೆ.
2- ಹಳೆಯ SYN ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ ಸರ್ವರ್ ಕ್ಲೈಂಟ್ಗೆ SYN + ACK ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಪ್ರತ್ಯುತ್ತರಿಸುತ್ತದೆ.
3- ಕ್ಲೈಂಟ್ SYN + ACK ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ಅದು ತನ್ನದೇ ಆದ ಸಂದರ್ಭಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಸಂಪರ್ಕವು ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕವಾಗಿದೆ (ಅನುಕ್ರಮ ಸಂಖ್ಯೆ ಅವಧಿ ಮೀರಿದೆ ಅಥವಾ ಸಮಯ ಮೀರಿದೆ) ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲು RST ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸರ್ವರ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ.
ಎರಡು-ಹ್ಯಾಂಡ್ಶೇಕ್ ಸಂಪರ್ಕದೊಂದಿಗೆ, ಪ್ರಸ್ತುತ ಸಂಪರ್ಕವು ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕವಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ. ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಕ್ಲೈಂಟ್ ಮೂರನೇ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಕಳುಹಿಸಲು ಸಿದ್ಧವಾದಾಗ ಸಂದರ್ಭವನ್ನು ಆಧರಿಸಿ ಪ್ರಸ್ತುತ ಸಂಪರ್ಕವು ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕವಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ:
1- ಅದು ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕವಾಗಿದ್ದರೆ (ಅನುಕ್ರಮ ಸಂಖ್ಯೆ ಅವಧಿ ಮೀರಿದೆ ಅಥವಾ ಸಮಯ ಮೀರಿದೆ), ಮೂರನೇ ಹ್ಯಾಂಡ್ಶೇಕ್ನಿಂದ ಕಳುಹಿಸಲಾದ ಪ್ಯಾಕೆಟ್ ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲು RST ಪ್ಯಾಕೆಟ್ ಆಗಿರುತ್ತದೆ.
2- ಅದು ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕವಾಗಿಲ್ಲದಿದ್ದರೆ, ಮೂರನೇ ಬಾರಿಗೆ ಕಳುಹಿಸಲಾದ ಪ್ಯಾಕೆಟ್ ACK ಪ್ಯಾಕೆಟ್ ಆಗಿರುತ್ತದೆ ಮತ್ತು ಎರಡು ಸಂವಹನ ಪಕ್ಷಗಳು ಸಂಪರ್ಕವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸ್ಥಾಪಿಸುತ್ತವೆ.
ಆದ್ದರಿಂದ, TCP ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಅನ್ನು ಬಳಸುವ ಮುಖ್ಯ ಕಾರಣವೆಂದರೆ ಅದು ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕಗಳನ್ನು ತಡೆಯಲು ಸಂಪರ್ಕವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ.
ಕಾರಣ 2: ಎರಡೂ ಪಕ್ಷಗಳ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಗಳನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು
TCP ಪ್ರೋಟೋಕಾಲ್ನ ಎರಡೂ ಬದಿಗಳು ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು ಕಾಯ್ದುಕೊಳ್ಳಬೇಕು, ಇದು ವಿಶ್ವಾಸಾರ್ಹ ಪ್ರಸರಣವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಅನುಕ್ರಮ ಸಂಖ್ಯೆಗಳು TCP ಸಂಪರ್ಕಗಳಲ್ಲಿ ಪ್ರಮುಖ ಪಾತ್ರವಹಿಸುತ್ತವೆ. ಅವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಮಾಡುತ್ತವೆ:
ಸ್ವೀಕರಿಸುವವರು ನಕಲಿ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಬಹುದು ಮತ್ತು ಡೇಟಾದ ನಿಖರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು.
ಡೇಟಾದ ಸಮಗ್ರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ರಿಸೀವರ್ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯ ಕ್ರಮದಲ್ಲಿ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದು.
● ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯು ಇತರ ಪಕ್ಷವು ಸ್ವೀಕರಿಸಿದ ಡೇಟಾ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಗುರುತಿಸಬಹುದು, ಇದು ವಿಶ್ವಾಸಾರ್ಹ ಡೇಟಾ ಪ್ರಸರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
ಆದ್ದರಿಂದ, TCP ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಿದ ನಂತರ, ಕ್ಲೈಂಟ್ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯೊಂದಿಗೆ SYN ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಕ್ಲೈಂಟ್ನ SYN ಪ್ಯಾಕೆಟ್ನ ಯಶಸ್ವಿ ಸ್ವಾಗತವನ್ನು ಸೂಚಿಸುವ ACK ಪ್ಯಾಕೆಟ್ನೊಂದಿಗೆ ಸರ್ವರ್ಗೆ ಪ್ರತ್ಯುತ್ತರಿಸಲು ಒತ್ತಾಯಿಸುತ್ತದೆ. ನಂತರ, ಸರ್ವರ್ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯೊಂದಿಗೆ SYN ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಕ್ಲೈಂಟ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಗಳನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲಾಗಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಕ್ಲೈಂಟ್ ಒಮ್ಮೆ ಮತ್ತು ಎಲ್ಲರಿಗೂ ಪ್ರತ್ಯುತ್ತರಿಸಲು ಕಾಯುತ್ತದೆ.
ನಾಲ್ಕು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ಎರಡೂ ಪಕ್ಷಗಳ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಗಳನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು ಸಾಧ್ಯವಾದರೂ, ಎರಡನೇ ಮತ್ತು ಮೂರನೇ ಹಂತಗಳನ್ನು ಒಂದೇ ಹಂತವಾಗಿ ಸಂಯೋಜಿಸಬಹುದು, ಇದು ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಎರಡು ಹ್ಯಾಂಡ್ಶೇಕ್ಗಳು ಒಂದು ಪಕ್ಷದ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು ಇನ್ನೊಂದು ಪಕ್ಷವು ಯಶಸ್ವಿಯಾಗಿ ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಂದು ಮಾತ್ರ ಖಾತರಿಪಡಿಸುತ್ತದೆ, ಆದರೆ ಎರಡೂ ಪಕ್ಷಗಳ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು ದೃಢೀಕರಿಸಬಹುದು ಎಂಬುದಕ್ಕೆ ಯಾವುದೇ ಗ್ಯಾರಂಟಿ ಇಲ್ಲ. ಆದ್ದರಿಂದ, TCP ಸಂಪರ್ಕಗಳ ಸ್ಥಿರತೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ತೆಗೆದುಕೊಳ್ಳಬೇಕಾದ ಅತ್ಯುತ್ತಮ ಆಯ್ಕೆಯಾಗಿದೆ.
ಕಾರಣ 3: ಸಂಪನ್ಮೂಲಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಿ
"ಎರಡು-ಹ್ಯಾಂಡ್ಶೇಕ್" ಮಾತ್ರ ಇದ್ದರೆ, ಕ್ಲೈಂಟ್ SYN ವಿನಂತಿಯನ್ನು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ನಿರ್ಬಂಧಿಸಿದಾಗ, ಕ್ಲೈಂಟ್ ಸರ್ವರ್ ಕಳುಹಿಸಿದ ACK ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದ್ದರಿಂದ SYN ಅನ್ನು ಮರುಸಂಪರ್ಕಿಸಲಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಮೂರನೇ ಹ್ಯಾಂಡ್ಶೇಕ್ ಇಲ್ಲದಿರುವುದರಿಂದ, ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಕ್ಲೈಂಟ್ ACK ಸ್ವೀಕೃತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದೆಯೇ ಎಂದು ಸರ್ವರ್ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಆದ್ದರಿಂದ, ಪ್ರತಿ SYN ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರವೇ ಸರ್ವರ್ ಪೂರ್ವಭಾವಿಯಾಗಿ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಬಹುದು. ಇದು ಈ ಕೆಳಗಿನವುಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ:
ಸಂಪನ್ಮೂಲಗಳ ವ್ಯರ್ಥ: ಕ್ಲೈಂಟ್ನ SYN ವಿನಂತಿಯನ್ನು ನಿರ್ಬಂಧಿಸಿದರೆ, ಅದು ಬಹು SYN ಪ್ಯಾಕೆಟ್ಗಳ ಪುನರಾವರ್ತಿತ ಪ್ರಸರಣಕ್ಕೆ ಕಾರಣವಾದರೆ, ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ ಸರ್ವರ್ ಬಹು ಅನಗತ್ಯ ಅಮಾನ್ಯ ಸಂಪರ್ಕಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ. ಇದು ಸರ್ವರ್ ಸಂಪನ್ಮೂಲಗಳ ಅನಗತ್ಯ ವ್ಯರ್ಥಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ.
ಸಂದೇಶ ಧಾರಣ: ಮೂರನೇ ಹ್ಯಾಂಡ್ಶೇಕ್ನ ಕೊರತೆಯಿಂದಾಗಿ, ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಕ್ಲೈಂಟ್ ACK ಸ್ವೀಕೃತಿಯನ್ನು ಸರಿಯಾಗಿ ಸ್ವೀಕರಿಸಿದ್ದಾರೆಯೇ ಎಂದು ಸರ್ವರ್ಗೆ ತಿಳಿಯಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ. ಪರಿಣಾಮವಾಗಿ, ಸಂದೇಶಗಳು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಸಿಲುಕಿಕೊಂಡರೆ, ಕ್ಲೈಂಟ್ SYN ವಿನಂತಿಗಳನ್ನು ಪದೇ ಪದೇ ಕಳುಹಿಸುತ್ತಲೇ ಇರುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಸರ್ವರ್ ನಿರಂತರವಾಗಿ ಹೊಸ ಸಂಪರ್ಕಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ. ಇದು ನೆಟ್ವರ್ಕ್ ದಟ್ಟಣೆ ಮತ್ತು ವಿಳಂಬವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಒಟ್ಟಾರೆ ನೆಟ್ವರ್ಕ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ನಕಾರಾತ್ಮಕ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.
ಆದ್ದರಿಂದ, ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕದ ಸ್ಥಿರತೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಈ ಸಮಸ್ಯೆಗಳು ಸಂಭವಿಸುವುದನ್ನು ತಪ್ಪಿಸಲು TCP ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.
ಸಾರಾಂಶ
ದಿನೆಟ್ವರ್ಕ್ ಪ್ಯಾಕೆಟ್ ಬ್ರೋಕರ್TCP ಸಂಪರ್ಕ ಸ್ಥಾಪನೆಯನ್ನು ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ನೊಂದಿಗೆ ಮಾಡಲಾಗುತ್ತದೆ. ಮೂರು-ಮಾರ್ಗ ಹ್ಯಾಂಡ್ಶೇಕ್ ಸಮಯದಲ್ಲಿ, ಕ್ಲೈಂಟ್ ಮೊದಲು SYN ಫ್ಲ್ಯಾಗ್ನೊಂದಿಗೆ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸರ್ವರ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ, ಇದು ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಬಯಸುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ನಿಂದ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಸರ್ವರ್ SYN ಮತ್ತು ACK ಫ್ಲ್ಯಾಗ್ಗಳೊಂದಿಗೆ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಕ್ಲೈಂಟ್ಗೆ ಪ್ರತ್ಯುತ್ತರಿಸುತ್ತದೆ, ಸಂಪರ್ಕ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು ತನ್ನದೇ ಆದ ಆರಂಭಿಕ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, ಸಂಪರ್ಕವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ ಎಂದು ಸೂಚಿಸಲು ಕ್ಲೈಂಟ್ ಸರ್ವರ್ಗೆ ACK ಫ್ಲ್ಯಾಗ್ನೊಂದಿಗೆ ಪ್ರತ್ಯುತ್ತರಿಸುತ್ತದೆ. ಹೀಗಾಗಿ, ಎರಡೂ ಪಕ್ಷಗಳು ESTABLISHED ಸ್ಥಿತಿಯಲ್ಲಿವೆ ಮತ್ತು ಪರಸ್ಪರ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು ಪ್ರಾರಂಭಿಸಬಹುದು.
ಸಾಮಾನ್ಯವಾಗಿ, TCP ಸಂಪರ್ಕ ಸ್ಥಾಪನೆಗಾಗಿ ಮೂರು-ಮಾರ್ಗದ ಹ್ಯಾಂಡ್ಶೇಕ್ ಪ್ರಕ್ರಿಯೆಯು ಸಂಪರ್ಕದ ಸ್ಥಿರತೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಐತಿಹಾಸಿಕ ಸಂಪರ್ಕಗಳ ಮೇಲೆ ಗೊಂದಲ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳ ವ್ಯರ್ಥವನ್ನು ತಪ್ಪಿಸಲು ಮತ್ತು ಎರಡೂ ಪಕ್ಷಗಳು ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸಲು ಮತ್ತು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.
ಪೋಸ್ಟ್ ಸಮಯ: ಜನವರಿ-08-2025