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 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"
- ↑ 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"
- ↑ RELEASE NOTES. FreeBSD Release 2.1 Архивная копия от 16 декабря 2012 на Wayback Machine // The FreeBSD Core Team, Nov 1995: "Other enhancements include ... transaction TCP support"
- ↑ 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
- ↑ 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."
- ↑ T/TCP -- Transaction TCP Source Changes for Sun OS 4.1.3 Архивная копия от 13 марта 2013 на Wayback Machine// Веб-сайт W. Richard Stevens
- ↑ T/TCP Home Page (TCP for Transactions) // Веб-сайт W. Richard Stevens
- ↑ Ren Bin, Zhang Xiaolan, Implementation of Transaction TCP in Linux Kernel 2.4.2 Архивная копия от 15 сентября 2012 на Wayback Machine // 2002
- ↑ Example of RFC-1644 attack Архивная копия от 28 сентября 2007 на Wayback Machine // BUGTRAQ, 7 Apr 1998
- ↑ Charles Hannum (NetBSD Network Working Group). Security Problems Associated with T/TCP . unpublished work in progress (сентябрь 1996). Архивировано 10 января 2010 года.
- ↑ T/TCP vulnerabilities (неопр.). — Phrack, 1998. — 8 July (т. vol. 8, № issue 53). Архивировано 18 октября 2007 года.
- ↑ Historic Status definition Архивная копия от 29 марта 2010 на Wayback Machine in RFC 2026, sectio 4.2.4
- ↑ 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 - ↑ 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.
- ↑ 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
Ссылки
- T/TCP Home Page (TCP for Transactions) // Веб-сайт W. Richard Stevens
- Mark Stacey, John Nelson, Ivan Griffin, T/TCP: TCP for Transactions // Linux Gazette, Issue 47, November 1999
- Michael Mansberg, T/TCP is protocol of choice for transaction apps (недоступная ссылка); (PDF (недоступная ссылка)) // EETimes India, Embedded Systems Design, Issue July 2002