본문 바로가기

TCP & IP

2-1 프로토콜이란?

 

비전공자인 글쓴이에게 프로토콜이라는 단어는 어디선가 많이 들어본것 같고 컴퓨터에서 한번쯤은 본 것이지만 제대로 무슨 의미인지 알지 못했던 것 같다. 실제로 프로토콜이라는 단어의 의미는 컴퓨터 상호간의 대화에 필요한 통신규약이라고 하는데 여전히 어렵게 느껴진다. 그냥 우리는 컴퓨터상에서 너와 내가 만날 수 있게(=데이터를 주고 받는 행위) 정해놓은 약속이라고 생각하기로 하자.

 

먼저 소켓을 생성할 때 우리가 사용하는 코드를 알아보자

셀 전체 선택

열 너비 조절

행 높이 조절

#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