-1
  • Почему компьютеры имеют 65 535 портов TCP?
  • Откуда этот номер?
  • Что это представляет?

3 ответа3

5
  1. « Почему у компьютеров 65535 портов TCP?"

Компьютеры не имеют портов. Понятие "порты", на которые вы ссылаетесь, строго связано с протоколами TCP и UDP сетевого стека TCP/IP. С чисто технической точки зрения как TCP, так и UDP структурированы таким образом, чтобы передавать несколько видов информации (порт источника, порт назначения, порядковый номер, данные и т.д.). Поскольку оба "Исходный порт" и "Порт назначения" структурированы (в пакете TCP и UDP) с 16-битным "полем", вот ограничения: исходные порты и порты назначения могут принимать все значения, которые могут быть представлены 16 биты (иначе: от 0 до 65535);

  1. " Откуда этот номер?"

См. Выше: исходные порты и порты назначения могут принимать значения в диапазоне от 0 до 65535, потому что они оба представлены 16-битным значением внутри соответствующих пакетов.

  1. « Что это на самом деле представляет?"

Короче говоря, и "порт источника", и "порт назначения" играют очень важную роль, поскольку они позволяют одному "хосту" (одному "клиенту" или одному "серверу") "предлагать" различные услуги по отношению к сетевым клиентам, несмотря на наличие одного IP-адреса. Другими словами, без "портов" было бы гораздо сложнее иметь один "сервер", предлагающий веб-сервер (на TCP-порт 80 для простого HTTP; на TCP-порт 443 для HTTPS), почтовый сервер (на TCP-порт 25 для входящего SMTP, на TCP-порт 110 для доступа по протоколу POP3, на TCP-порт 143 для доступа к IMAP), сервер БД (на TCP/ порт 3306 для MySQL)) и т.д.

Читатели-пуристы могут не согласиться со мной по поводу указанного упрощения и ... они будут правы: на самом деле IP-адреса и PORTS играют очень важную роль, которая для полного понимания требует правильного понимания Концепция « инкапсуляции » (наверняка, самая важная концепция среди представленных в этом самом ответе). К сожалению, это обычно требует много раз, чтобы быть должным образом "освоенным" и ... вот почему, мое выше упрощение :-)

1

TCP, UDP и, возможно, другие IP-сервисы используют порты для осторожного взаимодействия между процессами клиента и сервера между хостами, использующими IP-сеть.

Более подробную информацию можно найти в этой статье вики.

С нисходящей точки зрения порты представляют собой разные разговоры между двумя хостами. Например, несколько DNS-запросов одновременно отправляются хостом на его назначенный сервер, каждый из которых использует свой порт-источник для порта 53 назначения. Когда сервер выбирает ответы и обслуживает запросы, он будет отправлять определенные ответы обратно на тот же порт, где он будет получен отдельным процессом, ожидающим ответа.

С точки зрения снизу вверх порты являются способом резервирования линии IP-связи отдельных процессов операционной системой хоста. Хотя может быть несколько процессов, отправляющих запросы на один и тот же порт удаленных хостов, каждый процесс будет использовать свой порт-источник для своих запросов. Это гарантирует, что ответы будут получены соответствующим процессом.

Для перенесенных протоколов в заголовках пакетов зарезервировано 32 бита: 16 бит для порта источника и 16 бит для порта назначения. Для TCP и UDP это первые 32 бита, следующие непосредственно за заголовком IP; они начинаются с 192-го бита. 16-битное число имеет значения от 0 до 65535.

-1

65 536 - это очень распространенное число в вычислительной технике, потому что оно равно 2 степени 16 (2 ^ 16). 2 ^ 8 - 256, а 65 536 - квадрат 256.

Другими словами, 16-битное двоичное число может представлять 65 536 различных целых чисел. Так что, вероятно, отсюда ваш диапазон 65 535.

Но подождите, вы думаете, я должен быть на одну цифру, потому что 65 535 - это 65 536 минус 1! Ну, нет, если вы начнете считать с нуля! Например, 8-битное изображение кодирует 256 значений, но обычно они начинаются с 0 и доходят до 255. Вот почему вы часто видите числа как 255 или 65 535 в вычислениях.

Я предполагаю, что порты TCP изначально хранились как 16-битное число, отсюда и их верхний предел. Я не уверен, что это все еще так. Надеюсь, это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .