Протокол TCP | Курс “Компьютерные сети”

Видеолекция по протоколу TCP.
Лекции по курсу “Компьютерные сети” – https://goo.gl/0aIOuf

TCP (Transmission Control Protocol, протокол управления передачей) – протокол транспортного уровня стека TCP/IP. Он предоставляет сервис надежной передача потока байт (reliable byte stream). TCP предоставляет следующие гарантии:
– Доставка данных.
– Сохранения порядка следования сообщений.

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

Для гарантии доставки TCP использует подтверждение получения данных. Получатель, после приема очередной порции данных, передает отправителю подтверждения о получении. В случае, если подтверждение не пришло, отправитель передает данные еще раз.

В TCP подтверждается не получение каждого сегмента, а получение нескольких сегментов. Это сделано для увеличения скорости передачи данных: отправитель может передать без остановки несколько сегментов, не дожидаясь прихода подтверждения. Такой тип подтверждения называется кумулятивный: подтверждается получение последнего сегмента, и всех предыдущих. Количество сегментов, которые отправитель может передать без подтверждения, называется размер скользящего окна.

Однако только подтверждения и повторной отправки недостаточно для надежной передачи потока байт. В дополнение к потере данных возможна и другая проблема: нарушение порядка следования сообщений:
– Сегменты приходят в неправильном порядке.
– Сегменты дублируются.

Для сохранения порядка следования сообщений используется нумерация сообщений. Особенность протокола TCP в том, что он нумерует не сегменты, а байты в сегментах. Нумерация сообщений позволяет расставить перепутанные сегменты в правильном порядке, а также не учитывать дублирующийся сегменты.

Перед отправкой данных по TCP необходимо установить соединение. Задачи соединения:
– Убедиться, что отправитель и получатель хотят передавать данные друг другу.
– Договориться о нумерации потока байт.
– Договорится о параметрах соединения (максимальный размер сегмента и т.п.).

После завершения передачи данных соединение TCP разрывается.

Практические занятия по курсу “Компьютерные сети” – https://goo.gl/YP3l83

Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках:
https://goo.gl/kW93MA

ПРИСОЕДИНЯЙТЕСЬ
Поделиться

Андрей Созыкин

Меня зовут Андрей Созыкин, я работаю в университете, веду курсы по компьютерным наукам. Здесь представлены видеолекции, подготовленные на основе этих курсов. Для видеолекций я отбираю самые важные материалы, необходимые для понимания предмета, и рассказываю их кратко, без лишних деталей, которые затруднят восприятие. Несмотря на краткость, изложение ведется системно; это не набор забавных видео, никак не связанных между собой.