티스토리 뷰

/* 본 포스팅은 한빛미디어의 '쉽게 배우는 데이터 통신과 컴퓨터 네트워크 | 박기현 저'를 참고하여 작성되었음을 미리 알려드립니다. */


 시스템을 설계할 때는 기능이나 목적과 함께 구분자(Identifier)를 부여하는 방법을 가장 먼저 고려해야 한다. 디지털화된 컴퓨터에서는 구분자를 숫자로 된 주소로 표현할 수밖에 없다. 그러나 이런 주소 표현 방식은 일반 사용자에게 불편하므로 보통 외우기 쉬운 기호 형식의 이름을 추가로 부여한다. 주소와 이름은 일대일 관계가 이루어지며, 이들을 연결하는 기능이 필요하다. 대상을 유일하게 구별하는 구분자는 일반적으로 아래 네 가지 특징이 있다.

  • 유일성: 구분자의 가장 중요한 역할은 대상 시스템을 서로 구분하여 지칭하는 것이다. 따라서 서로 다른 시스템이 같은 구분자를 갖지 않는 유일성을 보장해야 한다. // 유일성이 보장되지 않는다면 구분자라 부를 수 조차 없는 것이다. 구분할 수가 없으니까.

  • 확장성: 시스템은 활용의 보편화가 진행되면서 자연스럽게 확장 과정을 거친다. 따라서 사용하는 구분자의 양도 증가한다. 시스템의 최대 수용 규모를 예측하여 구분자의 최대 한계를 올바르게 설정하지 않으면, 표현할 수 있는 공간의 크기가 제한되어 시스템의 확장성도 제한된다.

    /* 실제로 IP 주소는 원래 32비트의 이진 숫자로 구성되어 있었는데, 인터넷 사용자가 급격히 많아짐에 따라 주소 표현 공간을 128비트로 확장했다. */

  • 편리성: 일반적으로 시스템의 설계 과정에서 부여되는 구분자는 시스템의 내부 처리 구조를 효율적으로 운용할 수 있도록 해준다. 컴퓨터 시스템은 내부적으로 숫자 기반으로 처리되기 때문에 구분자의 체계도 숫자 위주다. 또 배치, 검색 등을 원활하게 수행하기 위해 보통 일반인이 의미를 이해할 수 없는 형식이다.
     이처럼 시스템 내부 동작에 종속된 구분자 주소 체계는 사용자가 의미를 파악하기 어렵기 때문에 기호로 된 이름을 추가로 부여해야 한다. 따라서 하나의 시스템이 숫자로 된 주소와 문자로 된 이름을 모두 가지므로 이를 매핑(Mapping)하는 기능이 필요하다. // 110101010010111010 과 같이 되어 있는 데이터는 확실하게 사람이 해석하기 난해한 구조로 되어 있다. 따라서 이름을 추가로 부여하는 것이고, 후에는 이 이름과 본래 담겨 있는 수를 매칭, 매핑 해주는 작업이 필요한 것이다.

  • 정보의 함축: 구분자는 응용 환경에 필요한 다양한 정보를 포함하는 경우가 많다. 예를 들어, 주민번호에는 생년월일, 성별 구분 등의 의미가 부여되어 있다. 집주소도 광역시부터 시작해 지역을 소규모로 분할하는 구조를 가져 위치를 쉽게 가늠할 수 있다. 이처럼 구분자는 응용 환경에 적절히 대응할 수 있는 정보를 포함해야 한다.



# 주소와 이름


 시스템을 지칭하는 구분자는 내부적으로 처리, 관리되는 숫자 기반의 주소(Address)와 사용자의 이해와 편리성을 도모하는 기호로 된 이름(Name)을 함께 제공해야 한다. 일반 사용자는 내부 주소를 몰라도 이름만으로 시스템에 접근할 수 있어야 하며, 이름과 주소를 연결하는 방법은 내부적으로 처리되어야 한다. // 우리가 1101010101010 과 같은 이진주소를 다 알아서 사용할 필요가 없다는 뜻이다. 애초에 그렇게 시스템을 설계하면 이는 편리성의 원칙을 완전히 무시한 꼴이 된다.


 네트워크 규모가 작아 관리하는 시스템이 작으면 간단한 형식의 주소와 이름을 사용할 수 있다. 따라서 주소와 이름을 관리하는 시스템도 그리 복잡하지 않다. 그러나 관리 대상이 많아지면 주소와 이름 공간도 커지고, 이를 관리하는 시스템의 기능도 복잡해진다. // 그렇기에 설계할 때 더욱 주의를 기울여야 한다. 유일성의 원칙이 깨지지 않으면서 확장성과 편리성의 극대화를 이루는 설계를 지향하자.


 네트워크에는 여러 종류의 주소와 이름이 존재한다. 각 계층의 기능을 담당하는 프로토콜마다 주소를 별도로 관리하기 때문이다. 예를 들어, IP 프로토콜은 호스트를 구분하기 위하여 IP 주소를 사용하며, 데이터 링크 계층에서는 LAN 카드별로 MAC 주소를 따로 부여한다. 전송 계층을 수행하는 TCP에서는 호스트에서 수행되는 네트워크 프로세스마다 별도의 포트(Port)주소를 할당하고 관리한다.



