Дополнительно о портах
Порты могут рассматриваться как точки присоединения сетевых связей. Если приложение (сервер) хочет предложить некий сетевой сервис, оно ассоциирует себя с портом и ждет клиентов (это называется слушать порт). Клиент, который хочет использовать этот сервис получает порт на местном хосте и соединяется с портом сервера на отдаленном хосте.
Важная особенность портов то, что пока существует связь между клиентом и сервером, другая копия сервера может присоединиться к тому же порту и ждать подключения других клиентов. Это разрешает, например, несколько параллельных отдаленных входов на один и тот же хост, причем все используют один самый 513 порт. TCP способен отличать этим связи друг от друга, потому что они все прибывают от различных портов или хостов. Например, если Вы дважды войдете на quark от erdos, тогда первый rlogin клиент будет использовать местный порт 1023, а второй будет использовать порт 1022. Однако, будут соединяться с тем же самым портом 513 на quark.
Этот пример показывает использование портов как пункты, где клиент входит в контакт с определенным портом чтобы получить определенное обслуживание. Клиенту необходимо знать надлежащий номер порта, соглашение о назначении этих номеров должно быть достигнуто между администраторами обеих систем. Для услуг которые широко используются, типа rlogin, эти номера должны устанавливаться централизованно. Этим занимается IETF (или Проектирующая задачи Internet сила), которая регулярно выпускает RFC статьи. Которые, среди прочего, назначают номера портов для общеизвестных услуг. Linux использует файл, в котором регистрируют названия доступного другим сервеса и номера портов, к которым определенный сервес прикреплен, называется он /etc/services. Он описан в секции 10.3.
Стоит заметить, что хотя и TCP и UDP полагаются на порты, эти номера не находятся в противоречии. Это означает что TCP порт 513, например, отличается от UDP порта 513. Фактически, эти порты служат как точки доступа для двух различных услуг, а именно rlogin (TCP) и rwho (UDP).