хотя этот вопрос уже отмечен как ответ, я хотел бы ответить на некоторые дополнительные вопросы, заданные в OP.
являются ли эти порты физическими объектами?
никакие порты не являются физическими объектами.
номер порта является 16-битным целым числом без знака, что означает, что диапазон портов, доступных для использования, составляет от 1 до 65535 (номер порта 0 зарезервирован и не может использоваться). Процесс связывает свои каналы входа или выхода через Интернет-сокеты, тип файлового дескриптора, с транспортным протоколом, номером порта и IP-адресом. Этот процесс называется привязкой и позволяет отправлять и получать данные по сети.
Они что-то в моем компьютере? Они хоть что-то физическое? Или
написано кодом? Где находится этот код? Операционная система? Что такое настоящий портвейн?
сетевое программное обеспечение операционной системы имеет задачу передачи исходящие данные со всех портов приложения в сети и пересылка поступающих сетевых пакетов процессу путем сопоставления IP-адреса и номера порта пакета.
только один процесс может привязать к конкретным IP-адресом и портом, используя тот же транспортный протокол. Общие сбои приложений, иногда называемые конфликтами портов, возникают, когда несколько программ пытаются выполнить привязку к одному и тому же номеру порта на одном IP-адресе, используя один и тот же протокол.
приведенный выше параграф является ключом к пониманию того, почему порты / протоколы используются в сети. Если бы у нас не было способа указать протокол, который передает данные по согласованному номеру порта apon - вы не смогли бы сделать больше, чем 1 вещь за раз (проверьте свою электронную почту и используйте Интернет), потому что ваш компьютер не будет иметь никакого способа различать данные для вашего почтового клиента и данные для веб-сайта, который вы просматриваете.
сколько портов там?
номера портов назначаются различными способами на основе трех диапазонов:
Известные / Системные Порты (0-1023) -
Этот диапазон портов используется системными процессами, которые предоставляют широко используемые типы сетевых сервисов (HTTP/80, HTTPS/443, Telnet/21, SSH/22)
зарегистрированные / пользовательские порты (1024-49151) - диапазон номеров портов от 1024 до 49151-зарегистрированные порты. Они назначаются IANA для конкретной службы по заявлению запрашивающего органа. (В Webmin/10000, HTTP-прокси/8080, протокол удаленного рабочего стола/3389 и т. д.)
эфемерные/динамические / частные порты (49152-65535) - диапазон 49152-65535 содержит динамические или частные порты, которые не может быть зарегистрированным в IANA. Этот диапазон используется для пользовательских или временных целей и для автоматического выделения временных портов.
могу ли я увеличить или уменьшить количество порты?
Что касается возможности увеличить количество доступных портов, вы не можете назначить порт выше 65535 из - за математики, которая позволяет сети работать (двоичный) - поэтому ответ на этот вопрос-нет, вы не можете увеличить общее количество доступных портов выше 65535.
Что такое протоколы?
в информатике коммуникационный протокол-это система цифровых правил обмена сообщениями внутри или между компьютеры. При обмене сообщениями через компьютерную сеть система правил называется сетевым протоколом. Протокол-это в основном согласованный набор инструкций/команд / вызовов, через которые могут обмениваться данными два сетевых устройства. Подумайте, если бы мы не согласовали протоколы и веб-серверы просто случайно отправили данные в веб-браузеры, которые браузер не знал, что делать? К счастью, у нас есть HTTP, и каждый созданный веб-браузер встроен в программное обеспечение, чтобы он мог связь с любым веб-сервером, который также говорит на том же языке (HTTP).
Я бы предположил, что это какой-то код.... Можете ли вы создать свой собственный протокол? На каком языке создается протокол?
Да, вы можете создавать свои собственные протоколы. Протоколы написаны на самых разных языках. Я не программист, но я уверен, что пока на каком бы языке вы используете библиотеки, которые позволяют писать программы это может взаимодействовать через TCP / IP (существуют другие наборы протоколов, но TCP / IP является наиболее широко используемым) вы можете использовать этот язык для написания протокола. Язык программирования "C", по-видимому, наиболее часто используется для написания протоколов. Это связано с тем, что многие из первых сетевых протоколов были разработаны на UNIX в 1970-х годах, а язык C является языком, на котором написан сам UNIX.
Как получить определенный порт для запуска определенного протокола?
Это отличается совсем немного между ОС. Например, чтобы изменить номер порта, на котором работает протокол удаленного рабочего стола в Windows, необходимо изменить реестр. В Linux многие сетевые службы можно настроить непосредственно из a .файл conf для конкретной сетевой службы.
Как вы определяете или изобрести новый протокол?
посмотреть https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ для сообщения в блоге кем-то, кто недавно разработал новый сетевой протокол и какие вещи он должен был сделать на этом пути.