brunch

매거진 Network Study

You can make anything
by writing

C.S.Lewis

by Henry Jul 11. 2017

Network Basic

Network Basic Theory

어렵고 복잡하기만 한 네트워크 ㅠㅠ.. 의미부터 천천히 알아가는게 좋을 듯하여서 기본적인 내용을 취합해 보았다.




◎ 네트워크의 사전적 의미


  ◆ 다수의 컴퓨터를 유선이나 무선의 통신 매체로 연결하여 서로자료를 주고받을 수 있게 한 통신 체계.

  ◆ 네트워크를 이해하려면 시스템, 인터페이스, 전송 매체, 프로토콜, 네트워크, 인터넷 같은 용어를 먼저 알아야 한다. 네트워크(Network)는 전송 매체(Transmission Media)로 서로 연결해 데이터를 교환하는 시스템(System)의 모음이다. 시스템과 전송 매체의 연결 지점에 대한 규격을 인터페이스(Interface)라 하고, 시스템이 데이터를 교환할 때 임의의 통신 규칙을 따르는데 이 규칙을 프로토콜(Protocol)이라 한다. 서로 다른 시스템이 상호 연동해 동작하려면 연동 형식의 통일이 필요하고 이 통일을 표준화(Standardization)라 한다.


  ◆ 시스템은 반드시 컴퓨터일 필요는 없지만 보통 컴퓨터 시스템으로 가정한다. 시스템은 물리적으로 공유하는 전송 매체로 서로 연결한다. 시스템이 전송 매체를 통해 데이터를 교환하려면 반드시 표준화된 프로토콜을 사용해야 한다. 흔히 사용하는 인터넷은 IP(Internet Protocol)라는 네트워크 프로토콜을 사용하는 네트워크 집합체다.  

  



