소켓의 생성
소켓을 생성할 때 사용하는 socket 함수는 이전 포스팅에서 얘기 한 적 있다.
그러나 이 포스팅에서 다시 한번 제대로 알아보자.
먼저, 다시 한번 socket 함수의 원형 사진을 봐보자.
-
-
이번 소켓의 생성 포스팅에서는 socket 함수의 매개변수의 이해를 주제로 한다.
-
※ 프로토콜 체제(domain)(Protocol Family)※
우리가 입고 다니는 옷이라는 것에도
반팔 티가 있고, 긴팔 티가 있고, 후드 티, 후드 집업 등 여러 종류가 있지만, 이 모두 옷이라는 것에 속한다.
이렇듯 소켓이 통신에 사용하는 프로토콜도 부류가 나뉜다.
그리고 socket 함수의 첫 번째 인자로, 생성되는 소켓이 사용할 프로토콜의 부류 정보를 전달해야 한다.
이러한 부류 정보를 가리켜서 "프로토콜 체계"라 하며, 포로토콜 체계의 종류는 다음과 같다.
-
-
앞으로 자주 사용할 socket 함수의 프로토콜 체계의 종류는 위의 사진 중에서 PF_INET을 주로 사용할 것이다.
그리고 실제로 소켓이 사용할 최종 프로토콜 정보는 socket 함수의 세 번째 인자를 통해서 전달하게 되어있다.
그리고 세번 째 인자는 첫 번째 인자를 통해서 지정한 프로토콜 체계의 범위 내에서 결정되어야 한다.
-
※ 소켓의 타입(type) ※
소켓의 타입이란, 소켓의 데이터 전송 방식을 의미한다.
그리고 데이터 전송 방식의 정보를 socket 함수의 두 번째 인자로 전달해야 하는데,
그래야 생성되는 소켓의 데이터 전송 방식을 결정할 수 있기 때문이다.
그럼 왜 소켓의 데이터 전송 방식을 전달해줘야 하는가,
이미 첫 번째 인자로 프로토콜 체계의 종류에 대한 정보를 전달했는데,
이는, socket 함수의 첫 번째 인자를 통해서 프로토콜 체계 정보를 전달하지만,
이는 프로토콜 체계정보만 전달할 뿐, 데이터의 전송 방식까지 완전히 전달하는 것이 아니다.
즉, socket 함수의 첫 번째 인자로 전달되는 PF_INET에 해당하는 프로토콜 체계에도
둘 이상의 데이터 전송 방식이 존재하는데, 이 둘의 데이터 전송 방식은 다음 포스팅에서 봐보자.
'시작하지 말았어야 했던 것 > (Unix, Linux) C Socket' 카테고리의 다른 글
(리눅스)소켓의 생성(2-1) 소켓에 존재하는 버퍼 내의 데이터 (0) | 2021.02.02 |
---|---|
(리눅스) 소켓의 생성(2) 연결지향형 소켓(TCP 소켓)(SOCK_STRAM) (0) | 2021.02.02 |
프로토콜(Protocol)(방법)(통신규약)(약속)이란 (0) | 2021.02.02 |
(리눅스) 파일 읽기 프로그램 (0) | 2021.02.02 |
(리눅스) 파일 오픈 프로그램 (0) | 2021.02.02 |