Kompyuter tarmoqlari uchun soket dasturlashga umumiy nuqtai

Soket kompyuter tarmog'i dasturlashning eng asosiy texnologiyalaridan biridir. Soketlar tarmoq dasturiy ilovalarini tarmoq uskunalari va operatsion tizimlariga o'rnatilgan standart mexanizmlardan foydalangan holda muloqot qilishga imkon beradi.

Internet-dasturiy ta'minot ishlab chiqishning yana bir o'ziga xos xususiyatiga o'xshab qolishi mumkin bo'lsa-da, socket texnologiyasi Internetdan ancha oldin mavjud edi. Va bugungi kunda eng mashhur tarmoq dasturiy ilovalari ko'pchiligiga rozetkalarga tayanishadi.

Sizning Tarmog'ingiz uchun qanday soxalar mumkin

Bir soket ikki qismli dasturiy ta'minot (bir nuqtadan nuqtaga ulanish deb ataladigan) o'rtasida bitta ulanishni ifodalaydi. Ikki dona qo'shimcha dastur bir nechta soket yordamida mijoz / server yoki tarqatilgan tizimlar bilan bog'lanishi mumkin. Misol uchun, ko'pgina veb-brauzerlar bir vaqtning o'zida bir serverda yaratilgan bir qator soket orqali bir Web-server bilan bog'lanishlari mumkin.

Soket-asosidagi dasturiy ta'minot odatda tarmoqdagi ikkita alohida kompyuterda ishlaydi, lekin soketlar mahalliy kompyuterda ( interprocess ) bir kompyuterda muloqot qilish uchun ham ishlatilishi mumkin. Soketlar ikki tomonlama bo'lib, ulanishning har ikkala tomoni ma'lumotni jo'natish va olish imkoniga ega. Ba'zan muloqotni boshlaydigan dastur "mijoz" va boshqa dastur "server" deb ataladi, biroq bu atamalar o'zaro tenglashishga olib keladi va odatda ulardan qochishga to'g'ri keladi.

Socket API va kutubxonalar

Internetda standart dastur dasturiy interfeyslarini (API) qo'llaydigan bir nechta kutubxonalar mavjud. Birinchi asosiy dastur - Berkli Soket Kutubxonasi hali ham UNIX tizimlarida keng qo'llaniladi. Boshqa juda keng tarqalgan API - Microsoft operatsion tizimlari uchun Windows Sockets (WinSock) kutubxonasi. Boshqa kompyuter texnologiyalari bilan bog'liq bo'lgan socket API'lar juda etukdir: WinSock 1982 yildan beri 1993 yildan beri ishlatib kelmoqda va Berkli radiusi.

Socket APIs nisbatan kichik va sodda. Funktsiyalarning ko'pchiligi o'qish () , write () va yopish () kabi fayl kirish / . Haqiqiy funksiya ishlatilishi chaqirilayotgan dasturlash tiliga va tanlangan uy kutubxonasiga bog'liq.

Socket interfeysi turlari

Soket interfeyslarini uch toifaga bo'lish mumkin:

  • Eng keng tarqalgan turdagi oqim soketlari ikki bog'lanuvchi tomon birinchi navbatda rozetka aloqasini o'rnatishni talab qiladi, undan so'ng ushbu ulanishdan o'tgan har qanday ma'lumot uni yuborilgan tartibda kelishi kafolatlanadi - havola-yo'naltirilgan dasturlash modeli.
  • Datagram soketlari "ulanish o'rnatilmaydigan" semantikani taklif qiladi. Datagramlar yordamida ulanishlar oqimdagi kabi aniq emas. Har ikkala partiya faqat kerak bo'lganda datagramlarni yuboradi va boshqasini javob kutadi; xabarlar etkazilishda yo'qolib ketishi yoki buyurtmani bekor qilinishi mumkin, lekin bu muammolarni hal qilish uchun ilovalarning javobgarligi emas. Datagramli soketlarni qo'llash ba'zi bir ilovalarni oqim soketlaridan foydalanish bilan taqqoslaganda, ba'zi holatlarda ulardan foydalanishni oqlaydigan ishlashga va qo'shimcha moslashuvchanlikka olib kelishi mumkin.
  • Uchinchi turdagi soket - xom uyali - kutubxonaning TCP va UDP kabi standart protokollarni qo'llab-quvvatlaydi. Xom uyalar maxsus past darajali protokol ishlab chiqishda foydalaniladi.

Tarmoq protokollarida soket ta'minoti

Zamonaviy tarmoq prizlari odatda Internet protokollariga - IP, TCP va UDP bilan birgalikda ishlatiladi. Internet protokollari uchun rozetkalarni ishlatadigan kutubxonalar TCP-ni oqimlar uchun, datagramlar uchun UDP va xom sockets uchun IP-dan foydalanadi.

Internet orqali bog'lanish uchun IP-kutubxonalar maxsus kompyuterlarni aniqlash uchun IP-manzilni ishlatadi. Internetning ko'pgina qismlari nomlash xizmatlari bilan ishlaydi, chunki foydalanuvchilar va soket programlovchilari kompyuterlar bilan ( masalan , "bucomputer.wireless.about.com") manzilga emas, balki ( masalan , 208.185.127.40) kompyuter bilan ishlashlari mumkin. Stream va datagram ulagichlari bir nechta ilovalarni bir-biridan ajratish uchun IP- port raqamlarini ham ishlatadi. Misol uchun, internetdagi veb-brauzerlar port 80-ni veb-serverlar bilan uyali aloqa uchun standart deb biladi.