Wednesday, October 30, 2013

IP ადრესაცია


1.2.1. შესავალი

      თუ დღევანდელი კომპიუტერული ქსელების სურათს ძალიან გავამარტივებთ და გავაფორმალურებთ, მათ შემადგენელი კომპონენტები შეგვიძლია სამ ნაწილად დავყოთ:
ჰოსტები, კვანძები და შემაერთებელი გარემო (media).



   ჰოსთი - ესაა ქსელის კომპონენტი, რომელიც "ამჩნევს" და ამუშავებს მხოლოდ მისთვის განკუთვნილ ინფორმაციას (კომპიუტერი, ლეპტოპი,პრინტერი და ა.შ.)

   კვანძი არის ქსელის კომპონენტი, რომლის ამოცანაა ჰოსთებისთვის ან სხვა კვანძებისთვის განკუთვნილი ინფორმაციის დამუშავება, ორგანიძება, გადამისამართება და ა.შ. (ჰაბი, სვიჩი, როუტერი და ა.შ.)

   მედია - ესაა გარემო რომელშიც სიგნალი ვრცელდება (მავთული, ელექტრომაგნიტური ტალღები და ა.შ.). ეს არის ის რითაც ჰოსთები და კვანძები უკავშირდებიან ერთმანეთს.

   ყველა შემთხვევაში, ინფორმაციის გადაცემის პროცესის საწყისი და საბოლოო წერტილი არის ჰოსთი.

   ჰოსთების ცალსახა ინდენტიფიკაციისთვის საჭიროა მათი ადრესაცია. სხვადასხვა პროტოკოლები, მათი მიზნების შესაბამისად შეიძლება ადრესაციის სხვადასხვა მექანიზმს იყენებდნენ. ჩვენ განვიხილავთ IP პროტოკოლს და კერძოდ მე-4-ე ვერსიას, შესაბამისად ამ ვერსიაში არსებულ ადრესაციის მექანიზმს.

   IPv4 პროტოკოლის მიხედვით, IP მისამართი არის 32 ბიტიანი რიცხვი. შესაბამისად უმცირესი IP-მისამართია:

000000000000000000000000000000002=010

ხოლო უდიდესი IP-მისამართია:


111111111111111111111111111111112=429496729510

   შესაბამისად დედამიწაზე იყო დრო როდესაც ეგონათ, რომ 4 მილიარდ "ს ჩემტა" აიპი
მისამართი სრულიად საკმარისი იყო კაცობრიობის მოთხოვნებისთვის. ამ დრომ დიდი ხანია ჩაიარა და არსებობს IPv6 სტანდარტი, სადაც ეს და სხვა პრობლემაა მოხსნილი, მაგრამ ეს სხვა საუბრუს თემაა.


1.2.2. წერტილოვანი ათობითი წარმოდგენა.

    ამგვარად IP მისამართი წარმოადგენს რიცხვის 0-დან 4294967295-მდე. ასეთი სახით მისამართებთან მუშაობა მოუხერხებელია, ამიტომ გამოიყენება ე.წ. წერტილოვანი ათობითი წარმოდგენა (Dotted Decimal notation). მისი შინაარსი რომ გავიგოთ ისევ IP მისამართის ორობით ჩანაწერს უნდა მივმართოთ, როგორც ვთქვით IP მისამართი არის :

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    სახის რიცხვი (ორობითში). აქ 32 ცალი x წერია და თითოეული შეიძლება იღებდეს მნიშვნელობას ან 0 ან 1. დავყოთ ეს 32 ბიტი ბაიტებად (ან ოქტეტებად):

xxxxxxxx . xxxxxxxx . xxxxxxxx . xxxxxxxx

    ოქტეტებს შევხედოთ როგორც ცალკე რიცხვს ისე: თითოეულმა ოქტეტმა შეიძლება მიიღოს მინიმალური მნიშვნელობა როცა ყველა x=0 ანუ 00000000002=010, და მაქსიმალური მნიშვნელობა როცა ყველა x=1 ანუ 111111112=25510.

    ამის მერე წინა ნაწილში ჩამოყალიბებული განმარტება IP მისამართისა, შეიძლება შემდეგნაერად ჩამოყალიბდეს :

    IP მისამართი ქვია A,B,C,D ტიპის ჩანაწერებს, სადაც A, B, C და D რიცხვები შეიძლება ღებულობდნენ მნიშვნელობებს 0-დან 255-მდე.

    ამგვარად ჩანაწერები 1.2.3.4 ან 100.100.100.100 ან 123.231.56.71 ან 255.255.255.255 წარმოადგენენ IP მისამართებს, ხოლო შემდეგი ჩანაწერები 255.255.255.256 უკვე აღარაა IP მისამართი.


