სკრიპტი - მონაცემთა გადაცემა

სანამ უშუალოდ ფრონტ-ენდის ენების შესწავლაზე გადავალთ აუცილებელია კარგად გვესმოდეს როგორ მუშაობს ზოგადად ინტერნეტი, ვები და როგორ ხდება ინფორმაციის გადაცემა მოწყობილობებს შორის. 

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


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


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


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


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


არსებობს მონაცემთა გადაცემის ორი გზა:

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


სერიულ გადაცემას აქვს ორი კლასიფიკაცია: ასინქრონული და სინქრონული.


ასინქრონული სერიული გადაცემისას მონაცემთა ერთეულების  გაგზავნა შესაძლებელია დროის ნებისმიერ მომენტში. 


ასინქრონული მეთოდის გამოყენების უპირატესობა ის არის, რომ არ არის საჭირო სინქრონიზაცია გადამცემსა და მიმღებ მოწყობილობებს შორის. ის ასევე უფრო ეკონომიური მეთოდია. მინუსი არის ის, რომ მონაცემთა გადაცემა შეიძლება უფრო ნელი იყოს, მაგრამ ეს ყოველთვის ასე არ არის. მსგავსი გადაცემის მეთოდებს ვხვდებოდით ძველ ვებსაიტებზე და 90იანების ქსელებში. ამიტომ გვიწევდა ლოდინი და ხშირად ვერც ვნახულობდით სრულ კონტენტს.


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


როდესაც მონაცემები იგზავნება პარალელური გადაცემის გამოყენებით, მონაცემთა რამდენიმე ერთეული ერთდროულად გადაიცემა რამდენიმე არხზე. ეს ნიშნავს, რომ მონაცემთა გაგზავნა შეიძლება ბევრად უფრო სწრაფად, ვიდრე სერიული გადაცემის მეთოდების გამოყენებით. პარალელურ გადაცემას როგორც ვთქვით პაკეტებად გადაცემასაც ეძახიან და მთელი ინტერნეტი დღეს ამ მეთოდზე დგას. მარშრუტიზატორები მნიშვნელოვან როლს ასრულებენ მონაცემთა პაკეტების მათი დანიშნულების ადგილამდე მიწოდებაში. ისინი აანალიზებენ დანიშნულების IP მისამართებს პაკეტებში და განსაზღვრავენ საუკეთესო გზას თითოეული პაკეტისთვის დანიშნულების ადგილზე მისასვლელად. მარშრუტიზატორები ერთმანეთთან ურთიერთობენ და ცვლიან ინფორმაციას პაკეტების ეფექტური მიწოდების უზრუნველსაყოფად. ეს ყველაფერი რა თქმა უნდა ძალიან კომპლექსური პროცესია და საჭიროებს რეგულირებას. პროტოკოლები არის წესებისა და სტანდარტების ერთობლიობა, რომელიც არეგულირებს, თუ როგორ ხდება მონაცემების გადაცემა და მიღება ინტერნეტით. ინტერნეტ პროტოკოლი ანუ IP არის ერთ-ერთი ასეთი პროტოკოლი, რომელიც პასუხისმგებელია პაკეტების მისამართისა და მარშრუტიზაციისთვის. კიდევ ერთი მნიშვნელოვანი პროტოკოლი არის გადაცემის კონტროლის პროტოკოლი (TCP) ანუ Transmission control protocol, რომელიც უზრუნველყოფს პაკეტების საიმედო მიწოდებას კავშირებისა და ხელახალი გადაცემის მართვის გზით, თუ პაკეტები დაიკარგება. მაგალითად თუ ფილმს ვუყურებთ და პაკეტებად დაშლილ ინფორმაციას ვიღებთ სერვერისგან და რომელიმე პაკეტი მაგალითად ფილმის დასასრული ან შუა ნაწილი დაიკარგა, პროტოკოლი ამას მიხვდება და პაკეტს თავიდან გამოგზავნის. 


ახლა შევეხოთ დომენების საკითხსაც… დომენის სახელების სისტემა (DNS) თარგმნის ადამიანის მიერ წაკითხულ დომენურ სახელებს, როგორიცაა www.example.com, IP მისამართად. როდესაც თქვენს ბრაუზერში დომენის სახელს შეიყვანთ, DNS სისტემა თარგმნის მას შესაბამის IP მისამართზე, რაც საშუალებას აძლევს თქვენს მოწყობილობას დაუკავშირდეს სწორ სერვერს.


დომენური სახელების არ არსებობის შემთხვევაში უბრალოდ დაგვჭირდებოდა ძალიან ბევრი რიცხვითი მიმდევრობების დამახსოვრება იუთუბზე და სხვა მრავალ ვებსაიტზე შესასვლელად, რაც საკმაოდ საწვალებელი პროცესი იქნებოდა. ეს პროცესი დაახლოებით რომ წარმოვიდგინოთ, იმას ნიშნავს რომ youtube.com ის ნაცვლად მისი აიპის 208.65.153.238 მისამართის დამახსოვრება მოგვიწევდა და ეს ციფრები ყველა საიტისთვის ინდივიდუალურია.


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


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



ბოლო ცვლილება: Monday, December 25 2023, 6:23 AM