ಸಾಕೆಟ್ ಪ್ರೊಗ್ರಾಮಿಂಗ್ ಫಾರ್ ಕಂಪ್ಯೂಟರ್ ನೆಟ್ವರ್ಕಿಂಗ್ ಒಂದು ಅವಲೋಕನ

ಕಂಪ್ಯೂಟರ್ ನೆಟ್ವರ್ಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನ ಒಂದು ಮೂಲಭೂತ ತಂತ್ರಜ್ಞಾನಗಳಲ್ಲಿ ಸಾಕೆಟ್ ಸಹ ಒಂದು. ಜಾಕೆಟ್ ಯಂತ್ರಾಂಶ ಮತ್ತು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಯಾಂತ್ರಿಕತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನೆಟ್ವರ್ಕ್ ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸಂವಹನ ಮಾಡಲು ಸಾಕೆಟ್ಗಳು ಅವಕಾಶ ನೀಡುತ್ತವೆ.

ಅಂತರ್ಜಾಲ ತಂತ್ರಾಂಶ ಅಭಿವೃದ್ಧಿಯ ಮತ್ತೊಂದು ವೈಶಿಷ್ಟ್ಯದಂತೆಯೇ ಇದು ಕಂಡುಬರುತ್ತದೆಯಾದರೂ, ಸಾಕೆಟ್ ತಂತ್ರಜ್ಞಾನವು ವೆಬ್ನ ಮುಂಚೆಯೇ ಅಸ್ತಿತ್ವದಲ್ಲಿತ್ತು. ಮತ್ತು, ಇಂದಿನ ಹೆಚ್ಚಿನ ಜನಪ್ರಿಯ ನೆಟ್ವರ್ಕ್ ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸಾಕೆಟ್ಸ್ನಲ್ಲಿ ಅವಲಂಬಿಸಿವೆ.

ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ಗೆ ಯಾವ ಸಾಕೆಟ್ಗಳು ಮಾಡಬಹುದು

ಒಂದು ಸಾಕೆಟ್ ನಿಖರವಾಗಿ ಎರಡು ತುಣುಕುಗಳ ಸಾಫ್ಟ್ವೇರ್ (ಒಂದು ಪಾಯಿಂಟ್-ಟು-ಪಾಯಿಂಟ್ ಸಂಪರ್ಕ ಎಂದು ಕರೆಯಲ್ಪಡುವ) ನಡುವೆ ಒಂದೇ ಸಂಪರ್ಕವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಎರಡು ಸಾರಿ ಸಾಫ್ಟ್ವೇರ್ಗಳನ್ನು ಕ್ಲೈಂಟ್ / ಸರ್ವರ್ ಅಥವಾ ವಿತರಣೆ ಸಿಸ್ಟಮ್ಗಳೊಂದಿಗೆ ಬಹು ಸಾಕೆಟ್ಗಳನ್ನು ಬಳಸಿ ಸಂವಹನ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಅನೇಕ ವೆಬ್ ಬ್ರೌಸರ್ಗಳು ಏಕಕಾಲದಲ್ಲಿ ಸರ್ವರ್ನಲ್ಲಿ ಮಾಡಿದ ಸಾಕೆಟ್ಗಳ ಗುಂಪಿನ ಮೂಲಕ ಒಂದೇ ವೆಬ್ ಸರ್ವರ್ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಹುದು.

ಸಾಕೆಟ್-ಆಧಾರಿತ ಸಾಫ್ಟ್ವೇರ್ ಸಾಮಾನ್ಯವಾಗಿ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಎರಡು ಪ್ರತ್ಯೇಕ ಕಂಪ್ಯೂಟರ್ಗಳಲ್ಲಿ ಚಲಿಸುತ್ತದೆ, ಆದರೆ ಒಂದೇ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಸಾಕೆಟ್ಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ( ಇಂಟರ್ ಪ್ರೋಸೆಸರ್ ) ಸಂಪರ್ಕಿಸಲು ಬಳಸಬಹುದು. ಸಾಕೆಟ್ಗಳು ಬೈಡೈರೆಕ್ಷನಲ್ ಆಗಿರುತ್ತವೆ , ಅಂದರೆ ಸಂಪರ್ಕದ ಎರಡೂ ಬದಿಗಳು ಡೇಟಾವನ್ನು ಕಳುಹಿಸುವ ಮತ್ತು ಸ್ವೀಕರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಕೆಲವೊಮ್ಮೆ ಸಂವಹನವನ್ನು ಪ್ರಾರಂಭಿಸುವ ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು "ಕ್ಲೈಂಟ್" ಮತ್ತು "ಸರ್ವರ್" ಎಂದು ಕರೆಯುವ ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ ಆದರೆ ಈ ಪರಿಭಾಷೆಯು ಪೀರ್ ನೆಟ್ವರ್ಕಿಂಗ್ಗೆ ಸಮಾನವಾಗಿ ಗೊಂದಲಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಇದನ್ನು ತಪ್ಪಿಸಬೇಕು.

