T/TCP

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

T/TCP (англ. TCP for Transactions, транзакционный TCP) — вариант протокола Интернет TCP, экспериментальное расширение TCP для эффективный работы транзакционных сервисов (запрос/ответ). Он был разработан Bob Braden (USC Information Sciences Institute) в 1992-1994 годах и описан в RFC 1379 и RFC 1644. Целью его создания было занятие ниши между протоколами UDP и TCP.

Распространения не получил.[1]

Этот протокол быстрее простого TCP и, в отличие от UDP, гарантирует доставку.

Поддерживался в FreeBSD начиная с версии 2.1 (ноябрь 1995[2][3]) по версию 5.2 включительно (удален в ноябре 2004 года[4][5]). Активировался вызовом setsockopt с параметром TCP_NOPUSH на серверной стороне. Сообщения по T/TCP отправлялись как клиентом так и сервером с помощью вызова sendto с установленным флагом MSG_EOF.[2]

Также поддержка T/TCP была реализована в виде патчей для SunOS 4.1.3, Linux 2.0.32 и BSD/OS 2.1.[6][7] В июле 2002 года был реализован патч для Linux Kernel 2.4.2[8]

Легко подвержен атакам [1][9][10][11].

В мае 2011 года документы RFC 1379 и RFC 1644, определявшие T/TCP, были переведены в статус Исторические (устаревшие, Historic Status [12] после публикации RFC 6247.

Механизм TCP Accelerated Open[править | править код]

Аналоги[править | править код]

В 2005 году один из разработчиков сетевой подсистемы FreeBSD предложил протокол TTCPv2, имевший более высокую безопасность.[5]

В 2011 году было предложено расширение протокола TCP под названием "TCP Fast Open" (TFO), которое использовало сходные идеи но добавило к ним использование симметричной криптографии.[13] По состоянию на октябрь 2012 года является черновиком IETF (IETF Internet draft).[14] Первая реализация TFO для стороны клиента была внедрена в ядро Linux в версии 3.6[1], для стороны сервера - в версии 3.7.[15]

См. также[править | править код]

Примечания[править | править код]

  1. 1 2 3 Michael Kerrisk, TCP Fast Open: expediting web services Архивная копия от 5 декабря 2014 на Wayback Machine // LWN, August 1, 2012: "The client-side support has been merged for Linux 3.6.", "T/TCP ... fundamental security flaws in its design meant that it never gained wide use"
  2. 1 2 ttcp(4) man page Архивная копия от 4 марта 2016 на Wayback Machine, FreeBSD 5.2.1, January 18, 1995: "Support for T/TCP first appeared in FreeBSD 2.1"
  3. RELEASE NOTES. FreeBSD Release 2.1 Архивная копия от 16 декабря 2012 на Wayback Machine // The FreeBSD Core Team, Nov 1995: "Other enhancements include ... transaction TCP support"
  4. commit Архивная копия от 20 апреля 2014 на Wayback Machine // Andre Oppermann (andre) Nov 2,2004; Removing T/TCP and replacing it with something simpler Архивная копия от 11 февраля 2021 на Wayback Machine // Andre Oppermann (andre) 21 Oct 2004
  5. 1 2 TTCPv2: Transactional TCP version 2 Архивная копия от 22 декабря 2012 на Wayback Machine // Andre Oppermann: "The old TTCP according to RFC1644 was insecure, intrusive, complicated and has been removed from FreeBSD >= 5.3."
  6. T/TCP -- Transaction TCP Source Changes for Sun OS 4.1.3 Архивная копия от 13 марта 2013 на Wayback Machine// Веб-сайт W. Richard Stevens
  7. T/TCP Home Page (TCP for Transactions) // Веб-сайт W. Richard Stevens
  8. Ren Bin, Zhang Xiaolan, Implementation of Transaction TCP in Linux Kernel 2.4.2 Архивная копия от 15 сентября 2012 на Wayback Machine // 2002
  9. Example of RFC-1644 attack Архивная копия от 28 сентября 2007 на Wayback Machine // BUGTRAQ, 7 Apr 1998
  10. Charles Hannum (NetBSD Network Working Group). Security Problems Associated with T/TCP. unpublished work in progress (сентябрь 1996). Архивировано 10 января 2010 года.
  11. T/TCP vulnerabilities (неопр.). — Phrack, 1998. — 8 July (т. vol. 8, № issue 53). Архивировано 18 октября 2007 года.
  12. Historic Status definition Архивная копия от 29 марта 2010 на Wayback Machine in RFC 2026, sectio 4.2.4
  13. S. Radhakrishnan, Y. Cheng, J. Chu, A. Jain, B. Raghavan (2011-12-06). "TCP Fast Open" (PDF). ACM CoNEXT. Архивировано (PDF) 29 октября 2012. Дата обращения: 12 декабря 2012.{{cite news}}: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка); см раздел 8.Related Work
  14. Y. Cheng, J. Chu, S. Radhakrishnan, A. Jain: TCP Fast Open Архивная копия от 27 ноября 2013 на Wayback Machine // IETF Internet-Draft, 2012-10-22, code: draft-ietf-tcpm-fastopen-02.
  15. Steven J. Vaughan-Nichols, Linux 3.7 arrives, ARM developers rejoice Архивная копия от 5 ноября 2014 на Wayback Machine // ZDNet, Linux and Open Source, December 11, 2012: "Linux 3.7. TCP Fast Open will now be supported on servers"

Литература[править | править код]

  • RFC 1379: Extending TCP for Transactions—Concepts (R. Braden, ISI, 1992)
  • RFC 1644: T/TCP—TCP Extensions for Transactions. Functional Specification (R. Braden, ISI, 1994)
  • Richard Stevens, Gary Wright, "TCP/IP Illustrated: TCP for transactions, HTTP, NNTP, and the UNIX domain protocols" (Volume 3 of TCP/IP Illustrated) // Addison-Wesley, 1996 (ISBN 0-201-63495-3), 2000 (ISBN 9814053090). Part 1 "TCP for Transactions". Chapters 1-12, pages 1–159

Ссылки[править | править код]