728x90

소켓은 다양한 방식으로 통신 하도록 설계되어 있다.

물론 데이터를 주고 받는 소켓 간의 타입은 동일해야 하고 약속된 규칙(프로토콜)로 통신한다.

 

프로토콜이란

- 개념적으로 약속이란 의미

- 컴퓨터 상호간의 데이터 송수신에 필요한 통신규약.

- 소켓을 생성할 때 기본적인 프로토콜을 지정해야 한다.

 

소켓 함수 매개변수

Protocol Family(프로토콜 체계) : PF_INET(ipv4) or somethings

type : 데이터 전송 타입 : 연결지향형(데이터 보장, 느림), 비연결지향형(데이터 보장 안 함, 빠름) or somethings

protocol

 

연결지향형 소켓(sock_stream) (tcp)

- 중간에 데이터 소멸되지 않음(흐름제어, 혼잡제어)

- 전송 순서 보장

- 데이터 경계 없음(write 한 만큼 read할 필요가 없다)

- 소켓 대 소켓 연결은 반드시 1대1

 

비연결혈지향형 소켓(sock_dgram) (udp)

- 전송순서 상관없이 빠른 속도의 전송을 지향

- 데이터 손실 및 파손의 우려

- 데이터의 경계가 존재(write한 만큼 read 해야 한다.)

- 한번에 전송할 수 있는 데이터의 크기가 제한된다.

 

IPv4 프로토콜에서 연결지향형 프로토콜은 tcp 밖에 없으므로 0으로 세팅해도 된다.

IPv4 프로토콜에서 비연결지향형 프로토콜은 udp 밖에 없으므로 0으로 세팅해도 된다.

 

 

 

 

 

 

728x90

+ Recent posts