반응형

소켓의 생성(3)

 

 

socket 함수의 두 번째 인자로 "SOCK_DGRAM"을 전달하면 비 연결 지향형(UDP) 소켓이 생성된다.

 

socket(PF_INET, SOCK_DGRAM,?);

 

PF_INET : IPv4 프로토콜 체계를 사용한다.

 

SOCK_DGRAM : UDP 전송방식을 사용한다.

 

? : 기본 설정으로 0을 전달해야 하지만, 나중에 설명하기 위해 '?'로 채웠다.

 

비 연결지향형(UDP) 소켓은 빠른 속도로 데이터를 전달한다.

 

그러면 이제 비 연결지향형(UDP) 소켓의 특징은 뭐가 있을지 아래의 사진을 봐보자.

 

-

 

 

-

 

비 연결지향형(UDP) 소켓 연결지향형(TCP) 소켓과 다르게

 

상대 소켓이 데이터를 받았든 안 받았든 무조건 빠르게 전송하는데에 초점이 맞춰져 있다.

 

그리고 보낼 수 있는 데이터의 크기도 제한되어있다.

 

그래서 큰 데이터는 여러번에 걸쳐서 전송해야 하는데,

 

-

 

이전에 배웠던 연결 지향형(TCP) 소켓은 

 

데이터를 한 번에 보내서 여러 번에 걸쳐서 받든, 

 

여러 번 보내서 한번에 받든 데이터의 경계가 존재하지 않았는데

 

-

 

비 연결 지향형(UDP) 소켓은 

 

데이터를 3번에 걸쳐서 보내면

 

받을 때도 3번에 걸쳐서 받아야 한다.

 

즉, 데이터를 전송한 수만큼, 받을 때도 전송한 수랑 같게 여러 번에 걸쳐서 받아야 한다.

 

더러 데이터가 송수신될 때 손상될 수 있다.

 

그렇다고 비 연결 지향형(UDP) 소켓이 연결 지향형(TCP) 소켓처럼 데이터를 재 전송해주진 않는다.

 

-

 

그래서 비 연결 지향형(UDP) 소켓의 특성은 다음과 같이 한마디로 정리할 수 있다.

 

" 신뢰성과 순차적 데이터 전송을 보장하지 않는, 고속의 데이터 전송방식 소켓 "

 

신뢰성과 순차적 데이터 전송을 보장하지 않는 : 데이터가 손상되어도 재 전송해주지 않는다. 

 

그리고 데이터가 전송될 때 순서가 섞여서 전송될 수 있다.

 

고속의 데이터 전송방식 소켓 : 신뢰성과 순차적 데이터 전송을 보장하지는 않지만, 

 

연결 지향형(TCP) 소켓보다 데이터의 이동 속도가 빠르다.

 

-

 

추가로 비 연결 지향형(UDP) 소켓 연결 지향형(TCP) 소켓과 달리 연결이라는 개념이 존재하지 않는다.

 

연결은 서로 통신을 하고 있다는 의미인데,

 

비 연결 지향형(UDP) 소켓은 상대 소켓의 상황이 어떻든 데이터를 전송한다.

반응형

+ Recent posts