OSI modeli
Salom. Ushbu maqolani tarmoqlarni o'rganayotgan dasturchilarga bag'ishlamoqchiman. Agar kimdir OSI haqida eshitgan bo'lsa demak bugun biz shu narsa haqida gaplashamiz, eshitmagan bo'lsa ham :). Keling gapni ko'p cho'zmayda maqsada o'ta qoliy.
Rasmda ko'rib turganingizdan OSI modeli 7 ta pag'ona (layer) dan iborat. Shuni eng tagidan boshlab tepasigacha chiqamiz bugun.
Agar siz oddiy foydalanuvchi bo'lsangiz siz bularni birontasi haqida eshitmagan bo'lsangiz kerak. Agar siz biror marta tarmoq bilan ishlaydigan dastur tuzgan bo'lsangiz, unda OSI modelining 4 ta layer bilan ishlagan bo'lasiz.
Physical — fizik pag'ona. Bu pag'onaning asosiy vazifasi ikkita host (kompyuter) ni orasida bitlarni jo'natishdir. Bu pag'onaga har xil turdagi kabellar yoki kabelsiz ma'lumot jo'natadigan qurilmalarni kiritsak bo'ladi. Misol uchun ikkita har xil cho'qqida turgan odamning qo'llarida lazer bor. Har bir sekundni bit vaqtdi deb qarab, lazer yonganda 1 yonmaganda 0 deb qarab ma'lumot uzatadigan bo'lsak demak qo'limizdagi lazerlar OSI ning 7 chi pag'pnasiga tegishli bo'lgan qurilma hisoblanadi ya'ni ma'lumot yetkazishni ta'minlaydigan qurilma. 10Baset-T, 100Base-T larni ham misol qilsak bo'ladi.
ru.wikipedia.org/wiki/Физический_уровень
Data link — ma'lumot pag'onasi. Fizik kanalda ma'lumot jo'natilayotganda shu kanalning band yoki bandmasligi tekshirilmaydi. Bu esa bitlarning yemirilishiga (yo'q bo'lib ketishiga) olib keladi. Ushbu pag'ona esa shunaqa kamchiliklarning oldini olish va fizik kanaldagi xatoliklarni topishga ishlatiladi. Bu pag'onada ma'lumotlar frame (kadr, bitlar tuzilmasi) ko'rinishga olib kelinadi. Uzatilayotgan har bir kadr boshiga va oxiriga maxsus qonuniyat asosida boshqaruv bitlari (специальную последовательность) joylashtiriladi. Qabul qilgan host kelgan ma'lumotga asoslanib qonuniyat asosida boshqaruv bitlarini hosil qiladi va jo'natilgani bilan solishtiradi. Agar maxsus bitlar bir-birga mos kelsa kadr (frame) qabul qilnadi, aks holda o'chirib tashlanadi.
Bu pag'ona bilan ishlaydigan protokollarga Ethernet va PPP larni misol qilsak bo'ladi. "Tarmoqdagi kompyuter MAC manzilini olish. Ethernet va ARP." maqolamni o'qigan bo'lsangiz shu yerda Ethernet protokoli haqida qisqacha gapirib o'tganman. Shu maqoladagi «CRC checksum» biz etgan kadrning maxsus qonuniyatdagi bitlari hisoblanadi.
Keling lazer misolida ko'rsak. Siz og'ayningiz bilan har 10 sekundni bitta kadr deb qaradingiz ya'ni 10 sekundda jo'natilgan 1 va 0 lar bitta kadr. Keyin jo'natilgan 9 ta bitda 1 lar ko'p bo'lsa 10-bitga 1 ni, agar 0 lar ko'p bo'lsa 10-bitga 0 ni qo'yishni kelishib oldingiz. Agar og'ayningiz 9 sekund ichida lazerni 1,3,7,8,9 sekunlarda yoqsa demak sizga 101000111 ko'rinishidagi ma'lumot jo'natgan. 10-sekundda esa yana bir marta yoqadi. Chunki jo'natgan ma'lumotida 1 lar ko'p. Agar 10-sekundda lazerni yoqmasa demak bu boshqa odam bo'ladi. Sizlarning manashu kelishuvinglar OSI ning 2-pag'onasiga to'g'ri keladi.
ru.wikipedia.org/wiki/Канальный_уровень
Network — tarmoq pag'onasi. Bu pag'ona ma'lumotning har xil turdagi kanallarida yetib borishini ta'minlaydi. Misol uchun Wi-Fi bilan ulangan notebookning yana bir kompyuter orqali internetga chiqishini aytsak bo'ladi. O'rtaga ikki xil kanal mavjud, lekin siz internetga be'malol kira olasiz. Shuni ta'minlaydigan protokollar guruhi ushbu pag'onaga tegishlidir. Bu pag'onadagi ma'lumotlar guruhini paket (packet) deb nomlashgan. Bularga IPv4, IPv6, IPX, ARP,….
Yana qo'shimchasiga, ushbu pag'onadagi protokollar jo'natilayotgan paketning yurib borish marshutini (yo'nalishini) aniqlashga xizmat qiladi.
Lazerchilar misolida. Atrofingizdagi 4 ta cho'qqida lazer bilan 4 ta odam turibdi, siz o'rtadasiz. Siz yuqorida keltirilgan protokol bo'yicha (data link) gaplasha olasiz hammasi bilan. Endi keling og'ayningiz jo'natga 10 bitli ma'lumotning dastlabki 2 biti kimgaligini ko'rsatsin. Ya'ni 00 — 1-odam, 01 — 2-odam, 10 — 3-odam, 11 — 4-odam. Endi agar sizga kimdi 0110101101 ma'lumot kelsa, siz nastlabki 2 bitini ko'rib, shu ma'lumotni 2-odamga shu ma'lumotni uzatasiz. Agar ushqu pag'onadagi protokollar bo'lmasa, siz olgan ma'lumotingiz hammaga jo'natishingiz to'g'ri kelardi.
ru.wikipedia.org/wiki/Сетевой_уровень
Transport — transport (o'tkazish) pag'onasi. Bu pag'ona jo'natilgan ma'lumotning yetib borishiga xizmat qiladigan protokollar tashkil topgandir. Tarmoq pag'onasidan farqi shuki, tarmoq pag'onasi faqat yo'lni ko'rsatadi, bu pag'ona esa shu yo'ldan jo'natilgan ma'lumotning yetib borishini ta'minlaydi. Misol uchun TCP, UDP protokollarini aytsak bo'ladi. To'g'ri UDP paketi yetib bormasligi mumkin lekin kichik tarmoq ichida 100% yetib boradi.
Lazerchilarga qaytsak. Agar siz kelgan ma'lumotni olib kerakli odamga yetkazib boshqa hech nima qilmasangiz, bu UDP protokoliga o'xshash holat bo'ladi. Agar siz ma'lumotni olib uni yetkazgan odamingizda to'liq yetib borganligi haqida ma'lumot olib uni ma'lumotni jo'natgan odamga yetkazsangiz bu TCP protokoliga o'xshaydi.
ru.wikipedia.org/wiki/Транспортный_уровень
Session — seansli (sessiyali) pag'onasi. Bu pag'ona protokollari qandaydir ID (indentifikator) yordamida ma'lumot almashishni ta'minlaydi. Tushunarli bo'lichi uchun, ko'pchiligimiz VPN ishlatganmiz. Boshida ulangunimizcha bir marotaba login/parol teramiz va internetga yoki tarmoqqa ulanib ishimizni qilaveramiz. Shu yerda sizga indentifikator beriladi va shu identifikator yordamida sizga tarmoqqa ulanishingizga ruxsat beriladi.
Lazerchilar holatida. Siz o'rtadagi odamsiz va siz bilan gaplashadigan 4 ta odamlarga 4 xil parol berib qo'yibsiz. Tasavvur qiling
Shu odamlar siz orqali kimdagir xat jo'natmoqchi bo'lsa oldin sizga parolini jo'natishi kerak, siz parolni solishtirib ko'rasiz va unga hayolingizga kelgan biror bir raqamni etasiz (bir biriga o'xshamgan). Va keyingi safar shu odam ma'lumot uzatmoqchi bo'lsa shu odamdan siz parolni emas, boya siz bergan raqamni so'risiz. Agar to'g'ri kelsa ma'lumotini uzatasiz.
Presentation — taqdimot pag'onasi. Bu pag'onaning asosiy vasifasi dasturlar tomonidan berilgan ma'lumotli zarur bo'lgan aniq bir turga o'tkazish yoki uni shifrlash yoki arxivlashdan iborat. Bundan tashqari ushbu pag'onaga rasm format turlari TIFF, JPEG va audio/video format turlari kiradi.
Bu yaxshiroq tushinish uchun quyidagi holatni aytaman. Hozirgi kunda deyarli barcha joydagi tarmoqdan ma'lumot jo'natsak, har qanday ma'lumotni bayt ko'rinishida jo'natamiz. Bu baytni qiymatini ASCII jadvali bo'yicha olishimiz mumkin. Agar «OpenNet.Uz» so'zini internet orqali jo'natmoqchi bo'lsak C# da quyidagicha yozamiz
bunda data ASCII jadvali bo'yicha sonlar hosil bo'ladi. Tarmoqda jo'natgandan keyin qabul qilgan dastur so'zni o'qishi uchun
Ya'ni tarmoqda biz byte lar bilan almashamiz, lekin xuddi shunga o'xshagan IBM tomonidan chiqarilgan yana bir protokol bor ru.wikipedia.org/wiki/EBCDIC. Bunda «OpenNet.Uz» so'zimi umuman boshqacha ko'rinishni olgan bo'lardi. Umuman dasturdan kelgan ma'lumotni kerakli turga o'tkazish yoki ma'lumotni qayta tiklash jarayonlari ushbu pag'onaga tegishlidir.
ru.wikipedia.org/wiki/Представительский_уровень
Application — dasturiy pag'ona. Manimcha OSI ichidagi eng osoni va oxirgi pag'onasi hisoblanadi. Bunda biz bilgan HTTP, FTP, DNS kabilar kiradi. Bunda ma'lumot almashish protokoli siz tuzayotgan dastur tomonidan aniqlanadi. Ya'ni siz o'zingiz hohlagan protokolni ishlatib ma'lumot almashishingiz mumkin. Bu protokollarni SocketSniffer lar yordamida be'malol ko'rsangiz bo'ladi.
ru.wikipedia.org/wiki/Протоколы_прикладного_уровня
Barchasini umumiy qilsak:
Yana shuni qo'shimcha qilishim kerak, ayrim protokollar 4 pag'onaga bo'linib OSI barcha qadamlarini qoplab, ayrimlarini bur guruh qilib 1 pag'ona deb ko'radi.
Agar maqolada kamchiliklar yoki yetishmovchiliklar bo'lsa komentariya qoldiring. To'g'rilab qo'yaman.
Savollar bo'lsa marhamat.
UPD:
1. Qatlam so'zi pag'onaga o'zgartirildi.
2. Presentation ni tarjimasi yozildi.
Rasmda ko'rib turganingizdan OSI modeli 7 ta pag'ona (layer) dan iborat. Shuni eng tagidan boshlab tepasigacha chiqamiz bugun.
Agar siz oddiy foydalanuvchi bo'lsangiz siz bularni birontasi haqida eshitmagan bo'lsangiz kerak. Agar siz biror marta tarmoq bilan ishlaydigan dastur tuzgan bo'lsangiz, unda OSI modelining 4 ta layer bilan ishlagan bo'lasiz.
Physical — fizik pag'ona. Bu pag'onaning asosiy vazifasi ikkita host (kompyuter) ni orasida bitlarni jo'natishdir. Bu pag'onaga har xil turdagi kabellar yoki kabelsiz ma'lumot jo'natadigan qurilmalarni kiritsak bo'ladi. Misol uchun ikkita har xil cho'qqida turgan odamning qo'llarida lazer bor. Har bir sekundni bit vaqtdi deb qarab, lazer yonganda 1 yonmaganda 0 deb qarab ma'lumot uzatadigan bo'lsak demak qo'limizdagi lazerlar OSI ning 7 chi pag'pnasiga tegishli bo'lgan qurilma hisoblanadi ya'ni ma'lumot yetkazishni ta'minlaydigan qurilma. 10Baset-T, 100Base-T larni ham misol qilsak bo'ladi.
ru.wikipedia.org/wiki/Физический_уровень
Data link — ma'lumot pag'onasi. Fizik kanalda ma'lumot jo'natilayotganda shu kanalning band yoki bandmasligi tekshirilmaydi. Bu esa bitlarning yemirilishiga (yo'q bo'lib ketishiga) olib keladi. Ushbu pag'ona esa shunaqa kamchiliklarning oldini olish va fizik kanaldagi xatoliklarni topishga ishlatiladi. Bu pag'onada ma'lumotlar frame (kadr, bitlar tuzilmasi) ko'rinishga olib kelinadi. Uzatilayotgan har bir kadr boshiga va oxiriga maxsus qonuniyat asosida boshqaruv bitlari (специальную последовательность) joylashtiriladi. Qabul qilgan host kelgan ma'lumotga asoslanib qonuniyat asosida boshqaruv bitlarini hosil qiladi va jo'natilgani bilan solishtiradi. Agar maxsus bitlar bir-birga mos kelsa kadr (frame) qabul qilnadi, aks holda o'chirib tashlanadi.
Bu pag'ona bilan ishlaydigan protokollarga Ethernet va PPP larni misol qilsak bo'ladi. "Tarmoqdagi kompyuter MAC manzilini olish. Ethernet va ARP." maqolamni o'qigan bo'lsangiz shu yerda Ethernet protokoli haqida qisqacha gapirib o'tganman. Shu maqoladagi «CRC checksum» biz etgan kadrning maxsus qonuniyatdagi bitlari hisoblanadi.
Keling lazer misolida ko'rsak. Siz og'ayningiz bilan har 10 sekundni bitta kadr deb qaradingiz ya'ni 10 sekundda jo'natilgan 1 va 0 lar bitta kadr. Keyin jo'natilgan 9 ta bitda 1 lar ko'p bo'lsa 10-bitga 1 ni, agar 0 lar ko'p bo'lsa 10-bitga 0 ni qo'yishni kelishib oldingiz. Agar og'ayningiz 9 sekund ichida lazerni 1,3,7,8,9 sekunlarda yoqsa demak sizga 101000111 ko'rinishidagi ma'lumot jo'natgan. 10-sekundda esa yana bir marta yoqadi. Chunki jo'natgan ma'lumotida 1 lar ko'p. Agar 10-sekundda lazerni yoqmasa demak bu boshqa odam bo'ladi. Sizlarning manashu kelishuvinglar OSI ning 2-pag'onasiga to'g'ri keladi.
ru.wikipedia.org/wiki/Канальный_уровень
Network — tarmoq pag'onasi. Bu pag'ona ma'lumotning har xil turdagi kanallarida yetib borishini ta'minlaydi. Misol uchun Wi-Fi bilan ulangan notebookning yana bir kompyuter orqali internetga chiqishini aytsak bo'ladi. O'rtaga ikki xil kanal mavjud, lekin siz internetga be'malol kira olasiz. Shuni ta'minlaydigan protokollar guruhi ushbu pag'onaga tegishlidir. Bu pag'onadagi ma'lumotlar guruhini paket (packet) deb nomlashgan. Bularga IPv4, IPv6, IPX, ARP,….
Yana qo'shimchasiga, ushbu pag'onadagi protokollar jo'natilayotgan paketning yurib borish marshutini (yo'nalishini) aniqlashga xizmat qiladi.
Lazerchilar misolida. Atrofingizdagi 4 ta cho'qqida lazer bilan 4 ta odam turibdi, siz o'rtadasiz. Siz yuqorida keltirilgan protokol bo'yicha (data link) gaplasha olasiz hammasi bilan. Endi keling og'ayningiz jo'natga 10 bitli ma'lumotning dastlabki 2 biti kimgaligini ko'rsatsin. Ya'ni 00 — 1-odam, 01 — 2-odam, 10 — 3-odam, 11 — 4-odam. Endi agar sizga kimdi 0110101101 ma'lumot kelsa, siz nastlabki 2 bitini ko'rib, shu ma'lumotni 2-odamga shu ma'lumotni uzatasiz. Agar ushqu pag'onadagi protokollar bo'lmasa, siz olgan ma'lumotingiz hammaga jo'natishingiz to'g'ri kelardi.
ru.wikipedia.org/wiki/Сетевой_уровень
Transport — transport (o'tkazish) pag'onasi. Bu pag'ona jo'natilgan ma'lumotning yetib borishiga xizmat qiladigan protokollar tashkil topgandir. Tarmoq pag'onasidan farqi shuki, tarmoq pag'onasi faqat yo'lni ko'rsatadi, bu pag'ona esa shu yo'ldan jo'natilgan ma'lumotning yetib borishini ta'minlaydi. Misol uchun TCP, UDP protokollarini aytsak bo'ladi. To'g'ri UDP paketi yetib bormasligi mumkin lekin kichik tarmoq ichida 100% yetib boradi.
Lazerchilarga qaytsak. Agar siz kelgan ma'lumotni olib kerakli odamga yetkazib boshqa hech nima qilmasangiz, bu UDP protokoliga o'xshash holat bo'ladi. Agar siz ma'lumotni olib uni yetkazgan odamingizda to'liq yetib borganligi haqida ma'lumot olib uni ma'lumotni jo'natgan odamga yetkazsangiz bu TCP protokoliga o'xshaydi.
ru.wikipedia.org/wiki/Транспортный_уровень
Session — seansli (sessiyali) pag'onasi. Bu pag'ona protokollari qandaydir ID (indentifikator) yordamida ma'lumot almashishni ta'minlaydi. Tushunarli bo'lichi uchun, ko'pchiligimiz VPN ishlatganmiz. Boshida ulangunimizcha bir marotaba login/parol teramiz va internetga yoki tarmoqqa ulanib ishimizni qilaveramiz. Shu yerda sizga indentifikator beriladi va shu identifikator yordamida sizga tarmoqqa ulanishingizga ruxsat beriladi.
Lazerchilar holatida. Siz o'rtadagi odamsiz va siz bilan gaplashadigan 4 ta odamlarga 4 xil parol berib qo'yibsiz. Tasavvur qiling
1-odamning paroli: Password1
2-odamning paroli: Password2
3-odamning paroli: Password3
4-odamning paroli: Password4
Shu odamlar siz orqali kimdagir xat jo'natmoqchi bo'lsa oldin sizga parolini jo'natishi kerak, siz parolni solishtirib ko'rasiz va unga hayolingizga kelgan biror bir raqamni etasiz (bir biriga o'xshamgan). Va keyingi safar shu odam ma'lumot uzatmoqchi bo'lsa shu odamdan siz parolni emas, boya siz bergan raqamni so'risiz. Agar to'g'ri kelsa ma'lumotini uzatasiz.
Presentation — taqdimot pag'onasi. Bu pag'onaning asosiy vasifasi dasturlar tomonidan berilgan ma'lumotli zarur bo'lgan aniq bir turga o'tkazish yoki uni shifrlash yoki arxivlashdan iborat. Bundan tashqari ushbu pag'onaga rasm format turlari TIFF, JPEG va audio/video format turlari kiradi.
Bu yaxshiroq tushinish uchun quyidagi holatni aytaman. Hozirgi kunda deyarli barcha joydagi tarmoqdan ma'lumot jo'natsak, har qanday ma'lumotni bayt ko'rinishida jo'natamiz. Bu baytni qiymatini ASCII jadvali bo'yicha olishimiz mumkin. Agar «OpenNet.Uz» so'zini internet orqali jo'natmoqchi bo'lsak C# da quyidagicha yozamiz
byte[] data = Encoding.ASCII.GetBytes("OpenNet.Uz");
bunda data ASCII jadvali bo'yicha sonlar hosil bo'ladi. Tarmoqda jo'natgandan keyin qabul qilgan dastur so'zni o'qishi uchun
string _data = Encoding.ASCII.GetString(data);
Ya'ni tarmoqda biz byte lar bilan almashamiz, lekin xuddi shunga o'xshagan IBM tomonidan chiqarilgan yana bir protokol bor ru.wikipedia.org/wiki/EBCDIC. Bunda «OpenNet.Uz» so'zimi umuman boshqacha ko'rinishni olgan bo'lardi. Umuman dasturdan kelgan ma'lumotni kerakli turga o'tkazish yoki ma'lumotni qayta tiklash jarayonlari ushbu pag'onaga tegishlidir.
ru.wikipedia.org/wiki/Представительский_уровень
Application — dasturiy pag'ona. Manimcha OSI ichidagi eng osoni va oxirgi pag'onasi hisoblanadi. Bunda biz bilgan HTTP, FTP, DNS kabilar kiradi. Bunda ma'lumot almashish protokoli siz tuzayotgan dastur tomonidan aniqlanadi. Ya'ni siz o'zingiz hohlagan protokolni ishlatib ma'lumot almashishingiz mumkin. Bu protokollarni SocketSniffer lar yordamida be'malol ko'rsangiz bo'ladi.
ru.wikipedia.org/wiki/Протоколы_прикладного_уровня
Barchasini umumiy qilsak:
Yana shuni qo'shimcha qilishim kerak, ayrim protokollar 4 pag'onaga bo'linib OSI barcha qadamlarini qoplab, ayrimlarini bur guruh qilib 1 pag'ona deb ko'radi.
Agar maqolada kamchiliklar yoki yetishmovchiliklar bo'lsa komentariya qoldiring. To'g'rilab qo'yaman.
Savollar bo'lsa marhamat.
UPD:
1. Qatlam so'zi pag'onaga o'zgartirildi.
2. Presentation ni tarjimasi yozildi.
Presentation — (tarjima qila olmadim :) ).
:) :) :)
balkim o'zbek tilidagi tarjimasini ubu kim bilar? :)
fmc.uz/word.php?idru=228