23
TCP/IP Illustrated, TCP/IP Illustrated, Volume I Volume I chapter 17 TCP : chapter 17 TCP : 전전 전전전전전전 전전 전전전전전전 chapter 18 TCP : chapter 18 TCP : 전전전전전 전전 전전전전전 전전 200530032 김김김

chapter 17 TCP : 전송 제어프로토콜 chapter 18 TCP : 연결확립과 종료

Embed Size (px)

DESCRIPTION

chapter 17 TCP : 전송 제어프로토콜 chapter 18 TCP : 연결확립과 종료. 200530032 김영준. TCP 의 신뢰성 있는 서비스. 응용 데이터는 TCP 가 전송하기에 적합한 크기로 나뉘어 진다 . TCP 는 세그먼트를 보낼 때 타이머를 설정하고 , 상대편으로부터 세그먼트를 수신했다는 것을 알리는 확인응답을 기다린다 . TCP 가 연결의 상대 편으로부터 데이터를 받으면 확인응답을 보낸다 . TCP 는 헤더와 데이터에 검사 합을 이용한다 . - PowerPoint PPT Presentation

Citation preview

Page 1: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP/IP Illustrated, Volume ITCP/IP Illustrated, Volume I

chapter 17 TCP : chapter 17 TCP : 전송 제어프로토콜전송 제어프로토콜chapter 18 TCP : chapter 18 TCP : 연결확립과 종료연결확립과 종료

200530032 김영준

Page 2: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP TCP 의 신뢰성 있는 서비스의 신뢰성 있는 서비스 응용 데이터는 TCP 가 전송하기에 적합한 크기로 나뉘어

진다 . TCP 는 세그먼트를 보낼 때 타이머를 설정하고 ,

상대편으로부터 세그먼트를 수신했다는 것을 알리는 확인응답을 기다린다 .

TCP 가 연결의 상대 편으로부터 데이터를 받으면 확인응답을 보낸다 .

TCP 는 헤더와 데이터에 검사 합을 이용한다 . TCP 세그먼트는 순서에 맞게 도착하지 않아도 된다 . 수신 측 TCP 는 중복된 데이터를 버려야 한다 . TCP 는 흐름 제어를 제공한다 .

Page 3: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP TCP 헤더헤더

Page 4: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

URG - 긴급 포인터가 유효함 ACK – 확인응답 번호가 유효함 PSH – 수신 측은 데이터를 가능한 빨리 App. 에 보내야

한다 . RST – 연결을 재설정 SYN – 연결을 초기화 , 순서 번호를 동기화 FIN – 데이터 전송을 종료함

Page 5: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

연결 확립과 종료연결 확립과 종료

Page 6: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료
Page 7: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

실제 테스트 결과

Page 8: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료
Page 9: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

연결 확립의 타임아웃연결 확립의 타임아웃

Page 10: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

1 번째 – client 의 LAN 선을 뽑은 상태로 대기시간 13 초2 번째 – server 의 LAN 선을 뽑은 상태로 대기시간 24 초

2 번째 상황에서 다시 같은 테스트 결과 대기시간은 약 3 초

Page 11: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

최대 세그먼트 크기최대 세그먼트 크기 MSS 는 TCP 가 다른 연결된 host 에게 보낼 수

있는 가장 큰 데이터 덩어리 MSS 옵션은 SYN 세그먼트에서 부가 서로간에 MSS 옵션을 받지 못한다면 , default 로

536 bytes Ether net 의 경우 MSS 최대 값은 1460 bytes

Page 12: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료
Page 13: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP TCP 절반 종료절반 종료 TCP 는 연결의 한 쪽 종단이 데이터를 전송 받고

있는 상태에서 출력을 종료하는 기능을 제공 프로그래밍 인터페이스가 제공해야 함

Page 14: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

close() close 는 지정 번호의 참조 계수를 1 씩 감소 ,

계수가 0 에 이르면 소켓을 닫는다 . close 는 양방향의 데이터 전송 모두를 종료

int shutdown(int sockfd, int howto) SHUT_RD SHUT_WR SHUT_RDWR

Page 15: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP TCP 상태 천이도상태 천이도

정상적인 client

정상적인 server

Page 16: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

일반적인 연결 확립과 종료에 대한 TCP 상태

Page 17: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TIME_WAIT 상태 2MSL(Maximum Segment Lifetime) 대기 상태 TCP 가 ACK 를 잃어버린 경우에 ACK 재전송 하기

위해서 2MSL 대기 상태에 있는 동안 , socket pair 재사용 X

SO_REUSEADDR 옵션을 사용해서 재사용 같은 socket pair 는 연결 X

Page 18: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

Quiet time TCP 가 재 가동 후 MSL 시간 동안 어떠한 연결도

확립할 수 없도록 한다 .

FIN_WAIT_2 상태 FIN 을 보내고 (FIN_WAIT_1 상태 ), 상대편 종단은

이에 ACK 를 보내고 (FIN_WAIT_2 상태 ), 다시 FIN을 보낸다 . FIN_WAIT_2 상태에서 TIME_WAIT 상태로 바뀐다 .

Page 19: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

재설정 세그먼트 재설정 세그먼트 (RST)(RST)

존재하지 않는 포트에 대한 연결 요구

연결 중단 대기중인 모든 데이터를 폐기하고 즉시 재설정 신호를

전송 RST 의 수신 측은 상대방에게 일반적인 연결 종료가 아닌

중단 (abort) 을 했다고 알릴 수 있다 .

Page 20: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

동시 개방과 동시 종료동시 개방과 동시 종료 Simultaneous open

Simultaneous close

Page 21: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP TCP 옵션옵션

Kind=2 Len=4 MSS

Kind=1 Kind=3 Len=3 Shift count

Kind=1 Kind=1 kind=8 Len=10

Timestamp value

Timestamp echo reply

32 bits

Kind=0

Page 22: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

TCP TCP 서버 설계서버 설계 수신연결 요구 큐

대기 중인 종단점은 TCP 에 의해 받아들여지지만 (three-way 핸드쉐이크 ), 응용에는 아직 수신되지 않은 연결의 고정 길이의 큐를 갖는다 .

응용은 이 큐에 대해서 한계를 설정 , 이것을 backlog 라고 부른다 .

Page 23: chapter 17 TCP :  전송 제어프로토콜 chapter 18 TCP :  연결확립과 종료

새로운 연결에 대한 큐에 공간이 있다면 TCP 모듈은 SYN 에 대해서 ACK 를 보내고 연결을 완성

공간이 없으면 , SYN 을 무시하고 , 아무것도 되돌려 주지 않는다 .