Chociaż pytanie to zostało już oznaczone jako odpowiedź, chciałem odpowiedzieć na niektóre dodatkowe pytania zadane w PO.
Czy te porty są obiektami fizycznymi?
Żadne porty nie są obiektami fizycznymi.
Numer portu to 16-bitowa liczba całkowita bez znaku, co oznacza, że zakres dostępnych portów wynosi od 1 do 65535 (numer portu 0 jest zarezerwowany i nie można go użyć). Proces wiąże swoje kanały wejściowe i wyjściowe za pośrednictwem gniazd internetowych, rodzaju deskryptora pliku, z protokołem transportowym, numerem portu i adresem IP. Ten proces jest nazywany wiązaniem i umożliwia wysyłanie i odbieranie danych przez sieć.
Czy są czymś wbudowanym w część mojego komputera? Czy to w ogóle coś fizycznego? Lub napisane w kodzie? Gdzie jest ten kod? System operacyjny? Czym tak naprawdę jest port?
Oprogramowanie sieciowe systemu operacyjnego ma za zadanie przesyłanie wychodzących danych ze wszystkich portów aplikacji do sieci i przekazywanie przybywających pakietów sieciowych do procesu poprzez dopasowanie adresu IP i numeru portu pakietu.
Tylko jeden proces może połączyć się z określonym adresem IP i kombinacją portów przy użyciu tego samego protokołu transportowego. Częste awarie aplikacji, czasami nazywane konfliktami portów, występują, gdy wiele programów próbuje połączyć się z tymi samymi numerami portów na tym samym adresie IP przy użyciu tego samego protokołu.
Powyższy akapit jest kluczem do zrozumienia, dlaczego porty / protokoły są używane w sieci. Gdybyśmy nie mieli sposobu na określenie protokołu, który przesyła dane za pośrednictwem uzgodnionego numeru portu apon - nie byłbyś w stanie zrobić więcej niż jednej rzeczy na raz (sprawdź pocztę e-mail i korzystaj z Internetu), ponieważ twój komputer miałby nie ma możliwości rozróżnienia między danymi dla twojego klienta e-mail a danymi dla przeglądanej witryny.
Ile jest portów?
Numery portów są przypisywane na różne sposoby, w oparciu o trzy zakresy:
Dobrze znane / Porty systemowe (0-1023) - ten zakres portów jest wykorzystywany przez procesy systemowe, które zapewniają powszechnie używane typy usług sieciowych (HTTP / 80, HTTPS / 443, Telnet / 21, SSH / 22)
Porty zarejestrowane / użytkownika (1024-49151) - zakres numerów portów od 1024 do 49151 to zarejestrowane porty. Są one przypisywane przez IANA do konkretnej usługi na wniosek podmiotu wnioskującego. (Webmin / 10000, HTTP Proxy / 8080, Remote Desktop Protocol / 3389 itp.)
Porty efemeryczne / dynamiczne / prywatne (49152-65535) - Zakres 49152–65535 zawiera porty dynamiczne lub prywatne, których nie można zarejestrować w IANA. Ten zakres jest używany do celów niestandardowych lub tymczasowych oraz do automatycznego przydzielania efemerycznych portów.
Czy mogę zwiększyć lub zmniejszyć liczbę portów?
Jeśli chodzi o możliwość zwiększenia liczby dostępnych portów, nie można przypisać portu powyżej 65535 ze względu na matematykę, która umożliwia pracę w sieci (binarnie) - więc odpowiedź na to pytanie brzmi: nie, nie można zwiększyć całkowitej liczby dostępnych portów porty powyżej 65535.
Jakie są protokoły?
W dziedzinie informatyki protokół komunikacyjny to system cyfrowych zasad wymiany komunikatów w obrębie komputerów lub między nimi. Gdy wiadomości są wymieniane przez sieć komputerową, system reguł nazywany jest protokołem sieciowym. Protokół jest w zasadzie uzgodnionym zestawem instrukcji / poleceń / wywołań, przez które oba urządzenia sieciowe mogą się komunikować. Pomyśl, czy nie uzgodniliśmy protokołów, a serwery WWW po prostu losowo wysyłały dane do przeglądarek, z którymi przeglądarka nie wiedziała, co zrobić? Na szczęście mamy HTTP i które każda utworzona przeglądarka internetowa ma wbudowane w oprogramowanie, dzięki czemu może komunikować się z dowolnym serwerem WWW, który również mówi tym samym językiem (HTTP).
Wyobrażam sobie, że to jakiś kod ... Czy potrafisz stworzyć własny protokół? W jakim języku tworzysz protokół?
Tak, możesz tworzyć własne protokoły. Protokoły są napisane w wielu różnych językach. Nie jestem programistą, ale jestem pewien, że tak długo, jak używany język ma biblioteki, które umożliwiają pisanie oprogramowania, które może komunikować się przez TCP / IP (istnieją inne zestawy protokołów, ale TCP / IP jest najbardziej powszechnie używane) możesz użyć tego języka do napisania protokołu. Język programowania „C” wydaje się być najczęściej używany do pisania protokołów. Wynika to z faktu, że wiele pierwszych protokołów sieciowych zostało opracowanych w systemie UNIX w latach 70. XX wieku, a C to język, w którym napisany jest sam UNIX.
Jak uzyskać określony port do uruchamiania określonego protokołu?
Różni się to nieco między systemami operacyjnymi. Na przykład, aby zmienić numer portu Remote Desktop Protocol działa w systemie Windows, musisz edytować rejestr. W systemie Linux wiele usług sieciowych można skonfigurować bezpośrednio z pliku .conf dla określonej usługi sieciowej.
Jak zdefiniujesz lub wymyślisz nowy protokół?
Zobacz https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ post na blogu autorstwa kogoś, kto niedawno opracował nowy protokół sieciowy i jakie rzeczy musiał zrobić po drodze.