네트워크

TCP와 UDP

개발자들아제발자 2023. 3. 11. 16:58

TCP란?

제 4계층(전송 계층)은 통신 제어와 서비스의 식별을 수행하는 계층이다. TCP는 제 4계층에 속하며, 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다.

인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다.

 

신뢰성과 신속성

제 4계층은 애플리케이션이 요구하는 통신 요건을 '신뢰성'과 '신속성'으로 분류하여 각각에 대해 다른 프로토콜을 마련하고 있다.

 

  • 데이터를 중요하게 생각하여 확실히 주고받고 싶을 때는 'TCP(Transmission Control Protocol)'를 사용한다.
  • TCP는 통신할 컴퓨터끼리 '보냈습니다', '도착했습니다'라고 서로 확인 메세지를 보내면서 데이터를 주고 받으며 신뢰성을 높인다.
  • 데이터의 신뢰성은 제쳐두고 어쨌든 빨리 보내고 싶을 때는 'UDP(User Datagram Protocol)'를 사용한다.
  • UDP는 데이터를 보내면 그것으로 끝이므로 신뢰성은 없지만 확인 응답과 같은 절차를 생략할 수 있으므로 신속성을 높인다.(실시간)

제 4계층
TCP와 UDP

 

포트 번호로 서비스를 식별

TCP와 UDP는 '포트 번호'라는 숫자를 이용하여 컴퓨터 안의 어떤 서비스(애플리케이션)에게 데이터를 전달하면 좋을지 식별한다.

  • 포트 번호는 '0~65535(16비트 분)까지의 숫자로 되어 있으며, 범위에 따라 용도가 정해져 있다.
  • '0~1023'은 '잘 알려진 포트(well-known port)'라고 해서 웹 서버나 메일 서버 등과 같이 일반적인 서버 소프트웨어가 클라이언트의 서비스 요청을 대기할 때 사용한다.
  • '1024~49151'은 '등록된 포트(registered port)'로 제조업체의 독자적인 서버 소프트웨어가 클라이언트의 서비스 요청을 대기할 때 사용한다.
  • '49152~65535'는 '동적 포트(dynamic port)'로, 서버가 클라이언트를 식별하기 위해 사용한다.

포트

클라이언트에서 서버에 대한 연결(리퀘스트)

  1. 웹 클라이언트는 웹 브라우저가 만든 리퀘스트 데이터를 받으면 출발지 포트 번호에는 동적 포트(랜덤), 목적지 포트 번호에는 웹 서비스를 나타내는 '80'을 넣어서 세그먼트를 만든다.
  2. 웹 클라이언트는 IP와 이더넷의 캡슐화를 수행한 후 웹 서버에게 전송한다.
  3. 웹 서버는 이더넷과 IP의 캡슐화를 해제하여 목적지 포트 번호를 체크한 후, 서버 소프트웨어에게 리퀘스트 테이터를 전달한다. 서버 소프트웨어는 클라이언트의 리퀘스트에 대한 처리를 수행하고 리스폰스 데이터를 만든다.

 

서버에서 클라이언트에 대한 연결(리스폰스)

  1. 웹 서버는 서버 소프트웨어로부터 리스폰스 데이터를 받으면 출발지 포트 번호에는 웹 서비스를 나타내는 '80'을, 목적지 포트 번호에는 받은 세그먼트의 출발지 포트 번호를 넣어서 세그먼트를 만든다.
  2. 웹 서버는 IP와 이더넷의 캡슐화를 수행하고 웹 클라이언트에게 전송한다.
  3. 웹 클라이언트는 이더넷과 IP의 캡슐화 해제를 수행하고 목적지 포트 번호를 체크한 후, 포트 번호와 연결된 애플리케이션, 즉 웹 브라우저에게 데이터를 전달한다.

'네트워크' 카테고리의 다른 글

TLS란?  (0) 2023.05.06
SSL이란?  (0) 2023.05.06
프로토콜  (0) 2023.03.11
서버와 네트워크  (1) 2023.03.11