2014-09-11 2 views
0

Например, когда вы подключаете ssh, вы подключаетесь к порту 22. Что происходит? На краткий обзор очень высокого уровня я знаю, что если порт 22 открыт на другом конце, и если вы можете аутентифицироваться на нем как определенный пользователь, тогда вы получите оболочку на этой машине.Что означает подключение к определенному порту?

Но я не понимаю, как порты связывают эту модель услуг и соединений с различными службами с удаленных компьютеров? Почему существует потребность в таком количестве конкретных портов, на которых работают определенные службы? И что именно происходит, когда вы пытаетесь подключиться к порту?

Надеюсь, этот вопрос не слишком запутан из-за моего наивного понимания. Благодарю.

+0

http://en.wikipedia.org/wiki/Port_(computer_networking) –

+0

Каждая служба слушает другой порт - только один процесс может прослушивать любой конкретный порт. Подумайте о порте в качестве личного номера почтового ящика в жилом комплексе. – user2864740

ответ

1

TCP-IP-порты на вашем компьютере по существу являются механизмом для получения сообщений в правильные конечные точки.

Каждый из возможных портов 65536 (16 общих разрядов) подпадает под определенные категории как designated уполномоченным органом Интернета (IANA).

Но я не понимаю, как порты связывают эту модель услуг и подключения к различным службам с удаленных компьютеров? Почему существует потребность для большого количества конкретных портов, работающих с определенными службами?

...

И что же происходит, когда вы пытаетесь подключиться к порту?

Думайте об этом так: Сколько приложений на вашем компьютере общаются с другими машинами? Веб-браузер, клиент электронной почты, клиент SSH, онлайн-игры и т. Д. Не говоря уже о всех вещах, работающих под капотом.

Теперь подумайте: сколько физических портов у вас есть на вашей машине? У большинства настольных компьютеров есть один. Иногда два или три. Если одно приложение должно было полностью контролировать ваш сетевой интерфейс, ничто другое не сможет его использовать! Таким образом, TCP-порты - это способ превратить 1 соединение в 65536 соединений.

Например, если вы подключаете ssh, вы подключены к порту 22. Что происходит?

Подумайте, как отправить пакет. Ваш SSH-клиент перед вами должен отправить информацию в процесс, запущенный на другом компьютере. Таким образом, вы отправляете адрес назначения в виде «user @ [ip или имя хоста]» (чтобы он знал, какой компьютер в сети должен отправить его) и «порт 22» (поэтому он попадает в нужное приложение, запущенное на машина). Затем ваше приложение упаковывает пакет TCP и маркирует адрес назначения и адрес возврата и отправляет его в сеть.

Сеть находит компьютер назначения и доставляет пакет. Итак, теперь это на правильной машине, но ей все равно нужно попасть в нужное приложение. Как вы думаете, что произойдет, если ваш SSH-пакет будет доставлен клиенту электронной почты? Это номер порта. Он эффективно сообщает локальному почтовому ящику TCP вашего компьютера, где можно сделать окончательную доставку. Затем приложение делает все, что ему нужно, с данными (например, проверка подлинности) и отправляет ответный пакет, используя обратный адрес вашего компьютера. Взад и вперед продолжается до тех пор, пока соединение активно.

Надеюсь, что это поможет. :)

1

Представьте свой сервер как дом с 65536 дверьми. Если вы хотите посетить семейный «HTTP», вы идете к двери 80. Если бы вы посетили семейство «SMTP», вы бы посетили дверь №. 25.

Технически порт является лишь одним из нескольких возможных конечных точек для исходящих/входящих соединений. Многие номера портов назначаются определенным службам by convention.

Открытие/установление соединения (когда транспортный протокол является TCP, который является большинством «классических» сервисов, таких как HTTP, SMTP и т. Д.), Что вы выполняете команду TCP handshake. С UDP (используется для таких вещей, как потоковое вещание и VoIP), нет рукопожатия.

Если вы хотите понять более глубокое вуду IP-сетей, вы могли бы просто сказать, что об этом. Ничего слишком особенного.

+0

Да, я надеялся получить некоторую интуицию о вуду IP-сетей, но ваше объяснение о том, как TCP и UDP относятся к такому виду, подходит для части головоломки для меня. Благодаря! – Anko

+1

Если вы хотите немного поэкспериментировать, установите wirehark и посмотрите, что происходит, когда вы открываете веб-сайт или получаете электронную почту или подключаетесь к FTP-серверу. Pro tip: попробуйте использовать службы без шифрования и без сжатия, и вы даже увидите полезную нагрузку. – lxg

1

Порт предназначен для того, чтобы приложения TCP/IP могли обмениваться данными. Каждая машина в Интернете имеет один единственный адрес, который является его IP. Порт позволяет различным приложениям на одной машине отправлять и получать данные с нескольких серверов в сети/Интернете. Общее приложение, такое как ftp и http-серверы, связывается с портами по умолчанию, такими как 21 и 80, если сетевые администраторы не изменяют эти порты по умолчанию по соображениям безопасности.

Смежные вопросы