Есть ли разница между сокетным соединением и TCP-соединением? - PullRequest
7 голосов
/ 21 июня 2011

Эти два понятия относятся к одному и тому же? У них есть разница?

На мой взгляд, они разные, и сокетное соединение основано на tcp-соединении. Сокет содержит IP-адрес и порт, и он может подключаться только к другому сокету, но IP-адрес и порт на той же машине могут быть связаны со многими другими IP-адресами и портами с помощью TCP-соединения. Это правильно?

Ответы [ 4 ]

21 голосов
/ 21 июня 2011

TCP / IP - это стек протоколов для связи, сокет - это конечная точка (двунаправленной) связи. Сокет не обязательно должен быть основан на TCP, но это часто случается. Термин сокет также часто используется для обозначения API, предоставляемого операционной системой, который позволяет устанавливать соединение через стек TCP / IP, например, Winsock API предоставляет API для соединений через стек TCP / IP в Windows. .

Сокет уникальным образом сопоставляется с приложением, поскольку порты управляются операционной системой.

Дальнейшее чтение: http://en.wikipedia.org/wiki/Internet_socket и http://en.wikipedia.org/wiki/Winsock

2 голосов
/ 22 июня 2011

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

Когда вы говорите, что соединение TCP подразумевает дваузлы связаны с использованием протокола TCP.

0 голосов
/ 06 марта 2019

Сокеты определяются как интерфейс прикладного программирования (API) для связи обычно между двумя процессами, но не ограничиваются только этим.Они включают библиотечные функции, с которыми будет связываться ваше приложение, системные вызовы и часть реализации ядра операционной системы.Наиболее распространенными типами API сокетов являются Berkely socket и Winsock (Windows).

Другая классификация сокетов по типу доступа, который они предоставляют:

  • Сокеты TCP: для установки TCPсоединения
  • UDP-сокеты: для UDP-связи
  • Пакетные сокеты: для прямого доступа к уровню 2
  • Unix-доменные сокеты: для IPC через файлы в пределах одного узла
  • Необработанный сокет для прямого доступа к уровню IP
  • Маршрутизируемые сокеты
  • SCTP-сокеты
  • Другие типы сокетов

В Linux, Unix,и Windows, есть доменные сокеты TCP, UDP и Unix.Другие типы сокетов, упомянутых выше, реализованы в Linux, и я не знаю, существуют ли они в Windows.

TCP-соединение является концепцией TCP.Он соединяет две конечные точки, обычно два процесса (или один процесс с самим собой), и определяется (IPAddress1, Port1, IPAddress2, Port2).Соединение TCP устанавливается после трехстороннего рукопожатия TCP.

В TCP сокет определяется элементами соединения TCP между двумя процессами (IPAddress1, Port1, IPAddress2, Port2).Однако может быть и гнездо для прослушивания.Это сокет, который позволяет процессу прослушивать соединения, установленные от других процессов через сеть.

https://en.wikipedia.org/wiki/Berkeley_sockets

https://en.wikipedia.org/wiki/Winsock

0 голосов
/ 05 марта 2019

Сокет является протоколом уровня 5 ( Session ) в Модель OSI и не зависит от нижележащих уровней, что означает, что он может быть поверх TCP, UDP, MPTCP, ... (Уровень4 - протоколы транспортного уровня ).Сокетное соединение используется для продолжения обмена данными между узлами (оно создает сеанс между ними), но TCP-соединение обеспечивает надежную передачу сегментов данных между узлами.

...