Badral's personal blog
Интернет миний ертөнцийг хардаг цонх …

Posts Tagged ‘сүлжээний протоколууд’

Some words to network protocolls

Sunday, January 9th, 2011

Компьютерын сүлжээний протоколын талаар маш энгийн бөгөөд ойлгомжтой тайлбарлахыг хичээе. Тийм их цаг гаргаж чадахгүй тул маш товч бичнэ.
Үүнийг бичих болсон шалгаан нь манай залуус онолыг цээжээр мэдээд, практик дээр мөн сүлжээгээ сүрхий тавьчихдаг хэрнээ тэр 2 холбож сайн мэдэхгүй юм. Энэ манай их дээд сургуулиудын сургалттай холбоотой байх.
Би 1998 онд КТМС-т Мөнхбаяр хэмээх багшаар сүлжээний хичээл заалгаж байсан бөгөөд тухайн үед сургуульд интернет орж ирээд ч удаагүй байж, Мөнхбаяр багш ч шинэхэн байж хөөрхий багш маань зааж байсан хичээлээ ойлгодог ч байсан юм уу үгүй юм уу, нэг лайтай зузаан англи номыг эргүүлээд учир нь олдохгүй өгүүлбэр уншаад цээж бичиг бичүүлээд байдаг байж билээ. Заримдаа биш ээ ерөөсөө ингээд биччих гэж авдаг сан. Гэхдээ муу багшаа муулаад яахав, хөөрхий минь сүлжээний OSI reference model буюу “сүлжээний OSI загвар”, түүний 7 төвшин байдаг гэсэн ойлголтыг өгөх нь өгсөн. Түүнээс цааш харин байхгүй. Одоо харин байдал эрс дээрдсэн байх гэж найдаж байна.
Сүлжээний протокол нь хоостууд хоорондын харилцах дүрэм л гэсэн үг. Хүн дээр бол жишээ нь хэл гэж юм байна. Та англи хэл мэдэхгүй байхдаа “Apple” гэсэн үг хараад “Алим” гэж ойлгохгүй. Харин “Алим” гэж байвал аахан нэг тийм хазаад иддэг жимс байна гээд дор нь ойлгоно. Гэтэл зарим хүмүүс тэр жимсийг “Яавлаг”, “Яблок”, “Аппл” гэж ярих нь бий. (Монгол хэл гэсэн протоколыг зарим хүмүүс маш ихээр эвдэж, үр ашиггүй болгож байна.) Тэдгээрийг хөдөөнөөс орж ирсэн мань мэт нь ойлгохгүй. Ойлголцохын тулд яах вэ? Тэр жимсийг алим гэж оноож нэрлэсэн байх явдал. Тэгж оноож тодорхойлсон цаашилбал тэр ISO гээд айхтар стандартаар нь баталсан тодорхойлолтыг протокол гээд байгаа.
Энд би протоколын талаар хялбарчлан авч үзэж буй тул OSI 7 төвшин биш интернет протоколын бухлын 5 (Protocoll stack – протоколын бухал гэж өвсний бухал шиг утгаар хэрэглэв 🙂 ) төвшинд авч үзье. Ер нь бол яг нарийн авч үзвэл 5 төвшиндөө ч цэвэр салж өгдөггүй шүү дээ. Жишээлбэл маш олон протоколууд алдаанаас хамгаалахын тулд доод төвшнийхөө функцүүдийг давхар агуулсан байдаг.
За та вэб хуудас үзэхэд ямар протоколуудыг хэрэглэх вэ гэвэл HTTP(S), TCP/IP, … гэх мэт гээд л торохгүй. Тэгвэл ялгаа нь юу вэ гэхээр суучих жишээтэй. Ялгаа нь өөр өөр төвшний протоколууд юм. Өөр өөр төвшний протоколууд мэдээж ойлголцохгүй. Жишээлбэл та бичиг мэдэхгүй хүнд АЛИМ гэж бичээд нөгөө хүн чинь таныг уншиж хэлж өгөхөөс нааш яагаад ч ойлгохгүйтэй ижил. Ер нь манай багш нар юу юу гэж орчуулж хэрэглэж байгааг бүү мэд. Би өөрийнхөөрөө дээрээс нь доош нөгөө таван төвшнөө оноогоод нэрлэчие.

  1. Програмын төвшин – Хэрэглэгчийн програмууд харьцдаг тул (Application layer- махчилбал хэрэглээний төвшин)
    Энэхүү төвшинд HTTP, HTTPS, FTP, SMTP, LDAP … гэх мэт олон протоколууд хамаарна. Тэдгээр протоколууд нь програмуудад хэрэглэгддэг дээд төвшний протоколууд. Та бид програмчлалдаа энэхүү протоколууд шиг протоколууд үүсгээд програмчлах боломжтой гэсэн үг. (таны толгойд socket programming орж ирж байгаа байхаа)
    Энэ төвшний өгөгдлүүдийг зурвас буюу message гэж ярьдаг.
  2. Зөөврийн төвшин – Програм хооронд зурвас зөөдөг (Transport layer – махчилбал дамжуулах)
    Интернетийн сүлжээний хувьд энэ төвшинд нөгөө хоёр алдарт TCP, UDP хоёр орж ирнэ дээ. TCP нь тун найдвартай. Манай баруун монголчуудын “элчийн аманд өчих үг бий” гээд захиа илгээдэг шиг илгээсэн эзэн нь санаа зовохгүй унтаж болно. Харин UDP найдваргүй. Гай таарахгүй бол элчийн захиа хүрсэн ч байж болно. Гай таарвал элч дайсантай таараад захиа задарсан байж ч болно. Илгээсэн эзэнд тайван суухад хэцүү. Компьютерийн хувьд яахав бас сүртэй зардалтай биш тул юмыг яаж мэдхэв гээд дахин дахин ар араас нь адилхан зурвасаа илгээгээд байж болдог.
    Мэдээж SPX (Sequenced Packet Exchange) … гэх мэт өөр протоколууд бий. Амьдрал дээр Gateway, Content-Switch, Layer-4-7-Switch-үүдэд хэрэглэгддэг.
    Энэ төвшний өгөгдлүүдийг сегмент буюу segment гэж ярьдаг.
  3. Залгах төвшин – Хаягуудыг зааж өгдөг тул (Network layer – махчилбал сүлжээний төвшин)
    Энэ төвшин нь илгээсэн талын зөөврийн төвшний сегментүүдийг товлосон хаягийн залгах төвшний элементүүдэд нийлүүлэх үйлчилгээг үзүүлнэ. Яг л нөгөө утсаар хэн нэгэн рүү залгахдаа номероо хийдэг шиг энэ төвшин товлосон хаяглалтыг хийж өгдөг.
    Энэхүү төвшинд нөгөө алдарт IP протокол орж ирнэ. Үүнийг тайлбарлах хэрэггүй бизээ. ххх.ххх.ххх.ххх гээд л энд тэндгүй тайлбарласан харагддаг.
    Мэдээж IPsec, IPX, ICMP, IGMP, … гэх мэт өөр протоколууд бий. Амьдрал дээр Router, Layer-3-Switch-үүдэд хэрэглэгддэг.
    Энэ төвшний өгөгдлүүдийг датаграмм буюу datagram гэж ярьдаг.
  4. Сэргийллийн төвшин – Дамжуулалтад хянах код оруулж өгдөг (Link layer – махчилбал сувгийн төвшин)
    Энэ төвшин датаграмуудыг хост тус бүрийн залгах төвшин рүү дамжуулна. Эхээс товлосон хоост уруу биш замд таарах бүх зангилаа (хоост эсвэл рүүтэр) бүр дээр энэ төвшин зам заах үүрэг гүйцэтгэнэ. Тэгэхээр зангилаа бүр дээр мэдээлэл датаграмын төвшин хүртлээ задардаг гэж үзэж болно.
    Энэхүү төвшний протоколууд тухайн сүлжээний төрлөөс хамаараад янз бүр. Жишээлбэл Ethernet, WiFi, and the Point-to-Point Protocol (PPP) гэх мэт. Энэ төвшинд бит өгөгдлүүдээ блок блокоор багцалж checksum буюу шалгах кодууд багц бүрд бичиж өгдөг. Тиймээс би сэргийллийн төвшин гэж авав. Энэ өгөгдлийн алдагдлаас сэргийлэл нь TCP-гийн хяналтаас ялгаатай гэдгийг анхаарна уу.
    Энэ төвшний өгөгдлүүдийг фрейм (кадр ч гэмээр юм уу) буюу frame гэж ярьдаг. Амьдрал дээр Bridge, Switch -үүдэд хэрэглэгддэг.
  5. Физик төвшин (Physic layer)
    Энэ төвшин нь Сэргийллийн төвшний фреймүүдийг бит битээр нь нэг зангилаанаас нөгөө зангилаа руу нийлүүлэх үүрэг гүйцэтгэнэ. Энэ төвшний протоколууд нь сэргийллийн төвшинтэй адил сүлжээний төрөл дээр нэмээд дамжуулах хэрэгслээс хамаарна. Жишээлбэл
    twisted-pair copper wire, coaxial cable, single-mode fiber optics гэх мэт.
    Энэ төвшинд битүүд тухайн дамжуулах хэрэгслээс хамаараад янз бүрээр аргаар яаж ийгээд дамжигдана.
    Амьдрал дээр Repeater, Hub -үүдэд хэрэглэгддэг.

Оюутан хүн уншиж байгаа бол нэршлүүдийг багшийнхаа зааснаар орлуулж ойлгоорой.