შესავალი
ყველამ ვიცით IP-ის კლასიფიკაციისა და არაკლასიფიკაციის პრინციპი და მისი გამოყენება ქსელურ კომუნიკაციაში. IP ფრაგმენტაცია და ხელახლა აწყობა პაკეტების გადაცემის პროცესში მთავარი მექანიზმია. როდესაც პაკეტის ზომა აღემატება ქსელური კავშირის მაქსიმალური გადაცემის ერთეულის (MTU) ლიმიტს, IP ფრაგმენტაცია პაკეტს გადაცემისთვის რამდენიმე პატარა ფრაგმენტად ყოფს. ეს ფრაგმენტები ქსელში დამოუკიდებლად გადაიცემა და დანიშნულების ადგილზე ჩასვლისთანავე, ისინი IP ხელახალი აწყობის მექანიზმით ხელახლა აწყობილი არიან სრულ პაკეტებად. ფრაგმენტაციისა და ხელახალი აწყობის ეს პროცესი უზრუნველყოფს, რომ ქსელში დიდი ზომის პაკეტების გადაცემა შესაძლებელი იყოს, ამავდროულად უზრუნველყოფილი იყოს მონაცემთა მთლიანობა და სანდოობა. ამ ნაწილში უფრო დეტალურად განვიხილავთ, თუ როგორ მუშაობს IP ფრაგმენტაცია და ხელახალი აწყობა.
IP ფრაგმენტაცია და ხელახლა აწყობა
სხვადასხვა მონაცემთა არხებს განსხვავებული მაქსიმალური გადაცემის ერთეული (MTU) აქვთ; მაგალითად, FDDI მონაცემთა არხების MTU 4352 ბაიტია, ხოლო Ethernet-ის MTU - 1500 ბაიტი. MTU ნიშნავს მაქსიმალური გადაცემის ერთეულს და ეხება ქსელში გადასაცემად შესაძლებელ პაკეტის მაქსიმალურ ზომას.
FDDI (ბოჭკოვანი განაწილებული მონაცემთა ინტერფეისი) არის მაღალსიჩქარიანი ლოკალური ქსელის (LAN) სტანდარტი, რომელიც იყენებს ოპტიკურ ბოჭკოს, როგორც გადაცემის საშუალებას. მაქსიმალური გადაცემის ერთეული (MTU) არის მაქსიმალური პაკეტის ზომა, რომლის გადაცემაც შესაძლებელია მონაცემთა კავშირის დონის პროტოკოლით. FDDI ქსელებში MTU-ს ზომაა 4352 ბაიტი. ეს ნიშნავს, რომ FDDI ქსელში მონაცემთა კავშირის დონის პროტოკოლით გადაცემის მაქსიმალური ზომაა 4352 ბაიტი. თუ გადასაცემი პაკეტი აღემატება ამ ზომას, საჭიროა მისი ფრაგმენტაცია, რათა პაკეტი დაიყოს მრავალ ფრაგმენტად, რომლებიც შესაფერისია MTU ზომისთვის, გადაცემისა და მიმღებზე ხელახლა აწყობისთვის.
Ethernet-ისთვის, MTU, როგორც წესი, 1500 ბაიტის ზომისაა. ეს ნიშნავს, რომ Ethernet-ს შეუძლია 1500 ბაიტამდე ზომის პაკეტების გადაცემა. თუ პაკეტის ზომა აღემატება MTU ლიმიტს, მაშინ პაკეტი ფრაგმენტირდება უფრო პატარა ფრაგმენტებად გადაცემისთვის და ხელახლა აწყობილია დანიშნულების ადგილზე. ფრაგმენტირებული IP დატაგრამის ხელახლა აწყობა შესაძლებელია მხოლოდ დანიშნულების ჰოსტის მიერ და როუტერი არ შეასრულებს ხელახლა აწყობის ოპერაციას.
ადრე ასევე ვისაუბრეთ TCP სეგმენტებზე, თუმცა MSS ნიშნავს Maximum Segment Size-ს და მნიშვნელოვან როლს ასრულებს TCP პროტოკოლში. MSS ეხება TCP კავშირში გაგზავნის ნებადართული მაქსიმალური მონაცემთა სეგმენტის ზომას. MTU-ს მსგავსად, MSS გამოიყენება პაკეტების ზომის შესაზღუდად, მაგრამ ეს ხდება ტრანსპორტის დონეზე, TCP პროტოკოლის დონეზე. TCP პროტოკოლი გადასცემს აპლიკაციის დონის მონაცემებს მონაცემების მრავალ მონაცემთა სეგმენტად დაყოფით და თითოეული მონაცემთა სეგმენტის ზომა შეზღუდულია MSS-ით.
თითოეული მონაცემთა არხის MTU განსხვავებულია, რადგან მონაცემთა არხის თითოეული განსხვავებული ტიპი სხვადასხვა მიზნებისთვის გამოიყენება. გამოყენების მიზნიდან გამომდინარე, შესაძლებელია სხვადასხვა MTU-ს განთავსება.
დავუშვათ, გამგზავნს სურს Ethernet არხით გადაცემისთვის 4000 ბაიტიანი დიდი დატაგრამის გაგზავნა, ამიტომ გადაცემისთვის დატაგრამი უნდა დაიყოს სამ პატარა დატაგრამად. ეს იმიტომ ხდება, რომ თითოეული პატარა დატაგრამის ზომა არ უნდა აღემატებოდეს MTU ლიმიტს, რომელიც 1500 ბაიტია. სამი პატარა დატაგრამის მიღების შემდეგ, მიმღები ხელახლა აწყობს მათ ორიგინალურ 4000 ბაიტიან დიდ დატაგრამაში, თითოეული დატაგრამის თანმიმდევრობის ნომრისა და ოფსეტის საფუძველზე.
ფრაგმენტირებული გადაცემისას, ფრაგმენტის დაკარგვა მთელ IP დატაგრამას გააუქმებს. ამის თავიდან ასაცილებლად, TCP-მ შემოიღო MSS, სადაც ფრაგმენტაცია ხდება TCP დონეზე და არა IP დონეზე. ამ მიდგომის უპირატესობა ის არის, რომ TCP-ს უფრო ზუსტი კონტროლი აქვს თითოეული სეგმენტის ზომაზე, რაც თავიდან აგვაცილებს IP დონეზე ფრაგმენტაციასთან დაკავშირებულ პრობლემებს.
UDP-სთვის ჩვენ ვცდილობთ, არ გავგზავნოთ MTU-ზე დიდი მონაცემთა პაკეტი. ეს იმიტომ ხდება, რომ UDP არის კავშირგარეშე ორიენტირებული სატრანსპორტო პროტოკოლი, რომელიც არ უზრუნველყოფს საიმედოობას და ხელახალი გადაცემის მექანიზმებს, როგორიცაა TCP. თუ ჩვენ გავგზავნით MTU-ზე დიდ UDP მონაცემთა პაკეტს, ის ფრაგმენტირებული იქნება IP ფენის მიერ გადაცემისთვის. როგორც კი ერთ-ერთი ფრაგმენტი დაიკარგება, UDP პროტოკოლი ვერ შეძლებს ხელახალი გადაცემას, რაც გამოიწვევს მონაცემების დაკარგვას. ამიტომ, მონაცემთა საიმედო გადაცემის უზრუნველსაყოფად, ჩვენ უნდა ვეცადოთ, გავაკონტროლოთ UDP მონაცემთა პაკეტების ზომა MTU-ში და თავიდან ავიცილოთ ფრაგმენტირებული გადაცემა.
Mylinking™ ქსელური პაკეტების ბროკერიშეუძლია ავტომატურად ამოიცნოს სხვადასხვა სახის გვირაბის პროტოკოლი VxLAN/NVGRE/IPoverIP/MPLS/GRE და ა.შ., რაც შეიძლება განისაზღვროს მომხმარებლის პროფილის მიხედვით, გვირაბის ნაკადის გამომავალი შიდა ან გარე მახასიათებლების მიხედვით.
○ მას შეუძლია VLAN, QinQ და MPLS ეტიკეტების პაკეტების ამოცნობა
○ შეუძლია შიდა და გარე VLAN-ის იდენტიფიცირება
○ IPv4/IPv6 პაკეტების იდენტიფიცირება შესაძლებელია
○ შეუძლია VxLAN, NVGRE, GRE, IPoverIP, GENEVE, MPLS გვირაბის პაკეტების იდენტიფიცირება
○ IP ფრაგმენტირებული პაკეტების იდენტიფიცირება შესაძლებელია (მხარს უჭერს IP ფრაგმენტაციის იდენტიფიკაციას და მხარს უჭერს IP ფრაგმენტაციის ხელახლა აწყობას, რათა განხორციელდეს L4 მახასიათებლების ფილტრაცია ყველა IP ფრაგმენტაციის პაკეტზე. დანერგეთ ტრაფიკის გამომავალი პოლიტიკა.)
რატომ არის IP ფრაგმენტირებული და TCP ფრაგმენტირებული?
რადგან ქსელური გადაცემისას IP დონე ავტომატურად ფრაგმენტაციას უკეთებს მონაცემთა პაკეტს, მაშინაც კი, თუ TCP დონე არ დაანაწილებს მონაცემებს, მონაცემთა პაკეტი ავტომატურად ფრაგმენტირდება IP დონის მიერ და ნორმალურად გადაიცემა. მაშ, რატომ სჭირდება TCP-ს ფრაგმენტაცია? ეს ხომ ზედმეტია?
დავუშვათ, რომ არსებობს დიდი პაკეტი, რომელიც არ არის სეგმენტირებული TCP დონეზე და იკარგება გადაცემისას; TCP ხელახლა გადასცემს მას, მაგრამ მხოლოდ მთელ დიდ პაკეტს (თუმცა IP დონე მონაცემებს ყოფს უფრო პატარა პაკეტებად, რომელთაგან თითოეულს აქვს MTU სიგრძე). ეს იმიტომ ხდება, რომ IP დონეს არ აინტერესებს მონაცემთა საიმედო გადაცემა.
სხვა სიტყვებით რომ ვთქვათ, მანქანის ქსელში ტრანსპორტირებისას, თუ ტრანსპორტირების დონე მონაცემებს ფრაგმენტაციას უკეთებს, IP დონე არ ფრაგმენტაციას. თუ ფრაგმენტაცია ტრანსპორტირების დონეზე არ ხორციელდება, ფრაგმენტაცია შესაძლებელია IP დონეზე.
მარტივად რომ ვთქვათ, TCP მონაცემებს ისე სეგმენტირებს, რომ IP ფენა აღარ იყოს ფრაგმენტირებული და როდესაც ხდება ხელახალი გადაცემა, მხოლოდ ფრაგმენტირებული მონაცემების მცირე ნაწილი გადაიცემა ხელახალი. ამ გზით შესაძლებელია გადაცემის ეფექტურობისა და საიმედოობის გაუმჯობესება.
თუ TCP ფრაგმენტირებულია, IP ფენა ხომ არ არის ფრაგმენტირებული?
ზემოთ განხილულ დისკუსიაში აღვნიშნეთ, რომ გამგზავნთან TCP ფრაგმენტაციის შემდეგ, IP დონეზე ფრაგმენტაცია არ ხდება. თუმცა, სატრანსპორტო კავშირში შეიძლება არსებობდეს სხვა ქსელური დონის მოწყობილობები, რომელთა მაქსიმალური გადაცემის ერთეული (MTU) გამგზავნთან MTU-ზე ნაკლებია. ამიტომ, მიუხედავად იმისა, რომ პაკეტი გამგზავნთან ფრაგმენტირებულია, ის კვლავ ფრაგმენტირდება ამ მოწყობილობების IP დონეზე გავლისას. საბოლოოდ, ყველა ფრაგმენტი მიმღებთან შეიკრიბება.
თუ მთელ ბმულზე მინიმალური MTU-ს განვსაზღვრავთ და ამ სიგრძით მონაცემებს გავაგზავნით, ფრაგმენტაცია არ მოხდება, მიუხედავად იმისა, თუ რომელ კვანძზე გადაიცემა მონაცემები. მთელ ბმულზე ამ მინიმალურ MTU-ს MTU-ს (PMTU) უწოდებენ. როდესაც IP პაკეტი როუტერში ჩადის, თუ როუტერის MTU ნაკლებია პაკეტის სიგრძეზე და DF (არ ფრაგმენტირება) დროშა დაყენებულია 1-ზე, როუტერი ვერ შეძლებს პაკეტის ფრაგმენტაციას და მხოლოდ მისი წაშლა შეუძლია. ამ შემთხვევაში, როუტერი წარმოქმნის ICMP (ინტერნეტის კონტროლის შეტყობინების პროტოკოლის) შეცდომის შეტყობინებას სახელწოდებით "ფრაგმენტაცია საჭიროა, მაგრამ DF დაყენებულია". ეს ICMP შეცდომის შეტყობინება გაიგზავნება წყაროს მისამართზე როუტერის MTU მნიშვნელობით. როდესაც გამგზავნი მიიღებს ICMP შეცდომის შეტყობინებას, მას შეუძლია პაკეტის ზომის კორექტირება MTU მნიშვნელობის მიხედვით, რათა თავიდან აიცილოს აკრძალული ფრაგმენტაციის სიტუაცია.
IP ფრაგმენტაცია აუცილებლობაა და თავიდან უნდა იქნას აცილებული IP დონეზე, განსაკუთრებით ბმულში შუალედურ მოწყობილობებზე. ამიტომ, IPv6-ში IP პაკეტების ფრაგმენტაცია შუალედური მოწყობილობებით აკრძალულია და ფრაგმენტაცია შესაძლებელია მხოლოდ ბმულის დასაწყისსა და ბოლოს.
IPv6-ის საბაზისო გაგება
IPv6 არის ინტერნეტ პროტოკოლის მე-6 ვერსია, რომელიც IPv4-ის მემკვიდრეა. IPv6 იყენებს 128-ბიტიან მისამართის სიგრძეს, რაც IPv4-ის 32-ბიტიან მისამართის სიგრძეზე მეტი IP მისამართის მიწოდებას უწყობს ხელს. ეს იმიტომ ხდება, რომ IPv4 მისამართების სივრცე თანდათან იწურება, ხოლო IPv6 მისამართების სივრცე ძალიან დიდია და შეუძლია დააკმაყოფილოს მომავლის ინტერნეტის საჭიროებები.
როდესაც IPv6-ზე ვსაუბრობთ, მეტი მისამართების სივრცის გარდა, ის ასევე უკეთეს უსაფრთხოებას და მასშტაბირებას გვთავაზობს, რაც იმას ნიშნავს, რომ IPv6-ს IPv4-თან შედარებით უკეთესი ქსელური გამოცდილების უზრუნველყოფა შეუძლია.
მიუხედავად იმისა, რომ IPv6 დიდი ხანია არსებობს, მისი გლობალური გავრცელება კვლავ შედარებით ნელია. ეს ძირითადად იმიტომ ხდება, რომ IPv6 თავსებადია არსებულ IPv4 ქსელთან, რაც მოითხოვს გადასვლას და მიგრაციას. თუმცა, IPv4 მისამართების ამოწურვისა და IPv6-ზე მოთხოვნის ზრდის გამო, სულ უფრო მეტი ინტერნეტ სერვისის პროვაიდერი და ორგანიზაცია თანდათანობით იყენებს IPv6-ს და თანდათანობით ახორციელებს IPv6-ისა და IPv4-ის ორმაგ სტეკზე მუშაობას.
რეზიუმე
ამ თავში უფრო დეტალურად განვიხილეთ, თუ როგორ მუშაობს IP ფრაგმენტაცია და ხელახლა აწყობა. სხვადასხვა მონაცემთა არხებს განსხვავებული მაქსიმალური გადაცემის ერთეული (MTU) აქვთ. როდესაც პაკეტის ზომა აღემატება MTU ლიმიტს, IP ფრაგმენტაცია პაკეტს გადაცემისთვის რამდენიმე პატარა ფრაგმენტად ყოფს და დანიშნულების ადგილამდე მისვლის შემდეგ IP ხელახლა აწყობს მათ სრულ პაკეტად. TCP ფრაგმენტაციის მიზანია, რომ IP ფენა აღარ იყოს ფრაგმენტირებული და ხელახლა გადასცეს მხოლოდ ის მცირე მონაცემები, რომლებიც ფრაგმენტირებული იყო ხელახლა გადაცემის დროს, რათა გაუმჯობესდეს გადაცემის ეფექტურობა და საიმედოობა. თუმცა, სატრანსპორტო არხზე შეიძლება არსებობდეს სხვა ქსელური დონის მოწყობილობები, რომელთა MTU შეიძლება უფრო მცირე იყოს, ვიდრე გამგზავნის, ამიტომ პაკეტი მაინც კვლავ ფრაგმენტირებული იქნება ამ მოწყობილობების IP დონეზე. IP დონეზე ფრაგმენტაცია მაქსიმალურად უნდა იქნას აცილებული, განსაკუთრებით ბმულის შუალედურ მოწყობილობებზე.
გამოქვეყნების დრო: 2025 წლის 7 აგვისტო