이전 포스팅을 보고 오시면 이해가 쉽습니다!
https://kangee-mohum.tistory.com/17
[컴퓨터네트워크] Transport Layer / 4계층 / OSI 7 Layer / 전반적인 개념 정리
Transport Layer process to process 통신 레이어. 쉽게 말하면 프로그램과 프로그램 간의 통신을 관장하는 레이어이다. process와 process 간의 통신을 위해서는 local host address, local process address , remote host addre
kangee-mohum.tistory.com
UDP
데이터 전송을 위한 frame을 만들기 위해 탄생한 4 계층 프로토콜
사용자의 앞 뒤 데이터가 서로 상관 없는 dataram을 실어 나르는 프로토콜
에러검출 및 복구를 하지 않는다.
connectionless 하다. ( 통신전에 연결 설정 안함 )
unreliable 하다. ( 신뢰성을 보장하지 않음 )
port address를 통해 process to process 통신을 한다.
신뢰성 보장이 필요 없는 작은 메세지를 주고받을 때 많이 사용한다.
UDP가 사용하는 미리 정해져있는 포트 넘버
- DNS (Domain Name System): 53번 - 도메인 이름을 IP 주소로 해석하는 데 사용.
- DHCP (Dynamic Host Configuration Protocol): 67번, 68번 - 네트워크 장치에 동적으로 IP 주소 및 구성 정보를 할당.
- TFTP (Trivial File Transfer Protocol): 69번 - 간단한 파일 전송에 사용되며 주로 부트스트래핑이나 작은 파일 전송에 활용.
- SNMP (Simple Network Management Protocol): 161번, 162번 - 네트워크 관리를 위한 정보 수집 및 통신에 사용.
- Syslog: 514번 - 시스템 로그 메시지 수집 및 전송.
- NTP (Network Time Protocol): 123번 - 네트워크 장치 간 동기화된 시간 정보 전송.
- Daytime: 13번 - 클라이언트가 서버로부터 현재 날짜와 시간을 요청.
- HTTP (Hypertext Transfer Protocol): 80번 - 웹 브라우징을 위한 프로토콜로, 웹 페이지 요청과 서버 응답 처리에 사용.
UDP의 header
구성 요소
1. source port number
2. destination port number
3. total length ( frame 길이 )
4. checksum ( header가 멀쩡한 지 체크)
즉 포트 넘버 이외의 정보가 거의 없다.
수신자와 발신자의 식별이 가장 중요한 기능이기에 이것만 수행할 수 있도록 만들었다.
UDP의 동작
전제: UDP 사용시 서버는 클라이언트보다 먼저 동작하고 있어야 한다. TCP와 다르게 연결 설정을 하지 않기 때문에 서버가 죽어있어도 이를 모르고 데이터를 전송해 loss가 발생할 수 있다.
각 레이어는 outgoing queue, incoming queue를 가지고 있다. outgoing queue는 각 레이어가 내보낼 데이터가 저장되는 저장소. incoming queue는 받는 데이터가 저장되는 저장소다.
클라이언트
발신
프로세스 시작 -> os에게 내가 쓸 port number 받기 -> UDP에게 데이터를 전달. -> UDP는 port number 정보를 넣은 header 만듦 -> header를 붙인 데이터를 outgoing queue에 넣음 -> ip는 incoming queue에서 꺼내 1, 2 계층에 전달 ->
이후 1, 2 계층 통신
수신
1,2 계층에서 3계층으로 데이터 전달 -> ip가 outgoing queue에 데이터 넣음 -> UDP가 incoming queue에서 꺼내서 처리
서버
전원 on -> known port를 사용해서 나의 incoming queue, outgoing queue의 위치를 다른 장치에게 알림 -> 메시지가 오면 UDP는 incoming queue를 확인해서 어떤 메시지인지 확인 -> 데이터 처리 -> 응답을 생성해 outgoing queue에 넣음 -> 1, 2 계층을 거쳐 상위 레이어로 전송
UDP의 사용
- bulk data ( 커다란 데이터 )를 안정적으로 보내야 할 때는 쓰면 안됨. file transfer protocol과 같이 파일 업/다운 로드 시에는 사용 x
- TFTP 프로토콜에 사용: 안정적인 네트워크에서 소량의 데이터를 전송하는 프로토콜
- 멀티 캐스트에 사용: 여러명에게 데이터를 전송할 때 사용. 애초에 멀티 캐스트는 여러 명에게 데이터를 전송하기에 에러 검출 및 복구가 어려우므로 에러 검출 및 복구를 하지 않는 UDP를 사용해도 된다.
- 라우터간의 통신에 사용: 라우터는 기본적으로 옆에 어떤 장치가 있는지 자기 학습으로 정보를 듣고 보내는데 이때 사용한다. 라우터는 연결설정과 해제를 따로 하지 않기에 UDP를 사용한다.
- management process에 사용: 네트워크 장치가 많을 때 이 장치들이 관리자에게 주기적으로 데이터를 보내기도 하고, 관리자가 데이터를 요청하기도 하는데, 이때 사용한다. 이때 전송하는 데이터는 소량의 정보이므로 굳이 TCP를 사용하지 않는다.
이번 포스트는 4계층 프로토콜 중 에러 검출 및 복구, 흐름 제어 등을 하지 않는 UDP 프로토콜에 대한 이야기였다.
다음 포스트에서는 TCP에 대해 자세히 알아본다.
'컴퓨터네트워크' 카테고리의 다른 글
SSR vs CSR / 서버사이드렌더링 vs 클라이언트 사이드 렌더링 (0) | 2024.02.21 |
---|---|
[컴퓨터네트워크] TCP의 동작/ Transport Layer / 4계층 / OSI 7 Layer (2) | 2023.12.01 |
[컴퓨터네트워크] TCP/ Transport Layer / 4계층 / OSI 7 Layer (2) | 2023.11.28 |
[컴퓨터네트워크] Transport Layer / 4계층 / OSI 7 Layer / 전반적인 개념 정리 (0) | 2023.11.27 |