일기

TCP와 UDP

Realuda72 2024. 12. 27. 20:40

OSI 7계층 모델에서 4계층을 맡고있는 전송 계층의 대표적인 프로토콜인 TCP와 UDP에 대해 알아보자.

 

1. TCP

 TCP는 네트워크를 통해 서로 다른 장치 간에 메시지 교환을 돕는 통신을 위한 연결 지향 프로토콜이다. 컴퓨터 간에 데이터 패킷을 전송하는 기술인 인터넷 프로토콜과 함께 작동한다.

 TCP는 상위 계층에서 받은 데이터를 작은 묶음으로 나누고, 반대쪽 에선 원래 메시지로 다시 조립하여 손실 없이 도달하도록 한다. 데이터를 작은 묶음으로 보내면 모든 것을 한꺼번에 보내는 것보다 효율성을 유지하기가 더 쉽다.

 특정 메시지가 묶음으로 나뉘면, 한 경로가 막혀도 목적지가 동일하게 유지되는 경우 이 묶음들이 여러 경로를 따라 이동할 수 있다.

 예를 들어, 사용자가 인터넷에서 웹 페이지를 요청하면 전 세계 어딘가에서 서버는 그 요청을 처리하고 HTML 페이지를 해당 사용자에게 다시 보낸다. 서버는 HTTP 프로토콜이라는 프로토콜을 사용한다. 그런 다음 HTTP는 TCP 계층에 필요한 연결을 설정하고 HTML 파일을 보내라고 요청한다.

 이제 TCP는 데이터를 작은 패킷으로 나누어 인터넷 프로토콜(IP) 계층으로 전달한다. 그런 다음 패킷은 다양한 경로를 통해 목적지로 전송된다.

 사용자 시스템의 TCP 계층은 전송이 완료될 때까지 기다리고 모든 패킷이 수신되면 확인 메시지를 보낸다.

 

 TCP에는 몇가지 특징이 있다.

  • 세그먼트 번호 시스템: TCP는 각 세그먼트에 번호를 지정하여 전송 또는 수신되는 세그먼트를 추적한다. 전송되는 데이터 바이트에는 특정 바이트 번호가 지정되고 세그먼트에는 시퀀스 번호가 지정된다. 수신된 세그먼트에는 확인 번호가 지정된다.
  • 연결 지향: 송신자와 수신자가 프로세스가 완료될 때까지 서로 연결되어 있음을 의미한다. 데이터 순서가 유지된다. 즉, 전송 전과 후에 순서가 동일하게 유지된다.
  • 풀 듀플렉스: TCP에서 데이터는 수신자에서 송신자로, 또는 그 반대로 동시에 전송될 수 있다. 송신자와 수신자 사이의 데이터 흐름의 효율성을 높인다.
  • 흐름 제어: 흐름 제어는 발신자가 데이터를 전송하는 속도를 제한한다. 이는 안정적인 전달을 보장하기 위해 수행된다. 수신자는 발신자에게 얼마나 많은 데이터를 수힌할 수 있는지에 대해 지속적으로 힌트를 준다.
  • 오류 제어: TCP는 신뢰할 수 있는 데이터 전송을 위한 오류 제어 메커니즘을 구현한다. 세그먼트는 오류 감지를 위해 검사된다. 오류 제어에는 손상된 세그먼트 및 손실된 세그먼트 관리, 순서가 잘못된 세그먼트, 중복된 세그먼트 등이 포함된다.
  • 혼잡 제어: TCP는 네트워크의 혼잡 수준을 고려한다. 혼잡 수준은 송신자가 보낸 데이터 양에 따라 결정된다.

2. UDP

 UDP는 TCP와 달리 신뢰할 수 없고 연결이 없는 프로토콜이다. 비디오 재생이나 DNS 조회와 같은 시간에 민감한 전송을 위해 사용된다. 전달, 순서 또는 오류 검사를 보장하지 않으므로 특정 유형의 데이터 전송에 대한 가볍고 효율적인 옵션이다.

 

'일기' 카테고리의 다른 글

타워 디펜스 프로젝트  (0) 2025.01.02
OSI 7계층 어플리케이션 계층  (0) 2024.12.30
(JavaScript) 신고 결과 받기  (0) 2024.12.27
(JavaScript) 공원 산책  (0) 2024.12.26
(JavaScript) 달리기 경주  (0) 2024.12.25