파이썬(Python) 소캣 프로그래밍.

 이번에는 파이썬 소캣 프로그래밍에 대해서 알아보겠다. 그전에 소캣이 무엇인지를 먼저 알아보자.


1. 소켓이란?

- 소켓(Socket)은 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 처음 소개되었으며 현재 널리 사용되는 것은 1986년의 BSD UNIX 4.3에서 개정된 것입니다
. 
- 소켓은 소프트웨어로 작성된 추상적인 개념의 통신 접속점이라고 할 수 있는데 네트웍 응용 프로그램은 소켓을 통하여 통신망으로 데이터를 송수신하게 된다.

2. 소켓의 종류
- 소켓에는 여러가지 종류가 있다. 


- 소켓을 생성할때 socket.socket(family,type) 을 쓰는데 이것은 전송방식을 결정하는 것 이다.
 여기서 family에는 소켓 종류를 말하는데 종류는 AF_INET (IPv4 통신) 그리고 AF_PACKET(RAW 소켓)이 있다. 그리고 소켓 타입은 socket.SOCK_STREAM (TCP방식), socket.SOCK_DGRAM (UDP)방식이 있다. 

- socket.SOCK_STREAM (TCP방식)
스트림 소켓은 양방향으로 바이트 스트림을 전송 할 수 있는 연결 지향형 소켓으로 양쪽 어플리케이션이 모두 데이터를 주고 받을 수 있다는것을 의미한다. 스트림소켓은 오류수정, 전송처리, 흐름제어등을 보장해 주며 송신된 순서에 따른 중복되지 않은 데이터를 수신하게 된다. 간단하게 이야기하면 TCP 소켓은 데이터을 송신하고 수신측이 데이터를 수신했나 확인을 하고 받았으면 다음 데이터를 보내주고, 받지 못했으면 재전송을 한다.

-socket.SOCK_STREAM (UDP 방식)
데이터그램 소켓은 비 연결형 소켓으로 클라이언트에서 서버로 데이터를 전송할때 UDP를 사용한다. 전송이 빠르지만 확실한 전달은 보장하지 못하고 통신중에 데이터가 손상되거나 분실해도 재전송을 하거나 오류를 되돌리지 않는다. 간단히 말하면 송신측은 수신측이 데이터를 받았건 못받았건 신경쓰지 않고 보낸다고 보면 된다.

다음에는 파이썬 UDP 소켓을 이용하여 에코서버 통신을 실습해 보겠다.

댓글

이 블로그의 인기 게시물

UDP 헤더의 구조와 스니퍼를 이용한 UDP통신 가로채기

UDP 소켓을 이용하여 에코서버와 통신하기.

파이썬을 이용한 TCP 소켓 프로그래밍.