프로그래밍/CS

[네트워크] 프로토콜, TCP, UDP

choar 2022. 7. 12. 17:29
반응형

1. 프로토콜이란?

프로토콜(Protocol)이란 네트워크에서 노드와 노드가 통신할 때 어떤 노드가 어떤 노드에게 어떤 데이터를 어떻게 보내는지 작성하기 위한 양식이다.

다른 사람에게 물건을 보낼 때에 빗대어 생각하면 이해가 쉽다. 

상황에 따라 물건을 택배를 통해서 전달할 수도, 퀵 서비스를 통해서 전달할 수도 있다.

또한 물건을 보낼 때는 보내는 사람의 주소와 받는 사람의 주소를 정확히 적어야 한다.

여기서 물건을 데이터, 택배와 퀵 서비스를 프로토콜이라고 생각할 수 있다.

대표적인 전송 계층*의 프로토콜인 TCP, UDP에 대해 알아보자.

 

* 전송 계층 : end point 간 신뢰성 있는 데이터 전송을 담당하는 네트워크의 계층

  • 신뢰성 : 데이터를 순차적, 안정적으로 전달한다.
  • 전송 : 포트 번호에 해당하는 프로세스에 데이터를 전달

프로토콜

2. TCP (Transmission Control Protocol)

  • 신뢰성 있는, 순차적인 데이터 전송을 보장한다.
  • 데이터를 확실히 전달하기 위해 일대일로 통신한다.
  • 흐름제어(flow control) : 데이터를 수신자가 받아들일 수 있는 속도로 보낸다.
    (e.g. 슈퍼컴퓨터에서 286 컴퓨터에 데이터를 보낸다고 가정할 때, 286 컴퓨터에 맞춰 보낸다.)
  • 혼잡제어(congestion control) : 데이터를 네트워크 상황에 맞춰서 보낸다.
  • 사용 예
    • 데이터 간의 신뢰성이 중요한 프로그램의 통신에 사용된다.
    • e.g. Web을 위한 HTTP (HTTP/3부터는 UDP 사용), 메일 송수신을 위한 SMTP

 

3. UDP (User Datagram Protocol)

  • 데이터를 빠르게 전달하는 것을 목표로 하는 프로토콜이다.
  • connectionless : TCP처럼 사전에 의논하지 않고 일방적으로 데이터를 보낸다.
  • 흐름제어, 혼잡제어를 제공하지 않는다.
  • 사용 예
    • 실시간으로 데이터가 오고 가는 서비스에 주로 사용된다.
    • e.g. 음악·동영상 스트리밍, 인터넷 전화

 

🌟 내용에 오류가 있다면 댓글 달아주시면 감사하겠습니다.


References

http://www.kocw.net/home/cview.do?cid=6166c077e545b736 

고승원 외 21명, 『개발자가 되기 위해 꼭 알아야 하는 IT 용어』

반응형