TCP Fast Open
TCP Fast Open컴퓨터 네트워킹에서, TCP Fast Open(TPO)은 두 엔드포인트 사이의 연속 전송 제어 프로토콜(TCP) 연결의 개방 속도를 높이기 위한 확장이다.TFO 쿠키(TCP 옵션)를 사용하여 작동하는데, 이 쿠키는 클라이언트에서 저장되고 서버와의 초기 접속 시 설정되는 암호 쿠키다.[1]나중에 클라이언트가 다시 연결되면 TFO 쿠키 데이터와 함께 초기 SYN 패킷을 전송하여 자체 인증을 한다.성공하면 서버는 3방향 핸드셰이크의 최종 ACK 패킷 수신 전이라도 클라이언트에 데이터를 전송하기 시작할 수 있으므로 왕복 지연을 건너뛰고 데이터 전송 시작 시 지연 시간을 낮출 수 있다.
쿠키는 서버에 의해 비밀에 부쳐진 키에 블록 암호키를 클라이언트에게 적용하여 생성되며, 소스 IP 주소를 위조하거나 다른 IP 주소로부터 동일한 서버에 양방향 연결을 할 수 있더라도 제3자가 스푸핑하기 어려운 인증 태그를 생성한다.비록 암호 기술을 사용하여 쿠키를 생성하지만, TFO는 그것이 대체하는 3방향 핸드셰이크보다 더 많은 보안을 제공하기 위한 것이 아니며, 결과적인 TCP 연결에 어떠한 형태의 암호 보호도 제공하지 않으며, 어느 한쪽 끝점에 대한 신원 보증을 제공하지 않는다.또한 중간의 공세에 저항하기 위한 것도 아니다.그러한 저항이 필요한 경우에는 TLS나 IPsec 등의 암호 프로토콜과 결합하여 사용할 수 있다.
역사
TFO 제안서는 원래 2011년에[2] 제시되었으며 2014년 12월에 실험 RFC 7413으로 발표되었다.[3]TCP Fast Open은 T/TCP(RFC 1644)라고 불리는 1994년 이전 제안과 함께 TCP의 3방향 핸드셰이크를 우회한다는 목표를 공유한다.T/TCP는 TCP Fast Open과는 달리 보안에 전혀 신경을 쓰지 않아 취약성의 길을 열어주고,[3] 추진력을 얻지 못했다.
특성.
TFO 구현에는 다음이 포함된다.
- TFO에 대한 IPv4 지원은 커널 버전 3.6(클라이언트 지원)과 3.7(2012년 12월)의 Linux 커널 메인라인으로 통합되었으며 [4][5]커널 버전 3.13(2014년 1월)에서는 기본적으로 켜졌다.[6]IPv6 서버에 대한 TFO 지원이 커널 버전 3.16에 통합되었다.[7]
- 버전 10.3[8](서버 지원) 및 12.0[9][10](클라이언트 지원)의 FreeBSD.
- 버전 58의 Mozilla Firefox.[11]지원은 TFO 및 TLS 1[12].3과의 네트워크 장치 호환성 문제로 인해 기본적으로 비활성화되었으며 결국 버전 87에서 제거되었다.[13]
- 구글 크롬과 크롬 브라우저는 크롬 OS, 안드로이드 등 Linux에서 TFO를 지원한다.
- 버전 4.88의 Exim 메일 전송 에이전트(MTA)[14]
- 버전 1.5.10의[15] Unbound DNS 확인자
- 버전 9.11.0의 바인딩 DNS(Domain Name System)[16]
- 버전 2.6.0의[17] DNS 결합
- 애플의 iOS 9와 OS X 10.11은 둘 다 TCP Fast Open을 지원하지만, 기본적으로 개별 연결에는 사용할 수 없다.[18]
- Microsoft Edge는 Windows 10 Preview 빌드 14352 이후 TCP Fast Open을 지원한다.[19]
- PowerDNS Reursor 버전 4.1에서 TCP Fast Open을 지원한다.[20]
- dnsmasq는 다음 버전 2.81에서 TCP-fastopen(RFC-7413)을 지원한다.[21]
참고 항목
참조
- ^ Kerrisk, Michael (2012-08-01). "TCP Fast Open: expediting web services". LWN.net.
- ^ Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B (2011-12-06). "TCP Fast Open" (PDF). ACM CoNEXT.
- ^ a b Yuchung Cheng; Jerry Chu; Sivasankar Radhakrishnan & Arvind Jain (December 2014). "TCP Fast Open". IETF. Retrieved 10 January 2015.
- ^ Kerrisk, Michael (2012-08-01). "TCP Fast Open: expediting web services". LWN.net.
The client-side support has been merged for Linux 3.6
- ^ Vaughan-Nichols, Steven J (2012-12-11). "Linux 3.7 arrives, ARM developers rejoice". Linux and Open Source. ZDNet.
Linux 3.7. TCP Fast Open will now be supported on servers
- ^ "Linux Kernel 3.13, Section 1.10. TCP Fast Open enabled by default". kernelnewbies.org. 19 January 2014. Retrieved 11 February 2014.
- ^ "Linux Kernel 3.16, Section 1.4. TCP Fast Open server mode on IPv6 support". kernelnewbies.org. 3 August 2014. Retrieved 14 September 2014.
- ^ "Implementation of server-side TCP Fast Open (TFO) [RFC7413]: MFC into stable/10 branch". 2015-12-28.
- ^ "This is an implementation of the client side of TCP Fast Open (TFO) [RFC7413]". 2018-02-26.
- ^ "Enable TCP_FASTOPEN by default for FreeBSD 12". 2018-06-24.
- ^ "1188435 - Support TCP Fast Open". 2017-05-05.
- ^ "1398201 - Disable TCP Fast Open for 57". 2017-09-10.
- ^ "1689604 - Remove TCP FastOpen". 2021-03-23.
- ^ "Exim 4.88 released". 2016-12-25.
- ^ "Unbound 1.5.10". Retrieved 2017-12-05.
- ^ "Release Notes for BIND Version 9.11.0". 2016-10-05.
- ^ "Knot DNS 2.6.0". 2017-09-29.
- ^ "Your App and Next Generation Networks". Apple Inc. 2015.
- ^ "Windows 10 build 14352 - New web platform features". Microsoft. Retrieved 2016-05-27.
- ^ "Changelogs for 4.1.x". PowerDNS. 2017-12-04.
- ^ Kelley, Simon (2019-03-10). "Support TCP fastopen on incoming and outgoing connections".