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