1.2.3 კლასები.

    იმის მიხედვით თუ რა მნიშვნელობა გააჩნია ორივე ოქეტს, IP მისამართები იყოფა კლასებად. დაყოფას მკაცრი მეთამატიკური საფუძველი აქვს მაგრამ ეს ორობითი გამოთვლების ჩატარებას მოითხოვს, ამიტომ უბრალოდ ჩამოვთვალოთ IP მისამართების კლასები :



    მოვიყვანოთ რამოდენიმე მაგალითი :

    A კლასი: 10.10.10.1 , 50.255.255.255 , 125.250.125.250.

    B კლასი: 128.0.01 , 172.20.10.1 , 192.255.255.255.

   C კლასი: 192.168.1.1 , 200.200.200.200 , 223.0.0.1.


1.2.3. მასკა.

    წარმოვიდგინოთ 10000 ჯარისკაცისგან შემდგარი ბრიგადა. ყველა ჯარისკაცს აქვს პირადი ნომერი 0000-დან 9999-მდე. ბრიგადის წინაშე დასმული ამოცანის მიხედვით პერიოდულად საჭიროა მისი შემადგენლობის, სხვადასხვა მასშტაბის მხირე ჯგუფებად დანაწილება. აქ ძალიან მოსახერხებელია სულ მცირე მათემატიკის მოშველიება.

    მაგალითად თუ გვინდა ბრიგადის ათასეულებად დაყოფა - მაშინ შეგვიძლია ერთიდაიგივე ათასეულში გავამწესოთ მხოლოდ ის ჯარისკაცები რომლებსაც პირადი ნომრის პირველი ციფრი აქვთ საერთო. ანუ ამ შემთხვევაში ერთ ჯგუფში (ათასეულში) აღმოჩნდება ყვე ჯარისკაცი 0000 დან 0999 ნომრის ჩათვლით, მეორეში ყველა 1000-დან 1999-ის ჩათვლით და ა.შ. მეათე და ბოლოში ყველა 9000-დან 9999-ის ჩათვლით. სიმოკლისთვის შეიძლება ვილაპარაკოთ რომ ვიყენებთ /1 დაყოფას (ნიშნავს ნომრის პირველი ციფრი უცვლელია იგი განსაზღვრავს ჯგუფის ნომერს, ანუ ჯარისკაცი 1234 არის პირველი ათასეულის 234-ე ჯარისკაცი)

    თუ გვინდა ბრიგადის ასეულებად დაყოფა მაშინ უცვლელს ვტოვებთ პირველ ორ ციფრს ანუ სულ პირველი ასეული იქნება: 0000-0099, მეორე 0100-0199, მესამე 0200-0299 და ა.შ. მეასე და ბოლო: 9900-9999, ამჯერად ვიტყვით რომ ვიყენებთ /2 მასკით დაყოფას (ნომრის პირველი ორი ციფრი უცვლელია და იგი განსაზღვრავს ჯგუფის ნომერს, ანუ ჯარისკაცი 1234 არის მე-12-ე ასეულის 34-ე ჯარისკაცი)

    თუ გვინდა ბრიგადის ათეულებად დაყოფა მაშინ ვტოვებთ პირველ სამ ციფრს ანუ სულ პირველი ათეული იქნება: 0000-0009, მეორე 0010-0019, მესამე 0020-0029 და ა.შ. მეათასე და ბოლო: 9990-9999. ვამბობთ რომ ვიყენებთ /3 მასკით დაყოფას (ნომრის პირველი სამი ციფრი უცვლელია იდი განსაზღვრავს ჯგუფის ნომერს, ანუ ჯარისკაცი 1234 არის 123-ე ათეულის მე-4-ე ჯარისკაცი)

    ახლა მთელი ეს მსჯელობა ადვილი გადასატანია IP მისამართებზე, რომელიც ასევე 4 ნიშნა (4 ოქტეტიანია). ოღონდ აქ თუ პირველი ოქტეტი მიუთითებს ჯგუფის ნომერს (რომელსაც აქ საბნეტი ქვია) ვწერთ არა /1 არამედ /8 (პირველი 8 ბიტი), თუ პირველი 2 ოქტეტი მაშინ /16, თუ პირველი 3 ოქტეტი მაშინ /24.

    თავდაპირველი გადაწყვეტილების მიხედვით A კლასში გამოიყენებოდა /8 მასკა, B კლასში /16 ხოლო C კლასში /24. შემდეგ ეს წესი შეიცვალა, ამიტომ ახლა ვამბობთ ტომ ეს მოცემული კლასის შესაბამისი დეფაულთ მასკებია.

    მაგალითები:

    10.0.0.0 /8 მისამართში ქსელური ნაწილია 10 დანარჩენი ნომრავს ჰოსთს, ამ ქსელს ეკუთვნის ყველა მისამართი 10.0.01-დან 10.255.255.255-მდე.

    172.16.0.0 /16 მისამართში ქსელური ნაწილია 172.16 დანარჩენი ნომრავს ჰოსთს, ამ ქსელს ეკუთვნის ყველა მისამართი 172.16.0.1-დან 172.16.255.255-მდე.

    192.168.0.0 /24 მისამართში ქსელური ნაწილია 192.168.0 დანარჩენი ნომრავს ჰოსთს, ამ ქსელს ეკუთვნის ყველა მისამართი 192.168.0.1-დან 192.168.0.255-მდე.


