본문 바로가기

Computer Science/네트워크

[쉽게 배우는 데이터 통신과 네트워크] CH1. 네트워크의 기초 용어와 기능

반응형
SMALL

01. 네트워크 관련 기초 용어

네트워크의 기초 용어를 알아본다.

 

1. 네트워크 기초 용어

네트워크의 구성

 

1.1 시스템 (System)

  • 내부 규칙에 따라 능동적으로 동작하는 대상
  • 시스템의 동작에 필요한 외부 입력이 있을 수 있고, 내부 정보와 외부 입력의 조합에 따른 출력이 있을 수 있다.
  • 작은 시스템이 여러 개 모여 더 큰 시스템을 구성할 수 있으므로 크기를 기준으로 시스템을 나누지는 않는다.

 

1.2 인터페이스 (Interface)

  • 시스템과 시스템을 연결하기 위한 표준화된 접근 방법
  • 인터페이스를 이용해 연결하는 시스템은 능력과 권한이 같은 경우도 있지만, 서로 서비스를 주고받는 상하 관계일 수도 있다.

 

1.3 전송 매체 (Transmission Media)

  • 시스템끼리 정해진 인터페이스를 연동해 데이터를 전달할 때 필요한 물리적인 전송 수단
  • 인터페이스는 시스템 간의 연동을 위한 논리적인 규격이고, 인터페이스에서 정해진 규칙은 매체를 통해 전송됨으로써 구현되고 동작된다.

 

1.4 프로토콜 (Protocol)

  • 상호 연동되는 시스템이 전송 매체를 통해 데이터를 교환할 때 따르는 표준화된 특정 규칙
  • 동등한 위치에 있는 시스템 사이의 규칙이다.
  • 인터페이스는 두 시스템이 연동하기 위한 특정한 접촉 지점을 의미하는 경우가 많지만, 프로토콜은 주고받는 정보의 형식과 그 과정에서 발생하는 일련의 절차적 순서에 무게를 둔다.

 

1.5 네트워크 (Network)

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

 

1.6 인터넷 (Internet)

  • 전 세계의 모든 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크
  • 데이터 전달 기능에 한하여 공통으로 IP 프로토콜을 사용한다.

 

1.7 표준화 (Standardization)

  • 서로 다른 시스템이 상호 연동하여 동작할 때 필요한 연동 형식의 통일

 


2. 시스템 기초 용어

2.1 시스템의 구분

네트워크 시스템은 수행 기능에 따라 다양한 명칭으로 부를 수 있다.

 

 

노드 (Node)

  • 인터넷에 연결된 시스템
  • 데이터를 주고받을 수 있는 모든 시스템

호스트 (Host)

  • 컴퓨팅 기능이 있는 시스템
  • 사용자가 네트워크에 접속하는 창구 역할을 한다.
  • 호스트를 세분할 때 호스트 사이에 제공되는 서비스를 기준으로 클라이언트와 서버로 나눌 수 있다.

클라이언트 (Client)

  • 서비스를 이용하는 시스템

서버 (Server)

  • 서비스를 제공하는 시스템
  • 클라이언트보다 먼저 실행 상태가 되어 클라이언트의 요청에 대기해야 한다.
  • 영원히 종료되지 않으면서 클라이언트의 요청이 있을 때마다 서비스를 반복해서 제공해야 한다.

 

2.2 클라이언트와 서버

클라이언트와 서버

  • FTP 서비스를 기준으로 하면 호스트 1이 클라이언트, 호스트 2는 서버가 된다.
  • 텔넷 서비스를 기준으로 하면 호스트 2가 클라이언트, 호스트 3은 서버가 된다.
  • 클라이언트와 서버는 서비스 이용의 상대적 위치에 따라 결정된다.

 


02. 네트워크의 기능

1. 계층 모델

ISO(국제 표준화 단체)에서 OSI 7계층 모델을 제안하여, 네트워크에 연결된 시스템이 갖추어야 할 기능을 상세히 정의하고 있다.

 

1.1 OSI 7계층 모델 소개

OSI 7계층 모델

  • 네트워크에 연결된 호스트들은 7개 계층으로 모듈화된 통신 기능을 갖추어야 한다.
  • 일반 사용자는 응용 계층을 통해 데이터의 송수신을 요청하고, 요청은 하위 계층에 순차적으로 전달되어 물리 계층을 통해 상대 호스트에게 전송된다.

 

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

물리 계층

  • 호스트를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 특성을 다룬다.

데이터 링크 계층

  • 물리적 전송 오류를 감지하는 기능을 제공해 송수신 호스트가 오류를 인지할 수 있도록 한다. (Ex. 데이터 분실, 데이터 변형)
  • 오류 제어(Error Control)는 송신자가 원래의 데이터를 재전송(Retransmission)하는 방식으로 처리한다.

네트워크 계층

  • 데이터가 올바른 경로를 선택할 수 있도록 한다.
  • 중개 시스템의 기능은 일반적으로 라우터가 수행한다.
  • 혼잡 제어(Congestion Control)를 담당한다.

전송 계층

  • 송/수신 프로세스 사이의 안전한 데이터 전송을 지원한다.
  • 데이터가 전송되는 최종적인 경로상의 양 끝단 사이의 연결이 완성되는 곳이다.
  • 계층 1~4의 기능은 운영체제에서 시스템 콜(System Call) 형태로 상위 계층에 제공하고, 계층 5~7의 기능은 사용자 프로그램으로 작성된다.

세션 계층

  • 세션 연결을 지원한다. (응용 환경에서 사용자 간의 대화 개념의 연결로 사용)
  • 전송 계층에서 제공하는 연결의 개념과 유사하지만, 더 상위의 논리적 연결이다.

표현 계층

  • 전송되는 데이터의 의미를 잃지 않도록 올바르게 표현하는 방법을 다룬다. (+암호화)
  • 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있게 한다.

응용 계층

  • 사용자를 위한 다양한 네트워크 응용 환경을 지원한다.

 

1.3 프로토콜과 인터페이스

인터페이스와 프로토콜

  • 각각의 계층은 정해진 방식과 절차에 따라 상대 계층과 통신하는데, 이 과정에서 필요한 규칙을 프로토콜이라 한다.
  • 상하위 계층 간에는 인터페이스라는 규칙이 존재하고, 하위 계층이 상위 계층에 제공하는 인터페이스를 서비스라고 부른다.

 

1.4 인터넷 계층 구조

FTP의 계층 구조

  • 인터넷에서는 IP가 네트워크 계층의 기능을, TCP와 UDP가 전송 계층의 기능을 수행한다.
  • 전송 계층 이하의 기능들은 호스트의 운영체제 내부에서 구현되며, 응용 프로그램은 사용자 프로그램 환경에서 계층 5~7이 합쳐서 구현된다.
  • 양쪽 호스트에는 동일한 기능을 수행하는 프로토콜 스택이 각각 존재한다.
    • 프로토콜 스택: 계층 구조로 이루어진 통신 프로토콜의 집합
  • FTP 클라이언트가 FTP 서버에 데이터를 전송하려면 먼저 하위의 TCP에 데이터를 보내야 한다. TCP로 보내진 데이터는 IP 프로토콜과 LAN 카드를 합쳐서 FTP 서버가 위치하는 호스트의 LAN 카드에 전달된다.서버 호스트에 도착한 데이터는 송신 순서의 반대인 LAN 카드, IP 프로토콜, TCP 프로토콜을 거쳐 FTP 서버 프로그램에 도착한다.

 


2. 인터네트워킹

  • 네트워크와 네트워크의 연결
  • 연결되는 네트워크 수가 증가할수록 복잡도가 커진다.

 

2.1 네트워크의 연결

인터네트워킹

  • 독립적으로 운영되는 두 네트워크가 정보를 교환하려면, 데이터를 중개할 수 있는 인티네트워킹 시스템이 필요하다.
  • 인터네트워킹 시스템은 양쪽 네트워크에 대하여 물리적이고 논리적인 인터페이스를 모두 지원해야 한다.
  • 인터네트워킹 시스템의 왼쪽은 네트워크 1과, 오른쪽은 네트워크 2와 연동할 수 있어야 한다.

 

2.2 게이트웨이

  • 인터네트워킹 기능을 수행하는 시스템

 

리피터 (Repeater)

  • 물리 계층의 기능을 지원한다.
  • 한쪽에서 입력된 신호를 물리적으로 단순히 증폭하여 다른 쪽으로 중개한다.

브리지 (Bridge)

  • 리피터 기능에 데이터 링크 계층의 기능이 추가된 것
  • 물리 계층에서 발생한 오류를 해결한다.

라우터 (Router)

  • 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원한다.
  • 자신과 연결된 네트워크와 호스트들의 정보를 유지, 관리함으로써 특정 경로가 이용 가능한지 여부와 다수의 경로 중에서 어느 경로가 빠른 데이터 전송을 지원하는지 판단할 수 있어야 한다.
  • 네트워크와 호스트에 대한 정보는 일반적으로 라우팅 테이블(Routing Table)에 보관된다.

 


3. 프로토콜

  • 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙

 

3.1 프로토콜의 예

