[네트워크]TCP와 UDP의 비교(+ARP)

seeun·2022년 1월 17일
0
post-thumbnail

OSI 7계층에서 4계층은 목적지 단말 안에서 동작하는 여러 애플리케이션 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 잘 만들어내기 위한 역할을 한다. 바로 이곳에서 TCP와 UDP라는 두 종류의 프로토콜이 사용된다.


✏️TCP vs UDP

📎TCP의 모습

  • 신뢰할 수 없는 공용망에서도 정보유실 없는 통신을 보장하기 위해 세션을 안전하게 연결하고 데이터를 분할하고 분할된 패킷이 잘 전송되었는지 확인하는 기능이 있다.
  • 패킷에 번호(Sequence Number)를 부여하고 잘 전송되었는지에 대해 응답(Acknowledge Number)합니다. 두 번호가 상호작용해 순서가 바뀌거나 중간에 패킷이 손실된 것을 파악할 수 있다.
  • TCP의 여러 역할 덕분에 네트워크 상태를 심각하게 고려하지 않고 특별한 개발 없이도 쉽고 안전하게 네트워크를 사용할 수 있다.

📎UDP의 모습

  • 신뢰성을 보장해주지 않지만 간단하고 속도가 빠르다.
  • 데이터 통신은 데이터 전송의 신뢰성이 핵심이다. 하지만 UDP는 데이터 전송을 보장하지 않는 프로토콜이므로 제한된 용도로만 사용된다.
  • 음성 데이터나 실시간 스트리밍과 같이 시간에 민감한 프로토콜이나 애플리케이션을 사용하는 경우나 사내 방송이나 증권 시세 데이터 전송에 사용되는 멀티캐스트처럼 단방향으로 다수의 단말과 통신해 응답을 받기 어려운 환경에서 주로 사용된다.
  • 즉, 데이터 전송 시 신뢰성보다 일부 데이터가 유실되더라도 시간에 맞추어 계속 전송하는 것이 중요한 서비스의 경우 사용한다.

즉, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용한다.


📎 공통점 및 차이점

  • 공통점
    이들의 공통점은 포트 번호를 이용하여 주소를 지정한다는 점과 데이터 오류 검사를 위한 체크섬이 있다는 점이다.
  • 차이점
TCP(Transfer Control Protocol)UDP(User Datagram Protocol)
연결이 성공해야 통신 가능(연결형 프로토콜)비연결형 프로토콜(연결 없이 통신이 가능)
데이터의 경계를 구분하지 않음(Byte-Stream Service)데이터의 경계를 구분함(Datagram Service)
신뢰성 있는 데이터 전송(데이터의 재전송 존재)비신뢰성 있는 데이터 전송(데이터의 재전송 없음)
일 대 일(Unicast) 통신일 대 일, 일 대 다(Broadcast), 다 대 다(Multicast) 통신
데이터 전송실시간 트래픽 전송

✏️ARP

데이터 통신을 위해 2계층 물리적 주소인 MAC 주소와 3계층 논리적 IP 주소 두 개가 사용된다. 2, 3계층이 주소를 가지고 있고 통신할 때 목적지를 찾아갈 수 있도록 하지만 사실 2계층 MAC 주소와 3계층 IP 주소 간에는 아무 관계도 없다. 실제로 통신은 IP 주소 기반으로 일어나고 MAC 주소는 상대방의 주소를 자동으로 알아내 통신하게 된다.
이때 두 개의 주소를 연계시켜 주기 위한 메커니즘이 필요하다. 이때 사용되는 프로토콜이 ARP(Address Resolution Protocol)이다.(상대방의 MAC 주소를 알아내기 위해 사용)


References

profile
🤹‍♂️개발 기록 노트

0개의 댓글