tcp syn

Запросы к веб-серверу и их обработка предполагают использование протокола TCP, обеспечивающего гарантированную доставку данных и обратную связь. Рассмотрим путь TCP SYN пакета от одного хоста к другому со всеми промежуточными узлами.

 

 

TCP SYN — передача пакета по сети с подробным разбором

 

Что представляет собой 3 way handshake:

  1. Устройство, которое желает установить связь отправляет SYN пакет (если рассматривать запрос к странице сайта, то соединение инициируется клиентом)
  2. В ответ сервер отправляет SYN/ACK, что означает готовность к соединению
  3. Клиент получает SYN/ACK и отвечает ACK

 

Таким образом, происходит установка соединения. Далее возможна передача данных.

 

 

 

Рассмотрим как работают сетевые устройства, при на первом шаге. С любым пакетом процесс аналогичен и будет повторяться. Предполагается, что отправитель и получатель находятся в разных сетях на удалении друг от друга.

 
tcp syn
 

 

 

Первая задача клиентского устройства — сформировать пакет SYN: порт отправителя(случайный), порт назначения, IP адрес назначения. Это TCP/IP и третий уровень модели OSI. В дальнейшем пакет не меняется, к нему только добавляются дополнительные заголовки.

 

Поскольку адрес назначения не из локальной сети (так и будет если сервер находится в интернете) — пакеты должны уходить на роутер, куда их отправит коммутатор, установленный в офисной сети или у провайдера.

 

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

 

 

Роутер за коммутатором

MAC во фрейме роутер ставит в качестве получателя, свой MAC в качестве отправителя. Получается дополнительный заголовок второго уровня OSI.

 

Формируется CRS (или frame check sequence FCS) — хэш пакета md5, добаляет хэш в начало пакета.

 

 

Роутер в сети

Первый роутер на пути проверит CRS и сравнит хэш до отправки и полученный им при приеме. Обработка продолжится только при совпадении значений. Так реализована защита от ошибок и перехвата трафика.

 

Затем распаковывает пакет и видит свой MAC как получателя, отбрасывает заголовок второго уровня.

 

Роутер проверяет IP адрес назначения, смотрит таблицу роутинга и отправляет пакет на следующий хоп (если нужно предварительно делает ARP, формирует новый заголовок 2 уровня со своим MAC и MAC следующего хопа). Вновь формируется и добавляется CRS.

 

 

 

Следующий хоп повторяет то же, так пока IP адрес получателя не совпадет с тем, который находится в «зоне ответственности» роутера.

 

 

Конечный хост также проверяет CRS, только он распаковывает пакет 3 уровня, который сформирован изначально и выясняет на какой порт требуется доставить и кто является отправителем.

 

Формируется SYN-ACK и отправляется обратно таким же образом. По этому принципу передаются по TCP/IP сети общего доступа любые данные.

 

Про разграничение сетей на локальные и сети общего доступа — приватные и публичные адреса.