인터넷 프로토콜
송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는
정보 위주의 규약(프로토콜, Protocol)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 줄여서 아이피(IP)라고도 한다.
IP의 정보는 패킷 혹은 데이터그램이라고 하는 덩어리로 나뉘어 전송된다. IP에서는 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없다.
IP는 비신뢰성(unreliability)과 비연결성(connectionlessness)이 특징이다.
비신뢰성은 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다는 뜻이다.
예를 들어 전송과정에서 패킷이 손상될 수도 있고, 같은 호스트에서 전송한 패킷의 순서가 뒤죽박죽이 될 수도 있고,
같은 패킷이 두 번 전송될 수도 있으며, 아예 패킷이 사라질 수도 있다. 패킷 전송과 정확한 순서를 보장하려면
TCP 프로토콜과 같은 IP의 상위 프로토콜을 이용해야 한다.
TCP/IP 프로토콜 스택
응용 계층 FTP, HTTP, HTTPS, IMAP, IRC, NNTP, POP3, SMTP, SIP, SNMP, SSH, UUCP, DNS...
전송 계층 TCP, UDP, SCTP, DCCP, ...
네트워크 계층 IP, IPv4, IPv6, ICMP, ARP, IGMP, ...
데이터링크 계층 이더넷, FDDI, PPP, ...
물리적 계층 RS-232, EIA-422, RS-449, EIA-485...
네트워크 작업시 같은 기종은 크로스케이블, 다른 기종은 다이렉트케이블
데이터를 보낼 때 각 계층에 데이터에 헤더를 각각 붙이는 것을 encapsulation, 반대를 decapsulation이라 한다.
ARP : IP -> MAC을 찾는 방식
RARP : MAC -> IP를 찾는 방식
OSI 7계층모델
통신망을 통한 상호접속에 필요한 제반 통신절차를 정의하고 이 가운데 비슷한 기능을 제공하는 모듈을 동일계층으로 분할하여 모두 7계층으로 분할한 것이다.
이는 통신기능을 7개의 수직계층으로 분할하여 각 계층마다 다른 계층과는 무관하게 자신의 독립적인 기능을 지원하도록 구성하였다.
각각의 계층을 다른 계층과 독립적으로 구성한 것은 한 모듈에 대한 변경이 전체 모듈에 미치는 영향을 최소화하기 위해서이다.
즉, 일부 모듈의 변경이 있는 경우에 전체 모듈을 변경하는 대신 변경이 있는 해당 모듈만을 바꾸면 되도록 하였다.
이러한 계층은 크게 통신망 기능을 제공하는 계층, 응용기능을 제공하는 계층 그리고 이들 사이를 연결해 주는 전송계층으로 나누어지며
세부적으로 살펴보면 각 계층은 최상위 계층인 응용계층(application layer)으로부터 시작하여 표현계층(presentation layer), 세션계층(session layer),
전송계층(transport layer), 네트워크 계층(network layer), 데이터 링크 계층(data link layer) , 물리계층(physical layer)으로 구분되고,
각 계층마다 특정한 서비스를 제공함과 아울러 이를 위한 프로토콜들이 존재한다.
우선 상위 3개의 계층은 응용프로토콜이라하며 상위 계층으로 불리우고
하위 4개의 계층은 데이터 흐름 프로토콜이라하며 하위 계층으로 불린다..
◎ application layer - 사용자 어플리케이션에 네트워크 서비스를 제공 예)telnet, http등
◎ presentation layer - 암호화, 암호해독 기능, 응용계층에서 넘겨받은 정보를 다른 시스템의 응용계층이 읽을수 있도록 해줌. 예)인코딩,디코딩 등
◎ session layer - 효율적인 데이터전송을 위한 처리, 서비스 종류에 대한 설정, 상위계증에서 발생하는 문제에대한 예외보고,
두 호스트의 표현 계층간의 통신 동기화와 데이터 교환에 대한 관리를 수행
◎ transport layer - 송신측 호스트 시스템으로부터 발생되는 데이터를 분할하고 수신측 호스트 시스템에서는 분할된 데이터를 다시 조립하여
원래의 스트림으로 만듬
◎ network layer - 논리적 주소 체계와 관련, 지리적으로 서로 떨어져있는 네트워크 내에 있는 두 호스트 시스템 사이에 연결성을 제공.
◎ data link layer - 네트워크 토폴로지, 네트워크 접속, 오류통지, 프레임의 순차적 전달, 흐름제어등에 관여
◎ physical layer - 종단 시스템 간을 연결하는 물리링크의 활성화/비활성화 및 링크상태 유지를 위하여 물리링크에 대한
전기적, 기계적, 절차적, 기능적 명세를 정의
네트워크를 7계츠응로 나눌때의 이점
1. 네트워크 통신이 훨씬 단순하고 작은 부분들로 나뉨
2. 네트워크 구성요소를 표준화 함으로써 호환성 증대
3. 서로 다른 유형의 네트워크 하드웨어나 소프트웨어 간의 통신이 가능
4. 한 계층을 변경해도 다른 계층에 영향을 미치지 않기 때문에 개발 속도 증대
5. 네트워크 통신을 여러 작은 요소로 분리함으로써 통신과정을 쉽게 학습가능
'네트워크 프로그래밍' 카테고리의 다른 글
윈속 채팅클라이언트 프로그램 (0) | 2009.09.22 |
---|---|
윈속 채팅서버 프로그램 (0) | 2009.09.22 |
네트워크 틱택토 게임 실행파일 (0) | 2009.09.18 |
Thread 기반 서버 (0) | 2009.09.18 |
TCP/IP 파일 입출력 클라이언트 프로그래밍! (0) | 2009.09.18 |