본문 바로가기
전공살리기/CS

[CS 기본 - 웹의 시작 ] 3. TCP에 대해서 알려줘봐

by 가든이당 2024. 10. 27.
반응형

TCP(Transmission Control Protocol)**는 인터넷에서 데이터를 안정적이고 신뢰성 있게 전송하기 위한 프로토콜입니다. TCP는 애플리케이션 계층과 인터넷 계층 사이에서 작동하며, 네트워크 통신을 위한 연결 지향형 프로토콜로 데이터를 syn, syn+ack, ack 처럼 패킷 단위로 나누어 전송합니다. 

TCP의 주요 특징(위에 내용에서 이거 까지 말하기

  1. 연결 지향형 프로토콜: 데이터 전송 전에 송신자와 수신자가 서로 연결을 설정합니다. 이 연결을 통해 안정적인 데이터 전송이 가능해집니다.
  2. 신뢰성 보장: 데이터가 손실되거나 손상된 경우, TCP는 해당 데이터를 재전송하여 신뢰성을 보장합니다. 이를 위해 오류 검출 및 데이터 순서 복구 기능을 제공합니다.
  3. 흐름 제어 및 혼잡 제어: 송신자가 수신자의 처리 속도에 맞춰 데이터를 전송하도록 하여 네트워크의 과부하를 방지합니다.

꼬리질문) TCP의 동작 과정이 어떻게 돼?

  1. 연결 설정 (3-way handshake)
    • SYN: 클라이언트가 서버에게 연결 요청(SYN 패킷)을 보냅니다.
    • SYN-ACK: 서버가 연결 요청을 승인하고 응답(SYN-ACK 패킷)을 보냅니다.
    • ACK: 클라이언트가 연결 승인(ACK 패킷)을 보내면 연결이 설정됩니다.
  2. 데이터 전송
    • 데이터는 작은 패킷으로 나누어 전송됩니다. 각 패킷에는 순서 번호가 있어, 수신 측에서 원래의 순서대로 재조립할 수 있습니다.
    • 수신 확인(ACK): 수신자는 각 패킷을 받을 때마다 송신자에게 확인 응답을 보냅니다. 이로써 송신자는 패킷이 제대로 전송되었는지 알 수 있습니다.
    • 재전송: 만약 수신 확인(ACK)이 일정 시간 내에 도착하지 않으면, 송신자는 해당 패킷을 다시 전송합니다.
  3. 연결 종료 (4-way handshake)
    • FIN: 클라이언트가 연결 종료 요청(FIN 패킷)을 보냅니다.
    • ACK: 서버가 요청을 수락하고 확인 응답(ACK 패킷)을 보냅니다.
    • FIN: 서버도 연결 종료 요청을 보냅니다.
    • ACK: 클라이언트가 마지막 확인 응답을 보내고 연결이 종료됩니다.

TCP의 장점

  • 신뢰성: 오류 검출, 재전송, 순서 제어 등을 통해 데이터가 안전하게 전송됩니다.

  • 데이터 흐름 제어: 네트워크 상태에 맞춰 전송 속도를 조절하여 혼잡을 방지합니다.
     - 윈도우 크기(Window Size): TCP는 수신자가 자신의 버퍼 크기에 맞춰 윈도우 크기를 설정합니다. 이 크기는 송신자가 한 번에 전송할 수 있는 데이터의 양을 결정합니다
    - 슬라이딩 윈도우 기법: 데이터가 성공적으로 전송되면 윈도우가 이동(slide)하면서 새로운 데이터 전송을 허용합니다. 이 방식으로 송신자는 수신자의 처리 능력에 맞춰 점진적으로 데이터를 전송합니다.
    -윈도우 크기 조정: 수신자가 자신의 처리 상태에 따라 윈도우 크기를 조정할 수 있습니다. 만약 수신자가 데이터를 처리할 여유가 있다면 윈도우 크기를 늘리고, 그렇지 않으면 줄입니다.

  • 데이터 순서 보장: 전송된 데이터가 순서대로 도착하도록 보장합니다.

TCP의 단점

  • 오버헤드: 연결 설정 및 흐름 제어 등으로 인한 오버헤드가 발생합니다.
  • 속도 저하: 신뢰성을 보장하기 위해 추가적인 절차가 필요하므로 UDP와 같은 비연결형 프로토콜보다 속도가 느릴 수 있습니다.

TCP와 다른 프로토콜의 비교

  • **UDP(User Datagram Protocol)**와 달리, TCP는 연결을 설정하고 신뢰성을 보장하지만, UDP는 연결 없이 빠른 전송을 목표로 합니다.
  • TCP는 파일 전송, 이메일, 웹 페이지 로딩 등 신뢰성이 중요한 애플리케이션에 적합합니다.
반응형