1.2.4 VLSM.

    დიდი ხანია ასეთი მარტივი დაყოფა აღარ გამოიყენება გარკვეული მიზეზების გამო. მასკას უკვე ნებისმიერი მნიშვნელობა შეიძლება ქონდეს /8-/30 ინტერვალში, შინაარსი იგივეა /n მასკა ნიშნავს, რომ პირველი n ბიტი აღნიშნავს ქსელს, დანარჩენი 32-n კი ჰოსთს. ამ შემთხვევაში გამოთვლები ცოტათი რთულდება, ვინაიდან ორობითის მოშველიება ხდება საჭირო.

    მოკლედ ნებისმიერი მასკა საბნეტს განსაზღვრავს ცალსახად, განსაზღვრავს თუ საიდან იწყება იგი და სად მთავრდება. IP პროტოკოლის მიხედვით დასაწყისი და ბოლო მისამართები დარეზერვებულია სპეციალური მიზნებისთვის და მათი გაწერა ჰოსთების ინტერფეისებზე შეუძლებელია: ყველაზე დაბალს Net IP (ქსელის აიპი) ქვია, ყველაზე მარალს ბროუდქასთი.

    ახლა ვნახოთ თუ როგორ ითვლება: ქსელის ნომერი, ბროუდქასთი და რეინჯი.

    ქსელის ნომერი მიიღება აიპი მისამართიდან თუ მისი ჰოსთის შესაბამის ბიტებს გავანოლებთ, ხოლო ბროუდქასთი მიიღება თუ მისი ჰოსთის შესაბამის ბიტებს ერთიანებით შევცვლით:

    მაგალითად ვიპოვოთ 210.17.23.200 /27 მისამართის ქსელური ნომერი და ბროუდქასთი:

    გადავიყვანოთ 210.17.23.200 მისამართი ორობითში

11010010.00010001.00010111.11001000

ვინაიდან მასკაა /27 ეს ნიშნავს რომ აქ 27 ბიტი ქსელის ნომერია დავტოვოთ ისინი და დანარჩენი გავანოლოთ : 

11010010.00010001.00010111.11000000

ესაა ქსელის ნოემრი მოცემული აიპისთვის, გადავიყვანოთ ეხლა ეს ისევ ათობითში, მივიღებთ:

210.17.23.192

ამგვარად 210.17.23.200 /27 მისამართი არის 210.17.23.192 /27 საბნეტში.

    ახლა გავიგოთ ბროუდქასთი: ამისთვის აიპში ჰოსთის შესაბამის ბიტებს ვცვლით 1-იანებით:

11010010.00010001.00010111.11011111

    გადავიყვანოთ ახლა ეს ათობითში:

210.17.23.223

    ამგვარად: 210.17.23.200 /27 აიპი მისამართი ეკუთვნის 210.17.23.192 /27 საბნეტს რომლის ბროუდქასთია 210.17.23.223. მათ შორის მოქცეული აიპები კი იქნება დასაშვები მისამართების რეინჯი მოცემული საბნეტისა:

210.17.23.192 - 210.17.23.223





სტატიის ავტორი : RoBBeR
საიტის მისამართი : https://www.ftw0x.blogspot.com 

No comments:

Post a Comment