OSI7계층

  • 최하위인 물리계층, 데이터링크계층, 네트워크 계층, 전송 계층, 세션계층, 표현계층, 응용계층으로 이루어 져있다
  • 전달기능 : 물리계층 데이터링크계층, 네트워크계층, 전송계층
  • 통신기능 : 세션계층, 표현계층, 응용계층
  • 계층     전송단위    역할/프로토콜
    응용계층 Data 사용자에게 직접 제공하는 서비스 및 응용 프로그램 간의 정보 교환 / HTTP,SMTP,POP3,IMAP,FTP,TELNET,SSH
    표현계층 Data 송수신할 정보의 표현에 차이가 있는 응용프로그램에게 연결 제공 / SMB,AFP,ASN.1
    세션계층 Data 응용프로그램 간의 통신을 관리하기 위한 방법으로 동기화를 유지하는 서비스제공 / SSL,TLS,NESBIOS
    전송계층 Segments 정보의 신뢰성있고 투명한 데이터 전송에 관한 서비스 제공 / TCP,UDP,RTP
    네트워크계층 Packets 정보의 전송을위한 경로 선택 / IP, ICMP, ARP, RIP, IPX
    데이터링크계층 Frames 물리적인 링크를 통해 신뢰성 있는 정보의 전송을 위한 통신로설정 / 이더넷, 토큰 링, ATM
    물리계층 bits 전송매체를 통한 전송 / RS-232, 10BASE-T, 100BASE-TX, DSL

네트워크 장비

LAN 구성장비

  • 네트워크 카드
    • 네트워크 안에서 컴퓨터끼리 통신하는데 쓰이는 하드웨어로 네트워크 어댑터
  • 케이블
    • 신호를 전송하게 되는 물리적인 전송매체
    • 장점 : 잡음에 강함, 대역폭이 넓어 여러 채널 동시 사용가능, 빠르게 전송가능
    • 단점 : 한 개의 컴퓨터가 문제가 생기면 전체 네트워크에 영향을 받을수 있어 그리 안전하지 않다
  • 광케이블 : 빠른 전송속도와 넓은 대혁폭을 가지고 있다. 또한 빛을 이용해 정보를 보내 전기적 간섭을 받지않고 오류 발생도 매우적다
  • 허브
    • 이더넷 네트워크에서 여러 대의 컴퓨터 및 네트워크 장비를 연결하는 장치
  • 인터네트워크 장비(게이트웨이)
    • 네트워크와 네트워크를 연결하는 것
    • 게이트웨이는 서로 다른 통신망과 프로토콜을 사용하는 네트워크 간에 통신 기능을 가능하게 해주는 장치를 뜻함
    • 리피터
      • osi모델에서 첫번쨰 물리계층에서 동작
      • 물리적으로 입력된 신호를 증폭하여 중계하는 장치
  • 브리지
    • 데이터 링크계층에 있는 여러 개의 네트워크 세그먼트를 연결해준다
  • 라우터
    • 물리계층, 데이터링크계층, 네트워크 계층의 기능을 지원하는 장비

Ethernet/LAN의 기본이해

LAN(Local Area Network)

  • 집, 사무실, 등 건물과 같은 가까운 지역을 네트워크 매체를 이용해 하나로 묶는 근거리 통신망

스타(star)형

  • 중앙에 위치한 중앙 컴퓨터가 각 컴퓨터 통신하는 방식(point to point 연결)
  • 고속의 대규모 네트워크에 이용
  • 일부장애 발생시에도 전체 네트워크에 영향을 주지 않음
  • 단말기 추가나 오류 진단이 용이
  • 단점 : 중앙 컴퓨터 고장시 전체 네트워크 중단, 회선수 증가시 제어 복잡, 고비용

버스(BUS)형

  • 하나의 통신 회선에 여러 컴퓨터를 연결해 전송하는 방법
  • 한번에 한컴퓨터만 전송가능
  • 단점 : 장애발생시 발생지 위치 주적 어려움

링형

  • 원형의 통신회선에 컴퓨터와 단말기를 연결하는 형태
  • 연결된 앞 컴퓨터로부터 수신한 내용을 다음 컴퓨터에 재전송하는 방법

망형

  • 스타형과 링형의 혼합된 형태로 각 네트워크 장비가 여러 인터페이스를 가지고 상호간에 그물망 형태로 연결
  • 장애발생시에도 다른 시스템에 영향이 적고 신뢰성이 높다
  • 단점 : 설치비용과 운영이 어렵고 장애발생시 고장지점 찾기어려움

LAN 전송방식

이더넷과 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

  • MAC주소를 기반으로 상호간에 데이터를 주고 받을수 있도록 만들어졌다

토큰링

  • 여러 스테이션을 하나의 링에 이어져 형성되고 데이터는 한쪽 방향으로 흐르도록 하여 한컴퓨터에서 다른 컴퓨터 순으로 순서대로 전달된다
  • 특히 데이터 전송을 위한 네트워크 채널을 사용하려면 토큰이라는 일종의 사용권을 획득해야한다

FDDI(Fiber Distributed Data Interface)

  • 광섬유 케이블을 사용해 설계된 링 구조의 통신망으로 네트워크 액세스를 제어하기위해 토큰 패싱 방법을 사용

MAN(Metropolitan Area Network)

  • LAN과 WAN의 중간 형태로 위성 도시등을 연결한 형태를 말한다

WAN(Wide Area Network)

회선 교환방식

  • 송식 호스트와 수신호스트가 데이터를 전송하기 전에 연결 경로를 설정하여 일종의 물리적 전용선을 연결하는 방식
  • 모든 데이터는 같은 경로로 전달되고 고정된 대역폭을 할당받아 전송됨, 안정적인 데이터 전송률을 지원한다

패킷 교환방식

  • 패킷이라고 부르는 정보블록을 이용해 전송하는 방식
  • 전달하고자 하는 정보를 일정 크기로 분할하고 각각에 송수신 주소를 비롯한 관련 정보를 추가해 만든 데이터 블록
  • 고정대역을 할당 하지 않기 때문에 이론상 호스트들을 무제한 수용가능하고 패킷별로 우선순위 부여가능
  • 단점 : 회선 교환 방식에 비해 더많은 지연이 발생가능, 각패킷마다 오버헤드 비트가 존재
  • 패킷 교환방식
    • 데이터그램 방식: 비연결형 서비스를 이용해 전달되는 패킷들이 독립적으로 전송되고 연결설정하기 위한 과정이없고 경로를 미리 할당하지 않아 패킷도착순서를 예측할수 없다.
    • 가상 회선 방식 : 연결형 서비스를 지원하기 위한 기능으로 모든 패킷이 동일한 경로로 전송되어 도착순서를 알수 있다

X.25

  • 패킷망에서 DCE(회선 종단 장치)와 DTE(데이터 단말 장치)사이에 이루어지는 상호작용을 규약한 프로토콜
  • 네트워크 계층의 대표적인 프로토콜로 가변길이 프레임 전송을 지원하는 프레임릴레이의 근간을 이룬다

프레임 릴레이

  • LAN또는 WAN상에서 단말 지점간의 효율적인 데이터 전송을 위한 고안된 방법으로 패킷 대신에 프레임이라고 불리는 가변 길이 단위에 데이터를 넣고 재전송과 같은 오류 정정 기능은 단말지점에 맡기는 방식

셀릴레이 : ATM(Asynchronous Transfer Mode)

  • 셸이라고 부르는 고정길이패킷을 이용해 순서대로 자료를 전송하는 방식
  • 가상 채널 기반의 연결형 서비스로 프레임 릴레이 처럼 양 끝의 단말간의 오류제어와 흐름 제어를 한다

프로세스의 정의

  • 실행중인 프로그램
  • PCB(Process Control Block)를 지닌 프로그램
  • 프로그램 카운터를 지닌 프로그램
  • 능동적 개체로 순차적으로 수행하는 프로그램

프로세스의 생성

  • 시스템 호출 방법
    • fork : 새로운 프로세스 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행하는 형태로 기존의 프로세스는 그대로 실행됨, 새롭게 생성된 프로세스는 원래 프로세스랑 똑 같은 코드를 기반으로 실행됨
      따로 말이 없을 경우 fork형태 수행
    • bash 라는 프로세스를 할당받고 명령내리면 fork형태로 실행
    • exec : 원래의 프로세스를 새로운 프로세스로 대체하는 형태로 호출한 프로세스의 메모리에 새로운 프로세스의 코드를 덮어씌워버린다 새로운 프로세스를 위한 메모리를 할당하지않고 exec에 호출된 프로세스만 메모리에 남겨둔다

프로세스의 종류

  • 포어그라운드 : 보통 셸에서 명령실행시 해당 프로세스가 종료될때까지 기다리는프로세스
  • 백그라운드 : 뒤에서 실행시키는 프로세스 , 다중작업을 수행시 유용, 작업번호[1]로 나타내고 뒤에는 PID가 붙음

멀티태스킹과 작업변환

  • 다수의 프로그램들을 백그라운드 프로세스로 실행시킨 상태에서 추가로 포어그라운드 프로세스로 다른 작업을 수행하는 것
  • [CTRL]+[z] : 포어 프로세스를 백그라운드 프로세스로 전환시키기
  • ”jobs “: 작업상태 확인하기
  • bg : 포그라운드 프로세스를 일시중단된 상태에서 백그라운드 프로세스로 전환
  • fg [%]작업번호 : 백그라운드 프로세스를 포어그라운드 프로세스로 전환하기
  • 나타나는 결과에서 +는 가장늦게 실행한 프로세스 작업번호없이 fg명령수행하면 이 작업이 포어그라운드 프로세스로 전환됨
  • 결과에서 -가 붙으면 +붙은작업 다음우선순위 작업

시그널

  • 특정 프로세스가 다른 프로세스에게 메시지를 보낼 때 시그널이 발생한다
  • kill-l’에서 명령어 확인가능
  • 일반적으로 사용하는 시그널
  • 종류
    이름: 설명
    SIGHUP : 로그아웃과 같이 터미널 접속이 끊겼을때 보냄
    SIGINT: 키보드로부터 오는 인터럽트 시그널로 실행을 중시 [ctrl]+[c]입력시 보냄
    SIGQUIT : 키보드로부터 오는 실행 중지 시그널 [ctrl]+[]입력시 보냄
    SIGKILL : 무조건 종류, 프로세스강제종료할때 보냄
    SIGTERM : 정상종류 시그널로 kill명령의 기본 시그널
    SIGCONT : STOP시그널 등에의해 정지된 프로세스를 다시 실행시킬 때 보냄
    SIGSTOP : 터미널에서 입력된 정지 시그널
    SIGTSTP: 실행정지후 다시 실행을 계속하기위해 대기시키는 시그널 [ctrl]+[z]입력시 보냄

프로세스 관리의 이해

데몬

  • 데몬 - 주기적이고 지속적인 서비스를 요청하기위해 계속 실행되는 프로세스로 백그라운드로 실행된다. 주로 이름에 d를 붙임
  • standalone방식 - 프로세스의 상태를 확인하는 ps명령으로 확안한다. 보통 부팅시실행되어 해당 프로세스가 메모리에 계속 상주하면서 클라이언트의 서비스 요청을 처리하는 방식
  • inet방식: 프로세스가 메모리에 항상 상주하는 것이아니라 클라이언트의 서비스 요청이 들어왔을때 관련 프로세스를 실행 시키고 접속 종료후에는 자동으로 프로세스를 종료시키는 방식

데몬의 실행

  • 주기적이고 지속적인 서비스 요청을 처리하기 위한 프로세스
  • /etc/rc.d/init.d 디렉터리
    • 서비스에 대해 시작과 중지를 시킬수있는 스크립트를 포함하고있다
    • service : /etc/rc.d/init/d 디렉터리에 존재하는 스크립트를 쉽게 시작하거나 중지시킬수 있는 스크립트로 절대경로로 전부 입력하는 대신 간단히 서비스명과 인자값을 지정해 실행가능
  • rc0.d~rc6.d 디렉터리
    • init프로세스가 실행 레벨 n을 시작하면 rcn,d디렉터리에 존재하는 모든 링크를 점검한다
    • 기본형식 : [K|S] [번호] [init.d_이름]
    • 의미
      • K : Kill을 의미하며 실행되지 않을 서비스를 말한다
      • S : Start를 의미하며 해당 실행 레벨에서 실행되어야하는 서비스를 말한다
      • 번호 : 순차적인 번호로 시작이나 중지순서를 나타내는 번호이다
      • init.d_이름 : 관습에 따라 링크가되는 스크립트명을 사용

데몬관련 유틸리티

  • ntsysv
    • 텍스트 환경에서 커서를 이용하여 부팅중 자동으로 실행되는 서비스를 설정할 수 있는 유틸리티
    • 사용법 : #ntsysv[option]
    • 주요옵션
      • level 실행레벨: 특정실행 레벨을 편집 없을 경우 현재 구동중인 레벨 의 서비스 데몬 설정
  • chkconfig
    • 텍스트 기반의 명령 프로그램으로 실행 레벨에 따른 서비스의 on off설정 리스트를 출력하거나 설정
    • 사용법 : #chkconfig option [service]
    • 주요옵션
      • --list : 각실행 레벨에서의 서비스의 설정 상태를 보여준다
      • --add/del 서비스: 서비스를 추가 /삭제
      • -level 레벨서비스 /on/off/reset : 해당레벨에서 특정서비스의 상태를 설정

1. 리눅스의 철학

1. GNU(GNU’s Not Unix)

-유닉스와 호환이 되도록 만든 OS이지만 유닉스와는 다른 OS

-SW를 자유롭게 사용하는 것이 목적

 

2.FSF(Free Software Foundation)와 자유 소프트웨어

-자유 소프트웨어 : 사용자가 소프트웨어르 실행, 학습,개작프로그램재배포, 향상시킬 자유가 보장되어야함

 

3.카피레프트와 GNU GPL(General Public License)

 

4. 주요라이센스

(1) GPL(General Public License)(GNU GPL에서 다섯가지의 의무를 저작권의 한 부분으로 강제함)

-컴퓨터 프로그램은 법으로 제한하지 않는 한 어떤 목적으로든지 사용할 수 있다

-컴퓨터 프로그램의실행 복사본은 언제나 프로그램 소스코드와 함께 배포해야 한다.

-컴퓨터 프로그램의 소스코드를 용도에 따라 변경 가능하다

-변경된 컴퓨터 프로그램도 소스코드를 공개해야 한다

-변경된 컴퓨터 프로그램 역시 똑 같은 라이선스인 GPL라이선스를 적용해야한다

 

(2)LGPL(Library/ Lesser General Public License)

-SW라이브러리에 관한 라이선스

-소스 코드 수정시 2차적 파생물 저작권에 해당되므로 라이브러리의 소스코드 또한 제공해야한다

-LGPLGPL로 변경 가능 하지만 역은 불가능 하다

 

(3)BSD(Berkely Software Distribution)

-2차 파생물 원시 소스코드 비공개 가능

-소스코드를 공개하지 않는 상용 sw에서 사용

 

(4)아파치 라이선스

-수정된 소스코드 비공개 가능 하지만 재배포시 아파치 sw재단에서 개발된 것을 발혀야함

 

(5)MPL(Mozilla Public License)라이선스

-MPL소스코드 수정시 코드 공개 필수 이지만 MPL+다른 소스코드일 경우 다른 소스코드를 공개 안해도된다

 

(6)MIT라이센스

-저작권 관련명시 하면 소스코드 비공개 가능

라이선스명

무료이용

배포

소스코드

취득 및 수정

2차 저작물

소스코드공개

특정 SW

와 결합

GPL

O

O

O

공개

X

LGPL

O

O

O

공개

O

BSD

O

O

O

비공개가능

O

Apache

O

O

O

비공개가능

O

MPL

O

O

O

공개

O

MIT

O

O

O

비공개가능

O

 

2.리눅스의 역사

1. 커널

-운영체제의 핵심

-시스템이 부팅될 때 로드되는데, 주된 역할은 시스템의 하드웨어 제어

Ex) 3.8.10

ð  3 -> 주버전: 커널의 큰변화시 증가

ð  8-> 부버전:작은 기능상의 변화나 추가된경우(짝수 : 안정 버전/ 홀수: 개발버전)

ð  10 -> 패치레벨: 버그가 수정되고 새로운 기능의 계획 추가 시 증가

 

2. 리눅스 배포판

-리눅스 커널 이외의 핵심적인 부분을 GNU정신을 바탕으로 만들어진 다양한 자유 소프트웨어와 공개 프로그램을 모아 하나의 운영체제로 만든 것이다

-패키지 관리 기법의 종류

-> 슬랙웨어 : 소프트웨어를 최상단에서 최대한 수정되어 배포되는 형식으로 사용자들이 내장된 프로그램을 사용하기에는 편리하나 패키지를 새롭게 적용하거나 수정하기는 힘들다.

                      그래픽 기반의 설치 절차가 없고, 소프트웨어 패키지의 의존성도 자동으로 해결해주지 않는다, 또한 모둔 설정이나 관리를 편집기를 이용해 텍스트 파일을 직접 수정하는 형태로 이루어 져있다

->데미안 : 데미안과 슬릭웨어는 sls기반으로 만들어 졌으나, 이 배포판의 차이점은 패키지에 있다 슬랙웨어는 사용자가 패키지를 새롭게 추가하거나 수정하기 어려운반면 데비안은 ㅍㅐ키지 설치 및 업그레이드 등 패키지 관리가 매우편하다

-> 레드햇: 현재 가장 인기 있는 리눅스 배포한이다.

           쉬운 설치와 독자적인 패키지 관리가 있다. 레드햇 리눅스의 설치과정은 텍스트 기반의 이넡페이스 뿐만 아니라 그래픽 사용자 인터페이스를 제공하여 초보자들도 쉽게 설치할수 있다. 또한 RPM(Red hat Package Management)YUM(YYellowdog Updater, Modified)라는 패키지 관리 도구를 제공해 손쉽게 설치, 관리, 업그레이드를 할수 있다.

-수세

-우분투

 

3. 리눅스 클러스터링(Linux Clustering)

-클러스터: 무리, 송이 또는 한 덩어리 라는 뜻으로 컴퓨터 데이터 통신 분야에서는 단말 제어 장치와 그에 접속된 복수 단말의 총칭을 말한다.

           여러대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는 것처럼 구성된 시스템을 말한다.

-사용목적

(1)고계산용 클러스터(HPC)

-> 고성능의 계산 능력을 제공하기 위한 목적으로 제작되는데 주로 과학계산용으로 활용된다(슈퍼컴퓨터)

-> 병렬처리용 슈퍼컴퓨터의 개발에서 시작됨

->  switch/hub =>node1

                      =>node2

                      =>node3

-> 하나의 작업을 3개의 노드를 이동하여 수행

(2)부하분산 클러스터

-> 대규모의 서비스를 제공하기 위한 목적으로 사용되는 클러스터 기법(이용자가 많은 웹서비스이용시 활용가치가 높다)

-> 여러대의 리얼 서버에 부하를 분산해 주는 로드 밸런서를 두고 운영하는 방법

-> user => load balancer =>real server

                                 =>real server

                                 =>real server

(3)고가용성 클러스터(HA)

-> 지속적인 서비스 제공을 목적으로 하는 클러스터로 위에 열거된 부하분산클러스터와 연동하여 많이 사용된다

-> 부하분산 클러스터에서 로드 밸런서에 오류가 발생해 동작하지 않으면 리얼 서버가 정상적인 동작을 하더라도 서비스를 제공하지 못한다. 이를 해결하기위해 primary node가 부하분산의 처리를 수행하고 다른 하나의 backup nodeprimary node의 상태를 체크하고 있다가 이상이 발생하면 서비스를 이어받도록 구상됨

