IT 이론/Network

[네트워크][개념]3.네트워크 모델(OSI 7 Layer model, tcp/ip model)

desmort68 2018. 8. 4. 17:56
  인터넷을 할 때 우리는 보통 브라우저를 사용한다. 브라우저를 접속해서 주소창에 www.google.com 이라고 치면 구글의 깔끔한 홈페이지가 뜬다. 여기에 궁금한 것을 치면 다양한 정보가 뜬다. 신기한 마법같지만 슬프게도 세상에 마법은 없다. 적어도 컴퓨터 세상에서는 말이다. 우리가 브라우저를 열고 www.google.com을 쳤을 때 세 가지 작용이 일어난다.

1. 우리 컴퓨터가 DNS Query를 DNS 서버에 보내게 된다.
2. DNS 서버에서 알게 된 IP로 정보 전송을 요구한다.
3. 컴퓨터가 정보를 받고 브라우저가 이를 화면에 출력한다

 이 세 가지를 모두 이해하면 인터넷이 어떻게 작동하는지 제대로 알고 있는 것이다. 자부심을 가지자.
 그렇지만 이 글에서 모든 걸 쓸 수는 없다. 이 글에서는 1번의 과정만을 살펴보겠다.

  DNS는 Domain Name System으로 쉽게 말하면 숫자로 된 주소를 이해하기 쉽도록 문자 주소로 바꿔주는 것이다. 현재 인터넷이 작동하는 데 하나의 축으로 작용하는 시스템이다. 그래서 www.google.com이라는 문자 주소의 숫자 주소가 어딘지 DNS 서버에 물어보게 된다. 그러면 질문(Query)은 데이터 형태로 DNS 서버로 가게 된다. 

 그러면 단순히 질문만 보내면 될까? 일상 생활에 비유해 생각해보자. 서울에 있는 A가 부산에 있는 B에게 안부를 묻는다고 하자. 전화를 사용하거나 편지를 쓰거나 아니면 이메일을 보내는 어떠한 경우에도 주소가 필요하고 이를 전달해주는 매체(전화기, 우체국, 컴퓨터)가 필요하다. 이러한 매체를 다르게 보면 하나의 약속이나 규약이라고 할 수 있다. 핸드폰의 전화번호 형식, 편지에서 우편주소를 쓰는 형식, 이메일의 주소를 쓰는 형식 등 각 매체에서는 자기만의 방식을 약속하고 이러한 약속을 기반으로 통신이 이루어진다. 

 인터넷도 데이터들을 옮겨주는 매체가 필요하다. 인터넷에서 통신을 위해 정해놓은 프로토콜(약속/규약, Protocol)들을 Internet Protocol Suite(인터넷 프로토콜 모음)라고 한다. 이러한 모음 안에서 인터넷 통신에서 자주 사용하는 프로토콜이 tcp/ip이기 때문에 tcp/ip protocol suite라고 부르기도 한다. 이렇게 통신이 일어나는 절차를 각 기능별로 모듈화시켜 만들어 놓은 구조를 네트워크 모델(Network Model)이라고 한다. 가장 표준화된 모델은 국제 표준화 기구(ISO, International Organization for Standardization)에서는 OSI 7 layer(Open System Interconnection)라는 모델이다. (세상에 모든 프로토콜을 설명할 수 있는 모델이다). 기능별로 표준화를 시켜 놓은 이유는 눈으로 보이지 않는 데이터의 흐름을 파악하고 트러블 슈팅(Trouble shooting, 문제 해결)을 쉽게 만들며 장비간 혼합(Router의 경우 A사를, Switch의 경우 B사를 쓰는 경우)에도 문제가 생기지 않게 하기 위함이다.


