네트워크 기초
- 네트워크는 전송매체로 서로 연결해 데이터를 교환하는 시스템의 모음이다
시스템(System)
-
내부 규칙에 따라 능동적으로 동작하는 대상.
자동차, 커피 자판기, 컴퓨터, 마이크로 프로세서, 하드디스크 등의 물리적 대상뿐만 아니라 신호등의 운영시스
템, 운영체제, 프로세스 또한 논리적인 대상도 시스템이 될 수 있다.
인터페이스(Interface)
-
시스템과 시스템을 연결하기 위해 표준화된 접근 방법. 인터페이스를 이용해 연결하는 시스템은 능력과 권한
이 같은 경우도 있지만 서비스를 주고 받는 상하 관계일 수도 있다.
전송 매체(Transmission Media)
- 시스템끼리 정해진 인터페이스를 연동해 데이터를 전달하려면 물리적인 전송 수단인 전송 매체가 있어야 한다. 동축 케이블, 공기, 무선 신호 등 다양한 전송 매체가 있다.
프로토콜(Protocol)
-
상호 연결되는 시스템이 전송 매체를 통해 데이터를 교환할 때 필요한 특정 규칙
-
일반적으로 주종 관계가 아닌 동등한 위치에 있는 시스템 사이의 규칙이다
인터페이스의 경우 두 시스템이 연동하기 위한 특정한 접촉 지점(Access point)을 의미하는 경우가 많지만,
프로토콜은 주고받는 정보의 형식과 과정에서 발생하는 일련의 절차적 순서에 무게를 둔다.
네트워크(network)
- 통신용 매체를 공유하는 여러 시스템이 프로토콜을 사용하여 데이터를 주고받을 때 이들을 하나의 단위로 통칭하여 네트워크라고 칭한다.
- 소규모 네트워크가 모여 더 큰 네트워크를 구성할 수 있는데, 네트워크끼리는 라우터라는 중개 장비를 사용해 연결한다.
인터넷(Internet)
-
전 세계 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크
-
인터넷으로 연결된 시스템, 인터페이스, 전송매체, 프로토콜 등은 종류가 다양하지만,
데이터 전달 기능에 한해서는 공통적으로 IP(Internet Protocol) 프로토콜을 사용한다.
Internet Protocol의 약자이지만 고유명사화되어있으므로 보통 IP 프로토콜이라 부른다.
시스템의 구분
- 노드(Node)
- 인터넷에 연결된 시스템을 가장 일반화한 용어. 데이터를 주고받을 수 있는 모든 시스템을 통칭.
- 호스트(Host)
- 컴퓨팅 기능이 있는 시스템. 일반 사용자가 응용프로그램을 실행할 수 있어 사용자가 네트워크에 접속하는 창구 역할을 함
- 클라이언트(Client)
- 서비스를 요청하는 시스템.
- 호스트는 다양한 서비스를 서로 주고받기 때문에 임의의 호스트가 클라이언트나 서버로 고정되지 않음.
- 서비스의 종류에 따라 클라이언트가 될 수 있고, 서버가 될 수도 있음.
- 서버(Server)
- 서비스를 주고받는 호스트들의 관계에서 특정 서비스를 제공하는 시스템.
- 일반적으로 서버는 클라이언트보다 먼저 실행상태가 되어 클라이언트의 요청에 대기해야함.
- 영원히 종료하지 않으면서 클라이언트의 요청이 있을 때마다 서비스를 반복해서 제공해야 함.
OSI 7 Layer
- 네트워크에 연결된 호스트는 7개 계층으로 모듈화된 통신 기능을 갖추어야 한다.
- 일반 사용자는 OSI 7계층 맨 위에 있는 응용계층을 통해 데이터의 송수신을 요청하며, 이 요청은 하위 계층으로 순차적으로 전달됭되어 맨 아래에 있는 물리 계층을 통해 상대 호스트에게 전송된다.
- 요청이 각 계층으로 하달되는 과정에서 계층별로 담당하는 기능을 수행해 데이터를 안전하게 전달함.
- OSI 7계층 모델의 각 계층에서 규격화된 데이터는 고유 명칭이 있다. 계층에 상관없이 사용할 때는 통칭하여 PDU(Protocol Data Unit)이라 부른다.
1. 물리계층(Physical Layer)
- 호스트를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 특성을 다룸.
- 현실 세계에서 컴퓨터간 연결해주는 물리적인 전선. TF Cable, UTP Cable, 동축케이블 등
- 전송 매체(개별 정보의 bit 교환 문제를 다룸)의 물리적 인터페이스에 관한 사항 기술.
- 전송 매체의 특성에는 데이터의 전송 속도, 송수신 호스트 사이의 클록 동기화 방법, 물리적 연결 형태 등이 있음.
2. 데이터 링크 계층(Data Link Layer)
- 물리적 전송 오류를 감지하는 기능을 제공해 송수신 호스트가 오류를 인지할 수 있게 해줌. 결과적으로 상위 네트워크 계층에 신뢰성 있는 패킷 전송을 보장함.
- 스위치(허브) 기기 사용.
- 데이터가 도착하지 못하는 데이터 분실과 데이터가 깨져서 도착하는 데이터 변형이 있음. 오류제어(Error Control)를 통해 송신자가 원 데이터를 재전송하는 방법으로 처리할 수 있다.
-
DPDU(DataLink Data Unit): 데이터링크 계층에서 사용하는 데이터의 단위. 보통 프레임(Frame)이라고 부름.
- 프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소 기록.
- 다른 상위 계층처럼 송신 호스트와 수신 호스트 사이의 전송 속도 차이를 고려한 흐름 제어 기능 지원.
3. 네트워크 계층(Network Layer)
-
송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지 결정하는 라우팅 문제 처리.
-
전달 경로 선택 방식
- 미리 정해지는 정적(Static) 방식
- 네트워크의 현재 부하 상태에 따라 결정되는 동적(Dynamic) 방식
-
일반적으로 라우터(Router)가 중개 기능 수행
-
네트워크 부하 증가시 특정 지역에 혼잡(Congestion)이 발생할 수 있는데, 이것도 데이터의 전송 경로와 관계가 있으므로 네트워크 계층이 제어함
-
NPDU(Network Protocol Data Unit): 네트워크 계층에서 사용하는 데이터 단위.
보통 패킷(Packet)이라 부르며 중개 과정에서 경로 선택의 기준이 되는 호스트의 주
소 필요. 인터넷에서는 호스트의 IP 주소가 경로 선택에 중요한 기준이 됨.
-
인터넷에 연결된 호스트는 네트워크 계층과 데이터링크 계층의 주소 모두 가지게 됨.
4. 전송(전달) 계층(Transport Layer)
-
송신 프로세스와 수신 프로세스를 직접 연결하는 단대단(End-to-ENd) 통신기능 제공
-
물리계층~전송계층까지의 기능은 운영체제에서 시스템콜 형태로 상위 계층에 제공하며, 나머지 계층은 사용자 프로그램으로 작성된다.
-
전송 오류율, 전송 속도와 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름제어기능 제공
-
TPDU(Transport Protocol Data Unit): 전송 계층에서 사용하는 데이터 단위.
TCP에서는 세그먼트(Segment), UDP에서는 데이터그램(Datagram)이라 부른다.
5. 세션 계층(Session Layer)
- 전송 계층과 유사, but 사용자에게 원격 파일 전송이나 원격 로그인 등과 같은 세션기능 제공.
- 응용 환경에서의 사용자간의 대화(Dialog) 개념의 연결로 사용.
- 토큰 제어, 일시적 전송 장애를 해결하기 위한 동기(Synchronization)기능 등 제공.
6. 표현 계층(Presentation Layer)
- 데이터의 의미와 표현 방법 처리
- 통신 양단에서 서로 이해할 수 있는 표준 방식으로 데이터를 코딩하는 문제를 다룸
- 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있도록 해주는 역할을 함.
- 주요 기능은 압축과 암호화
- 동영상과 같은 멀티미디어 데이터를 압축해 전송 데이터의 양을 줄일 수 있음
- 암호화는 외부의 침입자로부터 데이터를 안전하게 보호하하는 기능으로 사용됨
- PPDU(Presentation Protocol Data Unit): 표현계층에서 사용하는 데이터 단위
7. 응용 계층(Application Layer)
- 사용자의 다양한 네트워크 응용 환경 지원. 한 분야에 한정되지 않고 매우 광범위함.
- 대표적으로 FTP, 가상터미널, 전자메일이 포함됨.
- APDU(Applicition Protocol Data Unit): 응용 계층에서 사용하는 데이터 단위
프로토콜과 인터페이스
-
호스트끼리 통신하는 과정에서는 각 계층의 모듈이 상대 호스트의 동일 계층과 개별적으로 논리적 통신을 수행해야 한다.
예를 들어, 한 호스트의 계층 n 모듈은 상대 호스트의 계층 n 모듈과 통신한다. 각 계층은 정해진 방식으로 통신하는데, 이 과정에서 필요한 규칙이 프로토콜이다.
-
호스트의 계층 사이에는 인터페이스라는 규칙이 존재하고, 하위 계층에서 상위 계층에 제공하는 인터페이스를 서비스라고 부른다.
인터넷 계층 구조
-
인터넷에서는 IP가 네트워크 계층 기능을 수행하며, TCP와 UDP는 전송 계층의 기능을 수행함.
-
전송 계층 이하의 기능은 호스트의 운영체제에서 구현되며,
FTP, 텔넷, 전자메일 같은 응용프로그램은 사용자프로그램 환경에서 계층 5~7이 함께 구현된다.
-
위 그림에서, FTP 클라이언트가 FTP 서버에 데이터 전송을 하려면 먼저 하위의 TCP에 데이터를 보내야 한다. TCP로 보내진 데이터는 IP 프로토콜과 LAN카드를 거쳐 FTP서버가 위치하는 호스트에 전달된다. 서버 호스트에 도착한 데이터는 송신 순서의 반대인 LAN 카드, IP, TCP를 거쳐서 FTP 서버 프로그램에 도착한다.
인터네트워킹(InterNetworking)
-
네트워크와 네트워크의 연결을 인터네트워킹이라 한다.
-
연결하는 네트워크 수가 증가할수록 복잡도가 커진다.
-
서로 독립적으로 운영되는 두 네트워크가 연동되어 정보를 교환하려면, 이를 적절히 연결하여 데이터를 중개할 수 있는 인터네트워킹 시스템이 필요하다.
이 때의 연동은, 두 네트워크간의 물리적인 연결뿐만 아니라, 데이터 중개에 필요한 상위 통신 프로토콜을 모두 지원함을 뜻한다.
게이트웨이(Gateway)
인터네트워킹 기능을 수행하는 시스템을 일반적으로 게이트웨이라 부른다
1. 리피터(Repeater)
- 물리 계층의 기능 지원
- 물리적 신호는 전송 거리가 멀면 감쇄되기 때문에 중간에 이를 보완해주어야함.
- 한쪽에서 입력된 신호를 단순 물리적으로 증폭하여 다른 쪽으로 중개해줌.
2. 브리지(Bridge)
- 리피터 기능에 데이터링크 계층의 기능이 추가된 게이트웨이
3. 라우터(Router)
- 물리 계층, 데이터링크 계층, 네트워크 계층 기능 지원
- 네트워크 계층은 경로 선택 기능을 제공하므로 라우터는 자신과 연결된 호스트 정보를 유지하고 관리함으로써, 어떤 경로를 이용할 수 있고, 어떤 경로를 이용해야 빠르게 전송할 수 있는지 판단한다. 이런 판단을 위한 정보는 일반적으로 라우팅 테이블에 보관된다.
DNS 서비스
-
인터넷을 이용할 때 사용자는 외우기 어려운 IP주소를 입력하기엔 불편하다.
외우기 쉽고 알기 쉬운 도메인 이름을 사용하게 된다.
네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP주소로 변환시켜주는 서비스라고 표현할 수 있다.
요약
-
네트워크는 시스템, 인터페이스, 전송 매체, 프로토콜, 네트워크, 인터넷 같은 용어로 표현하는 구성 요소를 갖는다.
-
네트워크는 시스템과 공유 전송 매체의 집합으로 구성되며, 표준화된 프로토콜을 사용해 서로 데이터를 교환한다.
-
국제 표준화 단체인 ISO에서는 네트워크를 위한 OSI 7계층 모델을 제시하였다. OSI 7계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 구성되어 있다.
-
인터넷은 IP 프로토콜을 사용해 네트워크 계층의 기능을 수행하고, 전송 계층에서는 TCP와 UDP를 사용해 데이터를 전송한다.
-
네트워크와 네트워크를 연결하려면 인터네트워킹 기능을 수행하는 게이트웨이가 필요하다. 게이트웨이에는 리피터, 브리지, 라우터 등이 있다.
-
OSI 7계층 모델의 각 계층에서 사용하는 데이터에는 별도의 명칭이 존재한다. 특별히 네트워크 계층에서는 패킷, 데이터 링크 계층에서는 프레임이라는 용어를 사용한다.
-
호스트를 구분하는 구분자에는 유일성, 확장성, 편리성, 함축성이라는 특징이 있다.
-
인터넷에 연결된 네트워크 호스트에는 IP 주소와 호스트 이름이라는 두 개의 구분자가 있고, DNS를 이용해 이들을 맵핑한다. DNS는 입력된 호스트 이름을 IP 주소로 변환하는 분산 데이터베이스 시스템이다.
-
호스트 주소에는 호스트 이름, IP 주소, MAC 주소 등이 있다. 호스트에서 실행되는 프로그램은 포트 주소를 사용해 구분한다.