Интервьюер спросил, как ответить TCP/IP перед прохождением теста

Байду внешний интерфейс сервер TCP/IP

Как мы все знаем о TCP/IP, когда появился Интернет, он был тесно связан с жизнью интернет-людей. Итак, как разработчику интерфейса, если вам нужно глубокое понимание TCP/IP, автор может без сомнения сказать вам, что вам действительно нужно знать и понимать TCP/IP.

Front-end разработчику тем более необходимо понимать, что сейчас крупные заводы, интервью надо задавать, тогда давайте посмотрим, какие знания по TCP/IP нам нужно освоить и уметь отвечать.

итог проблемы:

Интервьюер: Что вы знаете о tcp/ip?

Сяо С: Можно поконкретнее?

Интервьюер: семиуровневая модель osi и пятиуровневая модель TCP/IP.

Маленький S: достаточно картинки, чтобы проиллюстрировать их

Интервьюер: Расскажите мне о трехстороннем рукопожатии и четырехсторонней волне TCP/IP.

Маленький S: Ниже приводится описание трехэтапного рукопожатия.

  • Для удобства описания мы называем хост 172.16.50.72:65076, который инициирует запрос, как клиент, а хост 172.16.17.94:8080, который возвращает данные, как сервер.
  • Первое рукопожатие: установить соединение. Клиент отправляет запрос на подключение, отправляет сообщение SYN и устанавливает для seq значение 0. Затем клиент переходит в состояние SYN_SEND и ожидает подтверждения от сервера.
  • Второе рукопожатие: сервер получает сегмент SYN клиента. Этот сегмент SYN должен быть подтвержден, отправлено сообщение ACK, и для подтверждения установлено значение 1. В то же время вы должны отправить информацию запроса SYN и установить seq на 0. Сервер отправляет всю вышеуказанную информацию клиенту, и сервер переходит в состояние SYN_RECV.
  • Третье рукопожатие: после того, как клиент получает сообщения ACK и SYN от сервера, он подтверждает их, затем устанавливает ack в 1 и seq в 1 и отправляет сегмент ACK на сервер. клиент и сервер переходят в состояние ESTABLISHED и завершают трехстороннее рукопожатие TCP.

Сяо S: Четыре волны такие:

  • Первая волна: клиент отправляет сегмент FIN на сервер и устанавливает seq на 160 и ack на 112; в это время клиент входит в состояние FIN_WAIT_1, что означает, что у клиента нет данных для отправки на сервер, и просит закрыть соединение;
  • Вторая волна: сервер получает FIN-сегмент, отправленный клиентом, и возвращает клиенту ACK-сегмент. ответ от сервера.После сообщения ACK войти в состояние FIN_WAIT_2;
  • Третья волна: сервер будет наблюдать, есть ли у него данные, которые не были отправлены клиенту, если да, то он сначала отправит данные клиенту, а затем отправит сообщение FIN, если нет, то сервер отправит напрямую Сообщение FIN клиенту. Запрос на закрытие соединения и переход сервера в состояние LAST_ACK;
  • Четвертая волна: клиент получает сегмент FIN, отправленный сервером, отправляет сегмент ACK на сервер, устанавливает seq на 161, устанавливает ack на 113, после чего клиент переходит в состояние TIME_WAIT; сервер получает ACK от клиент После сегмента сообщения соединение закрывается, в это время клиент не получает ответа после ожидания 2MSL, что доказывает, что сервер был закрыт нормально, и клиент также может закрыть соединение.

Интервьюер: Теперь давайте поговорим о разнице между TCP и UDP.

Маленький С:.....

  • 1. TCP ориентирован на установление соединения (если вы звоните, то для установления соединения необходимо сначала дозвониться); UDP без установления соединения, то есть не нужно устанавливать соединение перед отправкой данных
  • 2. TCP обеспечивает надежный сервис. То есть данные, передаваемые по TCP-соединению, безошибочны, не теряются, не дублируются и поступают последовательно; UDP делает все возможное для доставки, т. е. не гарантирует надежной доставки.
  • 3. TCP ориентирован на байтовые потоки Фактически, TCP рассматривает данные как серию неструктурированных байтовых потоков, UDP ориентирован на сообщения.

Например, TCP-соединение похоже на телефонный звонок. Между ними должен быть непрерывный путь. Если данные не достигают другой стороны, другая сторона будет ждать, пока другая сторона не повесит трубку напрямую. То, что сказано первым, приходит первым, а то, что говорится позже, приходит по порядку.

  • 4. Каждое TCP-соединение может быть только двухточечным, UDP поддерживает интерактивную связь «один-к-одному», «один-ко-многим», «многие-к-одному» и «многие-ко-многим».
  • 5. Заголовок TCP составляет 20 байт, заголовок UDP небольшой, всего 8 байт.
  • 6. Логический канал связи TCP является полнодуплексным надежным каналом, а UDP — ненадежным каналом.

Эпилог

Не недооценивайте эти вопросы. Хотя это поиск Baidu, ответы те же, но, пожалуйста, спросите себя, можете ли вы ясно выразить это и дать понять другим. Итак, друзья, которые хотят пройти тест, давай, я Поверьте, вы уже знаете, что ответить.