본문 바로가기
조회 수 1324 추천 수 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 5286
공지 1000P를 모으면 다이소 상품권 1000원을 신청할 수 있습니다. file Private 2024.02.14 5261
52 Ubuntu 23.10, 악의적인 사용자 번역으로 ISO 재배포 file 😀익명926 2023.10.18 2416
51 AI로 인해, 스택오버플로우 28% 정리해고 1 file 😀익명152 2023.10.18 2376
50 특정 문자 삭제 프로그램 (일본어,중국어,한국어,영어가 섞여있을때 편리함) file 😀익명475 2023.04.27 1560
» 대기 시간을 줄이기 위해 TCP를 통한 TLS 최적화 file 😀익명515 2023.10.27 1324
48 혼자 공부할 수 있는 프로그래밍 강의 링크 모음(국내) 😀익명400 2024.03.15 761
47 메인보드 전원,리셋,LED,스피커 선 연결하는방법 😀익명469 2023.08.31 663
46 히토미 https://misskey.io/ 특정 유저 주소는 다운 안되는 문제 😀익명804 2023.08.26 632
45 취업하려는 공부는 적당히하자 😀익명331 2023.10.11 626
44 스프링이 취업안될정도면 학벌이 ㅈ구린가봄 😀익명290 2023.10.11 621
43 진짜 서버 만들었습니다 file 😀익명210 2024.03.09 544
42 Pi-KVM, 라즈베리 파이를 이용하여 KVM over IP file 😀익명149 2024.03.09 528
41 MIT 공개강좌 - 공짜(무료) 컴퓨터 과학 & 프로그래밍 입문 (python) 😀익명116 2024.03.10 522
40 Ubuntu Pro는 이제 누구나 사용할 수 있습니다. file 😀익명709 2023.08.02 518
39 Best Practices for MySQL(mariadb) with SSD, NVME file 😀익명665 2023.08.31 515
38 윈도우 파일 폴더 용량 관리 Tree size 😀익명487 2023.08.31 501
37 레노버 CMOS setup 진입방법 file 😀익명372 2023.05.13 492
36 IT 온라인 교육 사이트 모음 (21개 사이트) 😀익명811 2024.03.05 484
35 [Ubuntu 20.04 server] 자동으로 디스플레이 끄기 😀익명631 2023.08.31 483
34 AMD 인셉션 취약점 패치, 최대 54%의 성능 저하 file 😀익명136 2023.08.21 481
33 SQLSTATE[HY000] '***' doesn't have a default value 에러 고치기 😀익명839 2023.08.31 476
목록
Board Pagination Prev 1 2 3 Next
/ 3