네트워크
네트워크는 데이터를 교환하는 시스템의 모음이다. 데이터를 교환하려면 데이터를 이동시킬 전송매체가 필요하다. 시스템은 데이터를 처리하지만 전송매체는 신호를 처리된다. 서로 다른 환경이므로 시스템과 전송매체 사이에는 조율을 담당할 구역이 필요하다. 그것이 인터페이스다. 우리가 잘 아는 LAN카드는 Network Interface Card로 인터페이스 역할을 담당하다. RS-232C, USB도 인터페이스에 해당한다. 네크워크의 일부를 나타내면 아래와 같다.
시스템
일반적으로 데이터를 주고 받을 수 있는 시스템을 노드(Node)라고 한다. 데이터를 주고 받는 기능과 더불어, 컴퓨팅 기능(연산기능)도 있는 노드를 호스트(Host)라고 한다. 호스트에는 클라이언트와 서버가 있다. 클라이언트는 서비스를 제공받는 시스템이고 서버는 서비스를 제공하는 시스템이다. 클라이언트와 서버의 용어는 상대적이여서, 서버가 서비스를 받으면 클라이언트가 될 수 있다. 데이터를 단순히 스위칭하거나 라우팅하는 장비는 호스트라고 부르지 않는다.
프로토콜
연결이 되어 있다고 통신이 가능한 것은 아니다. 몇 비트씩 보낼건지, 오류는 어떻게 체크할 것인지, 1번째 ~ 4번째 비트는 무엇을 의미하는지와 같이 1과 0으로 전송되는 데이터가 각각 무엇을 의미하는지를 시스템끼리 서로 '약속'을 해야한다. 그것이 프로토콜이다. 프로토콜은 주고받는 정보의 형식과 그 과정에서 발생하는 일련의 절차적 순서를 의미한다.
시스템끼리 서로 연동되어 통신이 이루어지려면 모두가 인정하는 방식으로 프로토콜이 구성되어야 한다. 이를 표준화라고 한다. 프로토콜은 전송된 데이터가 의미하는 바를 서로 약속한 것이므로 계층마다 다른 프로토콜이 적용된다. 물리계층은 비트단위의 데이터를 프레임단위로 구분하여 전송한다.
각 계층에 도달하면 해당 계층의 프로토콜은 계층에 속하는 헤더를 프로토콜을 통해 해석한다. 2계층 HDLC 프로토콜은 2계층 헤더와 2계층 꼬리를 갖고 작업하고 라우터는 IP 프로토콜을 통해 3계층 헤더를 해석한다. 이렇듯 각 계층은 계층에 맞는 프로토콜이 준비되어 있다. 그러므로 프로토콜은 송신측과 수신측의 서로 동등한 계층에서 개별적이고 논리적인 통신이 이루어지도록 한다.
그러므로 데이터는 100101.. 이런 데이터지만 계층마다 부르는 이름이 다르다. 보통 총괄하여 PDU(Protocol Data Unit)이라 부른다.
1계층 : bit
2계층 : DPDU (DataLink Protocol Data Unit) , 프레임(Frame)
3계층 : NPDU (Network Protocol Data Unit) , 패킷(Packet)
4계층 : TPDU (Transport Protocol Data Unit), 세그먼트(Segement,TCP) , 데이터 그램 (Datagram, UDP)
5계층 : SPDU (Session Protocol Data Unit), 서비스
6계층 : PPDU (Presentation Protocol Data Unit), 서비스
7계층 : APDU (Application Protocol Data Unit), 서비스
인터페이스와 서비스
사용자가 주로 컴퓨터를 이용하는 계층은 OSI 7계층이다. 메일이나 인터넷, 파일공유를 위해 소프트웨어를 사용하는 것은 7계층의 일이다. 하지만 실제로 7계층에서 만들어진 정보를 주고 받는 역할은 아래 계층의 담당이다. 우리는 편지를 쓸 뿐이지 편지 배달은 우체국이 하는 것과 같은 원리이다.
상위계층은 하위계층에게 서비스(작업)를 '요청'(Request)한다. 하위계층은 상위계층에게 서비스를 '제공'(Response)한다. 이런 요청과 제공은 중간의 인터페이스(Interface)에서 이루어진다. 편지를 누군가에게 보내려면 우체국이나 우체통에 가야하는 것처럼 말이다. 코드에는 대표적으로 printf가 있다. 코드를 실행하던 중 printf를 만나면 OS와 만난다. 그리고 OS에게 원하는 데이터를 출력시키도록 요청(Request)한다. OS는 화면에 데이터를 출력한다.(Response)
인터네트워킹
네트워크(LAN)와 네트워크(LAN)의 연결을 인터네트워킹이라고 한다. 인터넷은 IP프로토콜을 지원하는 전 세계의 모든 네트쿼크가 연결된 시스템을 의미한다. 라우터라는 중개장비를 사용하여 네트워크를 연결한다. 네트워크 연결의 의미는 물리적 연결뿐만이 아니라 데이터 중개에 필요한 통신프로토콜들이 모두 지원됨을 뜻한다.
게이트 웨이
인터네트워킹을 수행하는 시스템을 게이트웨이라고 부른다.
1. 리피터
1계층 물리계층을 지원하는 장비로 거리가 길수록 감쇄되는 신호를 키워주는 역할을 한다. 단순한 증폭기능으로 중개 역할을 한다.
2. 브릿지
리피터 기능에 오류해결기능이 추가되어 2계층을 지원하는 장비이다.
3.라우터
라우터는 라우팅테이블에 라우터들의 정보와 호스트정보까지 저장되어 있어 라우터에 들어 온 데이터를 어느 경로로 전달할지 판단할 수 있다. 3계층 헤더에 저장되어있는 IP주소를 활용하므로 3계층을 지원하는 장비이다.
IP주소
시스템을 설계할 때, 대상을 구분할 수 있도록 하는 것을 구분자(Identifier)라고 부른다. 컴퓨터에서는 주소가 구분자의 역할을 한다. 구분자에는 네 가지 특징이 있다.
1. 유일성
네트워크 안에서 유일해야한다. IP주소는 유일성이 보장되어야 하므로 국제표준화기구(ISO)에서 IP를 생성하고 할당한다.
2.확장성
이용자가 증가할 것이므로 확장성에 염두를 해야한다. 32bit의 IPv4의 주소는 인터넷의 확정성을 예상하지 못했다가 주소가 부족해지는 일이 발생했다. 그래서 128bit인 IPv6가 등장했다.
3. 편리성
IP주소는 시스템 내부에서 동작하므로 시스템 내부모듈에 최적화가 되어야한다. 그러므로 IP주소는 인간이 이해할 수 없는 컴퓨터에 종속된 주소가 되었다. 그래서 호스트 이름이 등장하였다. IP주소와 호스트 주소는 1대1로 매핑된다.
일반사용자가 7계층에서 프로그램을 사용할때는 호스트이름을 사용한다. 그러므로 우선 호스트 이름에 해당하는 IP주소를 알아야 한다. 네트워크 계층에 있는 라우터는 호스트 이름은 모르고 IP주소를 알기 때문이다. 그래서 먼저 DNS서버와 통신을 하여 IP주소를 파악한 후, 원래 목적의 통신을 한다.
호스트 이름은 [ 호스트명:단체명:단체종류:단체국가 ] 이렇게 나뉜다. Naver라는 시스템 안에는 여러 개의 호스트를 가진다. blog, search,kin(지식인) 등등. 블로그 호스트는 blog.naver.com, 검색호스트는 search.naver.com, 지식인 호스트는 kin.naver.com이다. blog, search, kin은 호스트명, naver.com은 도메인 명이라 부른다.
옛날에는 네트워크 관리자가 호스트 파일을 관리했다. 호스트명과 IP주소를 1대1로 매핑한 파일을 관리한다. 그리고 네트워크에 연결된 각각의 PC는 네트워크 관리자가 관리하는 호스트파일을 복사해서 개인 PC에 저장해서 사용했다. 하지만 인터넷이 성장하면서 이런 수작업은 더 이상 불가능해졌다. 그래서 호스트 이름과 IP주소를 변환할 수 있게 해주는 분산데이터베이스 시스템이 DNS(Domain Name Server)가 고안되었다.
4. 정보의 함축
IP주소는 IP가 가리키는 대상의 정보를 함축하고 있어야한다. IP주소는 네트워크 주소와 호스트 주소로 나뉜다. 라우터는 IP주소의 네트워크 주소를 통해 데이터를 적절한 경로에 있는 라우터에 전달한다.
참고자료
'CS > NETWORK' 카테고리의 다른 글
TCP/IP 모델 (0) | 2021.06.21 |
---|---|
OSI 7계층 기본 정리 (0) | 2021.06.21 |
다중화기(Multiplexer) (0) | 2021.06.21 |
시그널 기본 용어 (0) | 2021.06.21 |
시그널 변환 (0) | 2021.06.21 |