TCP/IP 알아가기 - 소켓 타입과 프로토콜 설정

Coosla·2021년 9월 3일
0

TCPIP 알아가기

목록 보기
2/3

1. 프로토콜(Protocol)

1-1. 프로토콜(Protocol)이란?

  • 컴퓨터 상호간의 대화에 필요한 통신 규약이다.

1-2. 프로토콜의 체계(Protocol Family)

  • socket 함수의 첫 번째 인자로, 소켓이 사용할 프로토콜의 부류 정보를 전달한다.
  • 최종 프로토콜 정보는 socket 함수의 세번째 인자를 통해서 전달, 첫 번째 인자는 프로토콜 체계의 범위를 정한다.
  • 프로토콜 체계의 종류
    • PF_INET    : IPv4 인터넷 프로토콜 체계
    • PF_INET6   : IPv6 인터넷 프로토콜 체계
    • PF_LOCAL  : 로컬 통신을 위한 UNIX 프로토콜 체계
    • PF_PACKET : Low Level 소켓을 위한 프로토콜 체계
    • PF_IPX       : IPX 노벨 프로토콜 체계

2. 소켓(socket)

2-1. 소켓의 생성

  • socket 함수를 이용하여 소켓을 생성한다.
1
2
3
4
5
6
#include<sys/socket.h>
 
int socket(int domain, int type, int protocol); // 성공 시 파일 디스크립터, 실페 시 -1 반환
// domain : 소켓이 사용할 프로토콜 체계 정보 전달.
// type : 소켓의 데이터 전송 방식에 대한 정보 전달.
// protocol : 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달.
cs

2-2. 소켓의 타입

  • 소켓 타입은 소켓의 데이터 전송 방식을 의미한다.
  • 연결지향 소켓(SOCK_STREAM)과 비 연결지향형 소켓(SOCK_DGRAM)이 있다.

2-3. 연결지향형 소켓(SOCK_STREAM)

  • 연결지향형 소켓의 특징
    • 중간에 데이터가 소멸되지 않고 목적지로 전송한다.
    • 전송 순서대로 데이터가 수신된다.
    • 전송되는 데이터의 경계가 존재하지 않는다.
    • 소켓 대 소켓의 연결은 반드시 1대 1이어야 한다.
  • 위 특징을 한 문장으로 말하면
    "신뢰성 있는 순차적인 바이트 기반의 연결지향 데이터 전송 방식의 소켓"
    이라고 할 수 있다.

2-4. 비 연결지향형 소켓(SOCK_DGRAM)

  • 비 연결지향형 소켓
    • 전송된 순서에 상관없이 가장 빠른 전송을 지향한다.
    • 전송된 데이터는 손실(파손)의 우려가 있다.
    • 전송되는 데이터의 경계(Boundary)가 존재한다.
    • 한번에 전송할 수 있는 데이터의 크기가 제한된다.
  • 위 특징을 한 문장으로 말하면
    "신뢰성과 순차적 데이터 전송을 보장하지 않는, 고속의 데이터 전송을 목적으로 하는 소켓"
    이라고 할 수 있다.
profile
프로그래밍 언어 공부 정리

0개의 댓글