한밤의 CS 산책 - TCP

August 01, 2022 - 우원

한밤의 CS 산책
오늘의 주제는 TCP입니다.

OCI 7Layer나 TCP/IP 4Layer를 공부하시면 항상 나오는 친구가 있습니다.

바로 TCP 통신입니다.

TCP란?

Transmission Control Protocol의 축약어로 직역하면 전송 제어 프로토콜이라고 해석 할 수 있습니다.
인터넷 상에서 데이터를 주고 받기 위해 IP와 함께 사용하는 프로토콜로 정의 할 수 있습니다.

특징

연결형 서비스(Connected)

발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정하는 가상회선방식을 제공합니다.

HandShaking

연결 시에는 3-way-handshaking 방식을 연결 해제 시에는 4-way-handshaking를 사용합니다.

흐름 제어(Flow Control)

송신측과 수신측의 데이터처리 속도 차이를 제어하는 기법으로 두 가지가 있습니다.

  • Stop an Wait -> 매번 전송한 패킷에 대해 확인 응답을 받은 후 다음 패킷을 전송합니다.
  • Sliding Window -> 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 세그먼트를 전송합니다.

혼잡제어(Congestion Control)

송신측의 데이터 전달과 네트워크의 처리속도 차이를 해결하기 위한 기법으로 두 가지가 있습니다.

  • Slow Start -> 윈도의 크기를 2배로 늘리고 혼잡 발생 시 1로 줄입니다.
  • Fast Recovery -> 혼잡한 상태가 되면 창 크기를 1로 줄이지 않고 절반으로 줄인 후 선형 증가시킵니다.

높은 신뢰성

연결형 서비스의 높은 신뢰성 (3-way,4-way)

UDP 보다 낮은 속도

handshaking과 흐름 제어 및 혼잡 데어 같은 기능으로 상대적으로 UDP보다 맞은 속도

전이중(Full-Duplex), 점대점(Point to Point) 방식

  • 전이중(Full-Duplex) -> 두 디바이스 간 통신선이 두개 존재(송신선, 수신선)
    -> 각각 따로 존재하므로 송신과 수신이 동시에 가능합니다.
  • 점대점(Point to Point) -> 네트워크에 있어 물리적으로는 중계 장치를 통과하지 않고 한 지점에서 다은 지점으로 직접 가는 채널을 의미합니다.

UDP, TCP 비교

spring

3-way, 4-way

spring

사진 출처 - @evelyn82ny

spring

사진 출처 - @evelyn82ny

logo

우원 /

안녕하세요👏
우원입니다.
Email
Gihub
안녕하세요. 우원봇입니다.
logo