У меня есть несколько вопросов относительно следующего объяснения портов, которые я нашел.
Уровень приложений взаимодействует с транспортным уровнем через порт. Порты пронумерованы, и стандартные приложения всегда используют один и тот же порт.
Использование номера порта позволяет транспортному протоколу (обычно TCP) знать, какой тип содержимого находится внутри пакета, что позволяет ему на приемной стороне сообщить, в какой протокол приложения он должен доставлять полученные данные.
- Почему номер порта используется для определения типа протокола данных приложения, если нет абсолютной гарантии? - Насколько я понимаю, нет никаких ограничений на то, какие данные приложения вы отправляете через порт (это всего лишь предложение). Плюс, данные протокола уже не включены где-то в пакет для этой цели? 
- Кроме того, что происходит с данными, если вы отправляете HTTP или какой-либо другой протокол в пункт назначения 25 (который ожидает SMTP)? 
- В-третьих, что происходит с данными, если вы отправляете их на порт, который не связан ни с одной программой и, следовательно, не прослушивается? 
- ** Наконец, если порт может быть привязан только к одной программе, как могут одновременно работать несколько программ, которые зависят от входящих данных HTTP, на моем компьютере?**** 
Заранее спасибо!