ಸಾಕೆಟ್ API ಗಳು ಮತ್ತು ಲೈಬ್ರರೀಸ್

ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಅಪ್ಲಿಕೇಷನ್ ಪ್ರೊಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು (ಎಪಿಐಗಳು) ಜಾರಿಗೆ ತಂದ ಅನೇಕ ಗ್ರಂಥಾಲಯಗಳು ಅಂತರ್ಜಾಲದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. ಮೊದಲ ಮುಖ್ಯವಾಹಿನಿಯ ಪ್ಯಾಕೇಜ್ - ಬರ್ಕ್ಲಿ ಸಾಕೆಟ್ ಲೈಬ್ರರಿ ಇನ್ನೂ ಯುನಿಕ್ಸ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ವ್ಯಾಪಕವಾಗಿ ಬಳಕೆಯಲ್ಲಿದೆ. ಮೈಕ್ರೋಸಾಫ್ಟ್ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಗಾಗಿ ವಿಂಡೋಸ್ ಸಾಕೆಟ್ಗಳು (ವಿನ್ಸಾಕ್) ಲೈಬ್ರರಿ ಮತ್ತೊಂದು ಸಾಮಾನ್ಯ ಎಪಿಐ ಆಗಿದೆ. ಇತರ ಕಂಪ್ಯೂಟರ್ ತಂತ್ರಜ್ಞಾನಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಸಾಕೆಟ್ API ಗಳು ಸಾಕಷ್ಟು ಪ್ರಬುದ್ಧವಾಗಿವೆ: ವಿನ್ಸಾಕ್ 1993 ರಿಂದಲೂ ಮತ್ತು 1982 ರಿಂದ ಬರ್ಕ್ಲಿ ಸಾಕೆಟ್ಗಳೂ ಬಳಕೆಯಲ್ಲಿದೆ.

ಸಾಕೆಟ್ API ಗಳು ತುಲನಾತ್ಮಕವಾಗಿ ಚಿಕ್ಕದಾಗಿದೆ ಮತ್ತು ಸರಳವಾಗಿದೆ. ಓದಲು () , ಬರೆಯಿರಿ () , ಮತ್ತು ಮುಚ್ಚು () ನಂತಹ ಕಡತ ಇನ್ಪುಟ್ / . ನಿಜವಾದ ಕಾರ್ಯವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ ಮತ್ತು ಸಾಕೆಟ್ ಗ್ರಂಥಾಲಯದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ ಅನ್ನು ಬಳಸಲು ಕರೆ ಮಾಡುತ್ತದೆ.

ಸಾಕೆಟ್ ಇಂಟರ್ಫೇಸ್ ಪ್ರಕಾರಗಳು

ಸಾಕೆಟ್ ಸಂಪರ್ಕಸಾಧನಗಳನ್ನು ಮೂರು ವರ್ಗಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದು:

  • ಸ್ಟ್ರೀಮ್ ಸಾಕೆಟ್ಗಳು, ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಪ್ರಕಾರ, ಎರಡು ಸಂವಹನ ಪಕ್ಷಗಳು ಮೊದಲಿಗೆ ಒಂದು ಸಾಕೆಟ್ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ, ನಂತರ ಆ ಸಂಪರ್ಕದ ಮೂಲಕ ಹಾದುಹೋಗುವ ಯಾವುದೇ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿದ ಅದೇ ಕ್ರಮದಲ್ಲಿ ಬರುವ ಭರವಸೆ ಇದೆ - ಸಂಪರ್ಕ-ಉದ್ದೇಶಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾದರಿ.
  • ದತ್ತಗ್ರಾಮ್ ಸಾಕೆಟ್ಗಳು "ಸಂಪರ್ಕ-ಕಡಿಮೆ" ಶಬ್ದಾರ್ಥಗಳನ್ನು ನೀಡುತ್ತವೆ. ಡಾಟಾಗ್ರಾಮ್ಗಳೊಂದಿಗೆ, ಸಂಪರ್ಕಗಳು ಸ್ಟ್ರೀಮ್ಗಳೊಂದಿಗೆ ಸ್ಪಷ್ಟವಾಗಿರುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಸೂಚಿಸುತ್ತವೆ. ಪಕ್ಷವು ಸರಳವಾಗಿ ಡೇಟಾಗ್ರಾಮ್ಗಳನ್ನು ಅಗತ್ಯವಿರುವಂತೆ ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಇತರರಿಗೆ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಲು ಕಾಯುತ್ತದೆ; ಸಂದೇಶಗಳನ್ನು ಸಂವಹನದಲ್ಲಿ ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಆದೇಶದಿಂದ ಪಡೆಯಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಇದು ಅನ್ವಯದ ಜವಾಬ್ದಾರಿಯಾಗಿದೆ ಮತ್ತು ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಲು ಸಾಕೆಟ್ಗಳಿಲ್ಲ. ಡೇಟಾಗ್ರಾಮ್ ಸಾಕೆಟ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರಿಂದ ಸ್ಟ್ರೀಮ್ ಸಾಕೆಟ್ಗಳನ್ನು ಬಳಸುವುದರೊಂದಿಗೆ ಹೋಲಿಸಿದರೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ವರ್ಧಕ ಮತ್ತು ಹೆಚ್ಚುವರಿ ನಮ್ಯತೆಗಳನ್ನು ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ನೀಡಬಹುದಾಗಿದೆ.
  • ಮೂರನೆಯ ವಿಧದ ಸಾಕೆಟ್ - ಕಚ್ಚಾ ಸಾಕೆಟ್ - TCP ಮತ್ತು UDP ಯಂತಹ ಪ್ರಮಾಣಿತ ಪ್ರೋಟೋಕಾಲ್ಗಳಿಗಾಗಿ ಲೈಬ್ರರಿಯ ಅಂತರ್ನಿರ್ಮಿತ ಬೆಂಬಲವನ್ನು ಬೈಪಾಸ್ ಮಾಡುತ್ತದೆ. ಕಚ್ಚಾ ಸಾಕೆಟ್ಗಳನ್ನು ಕಸ್ಟಮ್ ಕೆಳಮಟ್ಟದ ಪ್ರೊಟೊಕಾಲ್ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ.