아래 표는 OSI 7 Layer와 tcp/ip model이다. tcp/ip model의 경우 계층을 나눌 때 다양한 주체에 따라 계층의 수가 달라진다. 자세하게 알고 싶은 사람은 이 주소(https://en.wikipedia.org/wiki/Internet_protocol_suite)를 참조하자.


OSI 7 Layer: Network 안에서 통신이 가능하게 만드는 요소들을 7개의 계층을 나눠 표현한 것이다.

 Layer 7 (Application)

 -응용 서비스 수행, 사용자의 명령을 받아주는 계층

-Protocol: HTTP, FTP, Telnet, SSH, DNS, DHCP


 Layer 6 (Presentation)

 코드 번역을 담당, 상위 계층에서 만들어진 데이터의 형태 표현

-인코딩, 암호화 등의 동작

-포장/압축/암호화

 Layer 5 (Session)

 양 끝단 응용 프로세스가 통신을 관리하기 위한 방법 제공

-통신을 하기 위한 세션을 확립/유지/중단 (OS가 관리)

 Layer 4 (Transport)

-Port 주소를 사용

-상위 계층 신뢰성 있는 데이터 주고 받을 수 있도록 해준다

-오류 검출 및 복구와 흐름제어, 중복 검사 수행

-Protocol: TCP/UDP

 Layer 3 (Network)

-Device(장비):

  -Router/L3 Switch: Routing & Switching, IP주소 구분

-출발지와 목적지의 주소(논리적 주소)를 통해 종단 간 연결을 보장한다.

-기능: 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking)

-Protocol: ICMP, IP, ARP

 Layer 2 (Data Link)


-Device(장비):

  -Bridge/Switch: Switching, MAC 주소 구분

  -NIC(Network Interface Card)


 -MAC(Media Access Control) 주소를 이용한다.

 

-신뢰성있는 전송을 보장하기 위한 계층

-기능: CRC 기반의 오류 제어와 흐름 제어, 물리 계층에서 발생할 수 있는          오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공

-특징: 에러검출/재전송/흐름제어, 프레임에 주소 부여(MAC 주소)



-Protocol: 

   -LAN일 경우: Ethernet

   -WAN일 경우: HDLC, PPP


 ** CRC(cyclic redundancy check)

 순환 중복 검사. 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다

-- Layer 1 (Physical)


 기본적인 하드웨어(물리적인 장비) 연결 계층이다. 비트 형태의 신호에 패턴을 부여하여 전기적 신호로 변경

 

-Device(장비):

   -Cable(전선): 규칙, 규격, 꼬임수, 깊이 등에 따라 종류가 달라진다

   -Repeater/Hub: 신호재생, 거리연장에 사용

 -OSI 아키텍처 중 가장 복잡한 계층


 -개인적인 의견:

 -신호를 전달해주는 역할이라고 생각했다. 필터링 기능이나 세부 목록 확인 같은게 없으니까. 물건을 올리면 그냥 전달해주는 컨베이어 벨트 같은 느낌? 그렇지만 가장 복잡하다고 한다. 왜 그럴까? 컴퓨터에서 만들어지는 데이터는 기본적으로 0과1인 비트 형태의 신호이다. 이를 멀리까지 보내야 하기 때문에 변환이 필요하다. 그래서 가장 복잡하다고 하는 것 같다. 관련 자료를 올리면 링크를 걸겠다.


<챰고: https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C_%EC%8A%A4%EC%9C%84%ED%8A%B8>

<참고:  https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95 >







자, 그러면 저번 글에서 이야기했던 L2,L3,L4 Switch를 대충 짐작할 수 있지 않을까? L2 Switch는 Layer 2까지 기능이 존재한다는 것이다. L3 Switch의 경우 Layer1+2+3의 기능을 제공하고 L4의 경우 Layer1+2+3+4 의 기능을 제공한다는 말이다. TCP/IP model에서는 왜 세 개의 계층을 한꺼번에 취급하는지에 대해서는 https://en.wikipedia.org/wiki/Internet_protocol_suite 이곳으로 들어가 Application layer 부분을 읽자. 영어가 어려운 분들은 구글 번역을 이용해 번역해서 읽자. 이해가 안 되는 부분은 댓글을 남겨주시면 제가 이해하는 한에서 답장을 하도록 하겠습니다.


<참조: http://www.rcy.co.kr/xeb/tool/6962 => OSI 7 Layer의 자세한 도식과 프로토콜이 궁금하면 참조하면 좋다>