비전공자인 글쓴이에게 프로토콜이라는 단어는 어디선가 많이 들어본것 같고 컴퓨터에서 한번쯤은 본 것이지만 제대로 무슨 의미인지 알지 못했던 것 같다. 실제로 프로토콜이라는 단어의 의미는 컴퓨터 상호간의 대화에 필요한 통신규약이라고 하는데 여전히 어렵게 느껴진다. 그냥 우리는 컴퓨터상에서 너와 내가 만날 수 있게(=데이터를 주고 받는 행위) 정해놓은 약속이라고 생각하기로 하자.
먼저 소켓을 생성할 때 우리가 사용하는 코드를 알아보자
셀 전체 선택
열 너비 조절
행 높이 조절
#include <sys/socket.h> int socket(int domain, int type, int protocol); |
여기서 domain, type, protocol은 1)소켓이 사용할 프로토콜 체계, 2)소켓의 데이터 전송방식, 3)두 컴퓨터간 통신에 사용하되는 프로토콜을 의미한다.
1)프로토콜의 체계의 종류는 밑에 표와 같다.
이름 | 프로토콜 체계(Protocol Family) |
PF_INET | IPv4 인터넷 프로토콜 체계 |
PF_INET | IPv6 인터넷 프로토콜 체계 |
PF_LOCAL | 로컬통신을 위한 UNIX 프로토콜 체계 |
PF_PACKET | Low Level 소켓을 위한 프로토콜 체계 |
PF_IPX | IPX 노벨 프로토콜 체계 |
2) 소켓의 타입은 소켓의 데이터 전송방식을 의미한다. 소켓의 타입은 크게 두가지로 분류할 수 있는데 첫 번째는 연결지향형 소켓(SOCK_STREAM) 두 번째는 비연결지향형 소켓(SOCK_DGRAM)이다.
SOCK_STREAM의 특징
- 중간에 데이터가 소멸되지 않고 목적지로 전송된다.
- 전송 순서대로 데이터가 수신된다.
- 전송되는 데이터의 경계(Boundary)가 존재하지 않는다.
SOCK_DGRAM의 특징
- 전송된 순서에 상관없이 가장 빠른 전송을 지향한다.
- 전송된 데이터는 손실의 우려가 있고, 파손의 우려가 있다.
- 전송되는 데이터의 경계(Boundary)가 존재한다.
- 한번에 전송할 수 있는 데이터의 크기가 제한된다.
3) 세 번째 인자는 하나의 프로토콜 체계 안에 데이터의 전송방식이 동일한 프로토콜이 둘 이상 존재하는 경우를 위해 필요하다.
'TCP & IP' 카테고리의 다른 글
3-1 인터넷 주소(IP)와 포트 번호 (0) | 2021.10.06 |
---|---|
2-2 Tcp client 실행 (0) | 2021.10.06 |
1-3 윈도우 기반 구현 (0) | 2021.10.06 |
1-2 파일 디스크립터란? (0) | 2021.10.06 |
1-1 네트워크 프로그래밍,소켓 (0) | 2021.10.06 |