[네트워크] TIL 5 -TCP와 UDP

뽀또대장·2024년 11월 17일

네트워크

목록 보기
5/9

전송 계층의 역할

특징

오류 점검기능, 목적지의 애플리케이션 식별 기능 제공

  • OSI 7계층 중 4계층으로써 물리, 데이터 링크, 네트워크를 거쳐 넘어온 데이터를 목적지에 신뢰할 수 있도록 전달하는 기능을 담당. - 신뢰할 수 있는 데이터를 순차적으로 전달하는 역할
  • 상위 계층들이 데이터 전달의 유효성이나 효율성을 신경쓰지 않도록 해줌.
  • 터가 중복되거나 누락되지 않고 오류 없이 순서에 맞게 전송되도록 관리.

연결형 통신과 비연결형 통신

  • 데이터를 목적지에 문제없이 전달하는 신뢰성/정확성과 데이터를 빠르게 전달하는 효율성으로 구분
  • 연결형 통신
    • TCP
    • 데이터를 교환하기 전에 연결을 맺고 데이터를 교환하는 동안 계속 연결을 관리하는 프로톨의 형태
    • 신뢰할 수 있고 정확한 데이터를 전송함
  • 비연결형 통신
    • UDP
    • 연결에 대한 초기화 과정이 없는 통신으로써 효율적으로 데이터 전송

TCP (Transmission Control Protocol, 전송 제어 프로토콜)

특징

  • 연결형 통신 방식 프로토콜로써 신뢰할 수 있는 데이터 전송을 보장.
  • 데이터 링크 계층에서 이더넷 헤더를 붙여 프레임을 만들고 네트워크 계층에서 IP 헤더를 붙여 IP 패킷을 만든 것처럼 전송계층에서도 TCP 전송할때 TCP 헤더를 붙여서 세그먼트를 만듬.
  • TCP 헤더 + 데이터를 세그먼트라고 함.

통신과정

3-way handshake (연결 시작)

  • TCP는 연결형 통신 프로토콜이기에 TCP 헤더의 6개의 코드비트가 존재
  • 이때 SYN(연결 요청), ACK(확인 응답) 비트를 이용하여 연결을 확립
  • 클라이언트는 연결 허락 응답을 잘 받았다는 의미로 다시 응답합니다 ACK(확인 응답) 이후 연결이 확립된 상태 (ESTABLISHED)가 되어 데이터 통신이 가능
  • 신뢰성을 제공하기 위헤 TCP에서 컴퓨터간에 연결을 맺는 초기화 과정인 이 과정을 3-way handshake라고 함

데이터 교환

  • 클라이언트 혹은 서버가 ESTABLISHED 상태에서 데이터를 보내면 각 측은 전송이 잘 되었다는 의미로 응답을 보냄 (ACK=1)
  • 만약 ACK 응답이 돌아오지 않는다면 송신측은 데이터를 재전송

4-way handshake (연결 해제)

  • 데이터를 전송한 후에는 연결을 끊기 위한 요청을 교환
  • 연결을 끊을 때는 FIN(연결 종료)과 ACK(확인 응답)을 사용
  • TCP 연결해제하는 이 과정을 4-way handshake라고 함

UDP (User Datagram Protocol, 사용자 데이터그램 프로토콜)

특징

  • 비연결형 통신 프로토콜로써 데이터를 전송함
  • TCP와 효율성을 중시하여 3-way handshake와 같은 연결 확인작업이 없음
  • 데이터를 효율적으로 빠르게 보내는 것이 장점
  • TCP가 TCP 헤더를 붙여서 세그먼트를 만든 것처럼 UDP는 UDP 헤더를 붙여 UDP 데이터그램을 만듦
  • UDP 헤더는 TCP 헤더에 비해 간단하게 구성
  • UDP를 이용하면 목적지에 관계없이 랜에서 일괄적으로 데이터를 보내는 브로드캐스트 기능 사용 가능

UDP 헤더


발신지와 목적지, 패킷의 길이, 중복 검사를 위한 Checksum만이 존재

Socket(소켓)

개념

  • 전송 계층과 응용 프로그램 사이의 인터페이스

특징

  • 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나, 소켓으로부터 데이터를 읽어들여야 함
  • 프로토콜, IP주소, 포트 넘버로 정의
  • Socket 통신은 서버와 클라이언트가 지속적으로 연결을 유지하는 양방향 통신
  • 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용
    • 채팅, 스트리밍 서비스

종류

스트림 (TCP)

  • 양방향으로 바이트 스트림을 전송
  • 연결 지향성이고, 오류 수정, 전송 처리, 흐름 제어를 보장
  • 송신된 순서에 따라 중복되지 않게 데이터를 수신해 중복과 순서를 보장
    • 오버헤드가 발생할 수도
  • 소량의 데이터보다 대량의 데이터 전송에 적합

데이터그램 (UDP)

  • 비연결형 소켓
  • 데이터 크기의 제한이 있고, 데이터 전달이 확실하게 보장되지 않음
  • 주로 멀티미디어 정보를 처리하기 위해 사용
    • 스트리밍, 전화 등

요약 및 비교

특징TCPUDP
통신 방식연결형 통신비연결형 통신
장점신뢰성효율성, 속도
전송 순서 보장OX
수신 여부 확인OX
통신 유형1:11:1 / 1:N / N:N

TCP: 연결형 통신, 신뢰성 높음, 전송 순서 보장 및 수신 여부 확인 가능. 주로 안정성을 요구하는 애플리케이션에 사용.
UDP: 비연결형 통신, 속도가 빠르고 효율적. 전송 순서나 수신 여부 확인이 불가. 실시간 데이터 전송에 적합.

참고: 블로그1 / 블로그2 / 블로그3

profile
개발 공부하기

0개의 댓글