◎ 네트워크 기초 용어


  ◼︎ 시스템

    ▹ 시스템(System)은 체제라고도 하는데, 내부 규칙에 따라 능동적으로 동작하는 대상이다. 자동차, 커피 자판기, 컴퓨터, 마이크로 프로세서, 하드 디스크 같은 물리적인 대상뿐만 아니라, 신호등으로 교통을 제어하는 운영 시스템, MS 윈도우즈 등의 운영체제, 프로그램의 실행 상태를 의미하는 프로세스 같은 논리적인 대상도 시스템이다. 시스템의 동작에 필요한 외부 입력이 있을 수 있으며, 내부 정보와 외부 입력의 조합에 따른 출력이 있을 수 있다. 작은 시스템이 여러 개 모여 더 큰 시스템을 구성할 수 있으므로 크기로는 시스템을 구분하지 않는다.


  ◼︎ 인터페이스

    ▹ 인터페이스(Interface)는 시스템과 시스템을 연결하기 위한 표준화된 접근 방법이다. 예를 들어, 컴퓨터 본체와 키보드를 연결하려면 키보드의 잭을 본체의 정해진 위치에 꽂아야 한다. 이를 위해서는 상호 간의 데이터 교환을 위한 RS-232C, USB 같은 논리적인 규격뿐만 아니라, 잭의 크기 · 모양 같은 물리적인 규격도 표준화되어야 한다. 인터페이스를 이용해 연결하는 시스템은 능력과 권한이 같은 경우도 있지만 서비스를 주고받는 상하 관계일 수도 있다.


  ◼︎ 전송 매체

    ▹ 시스템끼리 정해진 인터페이스를 연동해 데이터를 전달하려면 물리적인 전송 수단인 전송 매체(Transmission Media)가 반드시 있어야 한다. 전송 매체는 사람의 눈으로 볼 수 있는 동축 케이블을 포함하여 소리를 전파하는 공기, 무선 신호 등 다양하다. 인터페이스는 시스템 간의 연동을 위한 논리적인 규격이고, 인터페이스에서 정해진 규칙은 매체를 통해 전송됨으로써 구현되고 동작된다고 볼 수 있다.


  ◼︎ 프로토콜

    ▹ 상호 연동되는 시스템이 전송 매체를 통해 데이터를 교환할 때는 특정 규칙을 따르는데, 이 규칙을 프로토콜(Protocol)이라 한다. 일반적으로 프로토콜은 주종(主從) 관계가 아닌 동등한 위치에 있는 시스템 사이의 규칙이라는 측면이 강조되어 인터페이스와 구분된다. 인터페이스는 두 시스템이 연동하기 위한 특정한 접촉 지점(Access Point)을 의미하는 경우가 많지만, 프로토콜은 주고받는 정보의 형식과 그 과정에서 발생하는 일련의 절차적 순서에 무게를 둔다.


  ◼︎ 네트워크

    ▹ 통신용 매체를 공유하는 여러 시스템이 프로토콜을 사용하여 데이터를 주고받을 때 이들을 하나의 단위로 통칭하여 네트워크(Network)라 부른다. 일반적인 컴퓨터 네트워크에서는 물리적인 통신 매체로 연결된 컴퓨터 간에 동일한 프로토콜을 이용해 데이터를 주고받는다. 소규모 네트워크가 모여 더 큰 네트워크를 구성할 수 있는데, 네트워크끼리는 라우터(Router)라는 중개 장비를 사용해 연결한다.


  ◼︎ 인터넷

    ▹ 인터넷(Internet)은 전 세계의 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크다. 인터넷으로 연결된 시스템, 인터페이스, 전송 매체, 프로토콜 등은 종류가 매우 다양하지만 데이터 전달 기능에 한해서는 공통적으로 IP(InternetProtocol) 프로토콜을 사용한다. 인터넷이라는 용어는 IP의 첫 번째 단어인 Internet에서 유래되었다.


  ◼︎ 표준화

    ▹ 서로 다른 시스템이 상호 연동해 동작하려면 표준화(Standardization)라는 연동 형식의 통일이 필요하다. 예를 들어, 프린트 용지를 생각해보자. 일반적으로 프린터와 프린트 용지를 만드는 회사는 다르다. 하지만 사전에 A4 규격이라는 통일된 틀을 만들어두었기 때문에 여러 회사 제품의 프린트 용지를 자유롭게 사용할 수 있는 것이다.

A4 규격의 표준화




◎ 시스템 기초 용어


  ◼︎ 시스템의 구분

    ▹ 네트워크를 구성하는 시스템이 반드시 컴퓨터처럼 복잡한 기능을 수행해야 하는 것은 아니지만, 일반적으로 컴퓨터 시스템으로 가정한다. 네트워크 시스템은 수행 기능에 따라 다음과 같이 다양하게 부를 수 있다.


  ◼︎ 노드

    ▹ 노드(Node)는 인터넷에 연결된 시스템을 가장 일반화한 용어다. 데이터를 주고받을 수 있는 모든 시스템을 통칭한다.


  ◼︎ 호스트

    ▹ 호스트(Host)는 일반적으로 컴퓨팅 기능이 있는 시스템이다. 일반 사용자가 응용 프로그램을 실행할 수 있어 사용자가 네트워크에 접속하는 창구 역할을 한다.


  ◼︎ 클라이언트

    ▹ 호스트를 세분할 때 호스트 사이에 제공되는 서비스를 기준으로 클라이언트와 서버로 나눈다. 클라이언트(Client)는 서비스를 요청하는 시스템이다. 호스트는 다양한 서비스를 서로 주고받기 때문에 임의의 호스트가 클라이언트나 서버로 고정되지는 않는다. 이용하는 서비스의 종류에 따라서 클라이언트가 될 수도 있고, 서버가 될 수도 있다. 그러므로 특정 서비스를 기준으로 클라이언트와 서버라는 상대적 용어로 구분한다.


  ◼︎ 서버

    ▹ 서버(Server)는 서비스를 주고받는 호스트들의 관계에서 특정 서비스를 제공하는 시스템이다. 일반적으로 서버는 클라이언트보다 먼저 실행 상태가 되어 클라이언트의 요청에 대기해야 한다. 그리고 영원히 종료하지 않으면서 클라이언트의 요청이 있을 때마다 서비스를 반복해서 제공해야 한다.      


  ◼︎ 클라이언트와 서버

    ▹ 아래 그림은 임의의 서비스를 기준으로 클라이언트와 서버의 상대적인 관계를 설명한다. 그림에서 호스트 2는 파일 송수신 기능을 제공하는 FTP(File Transfer Protocol) 서비스를 제공하며, 호스트 3은 원격 단말기 기능인 텔넷(Telnet) 서비스를 제공한다.

