რისთვის გამოიყენება პორტი 0?

Სარჩევი:

რისთვის გამოიყენება პორტი 0?
რისთვის გამოიყენება პორტი 0?
Anonim

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

პორტის ნომრების უმეტესობისგან განსხვავებით, პორტი 0 არის რეზერვირებული პორტი TCP/IP ქსელში, რაც იმას ნიშნავს, რომ ის არ უნდა იქნას გამოყენებული TCP ან UDP შეტყობინებებში. ქსელის პორტები TCP-სა და UDP-ში მერყეობს ნულიდან 65535-მდე. პორტის ნომრები ნულამდე და 1023-მდე დიაპაზონში განისაზღვრება, როგორც არაეფემერული პორტები, სისტემის პორტები ან კარგად ცნობილი პორტები. Internet Assigned Numbers Authority (IANA) ინახავს ამ პორტის ნომრების მიზნობრივი გამოყენების ოფიციალურ ჩამონათვალს ინტერნეტში და სისტემის პორტი 0 არ არის გამოყენებული.

როგორ მუშაობს TCP/UDP პორტი 0 ქსელურ პროგრამირებაში

Image
Image

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

IANA-ს აქვს წინასწარ გამოყოფილი სისტემის პორტები ძირითადი ინტერნეტ აპლიკაციებისთვის, როგორიცაა ვებ სერვერები (პორტი 80), მაგრამ ბევრ TCP და UDP ქსელის აპლიკაციებს არ აქვთ საკუთარი სისტემის პორტი და ყოველ ჯერზე უნდა მიიღონ ერთი მათი მოწყობილობის ოპერაციული სისტემიდან..

მისი წყაროს პორტის ნომრის გამოსაყოფად, აპლიკაციები იძახებენ TCP/IP ქსელის ფუნქციებს, როგორიცაა bind() და მოითხოვენ ერთი. აპლიკაციას შეუძლია მიაწოდოს ფიქსირებული (მყარად კოდირებული) ნომერი bind()-ისთვის, თუ მათ ურჩევნიათ მოითხოვონ კონკრეტული ნომერი, მაგრამ ასეთი მოთხოვნა შეიძლება ვერ მოხერხდეს, რადგან სისტემაში გაშვებული სხვა აპლიკაცია შეიძლება ამჟამად მას იყენებს.

ალტერნატიულად, მას შეუძლია მიაწოდოს პორტი 0 bind()-ისთვის, როგორც კავშირის პარამეტრი. ეს აიძულებს ოპერაციულ სისტემას ავტომატურად მოძებნოს და დააბრუნოს შესაფერისი ხელმისაწვდომი პორტი TCP/IP დინამიური პორტის ნომრის დიაპაზონში.

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

Unix, Windows და სხვა ოპერაციული სისტემები განსხვავდება პორტის 0-ის დამუშავებაში, მაგრამ იგივე ზოგადი კონვენცია მოქმედებს.

პორტი 0 და ქსელის უსაფრთხოება

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

ბევრი ინტერნეტ სერვისის პროვაიდერი (ISP) ბლოკავს ტრაფიკს პორტზე 0, როგორც შემომავალი, ისე გამავალი შეტყობინებები, რათა დაიცვან ეს ექსპლოიტები.

FAQ

    რა არის პორტის ნომრები?

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

    როგორ ვიპოვო პორტის ნომრები?

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

    შემიძლია დაკავშირება პორტ 0?

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

გირჩევთ: