Ответ 1
NAT будет определять/определять исходящий порт для NAT-соединения/сеанса через собственные внутренние средства. Значение, это будет варьироваться в зависимости от реализации NAT. Это означает, что любые ответы назад вернутся к тому же самому исходящему порту.
Что касается вашего вопроса:
Что происходит, например, если два компьютера в локальной сети отправляют HTTP запросы с тем же исходным портом на тот же сайт?
Он назначит разные исходящие порты для каждого. Таким образом, он может различать два в полученных ответах. NAT создавали/поддерживали бы отображение переведенных портов, создавая новые номера исходящих портов для новых сеансов. Поэтому, даже если бы были две разные "внутренние" сеансы, с двух разных машин, на одном и том же номере порта, он отобразил бы два разных номера порта на исходящей стороне. Таким образом, когда пакеты возвращаются в соответствующие порты, он будет знать, как перевести их обратно на правильный адрес/порт во внутренней локальной сети.
Диаграмма: