1장. 네트워크 기초
독립적인 두 개 이상의 시스템이 서로 정보를 교환하기 위해서는 사전에 정의된 약속인 프로토콜이 필요하다. 즉, 프로토콜이란 컴퓨터와 컴퓨터가 정보를 주고받을 수 있기 위한 규칙 및 약속의 모음이다. 프로토콜은 전달하고자 하는 내용을 담는 일정한 형식과 전송 절차, 신호 규격 등을 내용으로 하고 있다. 이에 따라 다양한 프로토콜들이 존재하지만 프로토콜을 구성하는 공통적인 내용을 크게 나누면 다음과 같다.
- Fragmentation & Reassembly
송/수신되는 데이터를 형식에 맞게 분할(단편화)하고 다시 재결합한다. 트랜스포트 계층(TCP)의 기능과 관련 깊다. 또한, OSI 7 레이어 모델의 네트워크 계층(Network Layer)에서도 단편화 및 재결합 기능을 사용한다. - Error Detection & Correction
송/수신되는 데이터에 에러가 발생하는지를 감시하고 정정한다. 데이터 링크 계층은 프레임 단위로, 트랜스포트 계층은 세그먼트 단위로 오류를 검출하고 재전송을 요청하는 방식으로 작용한다. - Data Flow Control
데이터의 흐름을 조절한다. 트랜스포트 계층에서 주로 수행된다. - Multiplexing(다중화)
하나의 채널에 여러 신호를 동시에 전송한다. 이 기능은 일반적으로 트랜스포트 계층에서 포트 번호를 이용해 여러 응용 프로그램의 데이터를 구분짓는다.
보통의 경우 각 기능별로 모듈화 되어 있고, 각 모듈간의 신호 전달 과정도 약속되어 있다. 컴퓨터 통신 프로토콜 중 대표적인 것이 국제 표준화 기구인 ISO(International Standardization Organization)에서 채택된 OSI(Open Systems Interconnection) 프로토콜과 현재 널리 사용되고 있는 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜이다.
OSI 프로토콜 모델은 국제 표준화가 되어있지만 이론적이고 개념적인 면이 강하여 실제 컴퓨터 통신용 프로토콜로는 TCP/IP 모델이 주로 사용되고 있다.
(1) OSI 7 계층 참조 모델
OSI는 Open Systems Interconnection의 약자로서 개방형 시스템간의 상호 접속 규약이다. 개방형 시스템이란 정해진 규약을 만족하는 모든 시스템을 말한다. 즉, 어떤 제조업체에서 생산되었던지 표준화된 규약만 만족시킨다면, 서로 다른 장비일지라도 상호 통신이 가능하다는 의미이다.

OSI에서는 그림 1.1 처럼 컴퓨터 S/W, H/W 및 유무선망을 기능별로 분리하여 모두 7 개의 계층으로 나누어 생각하였다. 각 계층은 독립적인 기능을 가지고있으며, 계층 간에 정보를 주고받는 절차를 정의함으로써 사용자는 계층별로 다른 제조업체의 제품을 사용할 수도 있다. 이렇게 모듈화한 가장 큰 장점은 각 부분의 기술이 독립적으로 깊게 발전할 수 있게 하며, 사용자는 모듈별 교체가 가능하여 관리의 효율을 높일 수 있다.
| 계층 | 계층 명 | 담당 역할 |
|---|---|---|
| 7 | 응용 계층 | 응용 프로그램(응용 프로세스)으로 구성되며 사용자와 하위 계층의 정보를 교환하는 역할을 담당한다. FTP, TELNET, HTTP, HTTPS 등. |
| 6 | 표현 계층 | 정보의 코드 변환을 담당한다. 즉, 사용자가 이해하는 코드로의 변환과 통신에 적합한 코드로의 변환을 담당한다. 데이터 압축, 암호화, 인코딩을 담당한다. |
| 5 | 세션 계층 | 세션 생성, 유지, 종료와 같은 통신 연결을 관리한다. |
| 4 | 트랜스포트 계층 | 포트 번호를 이용해 어떤 응용 프로세스로 데이터를 보낼지를 결정한다. 또한 이러한 정보가 정확히 전달되었는지를 감시한다. |
| 3 | 네트워크 계층 | 주로 정보가 전달될 IP 주소를 찾고 수신된 정보를 트랜스포트 계층으로 전송한다. 여기서도 단편화(Fragmentation) 기술이 적용, 데이터 패킷을 MTU(최대 전송 단위)에 맞게 작은 조각으로 분할한다. 라우터 장비가 L3장비이며, L3 스위치(경로설정이 가능한 스위치)도 있다. |
| 2 | 데이터 링크 계층 | 인접 장치 사이로 정보를 전송하는 역할을 담당한다. 상위 계층에서 전달된 전송 대상의 주소를 실제 물리 주소(MAC 어드레스)로 변환하여 데이터를 전송한다. 스위치와 브리지가 대표적인 L2장비이다. |
| 1 | 물리 계층 | 전송 트랜시버(전기 신호를 발생/수신하는 장치)와 전송 매체로 구성된다. 대표적 장비로는 허브와 리피터가 있다. |
(2) TCP/IP 모델
TCP/IP 모델은 OSI 7 레이어 모델보다 더 현실적이다. OSI 7 레이어 모델이 컴퓨터 통신을 위한 프로토콜을 레이어 개념을 도입하여 설명하기 위해 만들었다면, TCP/IP 모델은 물리적으로 떨어진 각 단말이 인터넷을 통하여 정보를 교환할 수 있도록 만든 실물의 프로토콜이기 때문이다.
| 계층 | 계층 명 | 담당 역할 |
|---|---|---|
| 4 | 응용 계층 | 응용 프로그램(응용 프로세스)으로 구성되며, 사용자와 하위 계층의 정보를 교환하는 역할을 담당한다. FTP, TELNET, HTTP, HTTPS 등. |
| 3 | 트랜스포트 계층 | 하위 계층에서 전달된 데이터를 어느 응용 프로그램으로 전달할지 결정하며, 데이터가 정확히 전달되었는지 감시한다. |
| 2 | 인터넷 계층 | IP 주소 체계를 기반으로 동작한다. 즉, 정보가 전달될 주소를 찾고 수신된 정보를 트랜스포트 계층으로 전송한다. |
| 1 | 네트워크 엑세스 계층 (네트워크 인터페이스 계층) |
인접 장치 사이로 정보를 전송하는 역할을 담당한다. 상위 계층에서 전달된 전송 대상의 주소를 실제 물리 주소(MAC 주소)로 변환하여 데이터를 전송한다. |
OSI 7 레이어 모델에서는 제 3계층이 네트워크 계층이라고 불특정한 네트워크를 아우르는 이름을 가졌지만, TCP/IP 모델에서는 이를 인터넷 계층이라고 명확하게 특정한 이름을 지정한 것에 유의할 필요가 있다.
(3) 데이터 캡슐화
계층 구조에서 자기 보다 상위의 데이터는 데이터 캡슐화(Encapsulation)를 통하여 그 하부로 전달된다. 즉, 각 계층에서는 계층마다 자신이 담당한 기능을 처리하기 위한 정보(헤더(Header))를 만들어 이를 데이터 또는 데이터 꾸러미의 머리부분에 덧붙여 하부의 계층에 전송한다는 의미이다.
이 헤더 정보는 다른 계층에서는 패스되며 임의의 노드(호스트) A의 n 계층의 정보는 또 다른 노드(호스트) B의 같은 n 계층에서만 해독되므로 같은 계층들은 Peer(대응) 관계에 있다고 이야기한다.
특정 예를 들면, 사용자가 웹 브라우저에 접속해서 파일을 전송하는 경우,
- 응용 계층(Application Layer): Application Program(웹 브라우저)을 통해서 파일을 선택하면, 전송을 위한 파일 데이터가 생성된다.
- 트랜스포트 계층(Transport Layer): 트랜스포트 헤더(TH: Transport Header)를 덧붙여 세그먼트로 만들고 포트 번호를 지정한다. TH에는 포트번호가 삽입된다.
- 인터넷 계층(Internet Layer): 세그먼트에 인터넷 헤더(IH: Internet Header)를 붙여 패킷으로 만들고, 목적지 IP주소를 지정한다. IH에는 IP 주소가 탑재된다.
- Network Layer: 패킷에 네트워크 헤더(NH: Network Header)를 덧붙여 물리 계층(Physical Layer)으로 전송함을 볼 수 있다. NH에는 MAC 주소가 들어간다.

그리고 이러한 정보는 수신 노드의 각 계층에서 헤더부분을 참조, 제거한 후 상위 계층으로 데이터 꾸러미를 전송하여 최종적으로 응용 계층(Application Layer)으로 완전 무결한 데이터를 전송할 수 있게 된다.
그림 2. 데이타 캡슐화(Encapsulation)를 통한 데이타의 항해 시작