전화 연결을 위한 규칙

  • 이러한 순서와 절차를 프로토콜이라 정의할 수 있다.

 

3.2 데이터 단위

  • 네트워크 프로토콜을 사용해 데이터를 교환할 때 데이터를 특정 형태로 규격화하는 작업이 필요하다.
데이터 단위 설명
APDU(Application Protocol Data Unit) 응용 계층에서 사용한다.
PPDU (Presentation Protocol Data Unit) 표현 계층에서 사용한다.
SPDU (Session Protocol Data Unit) 세션 계층에서 사용한다.
TPDU (Transport Protocol Data Unit) 전송 계층에서 사용된다.
TCP에서는 세그먼트(Segment), UDP에서는 데이터그램(Datagram)이라 부른다.
NPDU (Network Protocol Data Unit) 네트워크 계층에서 사용하며, 패킷(Packet)이라 부른다.
DPDU (Data Link Protocol Data Unit) 데이터 링크 계층에서 사용하며, 프레임(Frame)이라 부른다.
  • OSI 7계층 모델의 각 계층에서 규격화된 데이터는 표와 같이 고유 명칭이 있다.
  • 계층에 상관없이 사용할 때는 통칭하여 PDU(Protocol Data Unit)라 부른다.

 


03. 네트워크 주소의 표현

  • 시스템을 설계할 때는 기능이나 목적과 함께 고유의 구분자(Identifier)를 부여하는 방법에 대해 고려해야 한다.
  • 컴퓨터에서는 구분자를 숫자로 된 주소로 표현하고, 주소와 이름은 일대일(1:1) 관계가 이루어지며, 이들을 연결하는 기능이 필요하다.

 

유일성

  • 구분자의 가장 중요한 역할은 대상 시스템을 서로 구분하여 지칭하는 것이다.
  • 서로 다른 시스템이 같은 구분자를 갖지 않는 유일성을 보장해야 한다.

확장성

  • 시스템은 시간이 흐르면서 규모가 확장되고, 사용하는 구분자의 양도 증가된다.
  • 시스템의 최대 수용 규모를 예측하여 구분자의 최대 한계를 올바르게 설정해야 한다.

편리성

  • 시스템 내부 동작에 종속된 구분자의 주소 체계는 사용자가 쉽게 이해하기 어려우므로 기호로 된 이름을 추가로 부여한다.
  • 숫자로 된 주소와 문자로 된 이름을 모두 가지므로 이를 매핑(Mapping)하는 기능이 필요하다.

정보의 함축

  • 구분자는 응용 환경에 적절히 대응할 수 있는 정보를 포함해야 한다.

 

1. 주소와 이름

  • 시스템을 지칭하는 구분자는 내부에서 처리되는 숫자 기반의 주소(Address)와 함께 사용자의 이해와 편리성을 도모하는 기호로 이름(Name)을 제공한다.
  • 사용자는 이름만으로 시스템에 접근할 수 있어야 하고, 이름과 주소를 연결하는 방법은 시스템 내부적으로 처리되어야 한다.
  • 각 계층의 기능을 담당하는 프로토콜마다 주소를 독립적으로 관리한다.
    • IP 프로토콜은 호스트를 구분하기 위해 IP 주소를 사용한다.
    • 데이터 링크 계층에서는 LAN 카드별로 MAC 주소를 따로 부여한다.
    • TCP에서는 호스트에서 수행되는 네트워크 프로세스마다 별도의 포트(Port) 주소를 할당하고 관리한다.

 

1.1 IP 주소

  • 네트워크 계층의 기능을 수행하는 IP 프로토콜이 호스트를 구분하기 위하여 사용하는 주소 체계
  • 32비트의 이진 숫자로 구성되는데, 보통 8비트씩 4부분으로 나눠 십진수로 표현한다.

IP 주소의 표현

  • IP 주소로 표현할 수 있는 최대 주소 공간의 크기를 32비트로 제한함으로써 확장성에 많은 문제점이 야기되고 있다.
  • 이를 해결하기 위해 새로운 프로토콜인 IPv6(Internet Protocol Version 6)에서는 주소 표현 공간을 128비트로 확장했다.

라우터의 경로 선택

  • 임의의 호스트가 보낸 패킷이 중간의 라우터에 도착한 경우 이 패킷의 목적지 주소가 211.223.201.30이라면 네트워크1로 중개해야 한다.
  • 인터넷에서 IP 주소는 패킷의 경로를 결정하는 데 중요한 역할을 한다.

 

1.2 호스트 이름

호스트 이름과 IP 주소의 변환

  • 네트워크 계층의 IP 프로토콜은 호스트를 구분하는 용도로 IP 주소만 사용한다.
  • DNS(Domain Name System)로부터 이름과 주소 변환 기능을 이용해서 IP 주소를 얻어야 한다.
    • 호스트 이름을 국가 도메인, 단체 종류, 단체 이름, 호스트라는 4계층 구조로 나누고, 이들을 점(.)으로 구분해서 표기한다.
    • Ex. zebra.korea.co.kr : 대한민국(kr)에 있는 일반 회사(co) 중에서 korea라는 이름의 회사에 소속된 zebra라는 호스트
국가 도메인 해당 국가명
kr 한국
jp 일본
us 미국
  • 국가 도메인은 호스트가 위치한 국가의 이름을 2글자의 약자로 표시한다.
단체 종류 기관 성격
co 회사
ac 교육기관
go 정부 소속 기관
  • 단체 종류는 기관의 성격에 따라 부여한다.
  • 단체 이름은 보통 단체를 상징하는 이름을 사용한다.
  • 호스트는 소속 단체의 네트워크 관리자가 내부 규칙에 따라 개별 호스트에 부여한 이름을 사용한다.

 


2. 주소 정보의 관리

일반 사용자가 호스트를 지칭할 때 사용하는 호스트 이름을 도메인 이름(Domain Name)이라 하고, 인터넷에서는 이를 IP 주소로 변환하는 작업이 필요하다.

 

2.1 호스트 파일

  • 네트워크 응용 프로그램에서는 사용자가 입력한 호스트 이름을 호스트 파일에서 검색하여 일대일로 대응된 IP 주소 정보를 얻을 수 있다.
  • 호스트 파일은 한 줄에 하나의 호스트 정보가 기록되며, 일반 텍스트 문서 형식으로 보관된다.

호스트 파일의 복사

  • 네트워크 관리자는 관리 대상이 되는 모든 컴퓨터의 호스트 정보를 주기적으로 갱신하고, 이 정보를 네트워크에 있는 모든 컴퓨터가 복사하도록 함으로써 정보의 일관성을 유지해야 한다.
  • 네트워크 관리자가 white.korea.co.kr에서 호스트 정보를 갱신할 때 갱신 정보를 다른 4개의 호스트가 복사하여 저장하는 모습이다.

 

2.2 DNS

  • 전 세계 컴퓨터가 연결된 네트워크 환경에서는 호스트 파일에 의한 주소와 이름의 변환 작업이 사실상 불가능하다.
  • 이러한 문제를 해결하기 위한 DNS는 주소와 이름 정보를 자동으로 유지하고 관리하는 분산 데이터베이스 시스템이다.
  • 호스트 주소와 이름 정보는 네임 서버(Name Server)라는 특정한 관리 호스트가 유지하고, 주소 변환 작업이 필요한 클라이언트는 네임 서버에 요청해서 IP 주소를 얻는다.
  • DNS는 여러 네임 서버에 분산하여 관리하도록 설계되었다.
    • 계층 구조로 연결된 네임 서버는 사진이 관리하는 영역에 위치한 호스트 정보만 관리한다.
    • 정보를 상호 교환하는 협력 관계를 통해 전체 호스트 정보를 일관성 있게 유지한다.

 

2.3 기타 주소

네트워크에서 사용하는 주소는 사용 환경에 따라 다양하고, OSI 7계층 모델의 각 계층에서도 목적에 따라 여러 형태의 주소가 사용된다.

 

MAC 주소

  • 계층 2의 MAC(Medium Access Protocol) 계층에서 사용하고, 일반적으로 LAN 카드에 내장되어 있다.
  • 물리 계층을 통해 데이터를 전송할 때 MAC 주소를 이용해서 호스트를 구분한다.
  • 네트워크 계층에서 데이터 링크 계층으로 데이터를 전송할 때 먼저 IP 주소를 MAC 주소로 변환해야 한다.

IP 주소

  • 네트워크 계층의 기능을 수행하는 IP 프로토콜에서 사용되며, IP 패킷이 지나가는 경로를 결정하는 라우팅의 기준이 된다.

포트 주소

  • 전송 계층에서 사용하며, 호스트에서 실행되는 프로세스를 구분해준다.
  • TCP와 UDP가 독립적으로 포트 주소를 관리하며, 포트 번호 또는 소켓 주소라는 용어를 사용하기도 한다.

메일 주소

  • 응용 계층의 메일 시스템에서 사용자를 구분하려고 사용한다.
  • 사용자 이름과 호스트 이름을 @ 문자로 구분해 표기한다. (Ex. hong@korea.co.kr)

 


References

반응형
LIST