ನೆಟ್ವರ್ಕ್ ಪ್ರೊಟೊಕಾಲ್ಗಳಲ್ಲಿ ಸಾಕೆಟ್ ಬೆಂಬಲ

ಐಪಿ, ಟಿಸಿಪಿ ಮತ್ತು ಯುಡಿಪಿ - ಇಂಟರ್ನೆಟ್ ನೆಟ್ವರ್ಕ್ ಪ್ರೊಟೊಕಾಲ್ಗಳೊಂದಿಗೆ ಆಧುನಿಕ ನೆಟ್ವರ್ಕ್ ಸಾಕೆಟ್ಗಳನ್ನು ವಿಶಿಷ್ಟವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಇಂಟರ್ನೆಟ್ ಪ್ರೊಟೊಕಾಲ್ಗಾಗಿ ಸಾಕೆಟ್ಗಳನ್ನು ಜಾರಿಗೊಳಿಸಿದ ಗ್ರಂಥಾಲಯಗಳು ಸ್ಟ್ರೀಮ್ಗಳಿಗಾಗಿ ಟಿಸಿಪಿ, ಡಾಟಾಗ್ರಾಮ್ಗಳಿಗೆ ಯುಡಿಪಿ ಮತ್ತು ಕಚ್ಚಾ ಸಾಕೆಟ್ಗಳಿಗಾಗಿ ಐಪಿ ಸ್ವತಃ ಬಳಸುತ್ತವೆ.

ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ ಸಂವಹನ ನಡೆಸಲು, ಐಪಿ ಸಾಕೆಟ್ ಗ್ರಂಥಾಲಯಗಳು ನಿರ್ದಿಷ್ಟ ಕಂಪ್ಯೂಟರ್ಗಳನ್ನು ಗುರುತಿಸಲು IP ವಿಳಾಸವನ್ನು ಬಳಸುತ್ತವೆ. ಇಂಟರ್ನೆಟ್ನ ಅನೇಕ ಭಾಗಗಳು ಹೆಸರಿಸುವ ಸೇವೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ, ಇದರಿಂದ ಬಳಕೆದಾರರಿಂದ ಮತ್ತು ಸಾಕೆಟ್ ಪ್ರೋಗ್ರಾಮರ್ಗಳು ಕಂಪ್ಯೂಟರ್ನೊಂದಿಗೆ ವಿಳಾಸದಿಂದ ( ಉದಾ. , "ಈ ಕಂಪ್ಯೂಟರ್.ವೈರ್ಲೆಸ್.ಬಾೌಟ್.ಕಾಮ್") ವಿಳಾಸದಿಂದ ಬದಲು ಕೆಲಸ ಮಾಡಬಹುದು ( ಉದಾಹರಣೆಗೆ , 208.185.127.40). ಸ್ಟ್ರೀಮ್ ಮತ್ತು ಡಾಟಾಗ್ರಾಮ್ ಸಾಕೆಟ್ಗಳು ಐಪಿ ಪೋರ್ಟ್ ಸಂಖ್ಯೆಗಳನ್ನು ಪರಸ್ಪರ ಒಂದರಿಂದ ಬಹು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಬಳಸುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಅಂತರ್ಜಾಲದಲ್ಲಿನ ವೆಬ್ ಬ್ರೌಸರ್ಗಳು ವೆಬ್ ಸರ್ವರ್ಗಳೊಂದಿಗೆ ಸಾಕೆಟ್ ಸಂವಹನಗಳಿಗಾಗಿ ಪೋರ್ಟ್ 80 ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಆಗಿ ಬಳಸಲು ತಿಳಿದಿದೆ.