1. 연결종료 1 / 38 4way handshake와 상태 천이

Slides:



Advertisements
Similar presentations
ㅋㅋ 다른 집단과 명확히 구별되는 가치체계와 지식 그리고 그에 부합하는 기술을 가지고 있어야 한다. 가치체계 - 사회복지사윤리강령, 선서 등 기본요소 완성 지식 - 사회복지사 1 급 자격증 시험으로 완성 기술 - 명확하지 않으나 실습, 보수교육을 통해 완성 Client.
Advertisements

문화연구방법 꽃보다 아름다운 그곳에 사는 사람들. 노송동 1 조 김은진 박하늬 나인정. 목차 조사구역 - 중앙시장. 경험지도 노송동 - 중앙시장 사람들의 삶. 진행상황 앞으로의 계획.
마음의 중심을 갖고 기술의 중심이 되자 ! 네트워크 Written by kilsung park.
TCP / IP. TCP & UDP  TCP (Transmission Control Protocol) - Connection-Oriented Protocol - Error 체크기능 - Sequencing - Acknowledgments - Flow Control -
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
제 20 장 TCP 대용량 데이터 흐름.
10 터널링.
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
Chapter 8 Authorization
Chapter 13 전송층 개요.
7장. TCP와 UDP.
파이프라인된 프로토콜 파이프라이닝: 송신자는 확인 응답을 기다리지 않고 여러 패킷을 전송하도록 허용
세명통통 사용자 매뉴얼 [표준 매뉴얼] 세명통통 사용자 매뉴얼.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
TCP/IP Socket Cover Slide 조태문.
1. 왜 의사헤더를 추가하나? 1 / 32 UDP 데이터그램이 목적지에 제대로 전송됐는지 확인하기 위해
제 1장 인터네트워킹.
20 장 네트워크층 프로토콜 : ARP, IPv4, ICMP, IPv6, ICMPv6
제 9 장 ICMP 목원대학교 정보통신공학과 이 명 선.
Internet Control Message Protocol (ICMP)
TCP/IP Socket Cover Slide 조태문.
제 4장 주소변환 프로토콜 (ARP : Address Resolution Protocol)
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
TCP/IP Network Experimental Programming [TCP의 실험]
네트워크 보안 TCP/IP 네트워크통신 개념.
TCP Client/Server Program
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증
PART 02 프로토콜 컴퓨터 네트워크 chapter 06 트랜스포트 계층 임효택.
PPP (Point-to-Point Protocol)
Chapter 05 목록화.
Network Security Footprint & Scan.
시스템 보안 백 도 어 학번: 이름: 김 준 일.
정보보호 실습 #2 네트워크 스캐닝 Choong Seon Hong Networking Lab.
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Department of Computer Engineering
제 21 장 TCP 타임아웃과 재전송.
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
제 21 장 TCP 타임아웃과 재전송 정보통신연구실.
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
School of Electronics and Information. Kyung Hee University.
DHCP 박윤환 윤준호.
TCP/IP 통신망 특론 2장 Link Layer 컴퓨터 네트워크 실험실 이희규.
소켓의 옵션 School of Electronics and Information. Kyung Hee University.
Chapter 15 Transmission Control Protocol (TCP).
Real-time Tactics Game
전자입찰시스템 협 력 업 체 사 용 매 뉴 얼.
제 24 장 그 밖의 TCP 기능과 성능 정보통신연구실.
P2P를 연결을 위한 여러기술 휴즈플로우 이재동 예전에 간략하게 크로스 플랫폼 p2p를 이야기한적이 있었는데요
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
TCP / IP 소켓 프로그래밍 3주차 ( Ch.10 ~ Ch.14 ).
과거사 청산, 밝은 미래를 위하여 역사 청산 비교 분석-독일과 우리나라.
Transmission Control Protocol (TCP)
1. lastACK, TS.Recent? 1 / 27 TSOPT를 사용한 수신기 수신기는 1개의 버퍼(큐)와 변수들을 가짐.
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Chapter 16 Socket Interface.
Department of Computer Engineering
Department of Computer Engineering
8 네트워크 계층 프로토콜 학습 목표 IPv6의 필요성과 헤더 구조를 이해한다. 이동 IP 프로토콜의 터널링 원리를 이해한다.
체크포인트 가정 내 일어나는 사고에 대해 알아보고 사고예방을 위해 주의한다. | 예방법 장소별 사고 – 방과 거실 1 2 높은 곳 에 물건 두지 않기! 날카로운 모서리는 천으로 씌우기!
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
최종 사용자 관점의 웹 서비스 성능 관리 SmartSQM Agentless 실시간 전구간 성능 모니터링
(제작자: 임현수)모둠:임현수,유시연,유한민
Information Security - Network Scanning.
Department of Computer Engineering
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
통신 메모리 공유를 이용한 클라이언트/서버 설정 방법
소리가 작으면 이어폰 사용 권장!.
Ethereal 컴퓨터 통신망.
Department of Computer Engineering
Presentation transcript:

