본문 바로가기
조회 수 1323 추천 수 0 댓글 0

단축키

Prev이전 문서

Next다음 문서

단축키

Prev이전 문서

Next다음 문서

인터넷의 계층적 특성(신뢰할 수 있는 전송(예: TCP) 위에 있는 HTTP, 일부 데이터그램 계층(예: IP) 위에 있는 TCP, 일부 링크(예: 이더넷) 위에 있는 IP)는 인터넷 개발에 매우 ​​중요했습니다. 시간이 지남에 따라 다양한 링크 계층이 왔다가 사라졌습니다(아직 802.5를 사용하는 독자가 있습니까?). 이러한 유연성은 웹 브라우저의 연결이 WiFi를 통해 홈 네트워크를 통과한 다음 DSL 회선을 따라 광섬유를 통해 최종적으로 전달될 수 있음을 의미합니다. 웹 서버에 대한 이더넷. 각 레이어는 그 아래 레이어의 구현을 전혀 인식하지 못합니다.

하지만 이 모델에는 몇 가지 단점이 있습니다. TLS(인터넷에서 암호화된 데이터를 전송하는 데 사용되는 가장 일반적인 표준 및 브라우저가 https:// 웹 사이트를 방문할 때 사용하는 프로토콜)의 경우 TCP 위에 TLS를 계층화하면 전송이 지연될 수 있습니다. 웹페이지.

TLS는 전송되는 데이터를 고정된(최대) 크기의 레코드로 나눈 다음 해당 레코드를 TCP에 전달하여 전송하기 때문입니다. TCP는 해당 레코드를 세그먼트로 즉시 나누어 전송합니다. 궁극적으로 해당 세그먼트는 인터넷을 통과하는 IP 패킷 내부로 전송됩니다.

인터넷의 혼잡을 방지하고 안정적인 전달을 보장하기 위해 TCP는 수신자가 세그먼트 수신을 확인할 때까지 기다리기 전에 제한된 수의 세그먼트만 보냅니다. 또한 TCP는 세그먼트가 애플리케이션에 순서대로 전달되도록 보장합니다. 따라서 패킷이 발신자와 수신자 사이 어딘가에서 삭제되면 버퍼가 애플리케이션에 해제되기 전에 누락된 세그먼트가 재전송될 때까지 기다리는 버퍼에 전체 세그먼트 묶음이 유지될 수 있습니다.

TLS와 TCP

이것이 TLS에 의미하는 바는 여러 TCP 세그먼트에 걸쳐 분할된 대규모 레코드에 예상치 못한 지연이 발생할 수 있다는 것입니다. TLS는 전체 레코드 만 처리할 수 있으므로 누락된 TCP 세그먼트로 인해 전체 TLS 레코드가 지연됩니다.

TCP 연결이 시작될 때 TCP 느린 시작이 발생하면 레코드가 상대적으로 느리게 전달되는 여러 세그먼트로 분할될 수 있습니다. TCP 연결 중에 TLS 레코드가 분할된 세그먼트 중 하나가 손실되어 누락된 세그먼트가 재전송될 때까지 레코드가 지연될 수 있습니다.

따라서 고정된 TLS 레코드 크기를 사용하지 않고 기본 TCP 연결이 회전할 때(그리고 정체의 경우 감소할 때) 레코드 크기를 조정하는 것이 좋습니다. 작은 레코드 크기로 시작하면 연결 시작 시 TCP가 전송하는 세그먼트에 레코드 크기를 일치시키는 데 도움이 됩니다. 연결이 실행되면 레코드 크기를 늘릴 수 있습니다.

CloudFlare는 NGINX를 사용하여 웹 요청을 처리합니다. 기본적으로 NGINX는 동적 TLS 레코드 크기를 지원하지 않습니다. NGINX에는 매개변수로 조정할 수 있는 기본값 16KB의 고정 TLS 레코드 크기가 있습니다 ssl_buffer_size.

NGINX의 동적 TLS 레코드

동적 TLS 레코드 크기에 대한 지원을 추가하기 위해 NGINX를 수정했으며 패치를 오픈 소스로 제공하고 있습니다. 여기서 찾을 수 있습니다 패치는 NGINX SSL 모듈에 매개변수를 추가합니다.

ssl_dyn_rec_size_lo: 시작할 TLS 레코드 크기입니다. 기본값은 1369바이트입니다(단일 TCP 세그먼트의 전체 레코드에 맞게 설계됨: 1369 = 1500 - 40(IPv6) - 20(TCP) - 10(시간) - 61(최대 TLS 오버헤드))

ssl_dyn_rec_size_hi: 증가할 TLS 레코드 크기입니다. 기본값은 4229바이트입니다(3개 TCP 세그먼트의 전체 레코드에 맞도록 설계됨).

ssl_dyn_rec_threshold: 레코드 크기를 변경하기 전에 보낼 레코드 수입니다.

각 연결은 크기의 레코드로 시작됩니다 ssl_dyn_rec_size_lo레코드를 보낸 후 ssl_dyn_rec_threshold레코드 크기가 ssl_dyn_rec_size_hissl_dyn_rec_threshold크기가 포함된 추가 레코드를 보낸 후 ssl_dyn_rec_size_hi레코드 크기가 ssl_buffer_size.

ssl_dyn_rec_timeout: TLS 레코드 크기가 감소되는 이 시간(초)보다 오랫동안 연결이 유휴 상태인 경우 ssl_dyn_rec_size_lo위의 논리가 반복됩니다. 이 값이 0으로 설정되면 동적 TLS 레코드 크기가 비활성화되고 ssl_buffer_size대신 고정 크기가 사용됩니다.




List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 덕질 공통 이용규칙 및 안내 (업데이트중+ 2024-04-13) 😀컴덕824 2024.04.14 5170
공지 1000P를 모으면 다이소 상품권 1000원을 신청할 수 있습니다. file Private 2024.02.14 5142
52 특정 문자 삭제 프로그램 (일본어,중국어,한국어,영어가 섞여있을때 편리함) file 😀익명475 2023.04.27 1560
51 Avalanche로 연속학습 해본 사람 있음? 1 😀익명447 2023.05.05 335
50 .Htaccess 301 리디렉션 규칙 😀익명222 2023.05.13 390
49 레노버 CMOS setup 진입방법 file 😀익명372 2023.05.13 492
48 공유기 QoS로 각각의 PC 인터넷 속도 제한하기 😀익명653 2023.06.03 394
47 svn만 쓰다가 github 쓸려니 너무 어려웡 2 😀익명555 2023.06.06 372
46 2023년 Stack Overflow 개발자 보고서 file 😀익명086 2023.06.24 160
45 10만 개가 넘는 챗GPT 계정 정보가 다크웹에서 판매됨 file 😀익명801 2023.06.24 152
44 레드햇, RHEL 소스를 CentOS Stream에만 제공 file 😀익명436 2023.06.24 165
43 구글 도메인이 서비스 종료 예정입니다. 😀익명861 2023.06.24 153
42 Debian 12 Bookworm 릴리즈 file 😀익명999 2023.06.24 177
41 Ubuntu Pro는 이제 누구나 사용할 수 있습니다. file 😀익명709 2023.08.02 517
40 AMD 인셉션 취약점 패치, 최대 54%의 성능 저하 file 😀익명136 2023.08.21 481
39 히토미 https://misskey.io/ 특정 유저 주소는 다운 안되는 문제 😀익명804 2023.08.26 631
38 노트북 모니터 시간지나면 ubuntu 화면 자동으로 꺼지기 😀익명751 2023.08.30 313
37 [Linux] ethtool 명령어를 이용한 NIC(Network Interface Controller) 정보 확인 방법 😀익명059 2023.08.31 354
36 제조사 맥 주소 확인 방법(How to check MAC address by manufacturer) 😀익명966 2023.08.31 400
35 메인보드 전원,리셋,LED,스피커 선 연결하는방법 😀익명469 2023.08.31 663
34 윈도우 파일 폴더 용량 관리 Tree size 😀익명487 2023.08.31 501
33 [리눅스] 리눅스 tar, gz 압축 및 해제 😀익명004 2023.08.31 456
목록
Board Pagination Prev 1 2 3 Next
/ 3