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

რას წერს თავიდან ოფცია

mssfix არედაქტირებს მაქსიმალური სეგმენტის ზომას, რომელიც გამოცხადებულია გვირაბში გამავალ TCP ხელის ჩამორთმევებში, რათა გამომგზავნმა მხარემ აირჩიოს სეგმენტები, რომლებიც ეტევა შეფუთულ ბიუჯეტში. ის მოქმედებს ხელის ჩამორთმევაზე, რაც ნიშნავს, რომ ცვლილებამდე გახსნილი კავშირი ინარჩუნებს შეთანხმებულ მნიშვნელობას.

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

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

მოცულობა არის TCP გვირაბის შიგნით

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

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

რიცხვი და საკვანძო სიტყვა გადატანადი არ არის

OpenVPN 2.6-ის საზოგადოებრივი ვერსია იღებს არასავალდებულო საკვანძო სიტყვას მნიშვნელობის შემდეგ. mtu-ით რიცხვი აღწერს გარე პაკეტის ზომას IP და UDP სათაურების ჩათვლით; მის გარეშე არგუმენტი სხვა აღრიცხვის კონვენციას მიჰყვება. ამიტომ ვერსიებს შორის კოპირებული ხაზი არ აღწერს იმავე პაკეტის ბიუჯეტს. გადახედეთ სახელმძღვანელოს გვერდს, რომელიც მოყვება იმ აწყობას, რომელსაც რეალურად ატარებთ, და არა სხვა გამოშვების გაკვეთილს.

სინტაქსი ასე გამოიყურება:

mssfix 1400 mtu

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

ჯერ ერთ კლიენტზე დაადასტურეთ

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

ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1

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

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

დაკავშირებული სტატიები