현재강좌 : 네트웍 프로그래밍의 이해 다음: 1.2 TCP/IP 프로토콜


1.1 네트웍 프로그래밍의 분류

▶ 네트웍 프로그램 작성에는 여러 가지의 레벨이 있을 수 있는데, 통신 장비(device)를 직접 구동하는 디바이스 드라이버형 프로그램, TCP와 같은 트랜스포트 계층의 인터페이스를 이용하는 소켓 프로그래밍, 그리고 응용 계층을 이용하는 응용 계층 프로그램등 크게 세 가지로 구분할 수 있다.

▶ 예를들어 LAN에서 인터넷을 사용하는 경우에 이들의 관계를 그림 1-1에 나타냈다.

그림 1-1 네트웍 프로그래밍의 계층별 분류

1.1.1 응용 계층 프로그래밍

▶ 응용 계층 프로그래밍은 컴퓨터 시스템이 지원하는 네트웍 유틸리티나 응용 프로그램을 활용하는 방식으로, 가장 상위 계층의 프로그래밍 인터페이스를 제공한다.

▶ 응용 계층을 이용한 프로그래밍은 원격 작업을 편리하게 처리하기에는 적합하나 네트웍의 하위 계층의 동작을 구체적으로 제어할 수 없다는 단점이 있다.

▶ 웹(web)에서 사용되고 있는 http(hypertext transfer protocol)를 이용하는 HTML(Hyper Text Markup Language) 문서 작성도 여기에 해당한다.

1.1.2 트랜스포트 계층 프로그래밍

▶ 트랜스포트 계층을 이용하는 것으로서 호스트 종점간의 연결을 직접 관리하고 패킷 단위의 데이터 송수신을 구체적으로 제어할 수 있다.

▶ 트랜스포트 계층 프로그래밍의 대표적인 것이 소켓(Socket) API(Application Program Interface)를 이용하는 것이다.

▶ 소켓 API의 종류는 운영체제에 따라 UNIX BSD(Berkeley Software Distribution) socket(1982년), 윈도우 소켓(Winsock, 1992년) 등이 있다.

▶ 소켓 인터페이스는 UNIX BSD에서 처음으로 보급되기 시작하였으나 현재는 컴퓨터 기종 및 운영체제에 무관하게 대부분의 컴퓨터에서 지원되고 있으며 특히 TCP/IP를 제공하는 컴퓨터에서는 기본적으로 지원되고 있다.

1.1.3 디바이스 드라이버 계층 프로그래밍

▶ 디바이스 드라이버 계층 프로그래밍은 OSI(Open System Interconnection)의 계층 2 이하의 인터페이스, 즉 링크 계층이나 하드웨어 디바이스를 구동하여 프레임 단위의 데이터 송수신을 직접 다루는 프로그래밍을 말한다.

▶ 드라이버 계층 프로그래밍을 위한 대표적인 API는 LAN에서 MAC(Medium Access Control) 프레임 단위의 송수신을 다루는 API로 FTP사의 패킷 드라이버(Packet Driver), 마이크로소프트사의 NDIS(Network Driver Interface Specification), 노벨사의 ODI(Open Data Interface) 등이 있다.

▶ 이러한 API들을 사용하면 LAN의 종류(즉, MAC 프로토콜 종류)와 LAN 카드 제조회사에 무관하게 드라이버 계층의 네트웍 프로그램을 작성할 수 있다.

▶ 드라이버 계층의 프로그래밍은 프레임의 구체적인 송수신을 제어하거나 네트웍의 상태를 모니터링하는 경우, 또는 TCP/IP가 아닌 임의의 '사용자 정의'의 상위 프로토콜을 지원해야 하는 경우 등에 사용된다.

▶ 그러나 이 방식은 프레임을 전송 또는 수신하는 단순한 기능만 제공하므로 흐름제어, 오류제어, IP 주소 관리와 같은 기능은 사용자가 별도로 구현하여야 한다.

▶ 세 가지 종류의 네트웍 프로그래밍의 특징을 표 1-1에 비교하였다.

계 층

종 류

특 징

응용계층

http, ftp, mail,rsh, rcp, RPC - 이미 작성된 유틸리티나 응용 프로그램을 활용

- 효율은 떨어질 있으나 프로그램 작성, 변경, 운영이 쉬움.

트랜스 포트 계층

socket, Winsock,TLI - 패킷 단위의 데이터 송수신을 처리함.

- 인터넷(TCP/IP) 프로그램에서 가장 많이 사용됨.

- 소켓 API 운영체제마다 유사하여 프로그램 호환성이 좋음.

디바이스 드라이버 계층

Packet Driver,NDIS, ODI - LAN에서 MAC 프레임 단위의 전송을 처리함.

- 다양한 MAC 프로토콜에서 사용할 있음.

- 흐름제어, 오류제어 등은 사용자가 작성해야

표 1-1 네트웍 프로그래밍의 계층별 분류와 특징


현재강좌 : 네트웍 프로그래밍의 이해 다음: 1.2 TCP/IP 프로토콜