클라이언트와 서버

    ▹ FTP 서비스를 먼저 살펴보면, 호스트 1은 호스트 2에 FTP 서비스를 요청한다. 따라서 FTP 서비스를 기준으로 하면 호스트 1이 클라이언트가 되고, 호스트 2는 서버가 된다. 반면, 텔넷 서비스는 호스트 2가 호스트 3에 요청한다. 텔넷 서비스를 기준으로 하면 호스트 2가 클라이언트고, 호스트 3은 서버다. 따라서 호스트 2는 사용하는 서비스의 종류에 따라 클라이언트가 되기도 하고, 서버가 되기도 한다. 결론적으로 클라이언트와 서버라는 용어는 서비스 이용의 상대적 위치에 따라 결정된다.

    ▹ 클라이언트와 서버의 명칭을 호스트 시스템에 부여해 사용할 수도 있다. 특히 다양한 서비스 기능을 제공하는 대형 시스템을 서버로 설정해 다수의 클라이언트가 서버에 접속해 서비스를 이용하도록 할 수 있다. 그러나 기능적인 관점에서는 위의 그림처럼 호스트에서 실행되는 응용 서비스별로 구분하는 것이 더 정확하다. 인터넷에서 네트워크 서비스의 기능은 대부분 응용 프로그램으로 구현되므로 보통 클라이언트 프로세스, 서버 프로세스라는 호칭이 더 자연스러울 수 있다.




◎ 계층 모델


  ◆ 특징이 다른 여러 호스트를 서로 연결해 통신하려면 연결 방식을 표준화해야 한다. 국제 표준화 단체인 ISO(International Standard Organization)에서는 OSI(Open System Interconnection) 7계층 모델을 제안하였다.


  ◼︎ OSI 7계층

    ▹ OSI 7계층 모델(OSI 7 Layer Model)에 따르면, 네트워크에 연결된 호스트는 아래 그림과 같이 7개 계층으로 모듈화된 통신 기능을 갖추어야 한다. 일반 사용자는 OSI 7계층 맨 위에 있는 응용 계층을 통해 데이터의 송수신을 요청하며, 이 요청은 하위 계층으로 순차적으로 전달되어 맨 아래에 있는 물리 계층을 통해 상대 호스트에 전송된다. 그리고 요청이 각 계층으로 하달되는 과정에서 계층별로 담당하는 기능을 수행해 데이터를 안전하게 전달한다.

OSI 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의 기능은 사용자 프로그램으로 작성된다.


  ◼︎ 세션 계층

    ▹ 세션 계층Session Layer)은 전송 계층의 연결과 유사한 세션 연결을 지원하지만 이보다 더 상위의 논리적 연결이다. 즉, 응용 환경에서의 사용자 간의 대화(Dialog) 개념의 연결로 사용되기 때문에 전송 계층의 연결과는 구분된다.


  ◼︎ 표현 계층

    ▹ 표현 계층(Presentation Layer)은 전송되는 데이터의 의미(Semantic)를 잃지 않도록 올바르게 표현하는 방법(Syntax)을 다룬다. 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있도록 해주는 역할을 한다. 표현 계층의 주요 기능은 압축과 암호화다. 동영상과 같은 대용량의 멀티미디어 데이터를 압축(Compression)해 전송 데이터의 양을 줄일 수 있다. 암호화는 외부의 침입자로부터 데이터를 안전하게 보호하는 기능인데, 전자상거래가 증가하면서 중요성이 커지고 있다.


  ◼︎ 응용 계층

    ▹ 응용 계층(Application Layer)은 사용자의 다양한 네트워크 응용 환경을 지원한다. 기능은 한 분야에 한정되지 않고 매우 광범위하다.




