Computer Science/Network

네트워크 프로그래밍(Network Programming)의 분류

TwinParadox 2018. 10. 12. 07:46
728x90

응용 계층(Application Layer) 프로그래밍


응용(작업) 단위 동작을 네트워크 통해 수행

하위 계층의 동작을 구체적으로 제어하는 것은 어렵고 효율 저하 발생함.

HTML 작성하는 웹 프로그래밍이 이에 해당함.

이미 작성된 유틸이나 응용 프로그램을 활용하며, 작성/변경/운영 작업이 용이.




트랜스포트 계층(Transport Layer) 프로그래밍


통신 종단 간 연결 관리 및 패킷 단위 동작 제어.

인터넷 프로그램에서 빈번하게 사용되며, OS 별 소켓 API가 유사해 호환성이 좋음.


Socket API 예)

UNIX BSD socke,t Winsock, TLI(Transport Layer Interface)




디바이스 드라이버 계층(Device Driver Layer) 프로그래밍


링크 계층, 하드웨어를 구동해 프레임 단위의 데이터 송수신 제어

여러 MAC 프로토콜에서도 사용 가능.

흐름 제어(Flow Contorl), 오류 제어(Error Control)은 사용자가 작성.


LAN에서 MAC 프레임을 제어하는 API 예)

FTP의 패킷 드라이버

Microsoft의 NDIS(Network Drvier Interface Specification)

Novell의 ODI(Open Data Interface)




728x90