TCP/IP

Протокол TCP/IP - это набор сетевых протоколов, используемых для обмена данными в компьютерных сетях. TCP/IP — сетевая модель выведенная из практического использования(в отличии от OSI).

tcp-vs-udp-01

Network Interface Layer(канальные)

Этот уровень отвечает за передачу данных через физическую сеть, такую как Ethernet или Wi-Fi. Он определяет способы кодирования, физические характеристики кабелей, методы доступа и другие аспекты, связанные с конкретной технологией передачи данных.

  • канальный уровень описывает среду передачи данных
  • описывает способ кодирования данных для передачи пакета данных на физическом уровне
  • канальный уровень иногда разделяют на 2 подуровня — LLC и MAC
  • на канальном уровне рассматривают помехоустойчивое кодирование — позволяющие обнаруживать и исправлять ошибки в данных вследствие воздействия шумов и помех на канал связи

Internet Layer(межсетевой)

Этот уровень обеспечивает маршрутизацию пакетов данных через различные сети. Он использует IP-адресацию для определения и доставки пакетов данных между узлами сети. Протокол IP (Internet Protocol) является ключевым протоколом этого уровня. Он также обрабатывает фрагментацию и сборку пакетов данных при передаче через сети с различными максимальными размерами пакетов.

  • изначально разработан для передачи данных из одной сети в другую
  • на этом уровне работают маршрутизаторы, которые перенаправляют пакеты в нужную сеть путем расчета адреса сети по маске сети
  • пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2
  • протоколы: DVMRP, ICMP, IGMP, MARS, PIM, RIP, RIP2, RSVP

Transport Layer(транспортный)

Этот уровень обеспечивает надежную доставку данных между хостами. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные. Два наиболее распространенных протокола на этом уровне - это TCP (Transmission Control Protocol) и UDP (User Datagram Protocol).

Application Layer(прикладной)

Этот уровень содержит различные протоколы, используемые приложениями для обмена данными. Некоторые из наиболее известных протоколов этого уровня включают HTTP (HyperText Transfer Protocol) для передачи веб-страниц, SMTP (Simple Mail Transfer Protocol) для отправки электронной почты, FTP (File Transfer Protocol) для передачи файлов и DNS (Domain Name System) для разрешения имен хостов в IP-адреса.

  • протоколы работают поверх TCP или UDP и привязаны к определённому порту
  • порты определены Агентством по выделению имен и уникальных параметров протоколов
  • протоколы: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.

TCP/UDP

Основные отличия tcp от udp.

  • TCP гарантирует доставку пакетов данных в неизменных виде, последовательности и без потерь, UDP ничего не гарантирует.
  • TCP нумерует пакеты при передаче, а UDP нет
  • TCP работает в дуплексном режиме, в одном пакете можно отправлять информацию и подтверждать получение предыдущего пакета.
  • TCP требует заранее установленного соединения, UDP соединения не требует, у него это просто поток данных.
  • UDP обеспечивает более высокую скорость передачи данных.
  • TCP надежнее и осуществляет контроль над процессом обмена данными.
  • UDP предпочтительнее для программ, воспроизводящих потоковое видео, видеофонии и телефонии, сетевых игр.
  • UPD не содержит функций восстановления данных

Чтобы увидеть отличия, нужно посмотреть внутрь TCP- и UDP-пакета.

TCP vs UDP Formats

И там, и там есть порты. Но в UDP есть только контрольная сумма — длина пакета, этот протокол максимально простой. А в TCP — очень много данных, которые явно указывают окно, acknowledgement, sequence, пакеты и так далее. Очевидно, TCP более сложный. Если говорить очень грубо, то TCP — это протокол надежной доставки, а UDP — ненадежной.

Дополнительно: