문제

나는 알 수 없 단일드와 빠른 응답하시기 바랍니다,일반 기의 크기 예측 근사한 암호화의 오버헤드 SSL 대 암호화되지 않은 소켓 통신?나는 이야기에 대해서만 통신 처리 및 철망간산되지 않는 응용 프로그램 수준의 처리합니다.

업데이트

질문에 대한 HTTPS 대 HTTP, 지만,나에게 관심에 보고 낮은에서 스택입니다.

(나는 교체 문구가"크기의 순서"혼란을 피하기 위하여;나는 그것을 사용하여 비공식 용어가 아닌 정식 CompSci 감각이다.의 경우 물론 I 했다 그것은 공식적으로,진정한 괴짜가 생각 바이너리보다 소수!;-)

업데이트

당 요청서 코멘트,가정 우리가 얘기하는 좋은 크기의 메시지(의 범위 1k-10k)을 통해 지속적 연결이 있습니다.그래서 연결 설정과 패킷 오버헤드지 않은 중요한 문제입니다.

도움이 되었습니까?

해결책

주문 크기:니다.

즉,당신은 볼 수 없는 당신의 처리량을 절반,또는 아무것도 그것을 좋아할 때 추가 TLS.대한 답변을 "duplicate"질문 초점에 많이 응용 프로그램 성능을 어떻게 비교하는 SSL 오버헤드가 발생합니다.이 질문에 특별히 제외한 응용 프로그램을 처리하고자 비교 비 SSL SSL 니다.면서 그것이 의미하는 세계적인 전망의 성능을 최적화할 때는 무엇이 질문입니다.

주의 오버헤드 SSL handshake.는 비싼 비대칭 암호화 발생합니다.후 협상,상대적으로 효율적인 대칭 암호는 사용됩니다.그 이유는 매우 도움이 될 수 있습 SSL 을 사용하도록 설정 세션에 대한 HTTPS 서비스,어디에 많은 연결을 만들어집니다.한명이 긴 연결,이"끝-효과"지 않으로 중요한,그리고 세션이 없으로 유용합니다.


흥미로운 일화. 할 때 Google 전환 Gmail HTTPS 를 사용하는,추가적인 자원이 필요합니다;네트워크는 하드웨어,새로운 호스트.그것만이 증가한 CPU 의 부하를 대해 1%.

다른 팁

나는 두번째@에릭슨:순수한 데이터 전송 속도가 형벌은 무시할 수 있습니다.현대 Cpu 에 도달 crypto/AES 처리량의 몇 백 MBit/s.그렇게 하지 않으면에 자원을 제한된 시스템(mobile phone)TLS/SSL 을 위해 충분히 빨리 짓고 데이터를 주변에 있다.

그러나 유지 하는 마음에 암호화를 통해 캐시 및 로드 밸런싱을 훨씬 어렵습니다.이 발생할 수 있습에서 거대한 성능이 저하됩니다.

하지만 연결 설정이 정말 마개를 위한 많은 응용 프로그램.낮은 대역폭,높은 패킷 손실,높은 대기 시간을 연결을(모바일 장치 시골에서)추가 왕복에 필요한 TLS 를 렌더링할 수도 있습니다 뭔가 느리게 무언가로 사용할 수 없습니다.

예를 들어 우리는 우리를 암호화 요구에 대한 액세스를위한 우리의 내부 web apps-그들은 어디 다음을 사용할 수 없는 경우 사용되는 중국에서입니다.

당신이하지 않는 가정수 연 set-up(에 지정한 대로 업데이트),그에 따라 암호를 선택합니다.네트워크 오버 헤드(의 측면에서 대역폭에는)무시할 수 있습니다.CPU 오버헤드에 의해 지배 될 것이 암호화 합니다.내 모바일 코어 i5,나는 암호화 할 수 있습니다 약 250 개 초당 MB RC4 에서 하나의 핵심입니다. (RC4 은 당신이 무엇을 선택해야에 대한 최대 성능을 제공합니다.) AES 은 느리게 제공,"는"약 50MB/s.그래서,당신이 선택할에 올바른 암호화,당신을 유지 관리 단일 현재의 핵심으로 바쁜 암호화 오버헤드가 있는 경우에도 완전히 활용되고 1 기가비트 라인.[편집:RC4 사용하지 않아야 하기 때문에 그것은 더 이상 안전하지 않습니다.그러나,AES 지원하는 하드웨어에서 지금 존재하는 많은 Cpu 를 만드는,AES 암호화를 정말 빠른에서 이러한 플랫폼입니다.]

연결 설립은,그러나,다릅니다.에 따라 구현(예:에 대한 지원 TLS 를 false 로 시작),니다 추가 라운드 여행을 일으킬 수 있는 눈에 띄는 지연이다.또한,비용 암호화 소요 곳에서 첫 번째 연결 설정(상 CPU 만 받아들이 14 연결 코어당하는 초당하는 경우 당신은 어리석게도 사용 4096-bit 키 과 100 사용하는 경우 2048 비트 키).이후에도 연결이 이전 세션은 종종 재사용을 피하고,비용 암호화.

그래서 요약하면 다음과 같습니다.

전송에 설립된 연결:

  • Delay:거의 없음
  • CPU:무시할 수
  • 대역폭:무시할 수

첫 번째 연결 설정:

  • Delay:추가 라운드 여행
  • 대역폭:몇 킬로바이트(인증서)
  • CPU 클라이언트:중소
  • CPU server:높

이후 연결 시설:

  • Delay:추가 라운드 여행을(확실하지 않으면 하나 또는 여러,수은 구현에 따라 다름)
  • 대역폭:무시할 수
  • CPU:거의 없음
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top