본문 바로가기
Network/old

TCP의 기능

by 슬픈 야옹이 2023. 3. 21.

1. 신뢰적인 데이터 전송

- 데이터가 깨지지 않고 온전히 전달되어야 함.
- 데이터가 목적지에서 순서대로 잘 결합되어야 함.

 

2. 흐름제어(flow Control)

- 수신자가 송신자의 패킷 전송량을 조절한다.
- 단위시간당 송신자의 패킷 전송량이 수신자의 처리량보다 많으면 수신 측에서 패킷을 모두
  처리할 수 없기 때문에 송신자의 패킷 전송량을 조절해야 한다.
- 흐름제어는 오늘날 크게 영향을 미치지 않는다.
  수신 측의 장치 및 소프트웨어 성능이 송신측에 비해 많이 향상되었기 때문.
  따라서 일반적으로 보내는 패킷의 상한선을 조절하는 목적으로 쓰인다.

 

 

3. 다중화(Multiflexing)

- 다양한 애플리케이션이 전송하는 다양한 메시지를 모두 TCP 형식에 맞추어 세그먼트로 변환하는 것.
- TCP가 속한 전송 계층이 모두 담당하므로 여러 메시지가 하나의 계층(프로토콜)으로 집중되는 형태.

 

 

4. 역다중화(deMultiflexing)

- TCP가 전달받은 데이터를 다시 프로세스들에게 나눠주는 것.

 

+) 다중화, 역다중화에서 어플리케이션 계층과 전송 계층 간의 데이터 전달은 어플리케이션의 socket을 통해 이루어진다.

 

 

5. 혼잡 제어 (Congestion Control)

- 네트워크 혼잡 시 보내는 패킷의 양을 조절한다.

 

- 네트워크 상의 호스트는 네트워크의 상태를 직접 모니터링할 수 없기 때문에, (blind network)

TCP는 패킷 재전송의 증가 여부를 통해 네트워크 혼잡 여부를 판단한다.

 

* 패킷을 재전송하는 경우 : 중복 ACK 수신, 패킷별 timeout 발생.


- 네트워크가 혼잡하다고 판단되면 네트워크의 각 호스트는 자신의 window size를 줄이고,

네트워크가 안정적이라고 판단되면 window size를 다시 늘린다.

 

- TCP를 사용하는 호스트는 모두 똑같이 동작하도록 되어있기 때문에,

네트워크 혼잡 시 다함께 패킷 전송량을 줄여 혼잡을 완화할 수 있다.

 

'Network > old' 카테고리의 다른 글

rdt 요약 시나리오  (0) 2023.04.14
FSM으로 표현한 rdt  (0) 2023.03.23
ARP (Address Resolution Protocol)  (0) 2023.01.18
서킷 스위칭과 패킷 스위칭  (0) 2023.01.05
NAT (Network Address Translation)  (0) 2023.01.05