Требуется ли MAC-адрес получателя для TCP-соединений через Интернет? [закрыто]

Я хочу установить TCP-соединение через Интернет между двумя компьютерами, находящимися в разных локальных сетях (в локальных сетях используется Wi-Fi). Я искал описание протокола TCP, особенно структуру заголовка TCP: http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Checksum_computation

Из этих данных я предположил, что только: Необходимо указать адрес источника (глобальный IP-адрес), адрес назначения (глобальный IP-адрес), порт источника, порт назначения.

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

РЕДАКТИРОВАТЬ: В моей ситуации у меня есть: мобильный телефон, подключенный к Интернету (не через Wi-Fi), и сервер (ПК) в домашней локальной сети, подключенный к маршрутизатору через Wi-Fi.

Итак, возникает вопрос: являются ли глобальный IP-адрес отправителя / получателя и порты всем, что необходимо, или MAC-адреса также необходимы для установления соединения?

Если MAC-адрес не нужен, что, если есть два компьютера в одном и том же сети, которые прослушивают один и тот же порт. Насколько я помню, все компьютеры используют порт 80 для http, который использует tcp. Почему нет конфликтов?

-1
задан 21 January 2014 в 08:54
2 ответа

В коммутируемой сети, да, MAC-адрес требуется клиенту.

В маршрутизируемой сети нет MAC-адрес не требуется клиенту.

В примере с маршрутизацией пакет покидает источник сеть через маршрут по умолчанию. Затем этот маршрутизатор обращается к своей таблице маршрутизации, чтобы решить, как отправить трафик в пункт назначения. По прибытии в сеть назначения маршрутизатор использует протокол ARP для определения правильного MAC-адреса в локальной сети, и пакет отправляется.

3
ответ дан 5 December 2019 в 19:03

If MAC is not necessary what if there are two computers in the same network that are listening on the same port. As far as I remember all pc's use port 80 for http which uses tcp. Why are there no conflicts?

There are conflicts. This is one of the reasons being behind NAT and on a network with a single public IP kind of sucks. There are three ways the router can tell which machine to send the packet to:

  1. If the connection originated from the inside, the router can make a NAT table entry. When it sees the inbound packet, it looks up the source IP address, source port, and destination port up in its NAT table. This tells is the inside destination IP address. It can then rewrite the destination IP address.

  2. If port forwarding is specifically set up in the router, it can look up this destination port and rewrite the destination IP address as configured.

  3. If a dynamic protocol like UPnP is configured, then the inside machine can create a dynamic forwarding entry in the router, allowing it to rewrite the destination IP address.

2
ответ дан 5 December 2019 в 19:03

Теги

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