'전체 글'에 해당되는 글 32건

OSI 7계층이란?

네트워크 2020. 1. 29. 12:09

OSI(Open System Interconnection) 7 계층이란 국제 표준화 기구인 ISO(International Standard Organization)가 확립한 개방화된 데이터 통신 환경에서 사용하는 계층적 구현 모델의 표준이다. 굳이 7계층으로 나눈 이유는 과정을 단계별로 알아보기 쉽고 흐름을 제어하기도 쉬우며 문제 발생 시 해당되는 계층만 해결하면 되기 때문이다. 그리고 각 계층별로 표준화를 했기 때문에 각각 다른 장비를 써도 되기 때문에 호환성 문제도 탁월하다.

 

OSI 7계층 구성도

다음은 OSI 7 계층의 7개의 계층을 하나씩 알아보기로 하자.

 

▶ 물리 계층(Physical Layer)

  • 전송 매체의 물리적 인터페이스에 관한 사항을 기술하고, 하드웨어 시스템이나 케이블, 연결 장치 등 전송에 필요한 두 장치 간의 실제 기계적, 전기적 특성에 대한 규칙들을 정의합니다

  • 전송 단위 : 비트(bit)

  • 장비 및 프로토콜 : RS-232, 허브, 리피터 등

▶ 데이터 링크 계층(Data Link Layer)

  • 하위 계층인 물리 계층에서 전송되는 데이터의 오류 검출 및 회복을 위한 오류 제어 기능을 수행한다. 이로 인하여 상위 계층인 네트워크 계층에 신뢰성 있는 패킷 전송을 보장해 전송 오류의 부담을 줄어준다. 또한 송신 호스트와 수신 호스트 사이의 전송 속도 차이를 고려하여 흐름 제어 기능도 수행한다. 그리고 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능도 수행한다.

  • 전송 단위 : 프레임(Frame)

  • 장비 및 프로토콜 : 이더넷, MAC, 브릿지, 스위치

▶ 네트워크 계층(Network Layer)

  • 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는 지를 결정하는 라우팅 문제를 처리한다. 전반적인 경로 설정과 시작점에서 목적지까지 데이터가 도착하는지에 대한 책임을 가진다. IP 주소를 기준으로 경로를 설정하며 종류에 따라 정적(Static) 방식, 동적(Dynamic) 방식으로 나뉜다. 그리고 네트워크의 트래픽이 과도하게 증가하는 문제를 조절하는 혼잡 제어 기능도 담당한다.

  • 전송 단위 : 패킷(Packet)

  • 장비 및 프로토콜 : IP, ICMP, 라우터, L3 스위치

▶ 전송 계층(Transport Layer)

  • 송수신 프로세스를 직접 연결하는 단대단(End-to-End) 통신 기능을 제공하고 패킷의 유무, 에러 등 신뢰성있는 통신을 보장한다. 하위 계층은 호스트와 호스트 사이의 문제를 해결하지만 전송 계층은 더 포괄적인 통신 당사자와 당사자 사이의 통신 문제를 다룬다. 그리고 주소 설정, 오류 및 흐름 제어, 다중화 등을 수행한다.

  • 전송 단위 : 세그먼트(segment)

  • 장비 및 프로토콜 : TCP, UDP, 게이트웨이, L4 스위치

▶ 세션 계층(Session Layer)

  • 전송 계층과 유사하게 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시송수신(Duplex) 방식, 반이중(Half-Duplex) 방식, 전이중(Full-Duplex) 방식들을 사용하고 포트 번호를 기반으로 연결한다. 그리고 송수신 호스트 사이의 토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기(Synchronization)기능 등을 제공한다.

  • 프로토콜 : NetBIOS, SSH, TLS

▶ 표현 계층(Presentation Layer)

  • 데이터의 의미와 표현 방법을 처리하며 상위 계층의 데이터를 하위 계층에서 통신에 적합한 형태로 변환하고 반대로 하위 계층의 데이터를 상위 계층에 맞게 변환해준다. 코드 변환, 구문 검색, 데이터 압축 및 암호화 등의 기능을 제공한다. 쉽게 말하면 우리가 눈으로 볼 수 있게 데이터를 변환해주는 기능을 제공한다.

  • 프로토콜 : JPG, MPEG, SMB, AFP

▶ 응용 계층(Application Layer)

  • 최상위 계층으로 응용 프로세스와 직접 관계하여 응용 서비스를 수행한다. 응용 프로세스 간의 정보 교환, 전자메일, 파일전송 등의 서비스를 제공한다.

  • 프로토콜 : DNS, FTP HTTP

다음 장에서는 각각의 프로토콜들에 대해서 더 자세히 알아보도록 하겠다.

'네트워크' 카테고리의 다른 글

TCP vs UDP  (2) 2020.01.29
PaaS(Platform as a Service)란?  (2) 2020.01.07
클라우드 서비스란?  (2) 2020.01.06
블로그 이미지

Mr.HB

프로그래밍 이야기

,

 PaaS(Platform as a Service)IaaS(Infrastructure as a Service)보다 확장된 개념으로 기존 IaaS에서 수행하던 서버 설비와 관련된 모든 벡엔드 작업들을 PaaS에서는 자동으로 이루어져서 개발자가 오로지 코딩과 자신의 환경에만 집중할 수 있도록 해주는 것이 핵심이다. 예전 미들웨어와 비슷한 성격을 가졌지만 미들웨어보다 훨씬 발전된 형태로 볼 수 있다.

 

 - 미들웨어와 PaaS의 차이점

 미들웨어는 개발자에게 트랜젝션, 보안, 클러스터링 등의 세부적인 기능을 제공하는 소프트웨어 계층이다. 물론 개발자에게 최적의 작업환경을 제공해주지만 여러 벡엔드 작업과 모니터링해야 한다는 측면에서 "정적인" 소프트웨어이다. 하지만 PaaS는 이러한 측면까지 모두 제공하고 관리해주는 장점이 있다.

 

 - PaaS 주요 업체

 대표적인 PaaS 업체로는 아마존, MS, 구글 IBM, 세일즈포스닷컴, 레드햇, 오라클 등등이 있으며 특히 아마존 같은 경우는 AWS(Amazon web service)인 IaaS를 기반으로 PaaS를 제공하여 AWS 람다, AWS 일랙스틱 빈스토크를 서비스하고 있다. 그 외에도 구글 앱 엔진, 에저 앱 서비스, 레드햇 오픈시프트 등이 서비스하고 있다.

AWS 람다(Lamda) : 이벤트 주도형 서버리스 컴퓨팅 플랫폼으로, 기업의 코드를 이벤트에 대응해 실행하고, 코드에 필요한 컴퓨팅 자원을 자동으로 관리한다. AWS 람다는 FaaS 개념을 활성화시킨 주역으로, FaaS란 용어보다 먼저 생겨났다.

애저 앱 서비스(Azure App Service) : 마이크로소프트의 애저 앱 서비스는 완전 관리형 PaaS로, 애저 웹 사이트와 모바일 서비스, 비즈토크 서비스를 하나의 서비스로 통합했다. 또한 온프레미스와 클라우드 시스템 간의 통합도 제공한다.

 

 - PaaS의 부정적 측면

 클라우드 기반 서비스인 만큼 제일 대표적인 위험이 보안위험이다. 클라우드는 여러 사람이 공용으로 사용하는 것이 목표이다 보니까 보안에 조금 더 취약할 수밖에 없다. 하지만 PaaS는 개인(혹은 단체)이 관리하는 게 아니라 전문업체에서 관리해주기 때문에 더욱이 보안이 철저하고 관리측면에서 더 꼼꼼하기 때문에 이러한 문제를 해결하기 위한 대책들이 많이 마련되고 예방하고 있다. 그리고 또 다른 문제는 호환성의 문제가 있는데 A라는 PaaS에서 작업을 하고 있다가 B라는 PaaS로 옮겼을 때 호환이 잘 안될수 있다는 점이다. 이러한 문제도 해결해 나가야 하는 점이다.

 

 - PaaS의 미래적 측면

 현재 자바 PaaS 전문업체인 클라우드비스(CloudBees)의 설립자 겸 CEO인 사샤 라보리는 2020년 정도가 되면 워크로드의 80%가 퍼블릭 클라우드에서 처리될 것이라고 한다. 그리고 사용자는 두 가지 경우 중 하나를 선택하게 되는데

첫번째는 내 문제를 해결할 앱이 존재하는가? yes -> SaaS 이용하여 문제해결

두번째는 내 문제를 해결할 앱이 존재하는가? no -> PaaS 이용하여 원하는 앱 구축

 이러한 문제해결에 있어서 PaaS뿐만 아니라 클라우드 서비스 자체의 측면이 미래에는 더 발전될 가능성이 높다고 본다.

 

<참조문서 : http://www.itworld.co.kr/news/80349?page=0,0 >

'네트워크' 카테고리의 다른 글

TCP vs UDP  (2) 2020.01.29
OSI 7계층이란?  (0) 2020.01.29
클라우드 서비스란?  (2) 2020.01.06
블로그 이미지

Mr.HB

프로그래밍 이야기

,

 클라우드 서비스클라우드 컴퓨팅 기술을 사용하여 제공하는 서비스를 일컫는다. 여기서 말하는 클라우드 컴퓨팅이란 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다.

 우리가 하늘에서 자주 볼 수 있는 구름(클라우드)에서 연상된 것으로 언제 어디서든 자유롭게 자료를 저장 및 백업하거나 응용프로그램을 이용하여 원하는 작업도 할 수 있게 해준다.

클라우드 컴퓨팅 서비스 개념도 <출처: 스마트과학관 - 국립중앙과학관>

클라우드 컴퓨팅은 유형에 맞게 3가지로 크게 나뉘어진다. 이 3가지에 대해 알아보자.

 

폐쇄형 클라우드(private cloud)

  • 프라이빗 클라우드는 단일 비즈니스 또는 조직에서 독점적으로 사용되는 클라우드 컴퓨팅 리소스를 의미한다. 단일이 아니라 회사 규모 혹은 비즈니스 환경에서 쓰이며 자체 운영 데이터 센터로 기타 자산들은 주기적으로 갱신되어야 하기 때문에 추가적인 자본 비용이 든다. 사용자(단체 혹은 회사)가 지속적으로 관리, 유지보수 등을 해야 하기 때문에 클라우드 컴퓨팅의 장점 부각이 힘들다.

▶ 개방형 클라우드(public cloud)

  • 퍼블릭 클라우드는 공개적 이용을 위해 열린 네트워크를 통해 렌더링되는 클라우드이다. 공용 클라우드 중 하나로 모든 하드웨어, 소프트웨어 및 기타 지원 인프라를 클라우드 공급자가 소유하고 관리한다. 사용자는 일정 비용만 지불하고 서비스를 이용하고 계정을 관리한다. 이에 해당하는 서비스는 MS Azure, AWS 등이 있다.

▶ 혼합형 클라우드(hybrid cloud)

  • 하이브리드 클라우드는 위의 두 유형이 적절히 혼합된 유형으로 데이터 및 애플리케이션을 프라이빗 클라우드와 퍼블릭 클라우드 간에 이동할 수 있게 하고 여러가지 서비스의 확장과 보안 및 규정 준수 등을 최적화하도록 지원한다. 보안사항이 증가되었기 때문에 많은 공공기관에서도 사용하고 있다.

클라우드 컴퓨팅 종류<출처: 위키백과>

 

 최초 클라우드 서비스는 '지메일(Gmail)'이나 '드롭박스(Dropbox)' 등과 같이 스프트웨어를 웹에서 쓸 수 있는 SaaS(Software as a Service)가 대부분이었지만 현재는 IaaS(Infrastructure as a Service), Paas(Platform as a Service)가 추가되어 어떤 자원을 제공하느냐에 따라 총 3가지로 분류 할 수 있다. 다음 세 가지 종류에 대해 알아보자.

 

▶ SaaS(Software as a Service) : 소프트웨어 기반 서비스

  • 클라우드 환경에서 운영되는 소프트웨어 서비스를 말한다. 가장 간단하고 쉬운 클라우드 서비스 방식이며 사용자는 소프트웨어를 구입해서 PC에 설치하지 않아도 웹에서도 소프트웨어를 빌려 쓸 수 있고 소프트웨어의 업데이트나 관리도 모두 클라우드 관리자가 하게 된다.

  • 사용자는 휴대폰, 태블릿, 또는 PC 등 여러 곳에서 접근할 수 있으며 비용만 지불하면 시간 절약, 관리도 하지 않아도 된다. SaaS에 해당하는 서비스로는 구글 앱스, MS오피스 365, 드롭박스 등이 해당된다.

IaaS(Infrastructure as a Service) : 인프라 기반 서비스

  • 인터넷을 통해 서버와 스토리지 등 데이터센터 자원을 빌려 쓸 수 있는 서비스를 일컫는다. 클라우드 서비스의 가장 기본적인 범주이며 이용자는 직접 데이터센터를 구축할 필요 없이 클라우드 환경에서 필요한 인프라를 꺼내 쓰면 되고 이렇게 빌려온 인프라에서 운영체제를 설치하고, 어플리케이션 등을 설정하는 등 원하는 서비스를 운영할 수 있다.

  • IaaS의 장점은 기존 환경과는 다르게 상황에 맞게 유동적으로 변경하는 것이 가능하며(매우 빠르게) 그에 따른 비용 절감과 시간 절약을 할 수도 있다. 또한 인프라에 대한 관리는 클라우드 관리자가 해주기 때문에 인력을 다른 곳에 더 효율적으로 배치 할 수도 있다. 이에 해당되는 서비스로는 아마존웹서비스(AWS)가 대표적이고 국내에서는 KT, LG 유플러스가 이와 같은 서비스를 제공하고 있다.

PaaS(Platform as a Service) : 플랫폼 기반 서비스

  • 소프트웨어 서비스를 개발할 때 필요한 플랫폼을 제공하는 서비스다. 특히 개발자들이 많이 이용하며 개발자가 소프트웨어를 개발할 때 필요한 API를 제공해 좀 더 편하게 앱을 개발할 수 있게 돕는 일종의 레고 블록 같은 서비스다.

  • 개발자는 일정량의 비용만 지불하면 자신의 작업 환경에 맞게 도구를 선택하고 애플리케이션 개발을 할 수 있다. PaaS의 장점으로는 효율적인 작업과 모바일, 컴퓨터 등 여러 플랫폼으로써의 쉬운 개발, 공간적으로 떨어져 있는 작업에서도 인터넷 환경 작업으로 인한 협업 가능, 애플리케이션 수명 주기를 효율적으로 관리 등 여러가지 장점들이 있다. 이에 해당되는 서비스로는 구글 앱 엔진(google app en-gine), 세일즈포스닷컴(salesforce.com) 등이 있다.

 

'네트워크' 카테고리의 다른 글

TCP vs UDP  (2) 2020.01.29
OSI 7계층이란?  (0) 2020.01.29
PaaS(Platform as a Service)란?  (2) 2020.01.07
블로그 이미지

Mr.HB

프로그래밍 이야기

,