1. 연결종료 1 / 38 4way handshake와 상태 천이 1. Client APP이 Close()되어 FIN 전송 후 FIN_WAIT_1 상태로 대기 2. Server가 FIN을 받으면 해당 포트를 CLOSE_WAIT로 바꾸고 ACK를 보냄 3. ACK를 받은 Client는 FIN_WAIT_2로 변경 그와 동시에 Server에서는 App에게 Close()를 요청 2018년 12월 7일 오후 7시 8분 1 / 38

1. 연결종료 2 / 38 4way handshake와 상태 천이 4. Close를 받은 APP은 종료 프로세스를 진행시켜 Close()가 되고 Server는 FIN 패킷을 전송 후 LAST_ACK 상태로 천이 5.Client가 FIN_WAIT_2에서 FIN을 받으면 ACK를 응답하고 자신은 TIME_WAIT로 상태를 변경 6. Client의 ACK를 받으면 서버는 자신의 포트도 CLOSED 상태로 변경 2018년 12월 7일 오후 7시 8분 2 / 38

2. 연결 설정과 연결 해제시 패킷 분석 2018년 12월 7일 오후 7시 8분 3 / 38

2. 연결 설정과 연결 해제시 패킷 분석 연결 설정 Server Open(오른쪽) Client Connection(왼쪽) => Client의 Connect 호출 시 SYN가 전송되고 연결 시작 2018년 12월 7일 오후 7시 8분

2. 연결 설정과 연결 해제시 패킷 분석 연결 종료 Client에서 2를 눌러 Close() 호출(왼쪽) Client -> Server FIN,ACK 패킷 전송 2018년 12월 7일 오후 7시 8분

2. 연결 설정과 연결 해제시 패킷 분석 연결 종료 2. Server에서 2를 눌러 Close() 호출(오른쪽) Server -> Client FIN,ACK 패킷 전송 2018년 12월 7일 오후 7시 8분

3. TCP 상태 천이 server client 7 / 38

3. TCP 상태 천이 - 계속 8 / 38 TIME_WAIT 상태 송신기는 ACK를 보내고 2MSL(Maximum Segment Lifetime) Wait를 수행 수신기가 ACK를 받지 못한 경우에 받을 때 까지 FIN을 전송함. 2MSL 대기 상태에 있는 동안, socket pair 재사용 X TCP가 능동적 폐쇄를 수행하고 마지막 ACK를 전송하면 이 연결은 MSL의 2배동안 TIME_WAIT 상태에서 대기해야함. 마지막 ACK가 손실 되는 경우 TCP가 마지막 ACK를 재전송 하게 한다. 수동 폐쇄쪽에서는 마지막 ACK를 수신 할때까지 FIN을 전송함. 2018년 12월 7일 오후 7시 8분 8 / 38

3. TCP 상태 천이 - 계속 9 / 38 FIN_WAIT_2 상태 폐쇄가 FIN을 보내는 것부터 시작 됨. net.ipv4.tcp_fin_timeout 타이머를 설정하여 타이머 종료 후 강제로 CLOSED 상태로 이동 시킴. 2018년 12월 7일 오후 7시 8분 9 / 38

14. TCP 타임아웃과 재전송 2015. 7. 18 김 진 홍 jhkim3624@etri.re.kr

contents 개요 간단한 타임아웃과 재전송 예제 재전송 타임아웃의 설정 타이머 기반 재전송 빠른 재전송 선택 확인 응답을 가진 재전송 의사 타임아웃과 재전송 패킷 재순서화 재패킷화 정리

1. 개요 12 / 38 재전송과 타임아웃 TCP는 데이터 세그먼트나 ACK가 손실 되면 재전송을 수행. 시간기반 ACK 기반 TCP는 데이터 전송 후 타이머를 설정하고, 타이머 종료 까지 ACK를 받지 못하면 timeout이 발생함. Timeout은 Retransmission Time Out(RTO)라 부르는 시간이 지난 후 발생 함. 2018년 12월 7일 오후 7시 8분 12 / 38

1. 개요 13 / 38 14장 학습 목표 세그먼트 손실 시 무엇을 전송할 것인가? 손실에 대한 응답은 어떻게 하는가? RTO가 RTT 측정에 기반을 두고 설정되는 방식? SACK의 사용법? TCP의 동작에 따른 IP 패킷의 재정렬의 영향 TCP 재전송 시 자신의 패킷 크기를 변경 시키는 방법 2018년 12월 7일 오후 7시 8분 13 / 38

2. 간단한 타임아웃과 재전송 예제 14 / 38 재전송 1:1 환경에서의 재전송 1:N 환경에서의 재전송 net.ipv4.tcp_retries1(재전송 횟수) net.ipv4.tcp_retries2(재전송 종료 시간, RTO) 1:N 환경에서의 재전송 네트워크 링크에 장애로 인해 트래픽의 경로가 재설정 되면 RTT(Round Trip Time)를 수정해야 함. RTT는 RTO의 계산과정에 필요하기 때문에 RTO는 동적으로 변하게 됨 RTT = Round Trip Time RTO = Retransmission Time Out 2018년 12월 7일 오후 7시 8분 14 / 38

3. 재전송 타임아웃의 설정 15 / 38 RTT와 RTO의 관계 RTT샘플 패킷(Seq Number로 구분)을 전송하고 이 패킷에 대한 ack를 수신하는데 필요한 시간을 측정 하는 것 RTT 샘플을 모아 RTT 값의 범위를 결정하고 이를 기반으로 RTO를 설정함. 2018년 12월 7일 오후 7시 8분 15 / 38

3. 재전송 타임아웃의 설정 16 / 38 고전적인 RTT 추정 방법 스무드 RTT 추정기(SRTT, Smoothed RTT estimator) SRTT = a(SRTT) + (1 – a)RTTs 자신의 현재 값과 새로운 RTTs를 기반으로 갱신 됨. 상수 a는 0.8~0.9 사이의 비례인자 => static한 방법 RTO = min(ubound, max(Ibound, (SRTT)b)) Ubound = RTO의 상한(1분 정도) Ibound = RTO의 하한(1초 정도) B = 1.3 ~ 2.0 사이의 인자. 2018년 12월 7일 오후 7시 8분 16 / 38

3. 재전송 타임아웃의 설정 17 / 38 재전송 모호성 RTT 샘플 측정의 문제 패킷이 전송 -> 타임아웃 -> 패킷 재전송 -> 확인응답 수신 어떤 패킷의 ACK인가? 해결방법 타임스탬프 옵션을 사용 2018년 12월 7일 오후 7시 8분 17 / 38

3. 재전송 타임아웃의 설정 18 / 38 타임스탬프 옵션을 가진 RTT 측정 Linux와 Windows를 포함하는 대부분에서 사용하는 알고리즘. 타임스탬프 옵션(TSOPT)은 왕복시간 측정(RTTM, Round-Trip Time Measurement)을 위해 사용 됨. 2018년 12월 7일 오후 7시 8분 18 / 38

3. 재전송 타임아웃의 설정 알고리즘 설명 송신자는 전송할 세그먼트의 TSOPT 옵션을 설정하고 TSV에 32bit 타임스탬프 값을 설정. 세그먼트가 전송 될 때마다 TCP 시간 값을 포함하게 됨. Kind=1 kind=8 Len=10 Timestamp value Timestamp echo reply 32 bits Kind=0 2018년 12월 7일 오후 7시 8분 19 / 38

3. 재전송 타임아웃의 설정 알고리즘 설명 2. 수신기는 ACK 세그먼트의 TSER(TS Echo Reply)에 TSV값을 기록하여 전달 3. 새로운 세그먼트가 LastACK 값과 일치하는 순서번호를 가진다면 TSV는 tsrecent에 저장 됨. 4. ACK를 수신한 송신기는 자신의 Time에서 TSER을 뺀 값을 RTT 추정을 위한 샘플 값으로 사용 함. 2018년 12월 7일 오후 7시 8분 20 / 38

3. 재전송 타임아웃의 설정 21 / 38 TSOPT를 사용한 예제 (순서에 벗어난 세그먼트의 처리) 1025 1 S1 ( 1:1024) TSV : 1 Last ACK TsRecent 타임스탬프를 사용한 세그먼트 전송 A 1025 TSER : 1 S2 ( 1025:2048) TSV: 2 S3 (2049:3072) TSV : 3 A 3073 TSER: 2 3073 2 2018년 12월 7일 오후 7시 8분 21 / 38

4. 타이머 기반 재전송 22 / 38 챕터목표 재전송 타임아웃(RTO)를 설정하여 패킷의 왕복 시간을 알아냈음. 이를 기반으로 어떻게 재전송 하는가? 2018년 12월 7일 오후 7시 8분 22 / 38

4. 타이머 기반 재전송 타이머 기반 재전송 TCP가 RTO 시간 까지 ACK를 수신하지 못하면 타이머 기반 재전송을 수행함. 타이머 기반 재전송은 데이터 전송률을 감소시킴. 혼잡 제어에 기반을 두고 자신의 송신 윈도우 크기를 감소 시킴 RTO에 적용되는 back off 인자의 증가(지수 배 back off) ACK 가 수신되면 지수는 1로 재설정 됨. 이 방법은 네트워크의 이용률을 감소 시키기 때문에 빠른 재전송이라는 다른 방법 또한 제공함. 2018년 12월 7일 오후 7시 8분 23 / 38

5. 빠른 재전송 24 / 38 기본 알고리즘 수신기로부터의 ACK에 기반을 두고 패킷을 재전송. 1025 1 S1 ( 1:1024) TSV : 1 Last ACK TsRecent 타임스탬프를 사용한 세그먼트 전송 A 1025 TSER : 1 S2 ( 1025:2048) TSV: 2 S3 (2049:3072) TSV : 3 A 3073 TSER: 2 3073 2 2018년 12월 7일 오후 7시 8분 24 / 38

5. 빠른 재전송 기본 알고리즘 중복 ACK가 임계값(dupthresh)에 도달하면 아직 받지 못한 세그먼트를 전송. 1025 1 S1 ( 1:1024) TSV : 1 Last ACK TsRecent 빠른 재전송(임계값 = 3) A 1025 TSER : 1 S2 ( 1025:2048) TSV: 2 S3 (2049:3072) TSV : 3 TSER: 1 S4 (3073:4096) TSV : 4 TSV: 5 A 4097 TSER: 5 2018년 12월 7일 오후 7시 8분 25 / 38

6. 선택 확인 응답을 가진 재전송 26 / 38 빠른 재전송의 문제점 수신기가 손실 세그먼트를 1개씩 밖에 알려주지 못함. SACK 옵션을 사용하여 해결할 수 있음. SACK 옵션은 10byte ~ 40byte까지 사용 가능 SACK 옵션이 10byte일 경우 최대 4개의 블록에 대한 정보를 포함 할 수 있음 2018년 12월 7일 오후 7시 8분 26 / 38

6. 선택 확인 응답을 가진 재전송 27 / 38 수신기에서 SACK option의 동작 예 2018년 12월 7일 오후 7시 8분 27 / 38

6. 선택 확인 응답을 가진 재전송 28 / 38 송신기에서 SACK option의 동작 수신기로부터의 SACK 으로부터 hole을 채우기 위한 세그먼트를 추론하여 전송. 2018년 12월 7일 오후 7시 8분 28 / 38

6. 선택 확인 응답을 가진 재전송 29 / 38 Wireshark에서 SACK 옵션 허용 2018년 12월 7일 오후 7시 8분 29 / 38

7. 의사 타임아웃과 재전송 30 / 38 의사 재전송 데이터를 손실하지 않은 경우에도 재전송을 수행하는 것. 원인 의사 재전송 데이터를 손실하지 않은 경우에도 재전송을 수행하는 것. 원하지 않는 재전송 E.g. 너무 일찍 종료된 타임아웃 원인 의사 타임아웃 실제 RTT가 최근 RTO를 초과할 때 발생 패킷 재순서화(8절) ACK 손실 2018년 12월 7일 오후 7시 8분 30 / 38

7. 의사 타임아웃과 재전송 31 / 38 의사 타임아웃의 처리 검출 알고리즘과 응답 알고리즘 검출 알고리즘 응답 알고리즘 의사 타임아웃의 처리 검출 알고리즘과 응답 알고리즘 검출 알고리즘 의사 재전송의 검출 아이펠 검출 알고리즘 응답 알고리즘 의사 재전송이라고 간주되면 TCP에 의해 실행 되는 알고리즘 아이펠 응답 알고리즘 혼잡 제어(16장)에서 좀 더 자세히 다룸. 2018년 12월 7일 오후 7시 8분 31 / 38

7. 의사 타임아웃과 재전송 32 / 38 아이펠 검출 알고리즘 전송 시 TCP TSOPT 옵션을 사용함. 송신기에서 재전송이 실행 되면(타이머 기반 or 빠른 재전송) TSV 값이 저장됨. ACK를 수신하면 ACK의 TSER을 검사함. TSV < TSER 이라면 ACK는 재전송이 아니라 일반 전송에 해당 되고, 의사 재전송이라는 것을 의미함. 2018년 12월 7일 오후 7시 8분 32 / 38

8. 패킷 재순서화 33 / 38 패킷 재순서화 재전송을 유발하는 다른 Case. IP네트워크에서 발생함. 원인 결과 수신기에 도착한 패킷의 순서가 뒤바뀜. 재전송을 유발함. 2018년 12월 7일 오후 7시 8분 33 / 38

8. 패킷 재순서화 34 / 38 패킷 재순서화의 영향 재전송을 유발함. 1 가벼운 재순서화 A 1 2 3 4 5 6 7 8 심한 재순서화 A 1 2 3 4 5 6 7 8 A 2 A 3 A 7 9 4 ( 빠른 재전송 ) A 8 2018년 12월 7일 오후 7시 8분 34 / 38

8. 패킷 재순서화 35 / 38 해결방법 심각한 재순서화는 일반적이지 않으며, dupthresh를 설정하여 처리 가능. 2018년 12월 7일 오후 7시 8분 35 / 38

9. 재패킷화 36 / 38 재 패킷화 패킷 재전송 시 효율을 높이는 방법. TCP가 타임아웃 되어 재전송 할 때 좀 더 큰 세그먼트를 전송 하는 것. 재 패킷화 된 세그먼트의 크기는 수신기로부터 통보된 MSS를 초과할 수 없음. 경로 MTU를 초과할 수 없음. 2018년 12월 7일 오후 7시 8분 36 / 38

10. 정리 37 / 38 타임아웃 발생과 재전송 전략 송신기가 패킷을 전송할 때 네트워크를 끄는 경우 재전송 모호성 타이머를 기반으로 재전송. 각 재전송은 2진 지수형 백 오프를 사용 재전송 모호성 타임스탬프 옵션을 사용하여 해결 빠른 재전송 타이머 종료 없이 ACK 개수를 이용하여 재전송. 선택 확인 응답 재전송 SACK 옵션을 사용하여 재전송 2018년 12월 7일 오후 7시 8분 37 / 38

10. 정리 38 / 38 RTT 추정 재전송 타임아웃 값을 계산하는데 사용 됨. 의사 재전송 RTT 추정 값이 실제 RTT 보다 작을 때 발생 의자 재전송 탐지 알고리즘 아이펠 검출 알고리즘 의사 재전송 처리 알고리즘 아이펠 응답 알고리즘 2018년 12월 7일 오후 7시 8분 38 / 38

Qna