Download presentation
Presentation is loading. Please wait.
1
PART 02 프로토콜 컴퓨터 네트워크 chapter 06 트랜스포트 계층 임효택
2
OSI 트랜스포트 계층 개요 6.1.1 OSI 트랜스포트 계층의 개관
PART 02 프로토콜 OSI 트랜스포트 계층 개요 6.1.1 OSI 트랜스포트 계층의 개관 네트워크 계층의 서비스를 이용하여 세션 계층에게 서비스 제공 엔티티 : 트랜스포트 계층의 기능을 수행하는것 중간에 여러 개의 망들을 포함하는 종단 간의 연결이다 6.1.2 제공 서비스 연결형, 비연결형 두 가지 서비스를 제공 서비스의 질(QOS) 연결 설정 시의 지연 효율 전달 지연 잔여 에러율 보호 우선 순위
3
PART 02 프로토콜 트랜스포트 서비스 프리미티브 [그림 6.3] 트랜스포트 계층 서비스의 사용 예
4
6.1.3 트랜스포트 프로토콜 트랜스포트 서비스는 두 트랜스포트 엔티티 간에 트랜스포트 프로토콜을 이용하여 제공
PART 02 프로토콜 6.1.3 트랜스포트 프로토콜 트랜스포트 서비스는 두 트랜스포트 엔티티 간에 트랜스포트 프로토콜을 이용하여 제공 데이터링크 프로토콜과 매우 유사 트랜스포트 계층과 링크 계층의 차이점 데이터 링크 계층 - 하나의 전송 매체에 연결되어 있는 시스템을 연결 트랜스포트 계층 – 전체망의 종단에 연결되어 있는 시스템을 연결 [그림 6.4] 데이터 링크 계층과 트랜스포트 계층
5
트랜스포트 프로토콜 네트워크 계층의 서비스 질을 판단하기 위한 기준
PART 02 프로토콜 트랜스포트 프로토콜 네트워크 계층의 서비스 질을 판단하기 위한 기준 A : 패킷은 잘 전달하며, N-Reset 서비스 프리미티브도 없는 네트워크 B : 패킷은 잘 전달하며, N-Reset을 제공하는 네트워크 C : 패킷의 분실이나 복제가 생길 수 있으며, N-Reset을 제공하는 네트워크 트랜스포트 계층에서 제공하여야 하는 기능은 하위의 망에서 제공하는 서비스의 질에 따라 결정 트랜스포트 계층의 서비스는 [표 6.2]에서 볼 수 있는 것처럼 5개의 클래스로 나누어 서 제공 클래스 하위의 망 타임 이름 1 2 3 4 A B C 단순 클래스 기본 에러 회복 클래스 다중화 클래스 에러 회복과 다중화 클래스 에러 검출 및 회복 클래스 [표 6.2] 트랜스포트 프로토콜의 클래스
6
트랜스포트 프로토콜의 클래스 클래스 0 – A 타입의 통신망 적용 대상 에러검출, 에러 복구 기능, 흐름 제어 기능 제공 안됨
PART 02 프로토콜 트랜스포트 프로토콜의 클래스 클래스 0 – A 타입의 통신망 적용 대상 에러검출, 에러 복구 기능, 흐름 제어 기능 제공 안됨 트랜스포트 연결회로 설정과 해제 기능을 가짐. 클래스 1 – B 타입의 통신망을 적용 대상 에러검출 안함, 에러 발생시 N-Reset서비스를 사용하여 상대 트랜스 트 계층과 동기를 다시 마춤 클래스 2 – A 타입의 통신망 적용 대상 에러 검출과 복구 기능 없음, 다중화 기능 제공 클래스 3 – B 타입의 통신망 적용 대상 클래스 1과 2를 합해 놓은 형태 클래스 4 – C 타입의 통신망 적용 대상 에러 검출 기능 및 발생한 에러으 복구 기능을 제공
7
6.1.4 트랜스포트 계층의 기능 다중화(Multiplexing)
PART 02 프로토콜 6.1.4 트랜스포트 계층의 기능 다중화(Multiplexing) 하나의 네트워크 연결에 여러 개의 트랜스포트 연결을 설정하는 것 다중화를 이용하는 대표적인 예 X.25에서는 사용비용을 계살 할 때 가상회선의 연결 시간을 기준으로 한다. 분리(Splitting) 다중화와 반대로 하나의 트랜스포트 연결이 여러 개의 네트워크 연결을 사용 트랜스포트 연결에서 요구하는 데이터 양을 하나의 네트워크 연결로는 처리할 수 없는 경우 사용 분할(Segmentation) 송신측에서 하나의 TSDU를 여러 개의 TPDU로 나누어 송신하고, 수신측에서는 여러 개로 나누어서 수신된느 TPDU를 하나의 TSDU로 다시 조합하여 이를 상위 계층에게 전달
8
PART 02 프로토콜 연결형 서비스의 데이터 타입 10가지의 TPDU 타입을 사용한다.
9
비연결형 서비스에서의 데이터 타입 비연결형 프로토콜을 사용 PDU의 형식은 연결형의 프로토콜에서 사용하는 것과 크게 다르지
PART 02 프로토콜 비연결형 서비스에서의 데이터 타입 비연결형 프로토콜을 사용 PDU의 형식은 연결형의 프로토콜에서 사용하는 것과 크게 다르지 않음 [그림 6.6] 트랜스포트 계층 비연결형 서비스를 위한 TPDU
10
PART 02 프로토콜 안정적인 데이터 전송 원리 [그림 6.7] 데이터 링크를 통한 통신
11
6.2.1 Stop and Wait 프로토콜 - stop-and-wait 방식의 시나리오 (a) (c) (b) (d)
PART 02 프로토콜 6.2.1 Stop and Wait 프로토콜 - stop-and-wait 방식의 시나리오 (a) (c) (b) (d)
12
Stop and Wait 프로토콜 Stop-and-Wait의 단점 송신측의 프레임이 분실되어진 경우,
PART 02 프로토콜 Stop and Wait 프로토콜 Stop-and-Wait의 단점 송신측의 프레임이 분실되어진 경우, 수신측에서는 ACK를 보내지 않고 송신측에서는 계속해서 ACK를 기다림 수신측의 ACK가 분실되어진 경우, 앞에서와 같은 상황이 발생 ACK가 훼손되어진 경우 중복된 프레임 전송 비효율적 [그림 6.9]
13
PART 02 프로토콜 6.2.2 Go-back-N 프로토콜 수신측에서 패킷의 오류가 검출된 경우 NACK 신호를 보내게 되고 오류가 복구될 때까지 그 이후의 패킷은 수신하지 않는다. 송신측은 NACK를 수신하면 오류가 있는 패킷과 그 다음의 모든 패킷을 재전송 수신측이 전송된 패킷을 저장하거나 재전송된 패킷을 재배열시킬 필요가 없다. 재전송하는 패킷의 비율이 더 높게 되므로 망의 대역폭에 있어서는 손실 Go-back-N 사용 프로토콜: delta-t, XTP [그림 6.10] Go-back-N 방식의 예
14
PART 02 프로토콜 6.2.2 Go-back-N 방식의 동작 예
15
PART 02 프로토콜 3.2.3 Selective Repeat 프로토콜 NACK를 수신한 패킷만 재전송하므로 go-back-N방식보다 재전송하는 패킷의 비율이 적어서 효율은 높다. 수신측은 재전송된 패킷을 재배열--오버헤드를 유발 사용 프로토콜 VMTP NETBLT XTP: Go-back-N과 Select Repeat 함께 사용 [그림 6.12] Selective repeat 방식의 예
16
Selective Repeat 방식의 동작 예
PART 02 프로토콜 Selective Repeat 방식의 동작 예
17
6.2.4 재전송 방식의 분석 Stop-and-wait 동작 [그림 6.14] 참조
PART 02 프로토콜 6.2.4 재전송 방식의 분석 [그림 6.14] 참조 RTT(Round Trip Time): 두 종단 시스템 사이의 왕복전파지연 R : 전송률 L : 패킷크기 Stop-and-wait 동작
18
PART 02 프로토콜 6.2.4 재전송 방식의 분석 Pipelined 동작
19
6.3 인터넷 트랜스포트 계층 6.3.1 Transmission Control Protocol(TCP)
PART 02 프로토콜 6.3 인터넷 트랜스포트 계층 6.3.1 Transmission Control Protocol(TCP) TCP 연결-지향 서비스 연결-지향 데이터 전송 서비스 제공 양-방향(full-duplex)데이터 전송 서비스 이다 TCP가 제공하는 데이터 전송 서비스 [그림 6.16] [그림 6.16] TCP의 신뢰적인 양-방향 데이터 전송 서비스
20
TCP 응용 많은 응용들은 TCP와 같은 연결-지향 데이터 전송 프로토콜이 제공하는 신뢰성 제어를 요구
PART 02 프로토콜 TCP 응용 많은 응용들은 TCP와 같은 연결-지향 데이터 전송 프로토콜이 제공하는 신뢰성 제어를 요구 TCP를 이용하는 응용[표 6.4] 서비스 포트 설명 Discard Chargen FTP Telnet SMTP X400 9 19 20 21 23 25 103 수신되는 사용자 데이터를 폐기 임의의 길이로 된 문자열을 반환 FTP 파일전송 동작을 구현 FTP 제어 절차를 구현 Telnet 서비스 구현 SMTP 서비스 구현 X400 서비스 구현 [표 6.4] TCP를 사용하는 응용 서비스
21
TCP 세그먼트 형식 TCP는 스트림-지향 데이터 전송 서비스를 제공
PART 02 프로토콜 TCP 세그먼트 형식 TCP는 스트림-지향 데이터 전송 서비스를 제공 전송을 위한 옥텟 스트림을 세그먼트라고 하는 데이터 단위로 나눔 세그먼트는 전송될 때 IP 데이터그램에 포함되어 전송 세그먼트는 고정된 크기는 아니며 한쪽 TCP 사용자가 전송하는 옥텟은 전송되는 순서대로 다른 호스트 사용자에게 전달된다. [그림 6.17] IP 데이터그램과 TCP 세그먼트
22
TCP segment 구조 source port # dest port # application data
PART 02 프로토콜 TCP segment 구조 source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number rcvr window size ptr urgent data checksum F S R P A U head len not used Options (variable length) URG: 긴급데이터 (사용안함) 데이터의 바이트 수로 계산 ACK: ACK # valid PSH: push data now (사용안함) 수신자가 받을수 있는 바이트 수 RST, SYN, FIN: connection estab (setup, close commands) Internet checksum (UDP와 동일)
23
TCP seq. 번호와 ACK 번호 Host A Host B time 간단한 telnet 시나리오 ‘C’ 입력
PART 02 프로토콜 TCP seq. 번호와 ACK 번호 Seq. number: “number” of first byte in segment’s data Ack. number: 상대방에게서 받게 되는 다음 바이트의 seq number cumulative ACK Host A Host B ‘C’ 입력 Seq=42, ACK=79, data = ‘C’ ‘C’의 수신을 ACK하고 ‘C’를 다시 보냄 Seq=79, ACK=43, data = ‘C’ ‘C’의 수신을 ACK Seq=43, ACK=80 time 간단한 telnet 시나리오
24
TCP: 재전송 시나리오 X loss time time premature timeout, lost ACK scenario
PART 02 프로토콜 TCP: 재전송 시나리오 Host A Seq=92, 8 bytes data ACK=100 loss timeout time lost ACK scenario Host B X Host A Host B Seq=92, 8 bytes data Seq=100, 20 bytes data Seq=92 timeout ACK=100 Seq=100 timeout ACK=120 Seq=92, 8 bytes data ACK=120 time premature timeout, cumulative ACKs
25
TCP 프로토콜 메커니즘 연결 확립( Connection establishment)
PART 02 프로토콜 TCP 프로토콜 메커니즘 연결 확립( Connection establishment) TCP 연결 확립하기 위한 three-way 핸드쉐이킹 절차 데이터 전송(Data transfer) 오류 탐지 및 재전송(Error detection and retransmission) 흐름 제어(Flow control) 과잉밀집 제어(Congestion control) 연결 해제(Connection release)
26
TCP FSM(Finite State Machine)
PART 02 프로토콜 TCP FSM(Finite State Machine)
27
TCP Connection Management
PART 02 프로토콜 TCP Connection Management TCP server lifecycle TCP client lifecycle
28
6.3.2 UDP(User Datagram Protocol)
PART 02 프로토콜 6.3.2 UDP(User Datagram Protocol) UDP 비연결 서비스 UDP가 제공하는 서비스는 비연결 데이터 전달 서비스 이다. UDP는 신뢰성 있는 서비스를 제공할 수 없다. 사용자 프로그램 스스로 필요한 신뢰성 제어를 할 필요가 있다.
29
PART 02 프로토콜 UDP 응용 TCP가 제공하는 신뢰성 제어를 제공받지 못한다.
30
UDP 사용자 데이터그램 형식 UDP 데이터그램은 IP 데이터그램과 구분하기 위하여 흔히 사용자 데이터그램이라고 부른다
PART 02 프로토콜 UDP 사용자 데이터그램 형식 UDP 데이터그램은 IP 데이터그램과 구분하기 위하여 흔히 사용자 데이터그램이라고 부른다 [그림 6.22] UDP 사용자 데이터그램 형식 [그림 6.23] IP 데이터그램과 UDP 데이터그램
31
UDP checksum Goal: 전송되는 세그먼트내의 에러 탐지 Receiver: Sender:
PART 02 프로토콜 UDP checksum Goal: 전송되는 세그먼트내의 에러 탐지 Receiver: 수신된 16-bit integer들로 구성된 세그먼트와 함께 checksum 을 더함 더한 결과값이 모두 1이면 no error 로 판단 한 비트라도 1이면 error 발생 Sender: 세그먼트를16-bit integer들로 나눔 checksum: 16-bit integer들의 합에 대한 1’s complement 송신자는 checksum 값을 UDP checksum 필드에 포함
32
PART 02 프로토콜 Checksum Example 주의 더할때, 가장 왼쪽비트의 덧셈에서 생긴 carry는 결과에 다시 더함 Example: two 16-bit integers Carry-out Kurose and Ross forgot to say anything about wrapping the carry and adding it to low order bit sum checksum
33
Chapter 03 트랜스포트 계층 UDP 프로토콜 메커니즘
PART 02 프로토콜 Chapter 03 트랜스포트 계층 UDP 프로토콜 메커니즘 하위의 IP 비연결 데이터 전송서비스가 제공하는 것들 이외의 특별한 메커니즘을 따로 구현하지 않는다. UDP 오류 점검 UDP 오버플로우(단점)
Similar presentations