Page 214 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 214
켓을 통하여 네트워크에 접속하여야 한다.
소켓은 이렇게 어플리케이션에게 네트워크 접속을 위한 연결 장치, 인터페이스 역할을 하는
것이다. 네트워크 어플리케이션이 보낸 데이터를 소켓을 거쳐 운영체제상에 존재하는
TCP/IP 소프트웨어에게 전달하게 된다. 다시 하드웨어 상인 랜카드를 거쳐 네트워크에 전
달하게 된다. 서버의 경우는 클라이언트와 정 반대되는 개념이다. 네트워크는 서버에게 보낸
데이터를 서버의 랜카드에게 보내지게 한다. 다시 운영체제의 TCP/IP소프트웨어를 거쳐 어플
리케이션과 연결개념인 소켓을 통해 최종적으로 서버 어플리케이션에게 전달되는 것이다. 소
켓은 이렇게 어플리케이션과 TCP/IP 사이에 존재 하고 있다.
* 소켓의 종류
1. 스트림
스트림 소켓은 양방향으로 바이트 스트림을 전송 할 수 있는 연결 지향형 소켓으로 양쪽 어플
리케이션이 모두 데이터를 주고받을 수 있다는 것을 의미한다. 스트림소켓은 오류수정, 전송처
리, 흐름제어 등을 보장해 주며 송신된 순서에 따른 중복되지 않은 데이터를 수신하게 된다.
이 소켓은 각 메세지를 보내기 위해 별도의 연결을 맺는 행위를 하므로 약간의 오버헤드가 존
재한다. 그러므로 소량의 데이터보다는 대량의 데이터를 보내는 경우에 적당하다. 스트림소켓
은 이러한 품질의 통신을 수행하기 위해서 TCP를 사용한다.
2. 데이터그램
명시적으로 연결을 맺지 않으므로 비 연결형 소켓이라고 한다. 메세지는 대상 소켓으로 전송
되며 대상 소켓은 메세지를 적절히 수신한다. 스트림소켓을 사용하는 것이 데이터그램 소켓을
사용하는 것보다 더 신뢰성이 높은 방법이지만 연결을 수립하는데 드는 오버헤드는 무시할 수
없다. 데이터그램 소켓을 사용하려면 클라이언트에서 서버로 데이터를 전송할 때 UDP를 사용
한다. 이 프로토콜에서는 메세지의 크기에 약간의 제한이 있으며 메세지의 확실한 전달 역시
보장하지 않으며 통신 중 데이터를 읽어 버리더라도 오류를 되돌리지 않는다.
3. RAW
RAW소켓은 패킷을 가져오면 TCP/IP스택상의 TCP, UDP계층을 우회하여 바로 어플리케이션으
로 송신하는 소켓이다. 이런 소켓에서 패킷은 TCP/IP필터를 통해 전달되지 않으므로 원형 그
대로의 패킷을 볼 수 있다. 이는 모든 데이터를 적절히 처리하거나 헤더를 제거하고 이를 파
싱하는 과정은 모두 수신 어플리케이션에서 담당해야 하는 것이다. 실제 RAW소켓을 이용하여
프로그래밍을 하는 일은 거의 드물며 만약 시스템 소프트웨어나 패킷을 분석하는 프로그램을
개발할 경우 필요 할 수도 있다.
4. IP 주소와 포트의 이해
IP 주소는 1바이트 4자리의 주소로 이루어집니다. (예 : 202.131.293.70)
이를 기억하기 힘들기 때문에 naver.com 과 같은 문자로 변환해서 사용하는데 이를
- 207 -