Сталкивался ли с сетевой моделью OSI

«Сталкивался ли с сетевой моделью OSI» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, OSI (Open Systems Interconnection) — это эталонная модель из 7 уровней для сетевых коммуникаций:

  1. Физический (кабели, сигналы)
  2. Канальный (MAC, Ethernet)
  3. Сетевой (IP, маршрутизация)
  4. Транспортный (TCP/UDP, порты)
  5. Сеансовый (управление сессиями)
  6. Представления (шифрование, сжатие)
  7. Прикладной (HTTP, FTP).

В Android чаще работаем с уровнями 4 (TCP/UDP в Socket) и 7 (HTTP в Retrofit/OkHttp).

Пример TCP-соединения:

val socket = Socket("example.com", 80)
val output = socket.getOutputStream()
output.write("GET / HTTP/1.1rnHost: example.comrnrn".toByteArray())