Распространенные вопросы на собеседовании по компьютерным сетям (1)
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Общие вопросы на собеседованиях по компьютерным сетям затрагивают многие уровни, включая сетевые протоколы, сетевую архитектуру, сетевую безопасность, передачу данных и т. д. Вот подробные объяснения некоторых распространенных вопросов:
1. Что такое семиуровневая модель OSI? Какова функция каждого слоя?
Семиуровневая модель OSIЭто стандартная система взаимодействия между компьютерами или системами связи, разработанная Международной организацией по стандартизации (ISO). Сверху вниз это:
- Прикладной уровень: предоставление интерактивных услуг для приложений, таких как HTTP, FTP, SMTP и другие протоколы.
- уровень представления: Представление данных, безопасность и сжатие, преобразование данных прикладного уровня в формат, подходящий для передачи по сети.
- сеансовый уровень: устанавливать, управлять и завершать сеансы, организовывать и координировать связь между двумя процессами сеанса.
- транспортный уровень: Отвечает за предоставление услуг передачи данных для связи между двумя хост-процессами, включая протоколы TCP и UDP, для обеспечения надежной передачи данных.
- Сетевой уровень: выберите соответствующие узлы маршрутизации и коммутации для обеспечения своевременной передачи данных. Основной протокол — IP.
- канальный уровень: При передаче данных между двумя соседними узлами объединяйте IP-дейтаграммы, передаваемые сетевым уровнем, в кадры и добавляйте необходимую управляющую информацию.
- физический слой: Реализуйте прозрачную передачу битовых потоков между соседними компьютерными узлами, максимально скрывая различия в средах передачи и физических устройствах.
2. В чем разница между TCP и UDP?
TCP (протокол управления передачей) и UDP (протокол пользовательских дейтаграмм) являются протоколами транспортного уровня. Их основные различия включают в себя:
- Возможности подключения: TCP — это протокол, ориентированный на соединение, и соединение необходимо установить перед передачей данных, тогда как UDP — это протокол без установления соединения, и соединение не требуется устанавливать перед отправкой данных.
- надежность: TCP обеспечивает надежную передачу и гарантирует правильную передачу данных с помощью таких механизмов, как порядковые номера, ответы-подтверждения и повторные передачи по тайм-ауту. UDP не предоставляет гарантий надежности, и данные могут быть потеряны или доставлены не по порядку.
- Эффективность передачи: Поскольку TCP необходимо установить соединение и выполнить проверку надежности, его эффективность передачи относительно низка, в то время как UDP не имеет этих накладных расходов и имеет более высокую эффективность передачи;
- Сценарии применения: TCP подходит для сценариев приложений, требующих надежной передачи, таких как передача файлов, просмотр веб-страниц и т. д.. UDP подходит для сценариев приложений, требующих высокой производительности в реальном времени и допускающих определенную потерю данных, например, видео в реальном времени; трансляции, онлайн-игры и т.д.
3. В чем разница между HTTP и HTTPS?
Основное различие между HTTP (протоколом передачи гипертекста) и HTTPS (защищенным протоколом передачи гипертекста) заключается в безопасности:
- безопасность: HTTP передает простой текст, а данные легко перехватываются и подделываются, тогда как HTTPS добавляет к HTTP уровень протокола SSL/TLS для шифрования и передачи данных для обеспечения безопасности передачи данных.
- Номер порта: HTTP по умолчанию использует порт 80; HTTPS по умолчанию использует порт 443.
- производительность: Поскольку HTTPS требует операций шифрования и дешифрования, его производительность будет снижена по сравнению с HTTP.
4. Каков процесс трехстороннего рукопожатия TCP и четырехсторонней волны?
Трехстороннее рукопожатие TCPПроцесс выглядит следующим образом:
- Клиент отправляет пакет SYN (порядковый номер синхронизации) на сервер и переходит в состояние SYN_SENT, ожидая подтверждения от сервера.
- После получения пакета SYN сервер подтверждает SYN клиента (ack=j+1), а также отправляет пакет SYN (то есть пакет SYN+ACK). В это время сервер входит в состояние SYN_RCVD.
- После получения пакета SYN+ACK от сервера клиент отправляет пакет подтверждения ACK (ack=k+1) на сервер. После отправки пакета клиент и сервер переходят в состояние ESTABLISHED и завершают трехстороннее соединение. рукопожатие.
TCP посылает четыре сигналаПроцесс выглядит следующим образом:
- Клиент отправляет FIN для закрытия передачи данных от клиента к серверу, и клиент переходит в состояние FIN_WAIT_1.
- После того, как сервер получает FIN, он отправляет ACK клиенту. Порядковый номер подтверждения равен полученному порядковому номеру + 1 (так же, как SYN, один FIN занимает один порядковый номер), и сервер переходит в состояние CLOSE_WAIT.
- Сервер закрывает соединение с клиентом, отправляет клиенту FIN, и сервер переходит в состояние LAST_ACK.
- После получения FIN клиент отправляет на сервер ACK, подтверждающий, что порядковый номер равен полученному порядковому номеру + 1, и клиент переходит в состояние TIME_WAIT. Сервер закрывает соединение после получения ACK. Если клиент по-прежнему не получает ответа после ожидания 2MSL, он переходит в состояние ЗАКРЫТО.
5. Почему TCP требует трех рукопожатий вместо двух?
Основная причина, по которой TCP требует трехстороннего рукопожатия вместо двустороннего, заключается в том, чтобы гарантировать, что обе стороны имеют возможность получать и отправлять данные, тем самым устанавливая надежное соединение. Конкретно:
- Первое рукопожатие: клиент отправляет пакет SYN, а сервер подтверждает возможность отправки клиента.
- Второе рукопожатие: сервер отправляет пакет SYN+ACK, а клиент подтверждает возможности приема и отправки сервера.
- Третье рукопожатие: клиент отправляет пакет ACK, а сервер подтверждает возможность приема клиента.
Если рукопожатий всего два, может возникнуть следующая ситуация: клиент отправляет запрос на соединение, но не получает подтверждения, поскольку сообщение запроса на соединение потеряно, поэтому клиент повторно передает запрос на соединение. Позже было получено подтверждение и соединение установилось. После завершения передачи данных соединение разрывается, и клиент отправляет в общей сложности два сегмента запроса на соединение, из которых первый теряется, а второй достигает сервера. Однако первый потерянный сегмент оставался в некоторых узлах сети лишь в течение длительного времени, и он задерживался до определенного времени после разрыва соединения, прежде чем достичь сервера. В это время сервер ошибочно подумал, что клиент выдал новый. запрос на соединение, затем клиенту отправляется сегмент подтверждающего сообщения, дающий согласие на установление соединения. Поскольку клиент в это время не отправил запрос данных, сервер будет ждать, пока клиент отправит данные, что приведет к пустой трате ресурсов.
6. Какие методы HTTP-запросов обычно используются? Каковы различия и способы использования между ними?
Обычно используемые методы HTTP-запроса включают GET, POST, PUT, DELETE, CONNECT, OPTIONS и TRACE, среди которых наиболее часто используются GET и POST.
- ПОЛУЧАТЬ : используется для отправки запроса на получение данных на сервере. Параметры включены в URL-адрес и подходят для сценариев, в которых объем запрашиваемых данных невелик и требования безопасности не высоки.
- ПОЧТА : используется для отправки данных в ресурс, указанный URL-адресом. Параметры передаются через тело запроса, что подходит для сценариев, в которых передается большой объем данных или когда требования безопасности высоки.
Другие методы запроса, такие как PUT и DELETE, используются для изменения данных на сервере, удаления ресурсов на сервере и т. д. Каждый из этих методов запроса имеет свои особенности использования и применимые сценарии.
Выше приведено подробное объяснение распространенных вопросов на собеседованиях в компьютерных сетях. Эти вопросы охватывают многие аспекты, такие как сетевые протоколы, сетевая архитектура и передача данных, и являются важной частью проверки знаний кандидатов в компьютерных сетях.