Search
Duplicate

컴퓨터 네트워크/ 컴퓨터 네트워크 개요

데이터 통신과 컴퓨터 네트워크의 분류 및 역사

(생략)

통신 프로토콜과 네트워크 계층구조 모델

대표적인 통신 프로토콜로는 IBM에서 사용된 폐쇄형 망 구조에서의 SNA(System Network Architecture) 프로토콜과 개방형 망 구조의 대표적인 프로토콜인 ISO/OSI와 TCP/IP를 들 수 있다.
TCP/IP의 경우 응용 계층에 적용된 대표적인 프로토콜로는 아래와 같은 것이 있다.
전자 우편서비스를 위한 SMTP(Simple Mail Transfer Service)
파일 전송 서비스를 위한 FTP(File Transfer Protocol)
망 관리(network management) 서비스를 위한 SNMP(Simple Network Management Protocol)
웹 서비스(web service)를 위한 HTTP(Hyper Text Transfer Protocol)

프로토콜 구성 요소

프로토콜의 주요 구성 요소는 구문과 의미 그리고 타이밍이다.
구문(Syntax)
데이터, 즉 전송할 정보가 어떠한 구조와 순서로 표현되는지를 나타내며 형식(Format), 부호화(Coding), 신호레벨(Signal Level) 등을 나타낸다.
예제) 어떤 프로토콜에서 데이터의 처음 8비트가 송신지 주소인지 또는 상대방 주소인지를 정의한다.
의미(Semantics)
각각의 비트가 가지는 의미를 나타내는 것으로 해당 패턴에 대한 해석과 그 해석에 따른 전송오류, 오류수정 등에 관한 제어정보를 규정하는 영역이다.
예제) 프로토콜의 주소부분 데이터는 메시지가 전달될 경로 또는 상대방 최종 목적지를 나타낸다.
타이밍(Timing)
두 객체간의 통신속도를 조정하거나 메시지의 전송 시간 및 전송 순서 등에 대한 특성 등을 가리킨다.
예제) 송신자가 데이터를 10Mbps의 속도로 전송하는데 수신자가 이를 1Mbps의 속도로 수신한다면 두 객체간에 타이밍이 맞지 않아 데이터의 유실이 발생할 수 있다.

프로토콜의 기능

프로토콜은 여러 가지 기능들의 복합적인 종합으로 구성되는데, 이때 모든 프로토콜들이 모든 기능들을 다 갖고 있는 것은 아니며, 경우에 따라서는 몇 가지 같은 기능이 다른 계층의 프로토콜에서 구현되기도 한다. 프로토콜의 대표적인 기능들은 다음과 같다.
1.
단편화와 재결합(Fragmentation and Reassembly)
응용 계층에서는 데이터 전송의 논리적인 단위를 메시지(Message)라고 하며, 응용 개체에서 이것을 연속적인 비트스트림(Bit Stream)으로 보내면, 하위 계층에서는 이 데이터를 임의의 작은 블록으로 잘라야 하는데, 이 작업을 단편화(Fragmentation)라고 한다.
임의의 크기인 메시지는 일정한 데이터 단위인 패킷(Packet)으로 나뉘고, 최종적으로 프레임(Frame)으로 변환되어 물리매체를 통해 전송된다.
단편화의 반대 개념은 재결합(Reassembly)으로써, 어떤 계층에서 단편화하여 전송된 데이터를 상대방과 동등(Peer)한 계층에서 수신하고 이를 다시 하나로 합치는 기능을 말한다.
2.
연결 제어(Connection Control)
한 개체에서 다른 개체로 데이터를 전송하는 방법에는 두 가지가 있다. 우선 두 개체가 논리적인 연결 없이 데이터를 보내는 방식을 비연결형 데이터 전송(Connectionless Data Transfer)이라고 하며 대표적인 예로 데이터그램(Datagram) 방식을 들 수 있다.
그리고 데이터를 송수신하는 개체 간에 논리적인 연결을 맺은 후 데이터를 전송하는 방식을 연결형 데이터 전송(Connection-oriented Data Transfer)이라고 하며 대표적인 예로 가상회선(Virtual Circuit)이 있다. 이러한 연결의 설정, 해제 그리고 조정기능을 총칭하여 연결제어라한다.
3.
흐름 제어(Flow Control)
송수신 개체 간에 전송하고자 하는 데이터의 양이나 속도를 조절하는 기능을 말한다. 즉, 통신을 할 때 송신측과 수신측의 속도차이나 네트워크 내부 문제 등으로 인해 수신측에서 데이터의 일부분을 수신하지 못하는 정보의 손실이 발생한 경우 이를 제어해야 하는데, 이때 이러한 제어 기능을 흐름제어라고 한다.
가장 간단한 흐름제어 기법으로는 정지-대기(Stop-and-Wait) 흐름제어 기법이 있는데, 수신측으로부터 확인신호(ACK: Acknowledgement)를 받기 전에는 송신측에서 데이터를 전송할 수 없게 하는 기법을 말하며, 확인신호를 수신하기 전에 데이터의 양을 미리 정해주는 전송률-기반(Rate-Based) 흐름제어 기법 그리고 여러 개의 프레임을 동시에 전송할 때 유용한 슬라이딩-윈도우(Sliding Window) 기법 등이 있다.
4.
오류 제어(Error Control)
정보 전송 시 채널이나 네트워크 요소의 불안정성으로 데이터나 제어정보가 파손되는 경우 이를 처리하는 기법을 오류제어라 하며, 대부분의 오류제어 기법은 프레임의 순서를 검사하여 오류를 찾고, 프로토콜 데이터 단위(PDU: Protocol Data Unit)를 재전송하는 형태를 취한다.
오류검출 기법으로는 패리티 비트를 이용하여 수신 측에서 패리티 비트 이상 유뮤를 검출하는 패리티 검사-코드(Parity Check) 방식과 다항식 코드를 이용하여 오류를 검출하는 순환-잉여도-검사(Cyclic Redundancy Check) 방식 등이 있다.
5.
동기화(Synchronization)
프로토콜 개체 사이에 정보를 송수신할 때 초기화 상태, 종료 상태 등의 동작 단계를 잘 맞추어야 하는데, 이러한 동작을 동기화라 한다.
예컨대 송수신 간에 서로 한 비트의 시간 길이가 다르다면 전송 받은 신호를 유효한 정보로 변환할 수 없게 된다. 따라서 정보의 정확한 전송을 위해서는 동기화 과정이 필수적으로 필요하다.
6.
순서화(Sequencing)
데이터들이 올바른 순서로 전달되기 위해서 필요한 기능이 순서화 기능이다. 순서화는 데이터들의 보내진 순서를 명시하는 기능으로, 연결형 데이터 전송에 주로 사용되며 순서에 맞는 전달과 순서번호를 이용한 오류 검출이 주된 목적이다. 또한 흐름제어나 오류제어와도 밀접한 관계를 갖는다. 예컨대 TCP/IP 네트워크에서 TCP 계층의 순서번호(Sequence Number)를 생각할 수 있다.

