Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 12 장 전송 제어 프로토콜(TCP) 12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션

Similar presentations


Presentation on theme: "제 12 장 전송 제어 프로토콜(TCP) 12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션"— Presentation transcript:

1 제 12 장 전송 제어 프로토콜(TCP) 12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션
12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션 12.5 검사합 12.6 흐름 제어 오류 제어

2 제 12 장 전송 제어 프로토콜(TCP)(계속) 12.8 TCP 타이머 12.9 연결 12.10 상태 천이 다이어그램
12.9 연결 12.10 상태 천이 다이어그램 12.11 혼잡 제어 12.12 TCP 동작 12.13 TCP 설계 요약

3 TCP/IP 프로토콜 모음

4 전송 계층(TCP)이 제공하는 기능 프로세스간 통신 개설(포트 번호 이용)
전송 단계에서 흐름 제어 메커니즘 제공(슬라이딩 윈도우 프로토콜 이용) 전송 단계에서 오류 제어 메커니즘 제공(응답 패킷, 시간-초과, 재전송 방식 이용) 연결 지향의 신뢰성 있는 프로토콜

5 12.1 프로세스간 통신

6 12.1 프로세스간 통신(계속) 클라이언트/서버 통신에 필요한 사항 로컬 클라이언트 프로그램 원격 서버 프로그램 로컬 호스트
원격 호스트 포트번호 IP 주소

7 12.1 프로세스간 통신(계속) 포트 번호

8 12.1 프로세스간 통신(계속) 잘 알려진(well-known) 포트 번호 Port Protocol
7 Echo 9 Discard 11 Users 13 Daytime 17 Quote 19 Chargen 20 FTP, Data 21 FTP, Control

9 12.1 프로세스간 통신(계속) 잘 알려진(well-known) 포트 번호(계속) Port Protocol
23 TELNET 25 SMTP 53 DNS 67 BOOTP 79 Finger 80 HTTP 111 RPC

10 12.1 프로세스간 통신(계속) 소켓 주소 IP 주소와 포트 번호의 조합 종단간 연결 설정에 사용
클라이언트와 서버 소켓 주소 필요 IP 헤더(IP 주소)와 TCP 헤더(포트 번호)에 들어있음

11 12.2 TCP 서비스 스트림 데이터 서비스 전이중 서비스 신뢰성 서비스

12 12.2 TCP 서비스(계속) 스트림 데이터 서비스 송신 TCP 수신 TCP
송신 응용 프로그램으로부터 문자 스트림 수신(송신 버퍼 이용) 적절한 크기인 세그먼트를 만들어 네트워크를 통하여 전송 수신 TCP 세그먼트를 수신(수신 버퍼 이용) 데이터를 추출하여 문자 스트림으로 수신 응용 프로그램에 전달

13 12.2 TCP 서비스(계속) 전이중 서비스 신뢰성 서비스 동시에 양방향 전송
송신 데이터와 수신 데이터에 대한 확인 응답을 함께 보내는 피기백킹(piggybacking) 신뢰성 서비스 확인 응답 메커니즘 이용

14 12.3 세그먼트 TCP를 이용하여 두 개의 장치간에 전달되는 데이터 단위

15 12.3 세그먼트(계속) 세그먼트 발신지 포트 번호(source port address) : 전송 호스트 응용 프로그램의 포트 번호 목적지 포트 번호(destination port address) : 수신 호스트 응용 프로그램의 포트 번호 순서 번호(sequence number) : 세그먼트에 포함된 데이터의 첫번째 바이트에 부여된 번호 확인 응답 번호(acknowledgement number) : 상대방 노드로부터 수신하고자 하는 바이트의 번호 헤더길이(header length) : TCP 헤더 길이의 4바이트 워드 값 제어(control) : 제어 또는 플래그

16 12.3 세그먼트(계속) 제어 필드

17 12.3 세그먼트(계속) 제어 필드의 플래그 종류 Flag Description ----- --------------
URG Urgent pointer field is valid ACK Acknowledgment field is valid PSH Push the data RST Connection must be reset SYN Synchronize sequence numbers FIN Terminate the connection

18 12.3 세그먼트(계속) 세그먼트(계속) 윈도우 크기(window size) : 상대방이 유지해야 하는 바이트 단위의 윈도우 크기 검사합(checksum) : 오류 제어 긴급 포인터(urgent pointer) : 긴급 데이터 옵션(option) : 옵션 정보

19 12.4 옵션(option) 최대 40 바이트

20 12.4 옵션(option)(계속) 옵션-끝(end of option) 맨 끝에 패딩을 위해 사용되는 한 바이트 옵션

21 12.4 옵션(option)(계속) 무 동작(no operation) 채우기(filler)로 사용되는 한 바이트 옵션

22 12.4 옵션(option)(계속) 최대 세그먼트 크기(maximum segment size : MSS)
목적지에서 수신할 수 있는 데이터 세그먼트의 최대 크기 연결 설정 단계 중에 목적지에 의해 결정

