1
Objectives
• 프로세스-대-프로세스 통신 개념
• 전송계층의 주소
• 캡슐화, 다중화
• 흐름제어, 오류제어, 혼잡제어
Chapter 13
전송계층 개요
2
목 차
• 전송 계층 서비스
• 전송 계층 프로토콜
3
전송 계층 서비스
13.1
4
13.1 전송 계층 서비스
네트워크 계층과 전송 계층
5
13.1 전송 계층 서비스 (계속)
포트 번호
클라이언트 / 서버 방식의 프로세스-대-프로세스 통신
클라이언트와 서버 프로세스는 같은 이름을 가짐
FTP client process / FTP server
원격 컴퓨터는 여러 개의 서버 프로그램 실행
로컬 컴퓨터는 여러 개의 클라이언트 프로그램 실행
6
13.1 전송 계층 서비스 (계속)
프로세스 통신을 위해 필요한 사항
로컬 호스트(local host)
로컬 프로세스(local process)
원격 호스트(remote host)
원격 프로세스(remote process)
7
13.1 전송 계층 서비스 (계속)
프로세스 통신에서 포트 번호의 역할
로컬 호스트와 원격 호스트 : IP 주소
프로세스 : 포트 번호 (16 비트)
포트 번호 범위 : 0 ~ 65,535 사이 정수
잘 알려진 포트 번호(well-known port number)
임시 포트 번호(ephemeral port number)
8
13.1 전송 계층 서비스 (계속)
포트 번호
서버 프로세스는 잘 알려진 포트 번호 사용
클라이언트 프로세스는 임시 포트 번호 사용
9
13.1 전송 계층 서비스 (계속)
IP 주소 대 포트 번호
13 Data
Destination port number selects the process
10
13.1 전송 계층 서비스 (계속)
ICANN 범위
잘 알려진 포트
0 ~ 1,023
등록된 포트(registered port)
1,024 ~ 49,151
동적 포트(dynamic port)
49,152 ~ 65,535
11
13.1 전송 계층 서비스 (계속)
소켓 주소(Socket Address)
IP 주소와 포트 번호의 조합
각 종단 점에서 연결을 만들기 위해 필요한 주소
12
13.1 전송 계층 서비스 (계속)
캡슐화와 역캡슐화
13
13.1 전송 계층 서비스 (계속)
다중화와 역다중화
14
13.1 전송 계층 서비스 (계속)
흐름 제어
정보 생산자와 소비자간에 생성율과 소비율의 균형 이 중요함
정보를 생산자로부터 소비자로 전달하는 방법
밀기(pushing) : 소비자 요구 없이 생산자가 전달
끌기(pulling) : 소비자가 요구한 경우만 전달
15
13.1 전송 계층 서비스 (계속)
전송 계층에서의 흐름 제어
흐름 제어 구현은 버퍼를 이용함
16
13.1 전송 계층 서비스 (계속)
오류 제어
훼손된 패킷의 감지 및 폐기
손실되거나 제거된 패킷 추적과 재전송
중복 수신 패킷 확인 및 폐기
손실된 패킷이 도착할 때까지 순서에 어긋나게 들어 온 패킷을 버퍼에 저장
17
13.1 전송 계층 서비스 (계속)
전송 계층에서의 오류 제어
Packets
Error Control
18
13.1 전송 계층 서비스 (계속)
순서번호(sequence number)
어떤 패킷을 재전송해야 하는지
어떤 패킷이 중복되었는지
어떤 패킷이 순서에 어긋나게 도착했는지
패킷에 부여된 일련번호
확인응답(ACK)
긍정과 부정 응답
19
13.1 전송 계층 서비스 (계속)
흐름과 오류 제어의 결합
송신측과 수신측에 각각 버퍼 사용
버퍼에 번호를 부여, 순서번호와 확인응답번호로 사용
원형 또는 선형으로 표현
슬라이딩 윈도우(sliding window) 개념 이용
20
13.1 전송 계층 서비스 (계속)
원형 형태의 슬라이딩 윈도우
21
13.1 전송 계층 서비스 (계속)
선형 형태의 슬라이딩 윈도우
22
13.1 전송 계층 서비스 (계속)
혼잡 제어
네트워크로 전송되는 패킷의 수가 네트워크에서 처 리할 수 있는 용량을 초과할 때 발생
개방 루프(open-loop) 혼잡 제어: 혼잡 미연 방지
재전송 정책 : 재전송 타이머 사용
윈도우 정책 : 선택적 반복과 Go-back-N 윈도우 방식
확인응답 정책 : 타이머 이용, 한번에 여러 개 확인응답
폐 루프(colsed-loop) 혼잡 제어 : 혼잡 발생 후 제어
가변 크기의 송신 윈도우 사용
23
13.1 전송 계층 서비스 (계속)
비 연결형과 연결형 서비스
비 연결형 서비스
메시지를 전송 가능한 작은 단편으로 나누어 전송
각각의 조각을 독립적인 단위로 간주
순서에 어긋나서 도착하는 경우 발생
연결형 서비스
먼저 서버와 클라이언트간 연결 설정
데이터 교환 완료 후 연결 해제
24
13.1 전송 계층 서비스 (계속)
비 연결형 서비스
25
13.1 전송 계층 서비스 (계속)
연결형 서비스
26
13.1 전송 계층 서비스 (계속)
FSM으로 표현된 비연결형과 연결형 서비스
27
전송 계층 프로토콜
13.2
28
13.2 전송 계층 프로토콜
단순 프로토콜
흐름 제어나 오류 제어가 없는 비연결형 프로토콜
29
13.2 전송 계층 프로토콜 (계속)
단순 프로토콜의 FSM
30
13.2 전송 계층 프로토콜 (계속)
정지-대기 프로토콜
흐름 제어와 오류 제어를 제공하는 연결형 프로토콜
크기가 1인 슬라이딩 윈도우 사용
확인응답이 오기 전까지는 다음 패킷을 전송하지 않음
패킷 훼손확인을 위해 검사합 추가
전송시 타이머 구동, 확인응답 오면 타이머 정지
패킷이 훼손되거나 손실되면 재전송
31
13.2 전송 계층 프로토콜 (계속)
정지-대기 프로토콜 (계속)
32
13.2 전송 계층 프로토콜 (계속)
정지-대기 프로토콜 (계속)
순서번호(sequence number)
중복 수신을 막기 위해 사용
패킷 헤더 부분에 순서번호 필드 추가
x번 순서번호 수신, x+1번 확인응답번호 사용
확인응답번호(acknowledgement number)
수신측에서 받기를 기대하는 다음 패킷 순서번호
33
13.2 전송 계층 프로토콜 (계속)
정지-대기 프로토콜의 FSM
34
13.2 전송 계층 프로토콜 (계속)
정지-대기 프로토콜의 예
35
13.2 전송 계층 프로토콜 (계속)
Example
정지-대기 시스템에서 회선의 대역폭이 1Mbps이고,
왕복전파지연이 20msec가 걸린다고 가정. 대역폭 지연 곱은 얼마인가? 데이터 패킷이 1,000 비트이면, 링크의 이용율은?
Solution
- 대역폭 지연 곱 : (1 × 106) × (20 × 10–3) = 20,000 비트 - 한번에 하나의 패킷만 보내므로 왕복 전파지연시간 동안 1,000비트만 전송한다.
- 따라서 회선의 이용율: 1,000/20,000
36
13.2 전송 계층 프로토콜 (계속)
Go-back-N 프로토콜
전송효율을 높이기 위해 송신측은 확인응답을 기 다리는 동안 여러 개의 패킷 전송 가능
37
13.2 전송 계층 프로토콜 (계속)
Go-back-N에서의 송신 윈도우
38
13.2 전송 계층 프로토콜 (계속)
Go-back-N에서 송신 윈도우 이동
39
13.2 전송 계층 프로토콜 (계속)
Go-back-N에서 수신 윈도우
40
13.2 전송 계층 프로토콜 (계속)
Go-back-N에 대한 FSM
41
13.2 전송 계층 프로토콜 (계속)
Go-back-N에 대한 FSM (계속)
42
13.2 전송 계층 프로토콜 (계속)
Go-back-N에 대한 송신 윈도우 크기
43
13.2 전송 계층 프로토콜 (계속)
Go-back-N에서 누적 확인 응답
44
13.2 전송 계층 프로토콜 (계속)
Go-back-N
에서 패킷 손실
45
13.2 전송 계층 프로토콜 (계속)
선택적 반복 프로토콜
순서에 어긋난 패킷만 재전송
46
13.2 전송 계층 프로토콜 (계속)
선택적 반복 프로토콜에서 송신 윈도우
47
13.2 전송 계층 프로토콜 (계속)
선택적 반복 프로토콜에서 수신 윈도우
48
13.2 전송 계층 프로토콜 (계속)
선택적 반복 프로토콜에 대한 FSM
49
13.2 전송 계층 프로토콜 (계속)
선택적 반복 프로토콜에 대한 FSM (계속)
50
13.2 전송 계층 프로토콜 (계속)
선택적 반복
프로토콜에서
패킷 손실
51
13.2 전송 계층 프로토콜 (계속)
선택적 반복 프로토콜에서 윈도우 크기
52