네트워크 계층구조 모델

OSI 7계층 모델(OSI 7 Layer Model)에 따르면, 네트워크에 연결된 호스트는 아래 그림과 같이 7개 계층으로 모듈화된 통신 기능을 갖추어야 한다.
일반 사용자는 OSI 7 계층 맨 위에 있는 응용 계층을 통해 데이터의 송수신을 요청하며, 이 요청은 하위 계층으로 순차적으로 전달되어 맨 아래에 있는 물리 계층을 통해 상대 호스트에 전송된다.
데이터를 수신한 호스트에서는 송신 호스트와 반대 과정으로 처리한다. 즉, 물리 계층으로 들어온 데이터는 순차적인 상향 전달 과정을 거쳐 응용 계층으로 올라가며, 처리가 완료된 결과를 회신하는 경우에는 반대 과정을 순차적으로 밟아서 송신 호스트로 되돌아간다.
따라서 데이터를 송수신하는 최종 주체는 송수신 호스트 양쪽에 위치한 응용 계층이며, 하부의 계층은 데이터 전송에 필요한 기능만 나누어서 처리한다.

OSI 7계층 모델의 계층별 기능

물리 계층
네트워크에서 호스트가 데이터를 전송하려면 반드시 전송 매체로 연결되어 있어야 하는데, 물리 계층(Physical Layer)은 호스트를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 특성 등을 다룬다.
데이터 링크 계층
물리 계층으로 데이터를 전송하는 과정에서는 잡음(Noise)과 같은 여러 외부 요인에 의해 물리적 오류가 발생할 수 있다. 데이터 링크 계층(Data Link Layer)은 물리적 전송 오류를 감지(Sense)하는 기능을 제공해 송수신 호스트가 오류를 인지할 수 있게 해준다.
발생 가능한 물리적 오류의 종류에는 데이터가 도착하지 못하는 데이터 분실과 내용이 깨져서 도착하는 데이터 변형이 있다. 일반적으로 컴퓨터 네트워크에서의 오류제어(Error Control)는 송신자가 원 데이터를 재전송(Retransmission)하는 방법으로 처리한다.
네트워크 계층
송신 호스트에서 전송된 데이터가 수신 호스트까지 도착하려면 여러 중개 시스템을 거친다. 이 과정에서 데이터가 올바른 경로를 선택할 수 있도록 지원하는 계층이 네트워크 계층(Network Layer)이다.
중개 시스템의 기능은 일반적으로 라우터(Router) 장비가 수행하는데, 네트워크 부하가 증가하면 특정 지역에 혼잡(Congestion)이 발생할 수도 있는데, 이것도 데이터의 전송 경로와 관계가 있으므로 네트워크 계층이 이를 제어한다.
전송 계층
컴퓨터 네트워크에서 데이터를 교환하는 최종 주체는 호스트 시스템이 아니고, 호스트에서 실행되는 프로세스다. 전송 계층(Transport Layer)은 송신 프로세스와 수신 프로세스 간의 연결(Connection) 기능을 제공하기 때문에 프로세스 사이의 안전한 데이터 전송을 지원한다.
4계층까지의 기능은 운영체제에서 시스템 콜(System Call) 형태로 상위 계층에 제공하며, 5-7 계층은 사용자 프로그램으로 작성된다.
세션 계층
세션 계층(Seesion Layer)은 전송 계층의 연결과 유사한 세션 연결을 지원하지만 이보다 더 상위의 논리적 연결이다. 즉, 응용 환경에서의 사용자 간의 대화(Dialog) 개념의 연결로 사용되기 때문에 전송 계층의 연결과는 구분된다.
표현 계층
표현 계층(Presentation Layer)은 전송되는 데이터의 의미(Semantic)를 잃지 않도록 올바르게 표현하는 방법(Syntax)을 다룬다. 즉 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있도록 해주는 역할을 한다.
표현 계층의 주요 기능은 압축과 암호화다. 동영상과 같은 대용량의 멀티미디어 데이터를 압축(Compression)해 전송 데이터 양을 줄여 주기도 하며, 암호화는 외부의 침입자로부터 데이터를 보호하는 기능으로써, 최근에는 전자상거래의 증가 추세로 그 중요도가 커지고 있다.
응용 계층
응용 계층(Application Layer)은 사용자의 다양한 네트워크 응용 환경을 지원한다. 기능은 한 분야에 한정되지 않고 매우 광범위하다고 할 수 있다.

네트워크 기술 표준

(생략)