◎ 프로토콜과 인터페이스


  ◆ 네트워크 사용자가 통신한다는 의미는 데이터를 주고받을 수 있음을 의미한다. 최종 사용자가 데이터를 보내고 받으려면 양쪽 호스트에서 실행되는 OSI 7계층의 모듈이 유기적으로 연동되어야 한다. 호스트끼리 통신하는 과정에서는 각 계층의 모듈이 상대 호스트의 동일 계층과 개별적으로 논리적 통신을 수행해야 한다. 예를 들어, 한 호스트의 계층 n 모듈은 상대 호스트의 계층 n 모듈과 통신한다. 각 계층은 정해진 방식으로 통신하는데, 이 과정에서 필요한 규칙을 프로토콜(Protocol)이라 한다.

  ◆ 호스트의 계층 사이에는 인터페이스(Interface)라는 규칙이 존재하고, 하위 계층이 상위 계층에 제공하는 인터페이스를 특별히 서비스(Service)라고 부른다. 아래 그림은 서로 다른 호스트에 위치한 계층 모델에서 두 호스트의 통신을 지원하기 위한 모듈 간의 관계를 프로토콜, 인터페이스, 서비스의 관점에서 설명한다.

인터페이스와 프로토콜

  ◆ 호스트 1과 호스트 2의 계층 n 프로토콜이 서로 통신하려면 계층 n-1 프로토콜의 도움이 필요하다. 즉, 호스트 1의 계층 n이 호스트 2의 계층 n에 데이터를 전송하는 과정은 계층 n-1을 통해 이루진다. 먼저, 호스트 1의 계층 n-1에 전송 데이터를 주어 호스트 2에 전송하도록 부탁한다. 그러면 호스트 1의 계층 n-1은 다시 하위 계층의 도움을 받아 호스트 2의 계층 n-1에 데이터를 보낸다. 마지막으로 호스트 2의 계층 n-1이 받은 데이터를 계층 n에 올려줌으로써 데이터 전송을 완료한다. 이 원리는 7개 계층에 모두 적용되며, 상대 호스트에 데이터를 실제로 전송하는 것은 맨 아래의 물리 계층이다. 물리 계층 위에 위치한 계층 프로토콜은 정해진 기능을 수행하기 위한 논리적인 통신을 하는 것이다.      




◎ 인터넷 계층구조


  ◆ 아래  그림은 FTP 프로그램을 이용하는 경우를 예로 들어 계층 구조를 설명한다. 인터넷에서는 IP(Internet Protocol)가 네트워크 계층의 기능을 수행하며, TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 전송 계층의 기능을 수행한다. 전송 계층 이하의 기능은 호스트의 운영체제에서 구현되며 FTP, 텔넷, 전자 메일 같은 응용 프로그램은 사용자 프로그램 환경에서 계층 5~7이 함께 구현된다.

FTP의 계층 구조

  ◆ 위에 그림과 같이 양쪽 호스트에는 동일한 기능을 하는 프로토콜 스택(Stack)이 각각 존재한다. 그림에 표시되진 않았지만 호스트 사이에는 중개 기능을 수행하는 라우터가 존재한다. 인터넷에서는 IP 프로토콜이 중개 기능을 하므로 라우터에는 계층 3까지의 기능이 구현되어 있다.

  ◆ FTP 클라이언트가 FTP 서버에 데이터를 전송하려면 먼저 하위의 TCP에 데이터를 보내야 한다. TCP로 보내진 데이터는 IP 프로토콜과 LAN 카드를 거쳐서 FTP 서버가 위치하는 호스트에 전달된다. 서버 호스트에 도착한 데이터는 송신 순서의 반대인 LAN 카드, IP, TCP를 거쳐서 FTP 서버 프로그램에 도착한다. 




