[CS 공부] 22.10.11

minyoon·2022년 10월 10일
0

CS공부

목록 보기
5/12

흐름제어

  • 송신 측이 수신 측보다 속도가 빠르다면 수신 측 저장용량을 초과한 패킷은 손실될 위험이 있다.
  • 흐름제어는 송신측과 수신측의 TCP 버퍼 크기 차이를 극복하기 위한기법

방법1 : Stop and Wait

  • 매번 패킷에 대해 확인 응답(ACK)을 받으면 다음 패킷을 전송하는 방법
  • 하나씩 보내고 기다리는 과정때문에 속도가 매우 느리다.

방법2 : Sliding Window

  • 수신측에서 설정한 윈도우의 크기만큼 송신측에서 패킷을 전송하여 데이터 흐름을 동적으로 조절
  • 초기 윈도우 크기로는 3-way-handshaking에서 수신측 윈도우 크기로 정해진다.(ACK 를 보낼 때 TCP 헤더에 크기 지정)

혼잡제어

  • 네트워크 라우터의 용량이 다 차면 패킷 유실이 발생하고 이로 인해 각 노드에서는 유실된 패킷에 대해 더 많은 패킷을 전송하게 됨

방법1: AIMD (Additive Increase / Multicative Decrease)

  • 합 증가 / 곱 감소 방식
  • 패킷을 보내고 문제가 없으면 윈도우의 크기를 1씩 증가
  • 전송 실패하면 윈도우의 크기를 반으로 줄임
  • 네트워크의 용량을 모두 사용할 때까지 시간이 많이 걸린다는 단점이 있음

방법2: Slow Start

  • 패킷 전송을 지수적으로 증가시키다가 혼잡 상황이 되면 윈도우 크기를 1로 줄임
  • 초반에는 데이터 전송이 느리지만 지수적으로 증가시키기 때문에 빠르게 증가한다.

방법3: Fast Retransmit

  • 혼잡이 발생해서 패킷이 순서대로 도착하지 않는 경우가 있음
  • 이때 수신측은 순서대로 도착한 마지막 패킷의 순번을 ACK 패킷에 실어 보냄
  • 똑같은 순번 3개를 받으면 송신 측에서는 해당 패킷의 다음 순번을 재송신
  • Time-out이 지나지 않아도 해당 패킷을 빠르게 보낼 수 있기 떄문에 빠른 재송신률 유지 가능

방법4: Fast Recovery

  • 보내는 패킷을 지수 증가 시키다가 혼잡 상태가 되면 윈도우 크기를 반으로 줄이고 선형증가

혼잡제어 정책

  1. TCP Tahoe
  • 처음에는 Slow Start를 사용하다가 임계점 도달하면 AIMD 방식 사용
  • 그러다 3 ACK Duplicated 또는 타임아웃 이 발생하면 임계점은 혼잡 발생한 패킷의 절반으로, 윈도우는 1로 줄인다.
  1. TCP Reno
  • 처음에 Slow Start를 사용하다가 임계점 도달하면 AIMD 방식 사용하는 것은 위와 똑같음
  • 하지만 3 ACK Duplicated 발생하면 빠른회복 방식 사용
  • Time out 발생하면 윈도우 크기 1로, 임계가 절반으로.

HTTP와 HTTPS

HTTP의 문제점

  1. HTTP(TCP/IP)는 도청 가능한 네트워크이다.
    • 패킷을 수집하는 것만으로도 도청할 수 있다.
  2. 통신 상대를 확인하지 않기 때문에 위장 가능하다.
    • 상대가 누구인지 확인하는 처리는 없기 때문에 누구든지 리퀘스트를 보낼 수 있다.
    • 때문에 패킷을 가로채서 조작 가능하다.
    • Dos 공격도 가능하다
  3. 완전성을 증명할 수 없기 때문에 변조 가능하다.
    • 송신측에서 보낸 데이터를 누군가가 가로채 내용을 바꿔 전송할 수 있다. (중간자 공격 Man-in-the-Middle)

HTTPS

HTTP에 SSL(Secure Socket Layer) 를 입힌것

  • 콘텐츠를 암호화 해서 전송 가능
  • SSL은 인증 수단으로 증명서 제공 (CA 로부터 발급받은 증명서) (CA: Certificate Authority)
  • 처음 통신을 할 때 비대칭키 방식으로 통신한 다음에 대칭키 방식으로 통신
profile
궁금한게 많은 사람🧐

0개의 댓글