TCP Fast Open

지니🧸·2023년 4월 11일
0

Computer Network

목록 보기
4/7
post-custom-banner

TCP Fast Open: TCP의 연장

이미 서로와 TCP 연결을 한적 있는 호스트와 클라이언트 사이는 다시 연결하고자 할 때 기존의 three-way handshake 중 연결을 설정할 때 필요하던 한바퀴의 handshake가 필요 없어진다. 이 말은 즉슨 데이터를 바로 보낼 수 있어 계속 서로와 대화를 해야 하는 시스템 사이의 통신이 빨라지는 것. TTFB가 중요한 환경에 특히 좋다.

TTFB(Time to First Byte): 웹서버의 반응을 측정하는 법 중 하나로 서버와 연결을 설정하고 웹페이지의 컨텐츠를 다운로드하는데 걸리는 시간을 측정함.

동작 원리

TCP Fast Open은 서버에게 차후 연결을 위해 특별한 TFO 쿠키를 허용하는데, 이 덕에 클라이언트는 다음 연결에 보낼 SYN 패킷에 데이터를 포함할 수 있고, 서버는 첫 ACK 패킷에 요청된 데이터를 포함할 수 있다.

TFO 쿠키

TCP Fast Open을 이용해 재연결을 할 경우, 클라이언트가 송신되는 첫 패킷에 데이터가 저장된다! 서버는 유효한 TFO 쿠키를 인식하고, 데이터를 받아들여 SYN+ACK로 응답한다. 이 경우에 필드의 값은 TCP 내 데이터의 길이로 설정된다

TCP Fast Open을 써야 하는 이유

데이터의 첫 덩어리를 더 빠르게 갖기 위해 쓴다.

서버 리부트의 경우

서버가 리부트하거나 모종의 이유로 TFO 쿠키를 리셋해도 클라이언트는 더이상 유효하지 않은 쿠키를 사용하고자 할 것이다. 서버에게 데이터를 담은 SYN을 보내지만 서버는 평소와는 다른 SYN+ACK 패킷을 송신하는데, 이 때 ACK가 1로 설정되어있을 것이다. ACK가 1이라는 것은 패킷에 담긴 데이터가 받아들여지지 않았다는 뜻이다.


참고:

profile
우당탕탕
post-custom-banner

0개의 댓글