Браузер для каждого сайта использует свой порт отправления(т.е. 1 сайт 1 порт). Верно? Если да то по какому алгориму выбирается номер порта?

1. Я так понял: Если браузеру нужно загрузить сайт он выбирает случайный порт и с него шлет пакеты на сервер.
А сервер шлет ответы на порт который был выбран браузером.
Для каждого сайта (или сессии с сайтом) выбирается свой порт.
Правильно?
2. Как именно браузер выбирает порт? По какому алгоритму?
3. Как поведет себя шлюз с nat если через него PC1 и PC2 отправят пакет на сервер X c одинакового порта?
Получается что шлюз не сможет какой эээ... ответ от сервера какому PC принадлежит. Что будет делать шлюз в таком случае? Есть ли какая то защита от выше описанной ситуации?
  • Вопрос задан
  • 2816 просмотров
Решения вопроса 1
Mystray
@Mystray
NOC
2. Как именно браузер выбирает порт? По какому алгоритму?

Браузер порты сам не выбирает, а полагается на операционную систему. И уже она выбирает по собственным алгоритмам

3. Как поведет себя шлюз с nat если через него PC1 и PC2 отправят пакет на сервер X c одинакового порта?

у второго исходящего соединения кроме адреса отправителя поменяет еще и номер порта, делов-то. А может и у первого соединения поменяет, если по какой-либо причине решит, что так удобнее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@res2001
Developer, ex-admin
1.Часто браузер для одного сайта открывает не одно соединение, а сразу пачку и качает ресурсы параллельно. Порты в этом случае для каждого соединения разные. Кроме того на одной странице могут быть ссылки ведущие на разные сайты, для них браузер открывает новые соединения.
2.Как было сказано порт выбирает ОС. При открытии сокета браузер указывает, что нужен "любой локальный порт". Считайте, что ОС выбирает первый свободный порт из динамического диапазона. На самом деле сложнее, конечно, но конкретный алгоритм обычно не важен.
3.В общем случае шлюз с NAT подменяет и адрес и порт, поэтому сервер увидит не адрес и порт отправителя, а адрес и порт шлюза. Все это происходит прозрачно для сервера и для клиента. Клиент думает, что он общается на прямую с сервером, а сервер думает, что клиент - это шлюз с NAT и не подозревает, что по пути пакета реальный адрес/порт клиента был подменен NATом.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
1) правильно
2) каждый раз (каждая вкладка) порт увеличивается, но ты и 1000 вкладок не откроешь - не хватит или памяти или процессора ( про голову молчу)
3) NAT распределяет по IP адресу и вообще не парится за порты, смотри как файрволлы реализованы
Ответ написан
karabanov
@karabanov
Системный администратор
3. Вот для этого и придумали CG-NAT
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы