[221226] TCP/UDP, Socket

경진·2022년 12월 26일
0

TCP/UDP

TCP (전송 제어 프로토콜)

Transmission Control Protocol

  • 서버와 클라이언트간 신뢰성 있는 데이터 송수신을 위해 만들어진 프로토콜
  • 연결 지향성 프로토콜
  • 데이터 나눠서 보내기 가능. 데이터를 받는 쪽에서 나눠 받은 데이터 재조립. 만약 누락된 데이터가 존재하면 다시 요청해서 받아와 완전한 데이터 만듬.
  • TCP로 서버/클라이언트간 연결이 된 경우 데이터를 양방향으로 주고 받음.
  • 데이터의 순서가 바뀌는 일 없이 안정적이라 신뢰 가능.
  • UDP에 비해 데이터 송수신 비용(부담)이 큼.
  • UDP보다 전송 속도 느림.

UDP (사용자 데이터그램 프로토콜)

User Datagram Protocol

  • TCP와 다르게 비연결성 프로토콜
  • 데이터를 보내고 제대로 받았는지 확인하지 않아, 데이터가 제대로 도착했는지 보장하지 않는 신뢰도가 비교적 낮음.
  • 데이터를 순차적으로 보내도 받는 쪽에서는 다른 순서로 전달받을 수 있음.
  • 데이터를 보내기만 하고 별 다른 처리를 하지 않아 TCP에 비해 비용(부담)이 적다는 특성을 가짐.
  • TCP보다 전송 속도 빠름.

TCP/UDP 비교

표

출처 : https://mangkyu.tistory.com/15

Socket

역할

  • 우리가 네트워크에서 데이터를 송수신하기 위해 반드시 거쳐야 하는 연결부

종류

  • TCP, UDP 프로토콜을 사용하는 2가지 소켓
  • 일반적으로는 안정적인 데이터 송수신을 위해 TCP 소켓 사용
  • 일부 패킷이 손실되어도 괜찮거나 빠른 전송 속도가 필요한 경우 UDP 소켓 사용

패킷

  • 소켓을 통해 송수신하는 데이터 덩어리 하나가 한개의 패킷이라고 표현
    (콘센트 배선에 흐르는 전기와 비슷)

(출처 : https://stack07142.tistory.com/10)

소켓 프로그래밍

소켓 추가 공부 자료

https://on1ystar.github.io/socket%20programming/2021/03/16/socket-1/

https://velog.io/@rhdmstj17/%EC%86%8C%EC%BC%93%EA%B3%BC-%EC%9B%B9%EC%86%8C%EC%BC%93-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%A0%95%EB%A6%AC-1

https://recipes4dev.tistory.com/153

profile
항상 처음 세웠던 목표 처럼

0개의 댓글