20강. 신뢰성 있는 통신 tcp

Download Report

Transcript 20강. 신뢰성 있는 통신 tcp

7장. TCP와 UDP
1
1. 신뢰성 있는 통신 TCP
TCP : End-to-End 간의 신뢰성 있는 데이터 통신을 보장.
TCP의 연결제어, 오류제어, 시퀀스제어, 흐름제어 방식은?
2
1.1 신뢰성 있는 통신을 위한 TCP
• 계층 4 트랜스포트 계층 프로토콜
• End-to-End 송수신 프로그램 간의 통신
• 연결지향형의 신뢰성 있는 데이터 송수신을 보장
• 연결제어, 오류제어, 시퀀스제어, 흐름제어 수행
• TCP는 패킷을 전송하기 위해 하위 IP를 이용
3
1.2 TCP와 UDP 비교
프로토
콜
주요
기능
TCP
UDP
신뢰성 있는 전송
신뢰성이 보장되지 않음
예) Ftp같이 신뢰성 있는 통신이
예) 인터넷폰, 화상회의와 같은
요구되는 경우
실시간 통신이 요구되는 경우
상세
기능
연결제어, 오류제어, 흐름제어,
시퀀스제어를 함 (신뢰성)
연결제어, 오류제어, 흐름제어,
시퀀스 제어를 하지 않음.
(비신뢰성)
연결
연결 지향적 (CO) (연결설정 →
데이터송수신 → 연결해제)
비연결 지향적 (CL) (연결설정
없이, 상대편 주소를 실어 전달)
공통점
TCP와 UDP의 공통점 : End-to-End 통신 프로토콜
4
1.3 TCP 제공의 서비스
• 연결 지향성
• 완전 신뢰성
• 점대점 통신
• 전이중 통신
• 스트림 인터페이스
• 신뢰성 있는 연결시작
• 완전한 연결 종료
5
1.4 호스트와 라우터 프로토콜
◑ TCP: 신뢰성 있는 연결지향형의 End-to-End 통신 프로토콜
하위 IP가 Source로부터 Destination까지의 전달을 지원
◑ 질문: 라우터에 TCP 프로토콜이 필요하지 않는 이유는?
6
1.5 TCP 세그먼트 형식
◑ CODE BITS(6비트): URG(긴급 데이터), ACK(ACK NUMBER),
PSH(Push Data), RST(연결리셋), SYN(연결설정), FIN(연결해제)
7
1.6 UDP 세그먼트 형식
참고) TCP의 연결설정 및 해제 작업은 오버헤드가 큰 작업이나
한 번의 연결을 통해 많은 양의 통신이 유지되는 경우에는
TCP의 오버헤드는 별로 문제 되지 않는다.
8
1.7 Port 란?
◑ Port : 응용 프로그램의 입출력 창구
구현측면에서 보면 응용 프로그램의 입출력 메세지 큐
◑ IP 주소는 네트워크 상의 해당 컴퓨터를 지칭하고,
Port 주소는 컴퓨터 내의 특정 응용 프로그램(프로세스)을 지칭.
9
1.8 TCP 프로토콜: 연결설정
◑ 연결 설정 : 3-Way Handshaking 방식
☞ Animation 20_1
◑ 질문: 3-Way Handshaking의 연결설정을 하는 이유는?
오류제어방식, 윈도우 크기 등의 통신환경 설정을 위한 서비스
Negotiation을 위해 TCP 헤더의 option 필드에 이를 실어 조정함.
10
1.9 TCP 프로토콜: 연결해제
◑ 연결해제: 3-Way 혹은 4-Way Handshaking 방식
☞ Animation 20_2
◑ 질문: 연결해제 시 양방향 연결해제를 하는 이유는?
양방향의 신뢰성 있는 통신을 보장하기 위해; 우아한 종료
11
1.10 TCP 프로토콜: 오류제어
•
•
•
•
패킷 전송을 보증하기 위해 TCP는 ACK와 재전송 기법을 사용.
성공적인 수신을 통고하는 메시지는 응낙(ACK) 메시지
재전송 : 동일한 세그먼트를 다시 전송하는 동작
오류제어 : Selective-repeat 방식, Adaptive Timer 이용
12
■ 오류제어 방식 비교
13
1.11 TCP 프로토콜: 흐름제어
◑ TCP는 흐름제어를 위해 수신자는 수신 가능한 윈도우(버퍼)
크기를 알리고, 송신자는 윈도우 크기 내의 데이터를 전송함.
14
1.12 TCP 프로토콜: 시퀀스제어
◑ 각 패킷에 일련번호를 사용하여 순서대로 조합, 중복 및 소실 검사
1.13 정체제어(congestion control)
◑ 정체: 데이터의 폭주로 과도한 전송지연이 발생하는 상황
◑ 메시지가 손실될 때마다, TCP는 정체제어를 시작함.
◑ 정체제어: 정체가 발생하면 전송량을 급속히 감소시킨 후 천천히
늘려감. 만약 응낙이 손실 없이 도착하면 TCP는 앞서 보냈던
데이터의 두 배로 증가하여 전송함. TCP는 수신자 수신창의
절반을 전송할 때까지 지수적 증가를 계속하다 그 후에는
증가율을 감소시킨다. (Slow Start 기법)
15
1.14 TCP 프로토콜의 구현: 슬라이딩 윈도우 프로토콜
◑ 메시지 큐(=Port): TX/RX 큐가
짝을 이룸. Circular Queue
구조를 가짐.
◑ 윈도우: ACK를 받지 않은 상태
에서 동시에 전송가능한 패킷
그룹
◑ ACK 수신시 윈도우는 이동하
게 되고, 우측 경계는 ACK를
받은 패킷들, 왼쪽 경계는 전송
해야할 패킷임.
◑ 우측 경계 ACK 받은 패킷 버퍼
에는 상위 응용계층의 전송 패
킷들로 채워짐.
◑ 슬라이딩 윈도우 프로토콜: 기본동작, 오류제어, 흐름제어 숙지 !
☞ 기본동작: Animation 20_3, 흐름제어: Animation 20_4,
오류제어 및 시퀀스제어: Animation 20_5
16
17
18
19