-> user => primary => backup node

           =>=>=>=>=> backup node

(backup nodeprimary node상태를 체크하다가 primary node 이상시 서비스를 이어받음)

 

4. 임베디드 시스템

-마이크로컨트롤러, 마이크로프로세서, DSP(Digital Signal Processor)등을 내장하여 특정 기능을 반복적으로 수행하기 위해 하드웨어와 소프트웨어를 결합하여 만든 전자제어 시스템

-장점

-> 별도의  로열티나 라이선스 비용이없다

-> 리눅스를 사용한지 오래되었고, 커널이 안정적이다

-> 관련 소프트웨어 개발 및 지운하는 업체가 많이 존재한다

-> 소스가 공개되어 있어, 변경하고 재배포가 용이하다

-단점

->커널과 루트 파일 시스템등에 상대적으로 많은 메모리를 차지한다

-> 사용자 모드와 커널 모드 메모리 접근이 복잡하다

-> 디바이스 드라이버 프레임 워크가 복잡하다   

  

5. 클라우드 컴퓨팅

-사용자가 필요한 작업을 제시하면, 여기에 필요한 컴퓨팅 자원이 할당되어 작업하고 결과를 얻도록 해주는 것

-서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합하여 제공하는 기술 개념을 말하낟

- 인터넷을 이용한 IT자원의 주문형 아웃소싱 서비스로 서버에 개별적으로 저장해 둔 프로그램이나 문서를 인터넷 접속이 가능한 곳이라면 다양한 단말을 통해 웹 브라우저등 필요한 응용 소프트웨어를 구동하여 작업을 가능케 하는 이용자 중심의 컴퓨팅 환경을 말한다

-서비스 종류

(1) Iaas(Infrastructure as a Service) : 업무처리에 필요한 서버, 데스크톱 컴퓨터, 스토리지 같은 IT하드웨어 자원을 클라우드 서비스로 빌려 쓰는 형태

(2)PaaS(Platform as a Service): 업무에 필요한 소프트웨어를 개발할수 있는 환경을 클라우드에서 제공받는다

(3)Saas(Software as a Service): 기업에서 사용하는 소프트웨어를 통째로 클라우드 서비스 사업자에게 빌려 쓰는 개념

 

6. 빅데이터

-기존의 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석 할 수 있는 역량을 넘어서 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 말한다

-빅데이터 분석기술: 데이터마이닝, 기계학습, 자연어 처리, 패턴인식

 

7. 사물인터넷

- 생활속 사물들을 유무선 네트워크로 연결해 정보를 공유하는 환경

- 사물인터넷 플랫폼

-> 사물간에 인터넷을 할 수 있는 물적 기반인 통신네트워크가 원활하게 작동하도록 하는 운영체제를 말함

(플랫폼 : 서로 이해관계와 관점이 다른 이들 간에 복잡도를 추상화하고, 일관된 인터페이스를 제공함으로써 서비스제공이용이하고, 서비스 활용이 용이하도록 기능을 제공하는 것)

->운용플랫폼 : 디바이스가 제공하는 HW자원과 HW자원기능을 이용하는 디바이스 응용간의 플랫폼 ex) iOS, Windows, Linux, Android

->독립적 사물인터넷 플랫폼: 사용자가 센서 혹은 구동기 등을 추가하여 새로은 사물 프로토타입을 만들수 있는 HWSW를 제공하는 오픈소스 하드웨어 플랫폼 ex)라즈베리파이, 아두이노

->사물 연결 플랫폼: 디바이스와 디바이스 간 연결을 통한 서비스 제공 측면에서 디바이스들이 서비스제공자들이고 다른 디바이스의 기능을 이용하는 디바이스 응용이 사용자가 된다,

-> 다양한 응용 서비스의 용이한 생성 및 실행을 지원하는 플랫폼

-> 디바이스로부터 획득되는 엄청난 양의 데이터를 수집/저장/분석한 결과를 이용하는 응용 서비스 입장에서는 다양한 정보가 데이터 제공자가되며, 분석 결과를 이용하는 응용 서비스가 사용자가됨

+ Recent posts