A port ( angol port ) egy nem negatív egész szám, amely az OSI hálózati modell szállítási rétegének ( TCP , UDP , SCTP , DCCP ) protokolljainak fejlécébe íródik .
Általában egy felhasználói felületű operációs rendszert futtató gazdagépen több folyamat fut , amelyek mindegyike egy-egy programot futtat . Ha több program használ egy számítógépes hálózatot , akkor az operációs rendszer rendszeresen kap egy IP-csomagot a hálózaton keresztül, amely az egyik program számára készült.
Egy hálózaton keresztül kommunikálni kívánó program folyamata (például egy socket létrehozásakor ):
Az adatok cseréje a hálózaton keresztül történik két folyamat között egy meghatározott protokoll használatával . A kapcsolat létrehozásához a következőkre lesz szüksége:
A küldő (forrás) folyamat portja rögzíthető (statikus) vagy dinamikusan hozzárendelhető minden új kommunikációs munkamenethez.
Ha TCP -n keresztül csatlakozik, a küldési folyamat portját használja:
Ha UDP protokollon keresztül csatlakozik , megengedett a nulla szám megadása a küldési folyamat portja helyett, ami azt jelenti, hogy "a port nincs megadva".
Ha az asszociáción belül SCTP protokollon keresztül csatlakozik , a következők használhatók:
Mivel a küldő gazdagép IP-címe és a küldési folyamat portszáma analóg a levélborítékokra írt visszaküldési címmel (lehetővé teszi a címzett számára, hogy választ küldjön a feladónak), a küldési folyamat portszámára néha hivatkoznak. mint a "fordított" port.
Ha egy folyamat egy gazdagépen következetesen ugyanazt a portszámot használja (például egy webkiszolgáló programban előfordulhat, hogy a 80-as portot használja az adatok küldésére és fogadására), a port „nyitott”-nak mondható.
A "nyitott port" és a "zárt port" (blokkolva) kifejezéseket a hálózati forgalom szűrésére is használják .
Ha egy folyamat portszámot kapott az operációs rendszertől ("nyitott egy portot"), és "nyitva tartja" az adatok fogadásához és továbbításához, akkor a folyamatot "hallgató" ( köznyelvi listens , angolul listen ) portnak nevezik.
Általában a kiszolgálót valamilyen protokollhoz megvalósító program folyamata a porton való figyeléssel foglalkozik. Az ugyanazon protokollhoz klienst megvalósító program folyamata gyakran lehetővé teszi az operációs rendszer számára, hogy megadja a portszámot a szerverhez való csatlakozáshoz.
Ha a gazdagép fogadja a csomagot, akkor a küldő folyamat portját "távoli" ( eng. remote ) portnak vagy "egy másik gazdagépen nyitott " portnak, a fogadó folyamat portját pedig "helyi" portnak nevezik, azaz , nyissa meg az aktuális gazdagépen. Ha a gazdagép csomagot küldött, akkor a küldő folyamat portját „helyi” portnak (megnyitva az aktuális gazdagépen ), a fogadó folyamat portját pedig „távoli” portnak (egy másik gazdagépen megnyitva ) nevezzük.
A TCP/IP modell alkalmazási rétegbeli protokolljaihoz ( HTTP , SSH stb.) a portszámokat általában az IANA szervezet adja ki ( angol internet a ssigned n umbers a uthority ) . A gyakorlatban azonban biztonsági okokból a portszámok tetszőlegesen választhatók.
A "port" kifejezést leggyakrabban a TCP és az UDP protokollokkal kapcsolatban használják e protokollok népszerűsége miatt . Az SCTP és DCCP protokollok olyan számokat használnak, amelyek megfelelnek a TCP és UDP protokollok „portszám” fogalmának.
A TCP és UDP protokoll fejlécében 16 bites mezők vannak lefoglalva a portszámok tárolására . A TCP protokoll esetében a 0-s port le van foglalva, és nem használható. Az UDP esetében a küldési folyamat portjának megadása (a "fordított" port) nem kötelező, a 0-s port pedig azt jelenti, hogy nincs port. Így a portszám 1 és 2 közötti szám 16 -1=65535 .
A következő protokollokat megvalósító programok folyamatai futnak a szerveren :
Az SMTP protokollt megvalósító program folyamata általában a 25- ös (röviden: "tcp/25") TCP - porton "hallgat".
A POP protokollt megvalósító program folyamata általában a 110-es (röviden: "tcp/110") TCP -porton "hallgat" .
A folyamatok futtathatók ugyanazon a gazdagépen (számítógépen). Egy adott folyamat meghatározását a portszám végzi.
Az a folyamat , amikor egy kliensprogram egy szerverhez kíván csatlakozni levelek küldése (SMTP) vagy fogadása (POP vagy IMAP) céljából, általában dinamikusan kap egy portszámot .
DHCPEgyes esetekben az ismert portszámok használata kötelező.
Például egy IP-cím DHCP - n keresztüli megszerzéséhez egy ügyfélfolyamat UDP - n keresztül datagrammot küld a 68 - as portról (a küldési folyamat portja) a 67-es portra (a fogadási folyamat portja).
A portszámok megadhatók webhelycímekben ( URL ) vagy más, a számítógépes hálózatokon elérhető erőforrás-azonosítókban ( URI ). Alapértelmezés szerint a HTTP a 80-as, a HTTPS pedig a 443-as portot használja. A http://www.example.com:8080/path/ URL -cím azt jelzi, hogy a webes erőforrást a 8080-as porton lévő webszerver szolgálja ki.
Számos operációs rendszerben ( Windows , Unix-szerű ) megtudhatja az aktív (az operációs rendszer által a folyamatoknak kiadott) portok számát a szállítási réteg protokolljaihoz a segédprogramok segítségével netstatés nmap( UNIX OS és Linux OS esetén ).
netstatA és segédprogramok nmapáltal mutatott portállapotok a táblázatban láthatók.
Kikötő állapota [1] | Leírás |
---|---|
Megnyitva vagy meghallgatva ( angolul open or listen ) | A program - a szerver készen áll a kapcsolatok fogadására programoktól - kliensek ("hallgat" a porton) |
Szűrt ( angol szűrt ) | Nem lehet megállapítani, hogy a port nyitva van-e vagy zárva, valószínűleg tűzfal vagy más ok miatt |
zárva _ _ _ | Az operációs rendszer még nem adott ki portszámot egyetlen folyamatnak sem , de ezt bármikor megteheti |
A TCP-portok nem fedik át az UDP-portokat: az 1234-es TCP-port nem zavarja az 1234-es porton keresztüli UDP-kommunikációt.
A legtöbb UNIX-szerű operációs rendszeren a 0-1023-as portokon történő figyeléshez speciális jogosultságok ( root ) szükségesek. A többi portszámot az operációs rendszer ad az elsőként kérő folyamatoknak.
Egyes népszerű forgalomszimuláló programok (például Wireshark ) és hálózati tűzfalak általánosan elfogadott portszám-megjelöléseket használnak az adatátviteli protokoll meghatározására , ami nem mindig helyes. Egyes esetekben a hálózati szolgáltatások nem szabványos portszámokat használnak, vagy a portszámokat a rendeltetésüktől eltérő célokra használják fel. Például ismertek olyan esetek , amikor az internetszolgáltatók SMTP - kiszolgálókat indítanak el a 2525-ös portokon (a 25-ös helyett), hogy biztosítsák felhasználóik biztonságát. A speciális webhelyek, például az adminisztratív webes felületek , gyakran a szabványos 80-as és 443-as portoktól eltérő portokon működnek.