23 12.4 옵션(option)(계속) 윈도우 확장 인자 윈도우 크기를 증가시키기 위해 사용
새로운 윈도우 크기 = 헤더에서 정의된 윈도우 크기 * 2윈도우 확장인자 최대 설정 값 : 16 최대 윈도우 크기 : 216 * 216 = 232(순서번호 값과 동일)

24 12.4 옵션(option)(계속) 타임스탬프(timestamp) 10바이트 길이 옵션
왕복 시간(round-trip time) 계산에 사용

25 12.5 검사합 UDP와 동일하며 필수 사항(mandatory) 의사 헤더(pseudoheader)를 세그먼트에 추가
프로토콜의 값 : 6

26 12.6 흐름 제어(flow control) 목적지로부터 확인 응답을 수신하기 전에 발신지가 전송할 수 있는 데이터 양 정의
적용 방법 : 슬라이딩 윈도우 프로토콜(sliding window protocol) 슬라이딩 윈도우 예(고정 크기)

27 12.6 흐름 제어(flow control)(계속)
포인터를 이용한 슬라이딩 윈도우

28 12.6 흐름 제어(flow control)(계속)
윈도우 크기 증가 확인 응답 세그먼트 이용

29 12.6 흐름 제어(flow control)(계속)
윈도우 크기 감소

30 12.6 흐름 제어(flow control)(계속)
윈도우 관리 목적지에서 증가 또는 감소

31 12.6 흐름 제어(flow control)(계속)
silly 윈도우 신드롬 전송/수신 응용 프로그램이 데이터를 천천히 생성하거나 천천히 처리할 때 발생 예 : 1 바이트 데이터 + 20 바이트 TCP 헤더 + 20 바이트 IP 헤더 송신측에서 발생하는 신드롬 가능한 한 바이트 데이터를 전송하지 못하게 함 데이터를 취합하여 큰 블록 데이터로 만들어 전송 Nagle 알고리즘 적용 : 송신 TCP에서 실행하는 알고리즘

32 12.6 흐름 제어(flow control)(계속)
수신측에서 발생하는 신드롬 silly 윈도우 신드롬이 발생하는 상황에서 한 바이트 수신 처리 후에 윈도우 크기를 통보하게 되는 경우 Clark 해결 방법 : 충분한 공간이 생기거나 적어도 버퍼가 반 이상 비어있을 때까지 윈도우 크기를 0 으로 통일 확인 응답 송신 지연 : 수신 버퍼가 충분한 공간이 생길 때까지 확인 응답 보류

33 12.7 오류 제어 오류 감지 메커니즘 훼손 세그먼트 손실 세그먼트 순서가 어긋난 세그먼트 중복 세그먼트 오류 정정 메커니즘

34 12.7 오류 제어(계속) 오류 발견과 정정 오류 발견 도구 : 검사합, 확인응답, 시간-초과
세그먼트의 검사합 필드 이용 훼손 여부 확인 수신을 송신측에 알려주는 확인응답 이용 시간-초과 전까지 확인응답 되지 않으면 훼손 또는 손실 간주 오류 정정 : 시간-초과 카운터 이용 - 재전송

35 12.7 오류 제어(계속) 훼손 세그먼트

36 12.7 오류 제어(계속) 손실 세그먼트

37 12.7 오류 제어(계속) 확인응답 손실

38 12.7 오류 제어(계속) 중복 세그먼트 순서가 잘못된 세그먼트 시간-초과 이전에 확인응답이 도착하지 않는 송신
같은 순서번호를 가진 세그먼트는 폐기 순서가 잘못된 세그먼트 데이터그램의 서로 다른 경로를 통한 전달로 인하여 발생 이전의 세그먼트로 모두 수신하기까지 확인응답을 전송하지 않음 시간-초과가 발생하면 세그먼트가 재전송 됨

39 12.8 TCP 타이머 TCP 타이머 종류

40 12.8 TCP 타이머(계속) 재전송 타이머(retransmission timer)
재전송 시간 : 세그먼트 전송 후 확인응답을 기다리는 시간 타이머가 끝나기 전 확인응답이 수신되며 타이머 소멸 확인응답이 수신되기 전 타이머가 종료되면 해당 세그먼트는 재전송되고 타이머 초기화 재전송 시간 = 2 * RTT(round-trip time)

41 12.8 TCP 타이머(계속) Karn 알고리즘 영속 타이머(persistence timer)
전송된 세그먼트에 대해 확인 응답되지 않아 재전송된 경우 이전 세그먼트에 대한 확인응답인지 재전송에 대한 확인응답인지 여부 판단이 애매하다 RTT 값은 재전송 없이 확인응답 수신 전까지 변동이 없음 영속 타이머(persistence timer) 윈도우 크기가 0 인 경우를 처리하기 위한 타이머 수신 TCP가 윈도우 크기 0 을 통보했는데, 송신 TCP가 이에 대한 확인응답을 보냈지만 수신 TCP가 이를 수신하지 못함 양쪽 TCP가 서로 기대되는 교착상태(deadlock) 해결

42 12.8 TCP 타이머(계속) Keepalive 타이머 시간-대기 타이머(time-waited timer)
두 TCP 간에 설정된 연결이 오랫동안 휴지(idle) 상태에 있는 것을 방지하기 위한 타이머 시간-종료 : 2 시간 2 시간이 지나도록 세그먼트를 수신하지 못하면 75초 간격으로 10 개의 프루브(probe) 전송 응답이 없으면 다운으로 간주하고 연결 종료 시간-대기 타이머(time-waited timer) 연결 종료 동안에 사용

43 12.9 연결 TCP : 연결-지향 프로토콜 발신지와 목적지 간에 가상 경로 설정 연결 설정과 연결 종료를 통하여 이루어짐

44 12.9 연결(계속) 연결 설정 4 단계 수행 호스트 A는 호스트 B에게 연결 설정 세그먼트를 전송(초기화 정보)
호스트 B는 호스트 A에게 확인응답 세그먼트 전송 호스트 B는 호스트 A에게 초기화 정보 세그먼트 전송 호스트 A는 호스트 B에게 확인응답 세그먼트 전송

45 12.9 연결(계속) 3 단계 핸드쉐이크(three-way handshaking

46 12.9 연결(계속) 연결 종료 호스트 A는 연결 종료를 알리고 세그먼트 전송
호스트 B는 A의 요구에 대해 확인 응답하는 세그먼트 전송 호스트 B는 연결 종료를 알리는 세그먼트 전송 호스트 A는 B의 요구에 대해 확인응답

47 12.9 연결(계속) 4 단계 핸드쉐이크(four-way handshaking)

48 12.10 상대 천이 다이어그램 유한 상태 기기(finite state machine) 이용 구현 TCP 상태
State Description CLOSED There is no connection LISTEN The server is waiting for calls from the client SYN-SENT A connection request is sent; waiting for acknowledgment SYN-RCVD A connection request is received ESTABLISHED Connection is established FIN-WAIT-1 The application has requested the closing of the connection FIN-WAIT-2 The other side has accepted the closing of the connection CLOSING Both sides have decided to close simultaneously TIME-WAIT Waiting for retransmitted segments to die CLOSE-WAIT The server is waiting for the application to close LAST-ACK The server is waiting for the last acknowledgment

49 12.10 상대 천이 다이어그램(계속) 상대 천이 다이어그램

50 12.10 상대 천이 다이어그램(계속) 상태 천이 다이어그램 상태(state) : 타원형
한 상태에서 다른 상태로의 천이 : 지시선 사선으로 나누어지는 두 개의 문자열 첫번째 열 : TCP가 수신하는 입력 두번째 열 : TCP가 전송하는 출력 점선 : 서버 실선 : 클라이언트 가는선 : 비 정상적인 상황

51 12.11 혼잡 제어 라우터가 패킷을 처리할 수 있는 속도보다 빠른 속도를 수신하는 경우 발생
패킷이 손실되어 목적지는 확인응답 패킷을 보내지 못함 재전송을 통한 복구

52 12.12 TCP 동작 캡슐화와 역 캡슐화

53 12.12 TCP 동작(계속) 큐잉

54 12.12 TCP 동작(계속) 다중화와 역 다중화

55 12.13 TCP 설계 전송 제어 블록(TCB : Transmission Control Block) 타이머(Timer)
메인 모듈(Main Module) 입력 프로세스 모듈(Input Process Module) 출력 프로세스 모듈(Output Process Module)

56 12.13 TCP 설계(계속) TCP 설계

57 12.13 TCP 설계(계속) 전송 제어 블록(TCB) 연결 제어에 대한 정보 보관

58 12.13 TCP 설계(계속) 전송 제어 블록(TCB) 상태(state) 프로세스(process) 로컬 IP 주소
로컬 포트 번호 원격지 IP 주소 원격지 포트 번호 인터페이스 로컬 윈도우

59 12.13 TCP 설계(계속) 전송 제어 블록(TCB)(계속) 원격지 윈도우 송신순서번호 수신순서번호
왕복(round-trip)시간 시간 초과 값 버퍼 크기 버퍼 포인터

60 12.13 TCP 설계(계속) 타이머 메인 모듈 입력 처리 모듈 출력 처리 모듈 TCP 동작을 처리하기 위한 여러 가지 타이머
시간-초과 이벤트 발생 응용 프로그램으로부터 메시지가 들어오는 경우 입력 처리 모듈 연결 설정 상태에서 수신하는 데이터나 확인응답을 처리하기 위해 필요한 기능담당 출력 처리 모듈 연결 설정 상태에서 응용 프로그램으로부터 수신한 데이터를 전송하기 위해 필요한 기능 담당

61 12.14 요약


Download ppt "제 12 장 전송 제어 프로토콜(TCP) 12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션"

Similar presentations


Ads by Google