4계층 [트랜스포트 계층] part2 비연결형 트랜스포트 UDP

이름이름·2023년 8월 5일
0

컴퓨터 네트워크

목록 보기
6/11
post-thumbnail

UDP란?

UDP는 트랜스포트 계층 프로토콜이 할 수 있는 최소 기능으로 동작합니다.
1. 다중화/역다중화
2. 간단한 오류검사
이 두개 외에는 IP에 아무것도 추가하지 않습니다.

UDP는 핸드셰이크를 사용하지 않아서 비연결형이라고 합니다.
DNS는 UDP의 전형적인 예시입니다.

동작 과정

  1. app계층의 프로세스로부터 메시지를 받고 다중화/역다중화 서비스에 필요한 출발지 포트 번호 필드와 목적지 포트 번호 필드를 첨부합니다.

  2. 출발지 호스트 IP 주소 , 목적지 호스트 IP 주소를 추가한 후에 네트워크 계층으로 넘깁니다.

  3. 네트워크 계층은 받은 segments를 IP 데이터그램으로 캡슐화하고,
    segments를 수신 호스트에게 전달합니다.

  4. segments가 수신 호스트에 도착한다면,
    UDP는 세그먼트의 데이터를 해당하는 app계층의 프로세스로 전달하기 위해 목적지 포트 번호를 사용합니다.

UDP의 장점 ( TCP와 비교)

1. 애플리케이션 레벨에서 더 정교한 제어

무슨 데이터를 언제 보낼지에 대해서 애플리케이션 레벨에서 더 정교한 제어가 가능합니다.
애플리케이션 프로세스가 데이터를 UDP에 전달하자마자 UDP는 데이터를 UDP 세그먼트로 만들고, 그 세그먼트를 즉시 네트워크 계층으로 전달합니다.
( 저도 잘 와닿지는 않아서 예시를 찾으면 추가해 보겠습니다)

2.연결 설정이 없다.

TCP는 데이터 전송을 시작하기 전에 세 방향 핸드셰이크(three-way handshake)를 사용합니다.
반면에 UDP는 공식적인 사전준비 없이 전송합니다.
따라서 연결을 설정하기 위한 어떠한 지연도 없습니다.
이것이 DNS가 TCP가 아닌 UDP를 사용하는 이유입니다.
DNS가 TCP를 사용했다면 매우 느려질 것입니다.

3. 연결 상태가 없다.

TCP는 수신버퍼,송신버퍼,혼잡 제어 파라미터, 순서 번호, 확인은답 번호 등등을 알아야 하므로 연결상태를 유지하며 이러한 상태 정보들을 기록합니다.
반면에 UDP는 어떤 것도 기록하지 않습니다.

4. 패킷 헤더 오버헤드가 작다.

TCP는 세그먼트마다 20바이트의 헤더 오버헤드를 갖는데에 반해
UDP는 단지 8바이트의 오버헤드를 갖습니다.

UDP 세그먼트 구조

UDP 체크섬

UDP 체크섬은 오류검출을 위해 존재합니다.
즉, 세그먼트가 출발지에서 목적지로 도달했을 때 UDP세그먼트 안의 비트에 대한 변경사항이 있는지 검사하는 것입니다.

UDP에 체크섬이 있는 이유

출발지와 목적지 사이의 모든 링크가 오류 검사를 제공한다는 보장이 없기 때문입니다.

세그먼트들이 정확하게 전송이 되어도 라우터에 저장될 때 비트오류가 발생할 수 있기 때문에 필요합니다.

  • 하지만 이렇게 오류 검사를 제공하지만, 오류를 회복하기 위한 어떠한 일도 하지 않습니다..!
    그냥 버리기도 하고 경고와 함께 손상된 세그먼트를 그냥 넘겨주기도 합니다.

정리

  • UDP는 TCP보다 빨라서 DNS, 인터넷 전화, 화상회의에 주로 쓰임
  • UDP는 TCP와는 다르게 3way 핸드셰이크같은 연결 설정, 혼잡제어가 없고 데이터를 신속하게 전달하는 것에 집중이 되어있음
  • 진짜 트랜스포트 계층 프로토콜이 할 수 있는 최소 기능으로 동작하는게 실감이 남
  • 체크섬이 있어서 전달하는 메시지(세그먼트)에 오류가 있는지는 알 수 있는데 그 오류를 회복하지를 않음 (버리거나 그냥 경고하고 보냄)

다음으로

TCP에 대해 자세하게 볼텐데 그 전에 신뢰적인 데이터 전송의 원리를 먼저 아는 것이 TCP를 이해하는데에 도움이 된다고 해서 신뢰적인 데이터 전송의 원리 먼저 정리해 보겠습니다!

profile
공부 정리

1개의 댓글

comment-user-thumbnail
2023년 8월 5일

많은 도움이 되었습니다, 감사합니다.

답글 달기