본문 바로가기

카테고리 없음

벼락치기 Data Communications - Chapter 23. Transport Layer

Chapter 23. Transport Layer

Key Points

- Process to Process Communication

- Error, Congestion Control

- Connectionless, Connection-Oriented

Transport Layer

프로세스와 프로세스 간의 통신이 일어나는 계층이다

프로세스간 통신은 Port 번호가 중요하다.

(네트워크 -  IP addr, 데이터링크 - MAC addr, 트랜스포트 - Port Num)

 

어플리케이션에서 트랜스포트로 메세지를 전달하면 멀티플렉서를 이용하여 캡슐레이션 한다. (헤더를 붙여줌)

트랜스포트에서 어플리케이션으로 갈때 디멀티플렉서를 통해 인캡슐레이션되고 이때 정확한 포트 넘버가 같이 들어간다.

Sequence Number

패킷의 고유 번호다

Modulation을 이용해 번호를 순환한다. Mbit 면 0 ~ 2^M-1이 넘버링 된다.

Connection

Transport layer에서의 뜻

- Connectionless : 패킷들 간에 상호 연관성이 없다 / UDP 프로토콜 / 그냥 전송한다.

- Connection-Oriented : Sequence Number를 고려한다 / TCP 프로토콜 / 3way shaking을 하여 연결을 한 후 전송 한다

 

Network layer에서의 뜻

- Connectionless : 패킷들이 독자적으로 treat돼서 알아서 서로 다른 경로를 통해 패킷이 전달된다

- Connection-Oriented : 먼저 목적지까지의 루트가 정해진 후 패킷들이 경로를 따라 전달된다.

Simple Protocol

Connectionless. 

Flow, Error control을 하지 않는다

Stop-and-Wait Protocol

Connection-Oriented.

Flow, Error control을 한다.

슬라이딩 윈도우를 가지고 ACK을 주고받는다

Checksum bit을 이용한다

Packet 0이가면 ACK 1이 온다.

Go-Back-N Protocol

한번에 N개의 패킷을 보낸다.

ACK은 cumulative하게 보낸다

만약 타이머가 끝나면 ACK을 받지못한 패킷이후의 모든 패킷을 전부 다시 재전송한다. => 전부 재전송하는것은 매우 비효율적

윈도우 사이즈는 2^m보다 항상 작아야 한다.

Selective-Repeat Protocol

Receiver는 각각의 패킷에 대한 ack을 다 보낸다.

각각의 패킷에 대한 타이머가 다 있어서 ack을 받지못하면 못받은 패킷들만 다시 보낸다.

패킷 0 이 간다면 ACK 0이 온다.

윈도우 사이즈는 2^(m-1)보다 항상 작거나 같아야 한다.

 

위의 4개 프로토콜은 Unidirectional이다.

Bidirectional Protocol

실제로는 양방향으로 전송되기 때문에 이전에는 패킷과 ACK이 분리되어있었다면, 이제는 패킷과 ACK이 같이 간다.

이것이 Piggybacking이다.