# IP 주소


 IP 주소(IP Address)는 네트워크 계층의 기능을 수행하는 IP 프로토콜이 호스트를 구분하려고 사용하는 주소 체계다. 임의의 호스트를 인터넷에 연결하려면 반드시 IP 주소를 할당받아야 한다. IP 주소는 32비트 이진 숫자로 구성되는데, 보통 8비트씩 네 부분으로 나누어 십진수로 표현한다. // 11010011(211) 11011111(223) 11001001(201) 00011110(30) -> 211.223.201.30 

 

 IP 주소는 유일성을 보장하기 위해 국제 표준화 기구에서 전체 주소를 관리하고 할당해 중복 주소의 사용을 원천적으로 차단한다. IP 프로토콜이 처음 개발될 당시에는 현재처럼 폭넓게 활용되리라 예측하지 못했다. 따라서 IP 주소로 표현할 수 있는 최대 주소 공간의 크기를 32비트로 제한함으로써 확장성에 많은 문제점이 야기되고 있다. 이를 해결하려고 새로운 프로토콜 IPv6(Internet Protocol Version 6)에서는 주소 표현 공간을 128비트로 확장했다. 그리고 현재의 IP 프로토콜은 IPv6과 구분하기 위해 IPv4로 표현한다.


 IP 주소는 임의로 할당되는 것이 아니라 어떤 규칙에 따라 인접한 숫자를 그룹으로 묶어 관리한다. 따라서 경로 선택 시 IP 주소를 중요한 기준으로 활용할 수 있다. IP 주소를 보고 라우터는 어디로 패킷(데이터)을 보내야 하는지 경로를 설정할 수 있다. // 예를 들어 211.223.201.0 ~ 211.223.201.30 은 전산실에서 사용한다 등 네트워크를 관리하는 학교별 단체별 자기들끼리 정한 규칙이 있을 것이다. 이러한 정보를 이용하면 인접한 곳에 데이터를 보낼 때 어떤 경로를 이용하는 것이 효율적인지 등의 판단을 내리기 훨씬 수월하다는 의미다.



# 호스트 이름


 인터넷에서 특정 호스트와 연결하려면 반드시 호스트의 IP 주소를 알아야 한다. 그런데 숫자로 된 IP 주소는 기억하기 힘들어 보통 의미 파악이 쉬운 문자로 된 호스트 이름을 사용한다.


 아래 그림은 일반 사용자가 문자로 된 호스트 이름을 사용하였을 때 IP 주소로 변환되는 과정을 보여준다.

맨 밑에 있는 네트워크 계층의 IP 프로토콜에서는 호스트를 구분하려고 IP 주소만 사용한다. // 컴퓨터에게 필요한 건 문자가 아니라 오로지 숫자이기 때문에.

그에 비해 일반 사용자는 IP 주소 대신 문자로 된 호스트 이름을 사용하기 때문에 중간 계층에서 이를 변환하는 기능을 수행해야 한다. 일반적으로 FTP, 텔넷 같은 네트워크 응용 프로그램은 실행시 사용자에게 호스트 이름을 명령어 인수로 입력받는다.


따라서 가장 먼저 수행해야 할 작업은 이름과 주소 변환 기능인 DNS(Domain Name System)를 이용하여 IP 주소를 얻는 것이다. DNS에서는 호스트 이름을 국가 도메인, 단체 종류, 단체 이름, 호스트라는 네 계층 구조로 나누고, 이들을 점(.)으로 구분해 표기한다. 예를 들어, reddevil.koteam.co.kr과 같은 호스트 이름은 대한민국(kr)에 있는 일반 회사(co) 중에서 koteam라는 회사에 소속된 reddevil라는 호스트다.


<호스트> . <단체 이름> . <단체 종류> . <국가 도메인>


 국가 도메인은 호스트가 위치한 국가의 이름을 두 글자의 약자로 표시한다. 한국은 kr, 일본은 jp로 나라마다 고유한 국가 도메인이 존재한다. 단체 종류는 해당 단체의 성격에 따라 부여된다. co(company)는 회사, ac(academy)는 교육 기관, go(government)는 정부 소속 기관이다.


 단체 이름은 단체를 상징하는 이름을 사용한다. 회사의 경우는 회사명을, 학교의 경우는 학교 이름을 사용한다. 마지막으로 호스트는 소속 단체의 네트워크 관리자가 내부 규칙에 따라 부여한 이름을 사용한다. // 내부 규칙을 따랐다는 말은 그 단체 안에서의 룰을 적용시켰다는 의미일 뿐이다. 회사나 단체에서 어떤 의사결정을 함에 있어 아무 생각도 없이 호스트 이름을 만들지는 않을 것이니 각 회사별 단체별 규칙을 따랐다는 것을 서술한 것이다.  

'Develop Story > Network' 카테고리의 다른 글

오류 제어  (0) 2017.10.25
<인터네트워킹(Internetworking)과 프로토콜(Protocol)>  (0) 2017.09.20
<OSI 7계층 모델의 계층별 기능>  (0) 2017.09.13
<시스템 기초 용어>  (0) 2017.09.13
<네트워크 기초 용어>  (0) 2017.09.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday