Transport Layer
Service
1. Proecess-to-Process Communication
2. Addressing : Port Numbers
3. Encapsulation and Decapsulation
4. Multiplexing and Demultiplexing
5. Flow Control
6. Error Control
7. Congestion Control
1. Process-to-Process Comunication
- process는 aplication layer entity이다. (실행중인 program)
- 적절한 procees에 message를 전송할 책임이 있다.
Client-Server paradigm
- local client는 remote server에 service를 요청한다.
- Server는 request에 응답한다.
2. Addressing of a process : Port Numbers
.
- local and remote host는 IP 주소로 정의된다.
- local and remote process는 port 번호로 정의된다.
![]()
Port Number의 범위
- ICANN은 port를 세 범위로 나눈다.
- Well-known ports :
- System ports, ICANN에 의해 할당됨
- Registered ports :
- 중복을 막기 위해 ICANN에 등록된다.
- Dynamic, private or ephemeral ports :
- application에 의해 동적으로 사용된다.
Socket Address
- Transport Layer는 각 end에 socket address를 사용해서 logical connection을 만든다.
- Socket address : IP address와 port number의 조합
3. Encapsulation and Decapsulation
- Encapsulation
- socket address의 쌍과 몇몇의 information이 message에 추가된다.
- Encapsulation은 송신측에서 발생한다.
- Decapsulation은 수신측에서 발생한다.
4. Multiplexing and Demultiplexing
- Multiplexing : entity는 하나 이상의 source로 부터 item을 받는다.
- Demultiplexing : entity는 하나 이상의 source에게 item을 준다.
5. Flow Control
- 한 entity는 item을 만들고 다른 entity는 그것들을 소비한다.
- consumer에서 data item의 손실을 막는다.
- production과 consumpstion 속도의 균형을 맞춘다.
- producer로 부터 consumer에게 item을 전송한다.
- Pushing
- Pulling
Transport layer에서 Flow Control
- flow control을 위한 consumer(송신측)과 producer(수신측)의 두 buffer
pusing : 데이터를 만들면 계속 내보냄
pulling : 필요한 데이터를 가져감Buffer를 이용한 flow Control
6. Error Control
- Network layer (IP)는 unreliable하다.
- 만약 application이 reliablity가 필요하면, transport layer가 reliable할 필요가 있다.
- 오류가 있는지 없는지, 패킷이 loss가 되었는지 transport layer에서 책임진다.
- Sender
- 손실되거나 버려지는 packet을 추적하고 그것들을 다시 보낸다.
- Receiver
- 손실되고 중복되는 packet을 감지하고 버린다.
- buffer에 순서가 올바르지 않은 패킷은 저장해두고 순서가 올바르게 올때까지 기다린다. (or 버릴 수도 있음)
Sequence Number는 2^m의 나머지이다.
- m은 bit에 있는 sequence number field에 사이즈이다.
수신측은 안전하게 도착한 각 packet들에 대해 ACKnowledgement를 보낸다.
- 송신측은 timer를 사용한다면 packet 손실을 감지할 수 있다.
- 수신측은 손상되거나 중복된 packet을 버린다.
- 순서가 잘못된 packet은 버리거나 잃어버린 것이 도착할때까지 저장한다.
Two numbered buffer
- 송신측
- 버퍼에서 다음 위치 번호를 packet의 sequence number로 사용한다.
- packet이 보내질때, copy를 저장한다.
- 수신측
- packet이 도착할때, memory에 저장된다.
- Acknowledgment는 보내질 수 있다.
Combination of Flow & Error control :
-> Sliding WindowSliding Window
- Sequence number는 2^m의 나머지를 사용한다. m은 bit에 수이다.
- circle number는 0부터 2^m-1까지이다.
- 만약 m이 4 (Sequence number는 0 ~ 15) 이고 window size는 7이면:
Sliding Window - Linear Type
- 대부분에 protocol은 linear 표현을 사용한다.
7. Congestion Control
- Congestion은 만약 network에 load가 network에 처리할 수 있는 용량 한계보다 많으면 발생할 수 있다.
- router와 switch는 각 interface에 queue를 가진다.
- Congestion control mechanism은 용량보다 낮게 load를 유지한다.
Two types of Connection service:
Connectionless service 특징
Connectionless Service
Connection-oriented Service
TCP/IP Protocol
simple Protocol
Simple Protocol 예시
Stop-and-Wait Protocol
Sequence Number
Acknowledgement Number
FSM for the Stop-and-Wait Protocol
transmission에 효율성을 높이기 위해
Go-Back-N(GBN) Protocol
몇몇의 packet은 ACK를 받기전에 보내질 수 있다.
Acknowledgment Number는 누적된다.
Send Window
Sliding of Send Window
Receive Window
Timers
Resending Packets
Send / Receive Window Size
Go-Back-N 예시
data packet이 손실 되지 않고, ACK가 손실 된 경우 : 문제 X
packet이 손실된 경우 : resend (Outstanding Packet을 다시 보냄)
FSM for GBN
Go-Back-N Protocl은 수신측에서의 과정을 단순화한다.
Selectiv-Repeat(SR) Protcool은 실제로 잃어버린 packet만을 다시 보낸다.
Selective-Repeat(SR) Protcool
Send Window
Receive Window
Timer
Acknowledgement
Example
- 수신측이 6개의 packet을 보냈다 : packet은 0, 1, 2, 3, 4 and 5
- 송신측은 ackNo = 3이라는 ACK를 받았다
- GBN과 SR을 사용하는 system이라면 어떻게 해석해야하나?
Solution
- 만약 GBN을 사용하는 system이라면 :
- 0, 1, 2 packet이 손상없이 잘 받았다는 것을 의미한다.
- 수신측은 3번 packet을 받을 것을 예상한다.
- 만약 SR을 사용하는 system이라면 :
- packet 3번이 오류없이 잘 받았다는 것을 의미한다.
- ACK는 다른 packet에 대해서는 말하지 않는다.
FSM for SR protocol
Flow diagram for Selective-Repeat Protocol
Window Size
이번 section에서 나온 4개 protocol은 모두 단방향이다 :
실제로는, data packet은 일반적으로 양방향이다 :
Piggybacking
Design of piggybacking in Go-Back-N