◎ 인터 네트워킹


  ◆ 네트워크와 네트워크의 연결을 인터네트워킹(Internetworking)이라 한다. 연결하는 네트워크 수가 증가할수록 복잡도가 커진다. 인터넷은 IP 프로토콜을 지원하는 전 세계의 모든 네트워크가 연결된 시스템을 의미하며, 라우터라는 중개 장비를 사용해 네트워크를 연결한다.  


  ◼︎ 네트워크의 연결

아래 그림처럼 서로 독립적으로 운영되는 두 네트워크가 연동되어 정보를 교환하려면, 이를 적절히 연결하여 데이터를 중개할 수 있는 인터네트워킹 시스템이 필요하다. 여기서 네트워크가 연동한다는 의미는 물리적인 연결뿐만 아니라, 데이터 중개에 필요한 상위 통신 프로토콜을 모두 지원함을 뜻한다.

인터네트워킹


인터네트워킹 시스템에 의해 연결된 두 네트워크는 물리적으로 같은 종류일 필요는 없다. 상위 계층 프로토콜이 지원하는 논리적 기능이 달라도 된다. 하지만 인터네트워킹 시스템은 양쪽 네트워크에 대한 서로 다른 물리적 · 기능적 인터페이스를 모두 지원해야 한다. 즉, [그림 1-7]에서 인터네트워킹 시스템의 왼쪽은 네트워크 1과 연동할 수 있고 오른쪽은 네트워크 2와 연동할 수 있어야 한다. 또한 이 과정에서 데이터 표현 방식을 포함해 프로토콜이 다르면 필요한 변환 작업을 수행해야 한다. 이렇게 인터네트워킹 시스템은 둘 이상의 네트워크를 유기적으로 연동할 수 있다.




◎ 게이트웨이


  ◆ 인터네트워킹 기능을 수행하는 시스템을 일반적으로 게이트웨이(Gateway)라 부른다. 게이트웨이는 기능에 따라 종류가 다양하지만 리피터, 브리지, 라우터 등이 가장 일반적인 구분이다.


  ◼︎ 리피터

    ▹ 리피터(Repeater)는 물리 계층의 기능을 지원한다. 물리적 신호는 전송 거리가 멀면 감쇄되기 때문에 중간에 이를 보완해 주어야 한다. 리피터는 한쪽에서 입력된 신호를 물리적으로 단순히 증폭하여 다른 쪽으로 중개하는 역할을 한다.


  ◼︎ 브리지

    ▹ 브리지(Bridge)는 리피터 기능에 데이터 링크 계층의 기능이 추가된 게이트웨이다.


  ◼︎ 라우터

    ▹ 라우터(Router)는 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원한다. 네트워크 계층은 경로 선택 기능을 제공해야 하므로 임의의 네트워크에서 들어온 데이터를 어느 네트워크로 전달할지 판단할 수 있어야 한다. 이를 지원하기 위하여 라우터는 자신과 연결된 네트워크와 호스트 정보를 유지하고 관리함으로써, 어떤 경로를 이용할 수 있고, 어떤 경로를 이용해야 빠르게 전송할 수 있는지를 판단한다. 이런 판단을 위한 정보는 일반적으로 라우팅 테이블(RoutingTable)에 보관한다.




◎ 프로토콜


  ◆ 프로토콜(Protocol)은 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙이다. OSI 7계층 모델에서는 각 계층에서 수행되는 프로토콜이 서로 독립적이라고 간주한다. 따라서 계층 1에는 계층 1끼리 통신할 수 있는 프로토콜이 존재하고, 계층 2에는 계층 2끼리 통신할 수 있는 프로토콜이 존재한다.  









브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari