tioon's Devlog

UDP 통신이란? 본문

네트워크

UDP 통신이란?

tioon 2023. 3. 27. 19:57

*공부 기록용으로 하는 블로그입니다.잘못된 개념이나 오타가 있을 수 있습니다. 잘못된 정보알려주시면 수정하겠습니다!*

 

UDP 프로토콜이란?

   -UDP는 데이터를 신속하고 간편하게  보내는 프로토콜입니다. TCP처럼 데이터를 안정적이고 신뢰성있게 보내진않지만 빠르게 응답하고 보낼 수 있는 장점이 있습니다. 다음은 UDP의 특징입니다. 

 

 

1.빠른 속도 : UDP는 TCP에 비해 전송 신뢰성이 떨어지지만 TCP보다 빠른 속도와 적은 오버헤드를 가지고 있습니다.

2.비연결 지향 :UDP는 데이터를 주고받을 때 연결 절차를 거치지않고 일방적으로 데이터 전송만 합니다.

3.데이터 신뢰성X : 흐름제어 혼잡제어 같은 기능이 없이 일방적으로 데이터 전송만 하기에 데이터가 유실되거나 순서가 꼬일 수 있습니다. TCP는 세그먼트 넘버를 통해 분할되어 있는 데이터를 순차적으로 전달 하는것을 보장합니다.

4.작은 헤더 사이즈 : UDP데이터를 보내기위한 헤더에 필요한 정보가 거의없어 작은 헤더 사이즈를 가지고 있습니다.

 

 

TCP 프로토콜 기본 구조

 

Source port

   -UDP 세그먼트를 보내는 송신 측의 포트번호 (보내는 포트)

 

Destination port

   -UDP 세그먼트를 받는 수신 측의 포트번호 (받는 포트)

 

Length

   -UDP 헤더와 보낼 데이터의 크기를 합친 길이

 

UDP Checksum 

   - UDP의 전송되는 데이터들의 비트를 더한값, 수신측에선 전송된 체크섬 값 계산후 수신된 체크섬값과 비교후 같지않으면 손상되었음을 알고 재전송 요청합니다.

 

 

 

 

 

UDP server-client 통신 과정

 

서버 소켓과정
  1. socket()
    -소켓을 생성
  2. bind()
    -생성된 소켓에 IP주소, 포트넘버등의 정보를 설정
  3. recvfrom()  recv()함수와 다름
    -서버 소켓에 들어온 데이터들을 받음
  4. sendto()  send()함수와 다름
    -클라이언트 소켓에 데이터를 보냄
  5. closesocket()
    -소켓 삭제

 

클라이언트 소켓과정
  1. socket()
    -소켓을 생성
  2. recvfrom()  recv()함수와 다름
    -서버 소켓에 들어온 데이터들을 받음
  3. sendto()  send()함수와 다름
    -클라이언트 소켓에 데이터를 보냄
  4. closesocket()
    -소켓 삭제

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

MAC주소와 ARP  (0) 2023.05.02
멀티플렉싱 개념(select,epoll)  (0) 2023.05.02
멀티 쓰레드(세마포어,뮤텍스) , 멀티플렉싱이란?  (0) 2023.04.11
시그널(Signal)이란?  (0) 2023.04.03
TCP 통신이란?  (0) 2023.03.27