드디어 제 최약체인 네트워크를 공부할 시간이 왔습니다.
기대 반, 두려움 반의 기분이 교차하는데, 뭐 즐기는데까지 해보죠 !
원래 새로운 것을 배운다는건 설레잖아요 !
네트워크 기초 지식
네트워크란 무엇일까요 ?
- '컴퓨터와 컴퓨터를 통신 매체에 의해 연결되어서, 데이터를 운반하기 위한 것'입니다.
- 즉, '연결', '주고받기'가 네트워크입니다.
네트워크가 필요한 이유는 무엇일까요 ?
- 리소스 (컴퓨터와 사용자가 가진 데이터)를 다른 컴퓨터와 네트워크로 공유할 수 있기 때문에, 네트워크가 필요한 이유입니다.
- 예를 들어, 컴퓨터 한 대마다 프린터를 다 설치할 필요 없이, 네트워크로 프린터(리소스)를 공유할 수 있기 때문입니다.
데이터란 무엇일까요 ?
- 리소스를 공유하기 위해 컴퓨터가 가진 리소스를 주고받을 필요가 있고, 그래서 이루어 지는 것이 데이터 통신입니다.
- 데이터란 무언가에 대한 정보를 컴퓨터상에서 표현한 것을 말합니다.
- 이 정보는 비트로 구성이 되는데, 이게 바로 0이나 1이라는 정보입니다.
- 데이터 통신이 이루어지기 위해 각자 다른 컴퓨터를 연결하는 파이프가 있다고 한다면, 그 파이프의 접속구를 인터페이스라 부릅니다.
인터페이스 : 컴퓨터와 통신 매체의 중개를 담당하기 위한 전용기기 인터페이스, 컴퓨터가 가진 데이터를 파이프에 보내기 위한 기계
- 데이터를 보내기 이전에 데이터를 주고받기 위한 규칙을 정할 필요가 있습니다. 그 규칙을 프로토콜이라고 합니다. 주고 받는 컴퓨터 모두 같은 프로토콜을 사용해야합니다.
회선 교환, 패킷교환이란 무엇일까요?
- 서로 데이터를 통신하고 싶은 컴퓨터를 이어주기 위해서 각각 파이프를 가진다면, 수많은 파이프가 필요하기 때문에, 굉장히 비효율 적입니다. 그렇기 때문에 교환기를 사용해서 파이프를 교체해가는 방식인 회선 교환을 사용하여 해당 불편 사항을 해결합니다. (집 전화가 이와 같은 방법을 사용합니다.)
- 허나 회선 교환의 경우 이미 교환 중인 상대와는 데이터 통신을 할 수 없기 때문에, 단점이 존재하여 컴퓨터가 송수신하는데 적합한 방법이 아닙니다. 그렇기 때문에, 패킷 교환이란 방법을 사용하여 데이터 통신을 진행합니다. (어렸을 때, 2G폰의 그 패킷)
- 패킷 교환 방식은 송신하고 싶은 데이터를 한 번에 보내지 않고 여럿으로 분할해서 송신하는 겁니다. 데이터를 나눠서 보내니 회선을 점유하는 시간이 짧아지고, 복수의 컴퓨터가 회선을 공유할 수 있는 장점이 있습니다. 즉, 한 개의 회선만 사용하여 복수의 컴퓨터를 연결할 수 있다는 점이 좋죠. 송수신 데이터는 수신처가 같이 포함되고 패킷이 보내지면서 섞여도 각 수신처에 도달할 수 있습니다.
통신에 필요한 기기엔 무엇이 있을까요?
- 컴퓨터 네트워크에서는 패킷 교환이 주로 사용되는데, 이 패킷 교환 네트워크에서 필요한 기기가 있습니다.
- 데이터를 송수신하는 컴퓨터
- 통신 매체와 인터페이스
- 패킷 교환기, 실제 네트워크에서는 라우터라는 기기가 패킷 교환기 역할을 합니다.
멀티액세스 네트워크와 포인트 투 포인트 네트워크가 무엇일까요?
- 여러 개의 컴퓨터가 케이블 분배기로 연결되는 범위를 세그먼트(Segment)라고 합니다. 이 세그먼트 범위 내에 있는 컴퓨터는 패킷 교환없이 직접 데이터를 송수신할 수 있습니다.
- 허나 직접 T자 분배기를 끼우는 작업은 귀찮기 때문에, 허브(Hub)라는 기기를 사용합니다. 이 허브를 사용한 네트워크에서는 컴퓨터 한 대가 세그먼트 내의 어떤 컴퓨터에도 자유롭게 데이터를 송신할 수 있습니다. 이런 네트워크 구조를 멀티액세스 네트워크라고 합니다.
- 액세스란 컴퓨터가 다른 컴퓨터에 데이터를 송신할 수 있다는 의미입니다. 즉, 복수의 컴퓨터에 의한 데이터 송수신이 가능하기 때문에 '멀티액세스 네트워크'라고 말합니다.
- 이와 반대로 컴퓨터 한 대가 한 대의 컴퓨터에만 데이터를 보내는 방식을 포인트 투 포인트 네트워크라고 합니다. 보통 라우터와 라우터를 연결할 때 이런 구조를 띕니다.
- 이 두 종류를 조합해서 패킷 교환 네트워크가 만들어집니다.
LAN과 WAN이 무엇일까요?
- 멀티액세스 네트워크, 포인트 투 포인트 네트워크 경우엔 네트워크를 구조 면에서 분류한 것입니다. 그것과 달리 '네트워크의 범위나 규모'로 네트워크를 분류한 것이 있는데, 이를 LAN과 WAN으로 나눌 수 있습니다.
- LAN(Local Area Network)란 구내에 설치된 네트워크입니다. (구내 : 학교, 가정, 사무실, 빌딩 등) 랜의 경우엔 사용하는 쪽에서 책임지고 케이블, 라우터를 설치 및 배치하여 네트워크를 형성합니다. 때문에 자유로울 수 있습니다.
- WAN(Wide Area Network)란 통신 사업자에게 그들이 보유하고 있는 케이블에 데이터를 전송할 권리를 구입해서 네트워크를 구축하는 것입니다. A 대학, B 대학이 각각 LAN을 활용하다가 서로 리소스를 공유해야하는 경우가 생겼을 때, 다른 이들의 소유지를 침범하면서 까지 케이블을 연결할 수 없기에, 이와 같이 SK, KT, LG 등의 기업을 이용해서 케이블을 이용하는 것입니다. 즉, 떨어져 있는 지역의 LAN끼리 통신사업자의 통신 케이블을 빌려서 연결한 네트워크가 WAN입니다.
- '인터넷'이 세계적 규모의 WAN의 대표라고 할 수 있습니다.
OSI 참조 모델이란?
- 옛날엔 회사마다 규격이 달라서 프로토콜이 맞지 않아 서로 호환이 되지 않은 불편함이 있었습니다. 그렇기 때문에 국제표준화기구(ISO)라는 단체가 표준화하려고 했지만.... 결국 실패했답니다.
- 아무튼 이 ISO 표준화 단계에서 선언한 것이 OSI 참조 모델이란 건데 데이터 통신의 단계 구성도입니다. 간단히 말하면 데이터 통신을 단계로 나누어 각 단계의 순서를 명확히하고, 이 모델에 따라 프로토콜을 정의해서 데이터 통신을 구축하려고 했습니다.
- 허나 OSI 참조 모델은 데이터 통신을 설명하는 데 아주 유용합니다. 표준화가 실패한 지금도 이를 이용해서 설명하는 경우가 많습니다.
OSI 참조 모델
- OSI 참조 모델은 데이터 통신을 7개의 단계로 나눕니다. 이 단계를 계층(Layer: 레이어)라고 부릅니다. 데이터를 수신하는 측에서는 1계층 층부터 7계층까지 순서대로 각 역할을 수행함으로써 데이터를 수신할 수 있게 됩니다. 송신 측에서는 이를 반대로 수행합니다.
- OSI 참조 모델이라는 설계도를 따라서 프로토콜이 만들어지는 이 과정은 계층이 각각 독립되어 있다는 장점을 가지고 있습니다. 우편 배달부는 편지를 어떻게 배송할지만 고민하지, 편지가 어떻게 생겼는지는 고민하지 않잖아요?? 그런 것과 같습니다.
- 어떤 계층의 프로토콜 변경은 다른 계층에 영향을 끼치지 않는다라는 장점이 있고 하위 계층은 상위 계층을 위해서 일하고 상위 계층은 하위 계층에 관여하지 않는다. 라는 점을 이해하고 있으면 됩니다. (7계층 -> 1계층, 상위 계층 -> 하위 계층)
순서의 흐름
- 송신측에서는 7계층에서 1계층의 순서로, 수신측에서는 1계층에서 7계층의 순서대로 이행하게 됩니다.
- 택배를 예로 들면, 물건을 상자에 넣고, 송장을 붙히고, 택배를 배송하면, 수신인은 택배를 받고, 송장을 뜯고, 물건을 꺼내게 되겠죠. 이처럼 반대의 순서를 가집니다.
- 허나, 데이터 통신을 하기 데이터 이외에 다른 것도 필요합니다. 바로 데이터랑 함께 보내는 주소 가튼 것들인데요. 이렇게 데이터랑 데이터를 보내기 위해 필요한 것들이 통합된 상태를 프로토콜 데이터 유닛(Protocol Data Unit:PDU)라고 합니다. (택배를 보낼 때, 물건을 동봉하고 송장을 붙힌 택배 상자라고 생각하시면 됩니다)
- 계층이라는 단계가 실시할 때마다 거기에서 필요한 정보를 추가할 수 있습니다. 위에서 설명한 부분이 5 ~ 7 계층에 해당하는 부분입니다.
- 각 계층에서는 PDU 호칭이 존재합니다. 4계층의 제어정보를 덧붙이면, 세그먼트 또는 데이터그램이라는 PDU 호칭이 되고, 3계층의 제어정보를 덧붙이면, 데이터그램이라고 부릅니다. 즉, 4계층 PDU = 세그먼트 또는 데이터그램이라고 부를 수 있습니다.
- 이렇게 데이터에 제어정보를 덧붙여서 PDU로 완성하는 것을 캡슐화라고 합니다. 수신한 쪽에서는 이 캡슐을 벗기는거구요.
- 캡슐화에서 추가되는 제어 데이터를 앞에 붙이면 헤더(Header), 뒤에 붙이면 꼬리부(Trailer)라고 부릅니다. 이렇게 데이터에 7계층 헤더가 붙어서 메시지, 메시지에 4계층 헤더가 붙어서 세그먼트 또는 데이터그램이 됩니다.
프로토콜이란?
- OSI 참조 모델이라는 '단계와 순서의 설계도'에 따라 7개의 계층을 순서대로 순서대로 실시해서 데이터 통신이 실행된다고 했었고, 7개의 계층을 수행함으로써 데이터는 캡슐화 되어서 데이터 통신이 된다고 했습니다.
- 이번엔 프로토콜을 얘기해보려 합니다. 앞서 말했듯이 데이터 통신에 필요한 프로토콜은 한 개가 아니라 복수의 프로토콜로 이루어집니다. OSI 참조 모델의 계층마다 각 계층의 역할을 하는 프로토콜이 존재해야하니까요.
- 그렇다고 너무 독립적이면 상하 계층이 연결이 안되니 문제가 생깁니다. 그래서 상위 계층 프로토콜이 하위 계층 프로토콜을 이용할 수 있는 구조를 가지고, 하위 계층 프로토콜이 상위 계층 프로토콜에 데이터를 전송할 수 있는 구조를 가질 필요가 있는데, 이를 인터페이스라는 구조라 합니다.
- 이 전에 앞서 인터페이스는 케이블하고 컴퓨터의 중개역이라 햇지만, 이도 맞습니다. 허나 프로토콜하고 프로토콜의 중개역을 인터페이스라고도 합니다. 이렇게 상하 프로토콜에서 인터페이스를 결정해 둘 필요가 생기면서 프로토콜 그룹이 형성됩니다.
- 데이터 통신은 같은 프로토콜 그룹(프로토콜 군)을 사용하는 컴퓨터나 기기끼리만 가능합니다.
프로토콜이 결정하는 것
- 데이터 사용 방법 (예를 들어 10진수로 읽을지 2진수로 읽을 지), 어떤 헤더를 붙일지를 결정하는 것을이 프로토콜 역할입니다.
예)
1. 데이터의 내용을 결정
RETR: 상대의 파일을 보내 달라는 명령 / net.doc: 원하는 파일명을 가지고 아래와 같이 작성할 수 있다.
즉, 명령을 쓰는 법, 명령 다음에 파일명을 쓰고, 사용하는 문자 코드 이와 같은 것을 프로토콜이 결정한다.
RETR net.doc
2. 헤더를 결정
수신처의 주소 | 자신의 주소 | 데이터의 내용을 표시하는 코드 | 데이터의 우선도 | 데이터
주소나 코드 등에 몇 비트를 사용할건지, 배열하는 순서, 코드 및 우선도 비트가 나타내는 의미 등을 프로토콜이 결정합니다.
또한, 프로토콜은 데이터를 송수신하는 순서와 내용을 결정합니다.
- 데이터를 보내도 될까요?
- 네 보내도 됩니다.
- 첫 번째 데이터 보냈습니다.
- 네 받았고요. 다음 거 주세요.
- 두 번째거 보냈습니다. 이게 마지막이에요.
- 네. 감사합니다.
이러한 순서도 프로토콜이 결정합니다.
- 결과적으로 '데이터의 내용을 결정'하고, '헤더를 결정'하고, '송수신 순서를 결정'하는 것이 프로토콜입니다.
- 데이터 통신을 하는 컴퓨터와 기기는 동일한 프로토콜 그룹을 사용해야 합니다. 이를 통일하려한 것이 ISO인데, OSI 표준 프로토콜 그룹입니다. 허나 실패했죠.
- 이를 대신에 가장 많이 사용되는 것이 TCP/IP 프로토콜그룹이고요. 이는 인터넷에서 사용되는 프로토콜그룹입니다.
- 근데, 솔직히 컴퓨터 쓰면 거의 인터넷 쓰니까 TCP/IP 프로토콜 그룹이 '표준' 프로토콜 그룹이 되어버렸죠.
TCP/IP 모델
- TCP/IP 모델의 경우 IETF(The Internet Engineering Task Force)라는 단체가 지정했습니다. (이름 간지 쩐당;;;)
- 여기서 제정하는 문서를 RFC(Request For Comments)라고 부르는데 이게 규격이 됩니다. (이건 이름이 왜이래...) RFC에 의해 정해진 것이 TCP/IP 프로토콜 그룹이고 이를 TCP/IP 모델이 베이스가 된 것입니다.
- OSI 참조 모델이라는 '단계와 순서의 설계도'에 따라 OSI 표준 프로토콜 그룹이 정해진 것처럼 TCP/IP 모델에서 TCP/IP 프로토콜 그룹이 만들어졌습니다.
- TCP/IP의 경우엔 4계층을 가지는데, '데이터 통신'이라는 관점에서 생각할 때, OSI의 7 ~ 5계층을 TCP/IP의 4계층을 담당하고, OSI의 2 ~ 1 계층을 TCP/IP의 1계층이 차지합니다. (이해하기 쉽게 이렇게 비유하는 거지 실제론 관계가 없습니다)
- TCP/IP 프로토콜 그룹의 경우 다양한 프로토콜이 제정되어있습니다. 대표적으로 HTTP가 있죠.
- TCP/IP 프로토콜 그룹이 이름이 지어진 이유는 3계층에서 TCP, 2계층에서 IP 프로토콜을 이용하기 때문에 이러한 이름이 지어졌습니다.
요약
1. 네트워크란 무언가와 무언가가 무언가에 의해 연결되어서 무언가를 운반하며, 리소스를 공유한다.
2. 회로 교환, 패킷 교환, 멀티액세스 네트워크, 포인트 투 포인트 네트워크, LAN, WAN을 공부했습니다. 이는 네트워크를 어떻게 구축해 갈지를 요약하는 내용이 됩니다.
3. OSI 참조 모델하고 캡슐화, 프로토콜에 대해서 공부했습니다. OSI 참조 모델이라는 설계도에 따라 '프로토콜'이라는 규칙이 정해지고 이에 따라서 데이터 통신이 실행됩니다.
4. 파이프, 기기에 의한 '구축', 모델과 프로토콜에 의한 '순서' 이들이 없다면 네트워크가 동작하지 않습니다.
5. 프로토콜은 통신을 실시하기 위한 규칙으로 계층마다 그 역할을 하는 프로토콜이 존재합니다. 모델과 일치하는 복수의 프로토콜을 프로토콜 그룹이라고 부립니다.
6. 캡술화는 각 계층에서 상위 계층에서 오는 데이터에 그 역할을 수행하기 위해 필요한 제어정보를 추가해가는 것을 말합니다. 이것의 경우 프로토콜로 결정되어 있습니다.
7계층 : 사용자에게 네트워크 서비스를 제공합니다.
6계층 : 데이터의 형식을 결정합니다.
5계층 : 데이터를 주고받는 순서 등을 관리합니다.
여기까지 내용표현을 담당합니다.
4계층 : 신뢰성이 높은 전송을 합니다.
3계층 : 전송 규칙이나 수신처를 결정합니다.
여기까지 전송물을 관리합니다.
2계층 : 인접 기기에 대한 데이터 전송을 제어합니다.
1계층 : 전기, 기계적인 부분의 전송을 실시합니다.
여기까지 전송을 담당합니다.
이상 네트워크 (1) - 네트워크 기초 지식였습니다. ^_^