Tarmoq rozetkasi - Network socket

A tarmoq rozetkasi a tarkibidagi dasturiy tuzilma hisoblanadi tarmoq tuguni a kompyuter tarmog'i bu tarmoq orqali ma'lumotlarni yuborish va qabul qilish uchun so'nggi nuqta bo'lib xizmat qiladi. Soketning tuzilishi va xususiyatlari an tomonidan belgilanadi dastur dasturlash interfeysi Tarmoq me'morchiligi uchun (API). Soketlar faqat a umri davomida yaratiladi jarayon tugunda ishlaydigan dastur.

Standartlashuvi tufayli TCP / IP rivojlanishidagi protokollar Internet, atama tarmoq rozetkasi kontekstida eng ko'p ishlatiladi Internet Protocol Suite, va shuning uchun tez-tez ham deb nomlanadi Internet rozetkasi. Shu nuqtai nazardan, boshqa xostlar uchun rozetka tashqi tomondan aniqlanadi rozetkaning manzili, bu uchlik transport protokoli, IP-manzil va port raqami.

Atama rozetka shuningdek, tugun ichki dasturiy ta'minotining so'nggi nuqtasi uchun ishlatiladi jarayonlararo aloqa (IPC), ko'pincha tarmoq soketi bilan bir xil API dan foydalanadi.

Foydalanish

Ushbu atamadan foydalanish rozetka dasturiy ta'minot elektr funktsiyasiga o'xshashdir ayol ulagichi, an bilan o'zaro bog'langan tugunlar orasidagi aloqa uchun apparatda joylashgan qurilma elektr kabeli. Xuddi shunday, atama port tugun yoki qurilmadagi tashqi jismoniy so'nggi nuqtalar uchun ishlatiladi.

Tarmoq protokollari to'plami uchun dastur dasturlash interfeysi (API) a yaratadi tutqich odatda a deb nomlanadigan dastur tomonidan yaratilgan har bir rozetka uchun soket tavsiflovchi. Yilda Unixga o'xshash operatsion tizimlar, bu tavsiflovchi turi fayl tavsiflovchi. U aloqa kanalida har qanday o'qish va yozish operatsiyalari uchun foydalanish uchun dastur jarayonida saqlanadi.

API bilan yaratilish vaqtida tarmoq rozetkasini uzatish uchun ishlatiladigan tarmoq protokoli turini, xostning tarmoq manzili va port raqami. Portlar - bu tugunning boshqa turdagi dasturiy ta'minotini ifodalovchi raqamlangan manbalar. Ular xizmat turlari sifatida ishlatiladi va jarayon tomonidan yaratilgandan so'ng, boshqa xostlar aloqalarni o'rnatishi uchun tashqi (tarmoqdan) manzilli komponent sifatida xizmat qiladi.

Tarmoq rozetkalari ikkita tugun orasidagi aloqa uchun doimiy ulanishlarga bag'ishlangan yoki ular ishtirok etishi mumkin ulanishsiz va multicast aloqa.

Amalda, TCP / IP protokollari Internetda qo'llanilishi sababli, atama tarmoq rozetkasi odatda bilan ishlatishni anglatadi Internet protokoli (IP). Shuning uchun u tez-tez ham chaqiriladi Internet rozetkasi.

Soket manzillari

Ilova protokol turi, IP manzili va port raqami kombinatsiyasini bilib, TCP / IP bilan ma'lumotlar almashish orqali masofaviy jarayon bilan aloqa o'rnatishi mumkin. Ushbu kombinatsiya ko'pincha a deb nomlanadi rozetkaning manzili. Bu tarmoq rozetkasiga tarmoqqa qarashli kirish dastagi. Masofaviy jarayon protokol to'plamining o'z misolida tarmoq rozetkasini o'rnatadi va dasturga ulanish uchun tarmoq API-dan foydalanadi va dastur uchun foydalanish uchun o'z soket manzilini taqdim etadi.

Amalga oshirish

A protokol to'plami, odatda operatsion tizim (masalan, alohida kutubxona sifatida emas), bu stek amalga oshiradigan protokollar yordamida jarayonlarning tarmoq orqali aloqa qilishiga imkon beradigan xizmatlar to'plamidir. Operatsion tizim IP va transport protokoli sarlavhalaridan rozetkaning manzil ma'lumotlarini chiqarib olish va dastur ma'lumotlaridan sarlavhalarni olib tashlash orqali kiruvchi IP-paketlarning foydali yukini tegishli dasturga yo'naltiradi.

The dastur dasturlash interfeysi Dasturlar protokollar to'plami bilan aloqa o'rnatishda tarmoq soketlaridan foydalangan holda (API) a deb nomlanadi socket API. Ushbu API-dan foydalanadigan dastur dasturlarini ishlab chiqish deyiladi rozetkalarni dasturlash yoki tarmoq dasturlash. Internet-soket API-lari odatda Berkli rozetkalari standart. Berkli rozetkalari standartida rozetkalar shaklidir fayl tavsiflovchi, tufayli Unix falsafasi "hamma narsa fayl" ekanligi va rozetkalar va fayllar o'rtasidagi o'xshashliklar. Ikkalasida ham o'qish, yozish, ochish va yopish funktsiyalari mavjud. Amalda farqlar o'xshashlikni kuchaytiradi va rozetkada turli xil interfeyslar (yuborish va qabul qilish) ishlatiladi. Yilda jarayonlararo aloqa, har bir uchi odatda o'z uyasiga ega.

TCP va UDP standart Internet protokollarida rozetkaning manzili an birikmasi hisoblanadi IP-manzil va a port raqami, xuddi telefon aloqasining bir uchi a kombinatsiyasiga o'xshaydi telefon raqami va xususan kengaytma. Soketlarda manba manzili bo'lishi shart emas, masalan, faqat ma'lumotlarni yuborish uchun, lekin dastur bo'lsa bog'laydi manba manziliga rozetka, rozetkadan ushbu manzilga yuborilgan ma'lumotlarni qabul qilish uchun foydalanish mumkin. Ushbu manzil asosida Internet-rozetkalari kiruvchi ma'lumotlarni etkazib beradi ma'lumotlar paketlari tegishli dasturga jarayon.

Soket ko'pincha Internet-rozetka yoki TCP-rozetkaga tegishli. Internet-rozetka minimal xususiyatlarga ega:

  • mahalliy soket manzili, mahalliy IP-manzildan va (TCP va UDP uchun, lekin IP emas) port raqamidan iborat
  • protokol: transport protokoli, masalan, TCP, UDP, xom IP. Bu shuni anglatadiki, TCP porti 53 va UDP porti 53 bo'lgan (mahalliy yoki uzoqdan) so'nggi nuqtalar alohida uyalar, IP esa portlarga ega emas.
  • Boshqa rozetkaga ulangan rozetka, masalan, TCP ulanishini o'rnatish paytida, shuningdek, uzoqdan rozetkaning manzili mavjud.

Ta'rif

Soket (ichki vakolatxona), rozetka identifikatori (mavhum identifikator) va rozetka manzili (jamoat manzili) o'rtasidagi farqlar juda nozik bo'lib, ular har doim ham kundalik foydalanishda farq qilinmaydi. Bundan tashqari, a ning aniq ta'riflari rozetka mualliflar o'rtasida farq qiladi. Yilda IETF Izohlar uchun so'rov, Internet standartlari, ko'plab darsliklarda, shuningdek ushbu maqolada, atama rozetka rozetkaning raqami bilan yagona identifikatsiyalangan shaxsni anglatadi. Boshqa darsliklarda,[1] atama rozetka mahalliy soket manziliga, ya'ni "IP-manzil va port raqamining kombinatsiyasi" ga ishora qiladi. Ning asl ta'rifida rozetka berilgan RFM 147 bilan bog'liq bo'lganligi sababli ARPA tarmog'i 1971 yilda, "rozetka qabul qiluvchi rozetkalarni aniqlovchi va yuboruvchi rozetkalarni aniqlovchi rozetkalarni aniqlaydigan 32 razryadli raqam sifatida ko'rsatilgan." Biroq, bugungi kunda soket aloqalari ikki tomonlama.

Operatsion tizim va rozetkani yaratgan dastur ichida soket a deb nomlangan noyob butun qiymat bilan ataladi soket tavsiflovchi.

Asboblar

Unix-ga o'xshash operatsion tizimlarda va Microsoft Windows, buyruq qatori vositalari netstat yoki ss[2] o'rnatilgan rozetkalarni va tegishli ma'lumotlarni ro'yxatlash uchun ishlatiladi.

Misol

Berkli socket interfeysi asosida modellashtirilgan ushbu misol "Salom, dunyo!" Satrini yuboradi. orqali TCP 1.2.3.4 manzili bilan xostning 80-portiga. Bu rozetkaning (getSocket) yaratilishini, uni masofaviy xostga ulab, mag'lubiyatni yuborishini va nihoyat rozetkani yopishini tasvirlaydi.

Socket mysocket = getSocket (type = "TCP") connect (mysocket, address = "1.2.3.4", port = "80") send (mysocket, "Hello, world!") Close (mysocket)

Turlari

Internet-rozetkaning bir nechta turlari mavjud:

Datagram soketlari
Ulanishsiz ishlatadigan rozetkalar Foydalanuvchi Datagram protokoli (UDP).[3] Datagram rozetkasiga yuborilgan yoki qabul qilingan har bir paket alohida manzilga yo'naltiriladi va yo'naltiriladi. Datagram rozetkalari bilan buyurtma va ishonchlilik kafolatlanmaydi, shuning uchun bir mashinadan yoki jarayondan boshqasiga yuborilgan bir nechta paket har qanday tartibda kelishi yoki umuman kelmasligi mumkin. Yuborish uchun maxsus konfiguratsiya talab qilinishi mumkin eshittirishlar Datagram rozetkasida.[4] Eshittirish paketlarini qabul qilish uchun datagram rozetkasi ma'lum bir manzil bilan bog'lanmasligi kerak, ammo ba'zi bir dasturlarda, agar ma'lumotlar bazasi soketi ma'lum bir manzilga bog'langan bo'lsa, translyatsiya paketlari ham olinishi mumkin.[5]
Oqim rozetkalari
Aloqa yo'naltirilgan ishlatadigan rozetkalar Transmissiyani boshqarish protokoli (TCP), Oqim boshqarishni uzatish protokoli (SCTP) yoki Datagram tiqilinchini boshqarish protokoli (DCCP). Oqim rozetkasi a ni ta'minlaydi ketma-ket va yozuvlar chegaralari bo'lmagan, ulanishlarni yaratish va yo'q qilish uchun aniq belgilangan mexanizmlar va xatolar haqida xabar berish uchun xatosiz ma'lumotlarning noyob oqimi. Oqim rozetkasi ma'lumotlarni uzatadi ishonchli, tartibda va bilan guruhdan tashqarida imkoniyatlar. Internetda oqim rozetkalari odatda TCP yordamida amalga oshiriladi, shunda dasturlar TCP / IP protokoli yordamida istalgan tarmoqlarda ishlaydi.
Xom rozetkalar
Hech qanday protokolga xos transport qatlami formatlashisiz IP-paketlarni to'g'ridan-to'g'ri yuborish va qabul qilishga ruxsat bering. Boshqa turdagi rozetkalar bilan foydali yuk avtomatik ravishda kapsulalangan tanlangan transport qatlami protokoliga muvofiq (masalan, TCP, UDP) va rozetka foydalanuvchisi protokol mavjudligini bilmaydi sarlavhalar foydali yuk bilan efirga uzatiladigan. Xom rozetkadan o'qiyotganda, sarlavhalar odatda qo'shiladi. Paketlarni xom rozetkadan uzatishda sarlavhani avtomatik qo'shish ixtiyoriydir.
Ko'p soket amaliy dasturlash interfeyslari (API), masalan asoslangan Berkli rozetkalari, xom rozetkalarni qo'llab-quvvatlash. Windows XP 2001 yilda chiqarilgan rozetkalarni qo'llab-quvvatlash bilan chiqarildi Uinsok interfeysi, ammo uch yil o'tgach, Microsoft xavfsizlik sababli Winsock-ning xom rozetkasini qo'llab-quvvatlashni chekladi.[6]
Xom rozetkalar xavfsizlik bilan bog'liq dasturlarda ishlatiladi Nmap. Xom rozetkalardan foydalanish holatlaridan biri bu transport qatlamining yangi protokollarini amalga oshirishdir foydalanuvchi maydoni.[7] Xom rozetkalar odatda tarmoq uskunalarida mavjud va ular uchun ishlatiladi marshrutlash protokollari kabi Internet guruhini boshqarish protokoli (IGMP) va Avval qisqa yo'lni oching (OSPF) va Internetni boshqarish bo'yicha xabar protokoli (ICMP), boshqa narsalar qatori, tomonidan ishlatilgan ping dasturi.[8]

Boshqa soket turlari, masalan, boshqa transport protokollari orqali amalga oshiriladi Tizimlarning arxitekturasi[9] va Unix domen rozetkalari ichki jarayonlararo aloqa uchun.

Mijoz-server modelidagi soket holatlari

Amaliy xizmatlarni taqdim etadigan kompyuter jarayonlari deb nomlanadi serverlar, va ishga tushirishda rozetkalarni yarating tinglash holati. Ushbu uyalar tashabbuslarni kutmoqda mijoz dasturlar.

TCP-server bir vaqtning o'zida bir nechta mijozlarga yangi bolalar jarayonida har bir mijoz ulanishi uchun alohida ajratilgan soket yaratish yoki har bir mijoz uchun ishlov berish oqimini yaratish orqali xizmat qilishi mumkin. Bular o'rnatilgan davlat qachon rozetkadan rozetkaga virtual ulanish yoki TCP deb ham ataladigan virtual sxema (VC) sessiya, dupleksni ta'minlaydigan masofaviy rozetka bilan o'rnatiladi bayt oqimi.

Server bir xil mahalliy port raqamiga va mahalliy IP-manzilga ega bo'lgan bir vaqtning o'zida bir nechta o'rnatilgan TCP soketlarini yaratishi mumkin, ularning har biri o'z mijoz-protsessiga xizmat ko'rsatadigan o'z server-bola jarayoniga moslashtirilgan. Ular operatsion tizim tomonidan turli xil rozetkalar sifatida ko'rib chiqiladi, chunki masofaviy soket manzili (mijozning IP-manzili yoki port raqami) har xil; ya'ni ular boshqacha bo'lgani uchun rozetka jufti koreyslar.

UDP rozetkalarida a mavjud emas o'rnatilgan davlat, chunki protokol ulanishsiz. UDP-server jarayoni barcha uzoq mijozlardan keladigan datagramlarni ketma-ket bitta rozetka orqali boshqaradi. UDP soketlari masofaviy manzil bilan emas, faqat mahalliy manzil bilan aniqlanadi, garchi har bir xabarda har bir datagramdan tarmoq dasturini dasturlash interfeysi (API) bilan olish mumkin bo'lgan bog'liq masofaviy manzil mavjud.

Soket juftlari

Aloqa qiluvchi mahalliy va uzoqdagi soketlar chaqiriladi soket juftlari. Har bir soket juftligi noyob tomonidan tavsiflangan 4-karra manba va manzil IP-manzillari va port raqamlaridan, ya'ni mahalliy va masofaviy soket manzillaridan iborat.[10][11] Yuqorida muhokama qilinganidek, TCP holatida, ulanishning har bir uchida rozetka juftligi noyob 4-karra bilan bog'langan.

Tarix

Atama rozetka nashr etilgan sanalar RFM 147 1971 yilda, u ARPANET-da ishlatilganda. Soketlarning aksariyat zamonaviy dasturlari asoslanadi Berkli rozetkalari (1983) va shunga o'xshash boshqa to'plamlar Uinsok (1991). Berkeley soketlari API Berkli dasturiy ta'minotini tarqatish (BSD), 4.2BSD bilan kelib chiqqan Unix operatsion tizimi API sifatida. Biroq, faqat 1989 yilda bu mumkin edi Berkli litsenziyalash cheklovlarisiz o'z operatsion tizimi va tarmoq kutubxonasi versiyalarini chiqarish AT & T mualliflik huquqi bilan himoyalangan Unix.

C. 1987 yil, AT&T kompaniyasi STREAMS asoslangan Transport qatlami interfeysi (TLI) in UNIX tizimi V 3 (SRV3) chiqaring.[12] va 4-nashrda (SVR4) davom etdi.[13]

Boshqa dastlabki dasturlar uchun yozilgan TOPS-20,[14] MVS,[14] VM,[14] IBM-DOS (PCIP).[14][15]

Tarmoq uskunasidagi rozetkalar

Soket, avvalambor, transport qatlamida ishlatiladigan tushuncha Internet modeli. Kabi tarmoq uskunalari routerlar va kalitlar transport qatlamini amalga oshirishni talab qilmaydi, chunki ular ishlaydi havola qatlami darajasida (kalitlarga) yoki Internet qatlami (marshrutizatorlar). Biroq, davlat tarmoq xavfsizlik devorlari, tarmoq manzili tarjimonlari va proksi-serverlar faol soket juftlarini kuzatib boradi. Shuningdek, adolatli navbat, 3-qatlamni almashtirish va xizmat ko'rsatish sifati Routerlarda (QoS) qo'llab-quvvatlash, paketlar oqimi rozetka juftliklari haqida ma'lumot olish orqali aniqlanishi mumkin. Xom rozetkalar odatda tarmoq uskunalarida mavjud va ulardan foydalaniladi marshrutlash protokollari kabi IGRP va OSPF va Internetni boshqarish bo'yicha xabar protokoli (ICMP).

Shuningdek qarang

Adabiyotlar

  1. ^ Cisco Networking Academy dasturi, CCNA 1 va 2 Companion Guide Revised Third Edition, P.480, ISBN  1-58713-150-1
  2. ^ Jek Uolen (2019-01-22). "SS buyrug'iga kirish".
  3. ^ V. S. Bagad, I. A. Dhotre (2008), Kompyuter tarmoqlari (5-tahrirdagi nashr, 2010 y. Nashr), Texnik nashrlar Pune, p. 52
  4. ^ SO_BROADCAST, Microsoft, olingan 2019-12-12
  5. ^ DatagramSocket sinfi, Oracle, olingan 2019-12-12
  6. ^ IanG on Tap uchun Yan Griffits. 2004 yil 12-avgust. Xom rozetkalar XP SP2 da ketdi
  7. ^ "xom (7): IPv4 xom rozetkalari - Linux man sahifasi". die.net.
  8. ^ "Raw IP Networking FAQ". faqs.org.
  9. ^ "www-306.ibm.com - SNK ustidagi soketlarga mo'ljallangan AnyNet qo'llanmasi". Arxivlandi asl nusxasi 2008-05-03 da. Olingan 2006-09-07.
  10. ^ books.google.com - UNIX Tarmoq dasturlash: soket tarmog'i API
  11. ^ books.google.com - BSD Rootkits-ni loyihalash: Kernel Hacking-ga kirish
  12. ^ (Goodheart 1994 yil, p. 11)
  13. ^ (Goodheart 1994 yil, p. 17)
  14. ^ a b v d historyofcomputercommunications.info - Kitob: 9.8 TCP / IP va XNS 1981 - 1983
  15. ^ Tarmoq ishtirokchisi sifatida ish stoli kompyuter.pdf 1985

Tashqi havolalar