TCP IP

რა არის TCP/UDP პროტოკოლი?

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

განვიხილოთ ორივე:

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

tcp1

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

udp2

udp

ესეც ასე, გავარკვიეთ TCP UDP პორტებს შორის განსხვავებაში. ახლა კი უკეთ გავეცნოთ მათ.

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

პორტების მუშაობის მეთოდი ერთნაირია. მაშ ასე, თქვენ გაქვთ ერთი IP მისამართი და მასზე განლაგებულია უამრავი პორტი. უამრავის ქვეშ იგულისხმება მართლაც ძალიან ბევრი, თქვენ შეიძლება გქონდეთ დაახლოებით 65,535 TCP პორტი და 65,535 UDP პორტი, დაკავშირებული თქვენს IP მისამართთან. როდესაც პროგრამა იღებს ან აგზავნის ინფორმაციას ინტერნეტის მეშვეობით, ეს ინფორმაცია მიდის IP მისამართთან და მიმღები კომპიუტერის საჭირო პორტთან; თავის მხრივ კი ინფორმაციას პროგრამა როგორც წესი იღებს შემთხვევითი პორტით. თუკი ეს კავშირი ხდება TCP პროტოკოლის დახმარებით, მაშინ გამოიყენება TCP პორტები, ხოლო თუკი დაკავშირება ხორციელდება UDP პროტოკოლის მეშვეობით, მაშინ რა თქმა უნდა გამოიყენება UDP პორტები. ქვემოთ მოცემული ილუსტრაცია ასახავს დაყოფილ IP მისამართს, თავის უამრავ TCP და UDP პორტებად. გაითვალისწინეთ, რომ როდესაც ერთი აპლიკაცია იყენებს ერთ კონკრეტულ პორტს, სხვა აპლიკაცია მას ვეღარ გამოიყენებს. ეს გავს ცნობილ პრინციპს „რომელიც მოდის პირველი, ემსახურებიან მას“.

clip_image002

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

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

Port 80

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

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

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