1
12주
t h r
속도가 느려진 네트워크 복구
9장 속도가 느려진 네트워크 복구
9.1 TCP 오류 복구 기능 9.2 TCP 흐름 제어
9.3 TCP 오류 제어와 흐름 제어
9.4 높은 지연의 근원지 탐색
9.1 TCP 오류 복구 기능
TCP 재전송
재전송을 통한 손실된 TCP 세그먼트 복구
RTT(Round Time Time) 값을 기반으로 RTO(Retransmission Time Out) 값 설정
3
9.1 TCP 오류 복구 기능 (계속)
TCP 재전송 (계속)
재전송이 될 때마다 RTO 값은 이전 RTO 값의 2배로 설정된다.
재전송 횟수 : 윈도우 5회, 리눅스 15회
9.1 TCP 오류 복구 기능 (계속)
TCP 재전송 (계속)
tcp_retransmisison.pcap 파일
RTO 값이 재전송될 때마다 2배씩 증가한다.
5
9.1 TCP 오류 복구 기능 (계속)
정상적인 순서번호와 ACK 번호
9.1 TCP 오류 복구 기능 (계속)
TCP 중복 ACK와 빠른 재전송
세 번의 중복된 ACK를 수신하면 이전의 데이터가 손실된 것으로 간주하여 빠른 재전송을 수행
7
9.1 TCP 오류 복구 기능 (계속)
TCP 중복 ACK와 빠른 재전송 (계속)
tcp_dupack.pcap 파일
프레임 1의 ack=1이므로 프레임 2의 seq=1이어야 함
프레임 2의 seq=1이 아니므로 손실로 간주하여 프레임 3에서 중복된 ACK 를 전송
3번의 중복 ACK를 수신하면 프레임 8에서 빠른 재전송 수행
9.2 TCP 흐름 제어
윈도우 크기 조정
수신 윈도우와 수신 버퍼
9
9.2 TCP 흐름 제어 (계속)
윈도우 크기 조정 (계속)
ACK를 통한 수신 윈도우 크기 통보
1000바이트
9.2 TCP 흐름 제어 (계속)
제로 윈도우
수신 TCP에서는 버퍼 부족, 처리 능력 부족 등으로 데이터를 처리할 수 없 을 때 윈도우 크기를 0으로 통보
윈도우 크기를 0으로 통보 받은 TCP에서는 일정 시간마다 프로브 세그먼트 (Keep-alive 세그먼트)를 전송
11
9.2 TCP 흐름 제어 (계속)
슬라이딩 윈도우
tcp_zerowindowrecovery.pcap 파일
프레임 4에서 윈도우 크기 0을 통보
일정 시간이 지나서 버퍼 복구 후에 윈도우 크기 0아닌 세그먼트 전송
9.2 TCP 흐름 제어 (계속)
슬라이딩 윈도우 (계속)
tcp_zerowindowdead.pcap 파일
프레임 2에서 윈도우 크기 0을 통보
영속 타이머가 타임아웃되면 keep-alive 세그먼트 전송
영속 타이머의 타임아웃 값은 2배씩 증가
13
9.3 TCP 오류 제어와 흐름 제어
오류 제어 흐름 제어에 의한 지연문제 고려 사항
재전송 세그먼트
중복 ACK
제로 윈도우 세그먼트와 Keep-alive 세그먼트
9.4 높은 지연의 근원지 탐색
정상적인 통신
latency1.pcap 파일
15 Time 디스플레이 형식
: Second since previous displayed packet
9.4 높은 지연의 근원지 탐색
속도가 느린 통신 : 유선 지연
latency2.pcap 파일
클라이언트에서 캡쳐한 파일
프레임 5(서버에서 응답)에서만 높은 지연 발생
서버 또는 클라이언트에서의 지연은 아닐 것!!
서버와 클라이언트 사이의 네트워크 장치가 지연의 원인일 것임
9.4 높은 지연의 근원지 탐색
속도가 느린 통신 : 클라이언트 지연
latency3.pcap 파일
클라이언트에서 캡쳐한 파일
TCP 연결 설정 후, 프레임 4(클라이언트의 GET 요청)에서 높은 지연 발생
GET 요청은 클라이언트의 응용계층에서 특별한 처리를 필요로 하지 않음
그럼에도 불구하고 많은 지연 발생
클라이언트의 프로토콜 처리가 지연의 원인일 것임
17
9.4 높은 지연의 근원지 탐색
속도가 느린 통신 : 서버 지연
latency4.pcap 파일
클라이언트에서 캡쳐한 파일
클라이언트의 GET 요청에 대한 응답인 프레임 6에서 높은 지연 발생
클라이언트의 GET 요청에 대하여 서버의 응용계층에서는 처리한 결과를 전송해 야 함
따라서 서버의 처리 지연일 것임
9.4 높은 지연의 근원지 탐색
프레임별 지연 발생 근원지
19