10장 응용 SW 기초 기술 활용

2020. 11. 28. 11:43정보처리기사/시나공 정리

SECTION93. 운영체제의 개념

1. 운영체제(OS; Operating System)

컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 관리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러가지 프로그램의 모임이다.

- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

 

2. 운영체제의 목적

- 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환시간 단축 등

<운영체제 성능 평가 지표>

- 처리 능력(Throughput): 일정 시간 내에 시스템이 처리하는 일의 양

- 반환 시간(Turn Around Time): 시스템에 작업을 의뢰한 시간 부터 처리가 완료될 때까지 걸린 시간

- 사용 가능도(Availability): 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

- 신뢰도(Reliability): 시스템이 주어진 문제를 정확하게 해결하는 정도

 

3. 운영체제의 기능

- 프로세서, 기억장치, 입출력장치, 파일 및 정보등의 자원을 관리한다.

- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.

- 사용자와 시스템 간의 편리한 인터페이스를 제공한다.

- 시스템의 각종 하드웨어와 네트워크를 관리 제어한다.

- 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.

- 시스템의 오류를 검사하고 복구한다.

- 자원 보호 기능을 제공한다.

- 입출력에 대한 보조기능을 제공한다.

- 가상계산기 기능을 제공한다.

 

4. 운영체제의 주요 자원 관리

자원 기능
프로세스 관리 - 프로세스 스케줄링 및 동기화 관리 담당
- 프로세스의 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당
기억장치 관리 프로세스에게 메모리 할당 및 회수 관리 담당
주변장치 관리 입출력장치 스케줄링 및 전반적인 관리 담당
파일 관리 파일의 생성과 삭제, 변경, 유지 등의 관리 담당

 

5. 운영체제의 종류

- 운영체제 종류: Windows, UNIX, LINUX, MacOS, MS-DOS 등

 

 

SECTION94. 운영체제의 종류

1. Windows 개요 및 특징

- 그래픽 사용자 인터페이스(GUI; Graphic User Interface): 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식

- 선점형 멀티태스킹(Preemptive Multi-Tasking): 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 사용하면서 운영체제가 각 작업의 cpu 이용 시간을 제어하여 응용 프로그램 실행중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식

- PnP(Plug and Play, 자동 감지 기능): 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능

- OLE(Object Linking and Embedding): 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체(object)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능

- 255자의 긴 파일명: windows에서 파일 이름은 \ / * " <> | 를 제외한 모든 문자 및 공백을 사용하여 최대 255자까지 지정할 수 있다.

- Single-User 시스템: 컴퓨터 한 대를 한 사람만이 독점해서 사용한다.

 

2. UNIX 개요 및 특징

UNIX는 1960년대 AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제

- 시분할 시스템을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템(Open System)

- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.

- 크기가 작고 이해하기 쉽다.

- 다중 사용자(멀티 유저), 다중 작업(멀티태스킹)을 지원

- 트리 구조의 파일 시스템을 갖는다.

- 전문적인 프로그램 개발에 용이하다.

- 다양한 유틸리티 프로그램들이 존재한다.

 

3. UNIX 시스템의 구성

* 커널(Kernel)

- UNIX의 가장 핵심적인 부분

- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다.

- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다.

- 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행한다.

 

*쉘(Shell)

- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기

- 시스템과 사용자 간의 인터페이스를 담당한다.

- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능하다.

- 파이프라인 기능을 지원, 입출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있다.

- 공용 쉘이나 사용자 자신이 만든 쉘을 사용할 수 있다.

 

* 유틸리티 프로그램(Utility Program)

- 일반 사용자가 작성한 프로그램을 처리하는데 사용한다.

- 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다.

 

4. LINUX 개요 및 특징

1991년 리누스 토발즈가 UNIX 기반으로 개발한 운영체제

- 프로그램 소스코드가 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능을 추가할 수 있고, 다양한 플랫폼에서 설치하여 사용이 가능하며, 재배포가 가능ㅎ다.

- UNIX와 완벽하게 호환된다.

- 대부분의 특징이 UNIX와 동일하다.

 

5. MacOS의 개요 및 특징

1980년대 애플사가 UNIX 기반으로 개발한 운영체제

- 아이맥과 맥북 등 애플사에서 생산하는 제품에만 사용이 가능하다.

- 드라이버 설치 및 install과 uninstall 과정이 단순하다.

 

 

SECTION95. 운영체제의 기본 명령어

1. 운영체제의 기본 명령어의 개요

- CLI(Command Line Interface): 키보드로 명령어를 직접 입력하여 작업을 수행하는 사용자 인터페이스

- GUI(Graphic User Interface): 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 사용자 인터페이스

 

2. Windows 기본 명령어

- DIR: 현재 디렉토리의 파일 목록을 표시한다. (ls)

ex) dir

- COPY: 파일을 복사한다. (cp)

ex) copy abc.txt gilbut 

- DEL: 파일을 삭제한다. (rm)

ex) del abc.txt

- TYPE: 파일의 내용을 표시한다. (cat)

ex) type abc.txt

- REN: 파일의 이름을 변경한다. 

ex) ren abc.txt 123.txt

- MD: 디렉토리를 생성한다. (mkdir)

ex) md gilbut

- CD: 동일한 드라이브에서 디렉토리의 위치를 변경한다.

ex) cd gilbut

- CLS: 화면의 내용을 지운다.(clear)

ex) cls

- ATTRIB: 파일의 속성을 변경한다.

ex) attrib +r abc.txt

- FIND: 파일에서 문자열을 찾는다. (grep)

ex) find "123" abc.txt

- CHKDSK: 디스크 상태를 점검한다.

ex) chkdsk

- FORMAT: 디스크 표면을 트랙과 섹터로 나누어 초기화한다.

ex) format c:

- MOVE: 파일을 이동한다.

ex) move abc.txt gilbut

 

 

SECTION96. 기억장치 관리

1. 기억장치의 관리 전략의 개요

보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것

- 종류: 반입(Fetch)전략, 배치(Placement)전략, 교체(Replace)전략 

 

2. 반입(Fetch)전략

보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략

- 요구 반입(Demand Fetch): 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법

- 예상 반입(Anticipatory Fetch): 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법

 

3. 배치(Placement)전략

새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략으로, 최초적합(First Fit), 최적적합(Best Fit), 최악적합(Worst Fit)이 있다.

- 최초 적합(First Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치하는 방법

- 최적 적합(Best Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법

- 최악 적합(Worst Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법

 

4. 교체(Replacement)전략

주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략

- 종류: FIFO, OPT, LRU, LFU, NUR, SCR 등

 

 

SECTION97. 프로세스 관리

1. 프로세스 정의

일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행 중인 프로그램을 의미하며, 작업(Job), 테스크(Task)라고도 한다.

* 프로세스는 다음과 같이 정의할 수도 있다.

- PCB를 가진 프로그램

- 실기억장치에 저장된 프로그램

- 프로세서가 할단되는 실체로서, 디스패치가 가능한 단위

- 프로시저가 활동중인 것

- 비동기적 행위를 일으키는 주체

- 지정된 결과를 얻기위한 일련의 계통적 동작

- 목적 또는 결과에 따라 발생되는 사건들의 과정

- 운영체제가 관리하는 실행단위

 

2. 프로세스 상태 전이

프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미

- 프로세스 상태: 제출, 접수, 준비, 실행, 대기

- 제출(submit): 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태

- 접수(hold): 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태

- 준비(ready): 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태

                  프로세스는 준비상태 큐에서 실행을 준비하고 있다.

                  접수상태에서 준비상태로의 전이는 job 스케줄러에 의해 수행된다.

- 실행(run): 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태

                프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료(time run out)되면 프로세스는 준비상태로 전이된다.

                준비상태에서 실행상태로의 전이는 CPU 프로세서 스케줄러에 의해 수행된다.

- 대기(wait), 보류, 블록(block): 프로세스에 입출력처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력처리가 완료될때 까지 대기하고 있는 상태

- 종료(Terminiated, Exit): 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

 

* 디스패치(Dispatch): 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행상태로 전이되는 과정

* Wake Up: 입출력 작업이 완료되어 프로세스가 대기상태에서 준비 상태로 전이되는 과정

* Spooling: 입출력장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정

 

 

SECTION101. 키의 개념 및 종류

키(KEY): 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성

 

1. 슈퍼키(Super Key)

한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

- 슈퍼키는 유일성은 만족하지만, 최소성은 만족하지 않는다.

 

2 후보키(Candidate Key)

릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합이다.

- 후보키는 유일성과 최소성 모두를 만족한다.

 

3. 기본키(Primary Key)

후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다.

- 기본키는 후보키의 성질을 갖는다. 즉, 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다.

- 기본키는 null값을 가질 수 없다.

 

4. 대체키(Alternate Key)

후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미한다.

 

5. 외래키(Foreign Key)

 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.

- 외래키는 릴레이션 간의 관계를 표현할 때 사용한다.

- 한 릴레이션에 속한 속성A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키라고 한다.

- 외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가진다.

 

 

SECTION103. 네트워크/인터넷

1. 네트워크(Network)의 개념

네트워크: 두 대 이상의 컴퓨터를 전화선이나 케이블 등으로 연결하여 자원을 공유하는 것

근거리 통신망(LAN;
Local Area Network)
- 회사, 학교, 연구소 등에서 비교적 가까운 거리에 있는 컴퓨터, 프린터, 저장장치 등과 같은 자원을 연결하여 구성한다.
- 주로 자원 공유를 목적으로 사용한다.
- 사이트 간의 거리가 짧아 데이터의 전송 속도가 빠르고 에러 발생율이 낮다.
- 근거리 통신망에서는 주로 버스형이나 링형 구조를 사용한다.
광대역 통신망(WAN;
Wide Area Network)
- 국가와 국가 혹은 대륙과 대륙 등과 같이 멀리 떨어진 사이트들을 연결하여 구성한다.
- 사이트 간의 거리가 멀기 때문에 통신 속도가 느리고, 에러 발생률이 높다.
- 일정한 지역에 있는 사이트들을 근거리 통신망으로 연결한 후 각 근거리 통신망을 연결하는 방식을 사용한다.

 

2. 인터넷(Internet)의 개요

인터넷: TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망

- 미 국방성의 ARPANET에서 시작되었다.

- 유닉스 운영체제를 기반으로 한다.

- 연결된 모든 컴퓨터는 고유 IP주소를 갖는다.

- 컴퓨터 또는 네트워크를 서로 연결하기 위해서는 브리지, 라우터, 게이트웨이가 사용된다.

- 다른 네트워크 또는 같은 네트워크를 연결하여 중추적 역할을 하는 네트워크로, 보통 인터넷의 주가되는 기간망을 일컫는 용어를 백본(Backbone)이라고 한다.

 

3. IP 주소(Internet Protocol Address)

인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소

- 숫자로 8비트씩 4부분, 32비트로 구성되어 있다.

- 유니캐스트, 멀티캐스트, 브로드캐스트

A Class - 국가나 대형 통신망에 사용(0~127로 시작)
- 2^24= 16,777,215개 호스트 사용 가능
B Class - 중대형 통신망에 사용(128~191로 시작)
- 2^16=65,536개의 호스트 사용 가능
C Class - 소규모 통신망에서 사용(192~223으로 시작)
- 2^8= 256개 호스트 사용 가능
D Class - 멀티캐스트 용으로 사용(224~239로 시작)
E Class - 실험적 주소이며 공용되지 않음

4. IPv6(Internet Protocol version 6)

현재 사용하고 있는 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.

- IPv4에 비해 자료 전송 속도가 빠르다.

- IPv4와 호환성이 뛰어나다.

- 인증성, 기밀성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원하다.

 

* IPv6의 구성

- 16비트씩 8부분, 총 128비트로 구성되어 있다.

- 각 부분을 16진수로 표현하고, 콜론으로 구분한다.

- 유니캐스트, 멀티캐스트, 애니캐스트

유니캐스트(Unicast) 단일 송신자와 단일 수신자 간의 통신(일대일(1:1)통신에 사용)
멀티캐스트(Multicast) 단일 송신자와 다중 수신자 간의 통신(일대다(1:N)통신에 사용)
애니캐스트(Anycast) 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신(일대일(1:1)통신에 사용)

5. 도메인 네임(Domain Name)

숫자로 된 IP주소를 사람이 이해하기 쉬운 문자형태로 표현한 것

- 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관 종류, 소속 국가명 순으로 구성되며, 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미한다.

- 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 역할을 하는 시스템을 DNS(Domain Name System)이라 하며 이런 역할을 하는 서버를 DNS서버라고 한다.

 

 

SECTION104. OSI 참조 모델

1. OSI(Open System Interconnection) 참조 모델의 개요

다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신규약(Protocol)이다.

- 개방형 시스템간의 데이터 통신 시 필요한 장비 및 처리 방법 등을 7단계로 표준화하여 규정했다.

- 하위 계층: 물리 계층- 데이터 링크 계층- 네트워크 계층

- 상위 계층: 전송 계층- 세션 계층- 표현 계층- 응용 계층

 

2. OSI 참조 모델의 목적

- 서로 다른 시스템 간의 상호 접속하기 위한 개념을 규정한다.

- OSI 규격을 개발하기 위한 범위를 정한다.

- 관련 규정의 적합성을 조절하기 위한 공통적 기반을 제공한다.

 

3. OSI 참조모델에서의 단위

* 프로토콜 데이터 단위(PDU; Protocol Data Unit)

동일 계층 간에 교환되는 정보의 단위

- 물리 계층: 비트

- 데이터링크 계층: 프레임

- 네트워크 계층: 패킷

- 전송 계층: 세그먼트

- 세션, 표현, 응용 계층: 메시지

 

4. 물리 계층(Physical Layer)

전송에 필요한 두 장치간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.

- 관련 장비: 리피터, 허브

 

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

두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 한다.

- 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름제어 기능을 한다.

- 프레임의 시작과 끝을 구분하기 위한 프레임 동기화 기능을 한다.

- 오류의 검출과 회복을 위한 오류제어 기능을 한다.

- 프레임의 순서적 전송을 위한 순서제어 기능을 한다.

- 관련 장비: 랜카드, 브리지, 스위치

 

6. 네트워크 계층(Network Layer, 망계층)

개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.

- 네트워크 연결을 설정, 유지, 해제하는 기능을 한다.

- 경로 설정(routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행한다.

- 관련 장비: 라우터

 

7. 전송 계층(Transport Layer)

논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 한다.

- OSI 계층 중 하위 3계층과 상위 3계층의 인터페이스를 담당한다.

- 종간 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 한다.

- 주소 설정, 다중화, 오류 제어, 흐름 제어를 수행한다.

- TCP, UDP 등의 표준이 있다.

- 관련 장비: 게이트웨이

 

8. 세션 계층(Session Layer)

송 수신 측 간의 관련성을 유지하고 대화 제어를 담당한다.

- 대화 구성및 동기 제어, 데이터 교환 관리 기능을 한다.

- 송 수신측 간의 대화 동기를 위해 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신 상태를 체크하며, 이때의 체크점을 동기점이라고 한다.

- 동기점은 오류가 있는 데이터 회복을 위해 사용하는 것으로, 종류에는 소동기점과 대동기점이 있다.

 

9. 표현 계층(Presentation Layer)

응용 계층으로 부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 한다.

- 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층이다.

- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환, 문맥 관리 기능을 한다.

 

10. 응용 계층(Application Layer)

사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.

- 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스를 제공한다.

 

 

SECTION105. 네트워크 관련 장비

1. 네트워크 인터페이스 카드(NIC; Network Interface Card)

컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치로, 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보형태를 변경한다.

- 이더넷 카드(LAN 카드) 혹은 네트워크 어댑터라고도 한다.

 

2. 허브(Hub)

한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치로, 각 회선을 통합적으로 관리하며, 신호 증폭 기능을 하는 리피터의 역할도 포함한다.

- 더미 허브(Dummy Hub)

네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만을 제공한다.

LAN이 보유한 대역폭을 컴퓨터 수 만큼 나누어 제공한다.

- 스위칭 허브(Switching Hub)

네트워크 상에 흐르는 데이터 유무 및 흐름을 제어하여 각각의 노드가 허브의 최대 대역폭을 사용할 수 있는 지능형 허브이다. 

최근에 사용되는 허브는 대부분 스위치 허브이다.

 

3. 리피터(Repeater)

전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할을 수행한다.

- OSI 참조 모델의 물리 계층에서 동작하는 장비이다.

- 근접한 네트워크 사이에 신호를 전송하는 역할로, 전송 거리의 연장 또는 배선의 자유도를 높이기 위한 용도로 사용

 

4. 브리지(Bridge)

LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터그룹(세그먼트)을 연결하는 기능을 수행한다.

- 데이터 링크 계층 중 MAC 계층에서 사용되므로 MAC브리지라고도 한다.

- 트래픽 병목 현상을 줄일 수 있다.

- 네트워크를 분산적으로 구성할 수 있어 보안성을 높일 수 있다.

- 브리지를 이용한 서브넷 구성 시, 전송 가능한 회선 수는 브리지가 n개일 때, n(n-1)/2개이다.

 

5. 스위치(Switch)

브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치이다.

- 하드웨어를 기반으로 처리하므로 전송 속도가 빠르다.

- 포트마다 각기 다른 전송 속도를 지원하도록 제어할 수 있고, 수십에서 수백개의 포트를 제공한다.

- OSI 참조 모델의 데이터 링크 계층에서 사용된다.

 

* 스위치 분류

L2 스위치 - OSI의 2계층에 속하는 장비
- 일반적으로 부르는 스위치는 L2스위치를 의미
- MAC주소를 기반으로 프레임을 전송
- 동일 네트워크 간의 연결만 가능
L3 스위치 - OSI의 3계층에 속하는 장비
- L2스위치에 라우터 기능이 추가된 것으로, IP주소를 기반으로 패킷을 전송
- 서로 다른 네트워크 간의 연결이 가능
L4 스위치 - OSI 4계층에 속하는 장비
- 로드밸런서가 달린 L3스위치로, IP주소 및 TCP/UDP를 기반으로 사용자들의 요구를 서버의 부하가 적은 곳에 배분하는 로드밸런싱 기능을 제공
L7 스위치 - OSI 7계층에 속하는 장비
- IP주소, TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드밸런싱

* 로드밸런서(Load Balancer)

특정 서버에만 부하가 발생하지 않도록 트래픽을 분산시켜주는 장비

 

6. 라우터(Router)

브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로, 서로 다른 LAN이나 LAN과 WAN의 연결도 수행한다.

- OSI 참조 모델의 네트워크 계층에서 동작하는 장비

- 접속 가능한 경로에 대한 정보를 라우팅 제어표(Routing Table)에 저장하여 보관한다.

- 3계층까지의 프로토콜 구조가 다른 네트워크 간의 연결을 위해 프로토콜 변환 기능을 수행한다.

 

7. 게이트웨이(Gateway)

전 계층(1~7계층)의 프로토콜 구조가 다른 네트워크의 연결을 수행한다.

- 세션 계층, 표현 계층, 응용 계층 간을 연결하여 데이터 형식 변환, 주소 변환, 프로토콜 변환 등을 수행한다.

- LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할을 한다.

 

 

SECTION106. TCP/IP

1. TCP/IP

인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜

- UNIX의 기본 프로토콜로 사용되었고, 현재 인터넷 범용 프로토콜로 사용된다.

 

* TCP(Transmission Control Protocol)

- 신뢰성 있는 연결형 서비스를 제공

- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공

- 스트림(stream)전송 기능을 제공한다.

- TCP 헤더에는 Source/Destination Port Number, Sequence Number, Acknowledgment Number, Header Length, Window Size, Urgent Pointer, Check sum등이 포함

 

* IP(Internet Protocol)

- 데이터그램을 기반으로 하는 비연결형 서비스를 제공

- 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공

- 헤더 길이는 최소 20~최대 60byte이다.

- IP 헤더에는 Version, Header Length, Total Packet Length, Header Checksum, Source IP Address, Destination IP Address등이 포함

 

*프로토콜(Protocol)

서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜놓은 통신 규약

- 특징: 단편화, 재조립, 캡슐화, 연결 제어, 오류 제어, 동기화, 다중화, 주소 지정 등

- 기본 요소

구문(syntax): 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정

의미(semantics): 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정

시간(timing): 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정

 

2. TCP/IP의 구조

OSI TCP/IP 기능
응용 계층
표현 계층
세션 계층
응용 계층 - 응용 프로그램 간의 데이터 송 수신을 제공한다.
- TELNET, FTP, SMTP, SNMP, DNS, HTTP 등
전송 계층 전송 계층 - 호스트들 간의 신뢰성있는 통신을 제공한다.
- TCP/UDP
네트워크 계층 인터넷 계층 - 데이터 전송을 위한 주소 지정, 경로 설정을 제공한다.
- IP, ICMP, IGMP, ARP, RARP
데이터 링크 계층
물리 계층
네트워크 액세스 계층 - 실제 데이터(프레임)을 송수신하는 역할을 한다.
- Ethernet, IEEE802, HDLC, X25, RS-232C, APQ 등

 

3. 응용 계층의 주요 프로토콜

FTP(File Transfer Protocol) 컴퓨터와 컴퓨터 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜
SMTP(Simple Mail Transfer Protocol) 전자 우편을 교환하는 서비스
TELNET - 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비스
- 프로그램을 실행하는 등 시스템 관리 작업을 할 수 있는 가상의 터미널기능을 수행
SNMP(Simple Network Management Protocol) TCP/IP의 네트워크 관리 프로토콜로, 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용되는 표준 통신규약
DNS(Domain Name System) 도메인 네임을 IP주소로 매핑하는 시스템
HTTP(HyperText Transfer Protocol) 월드 와이드 맵(WWW)에서 HTML문서를 송수신 하기 위한 표준 프르토콜

4. 전송 계층의 주요 프로토콜

TCP(Transmission
Control Protocol)
- 양방향 연결(Full Duplex Connection)형 서비스를 제공한다.
- 가상 회선 연결(Virtual Circuit Connection) 형태의 서비스를 한다.
- 스트림 위주의 전달(패킷 단위)을 한다.
- 신뢰성 있는 경로를 확립하고 메시지 전송을 감독한다.
- 순서 제어, 오류 제어, 흐름 제어 기능을 한다.
- 패킷의 분실, 손실, 지연이나 순서가 틀린 것 등이 발생할 때 투명성이 보장되는 통신을 제공한다.
UDP(User Datagram
Protocol)
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공한다.
- TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로, 오버헤드가 적다.
- 고속의 안정성 있는 전송 매체를 사용하여 빠른 속도를 필요로 하는 경우, 동시에 여러 사용자에게 데이터를 전달할 경우, 정기적으로 반복해서 전송할 경우에 사용한다.
- 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요시되는 네트워크에서 사용된다.
- UDP 헤더에는 Source Port Number, Destination Port Number, Length, Checksum이 포함된다.
RTCP(Real-Time Control Protocol) - RTP(Real-time Transfer Protocol) 패킷의 전송 품질을 제어하기 위한 제어 프로토콜이다.
- 세션에 참여한 각 참여자들에게 주기적으로 제어 정보를 전송한다.
- 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화를 제공한다.
- 데이터 전송을 모니터링하고 최소한의 제어와 인증만을 제공한다.
- RTCP 패킷은 항상 32비트의 경계로 끝난다.

 

5. 인터넷 계층의 주요 프로토콜

IP(Internet Protocol) - 전송할 데이터에 주소를 지정하고, 경로를 설정하는 기능을 한다.
- 비연결형 데이터그램 방식을 사용하는 것으로 신뢰성이 보장되지 않는다.
ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜) IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경등을 위한 제어 메시지를 관리하는 역할을 하며, 헤더는 8Byte로 구성된다.
IGMP(Internet Group Management Protocol, 인터넷 그룹 관리 프로토콜) 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용된다.
ARP(Address Resolution Protocol, 주소 분석 프로토콜) 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꾼다.
RARP ARP와 반대로 물리적 주소를 IP주소로 변환하는 기능을 한다.

6. 네트워크 액세스 계층의 주요 프로토콜

Ethernet(IEEE 802.3) CSMA/CD 방식의 LAN이다.
IEEE 802 LAN을 위한 표준 프로토콜
HDLC 비트위주의 데이터 링크 제어 프로토콜이다.
X.25 패킷 교환망을 통한 DTE와 DCE간의 인터페이스를 제공하는 프로토콜이다.
RS-232C 공중 전화 교환망을 통한 DTE와 DCE간의 인터페이스를 제공하는 프로토콜이다.

 

SECTION107. 데이터 교환 방식/라우팅

데이터 교환 방식: 회선 교환 방식/ 축적 교환 방식(메시지 교환 방식/패킷 교환 방식)

1. 회선 교환 방식(Circuit Switching)

통신을 원하는 두 지점을 교환기를 이용하여 물리적으로 접속시키는 방식으로, 기존의 음성 전화망이 대표적이다.

- 데이터 전송 전에 먼저 물리적 통신 회선을 위한 연결이 필요하다.

- 일단 접속이 되고 나면 그 통신 회선은 전용 회선에 의한 통신처럼 데이터가 전달된다.(고정 대역 전송)

- 접속에는 긴 시간이 소요되나, 일단 접속되면 전송 지연이 거의 없어 실시간 전송이 가능하다.

- 회선이 접속되더라도 수신 측이 준비되어 있지 않으면 데이터 전송이 불가능하다.

- 데이터 전송에 필요한 전체 시간이 축적 교환 방식에 비해 길다.

- 접속된 두 지점이 회선을 독점하기 때문에 접속된 이외의 다른 단말기는 전달 지연을 가지게 된다.

- 데이터가 전송되지 않는 동안에도 접속이 유지되기 때문에 데이터 전송이 연속적이지 않은 경우 통신회선이 낭비된다.

- 일정한 데이터 전송률을 제공하므로 동일한 전송 속도가 유지된다.

- 공간 분할 교환 방식(SDS; Space Division Switching): 기계식 접점과 전자 교환기의 전자식 접점등을 이용하여 교환을 수행하는 방식응로, 음성 전화용 교환기가 이에 속한다.

- 시분할 교환 방식(TDS; Time Division Switching): 전자 부품이 갖는 고속성과 디지털 교환 기술을 이용하여 다수의 디지털 신호를 시분할적으로 동작시켜 다중화하는 방식이다.

 

2. 패킷 교환 방식(Packet Switiching)

메시지를 일정한 길이의 패킷으로 잘라서 전송하는 방식

- 패킷 교환망은 OSI7계층의 네트워크 계층에 해당한다.

- 패킷망 상호 간의 접속을 위한 프로토콜은 X.75이다.

- 패킷형 터미널을 위한 DTE와 DCE 사이의 접속 규정은 X.25이다.

- 공중 데이터 통신망에서 패킷의 분해, 조립과 관련된 국제 표준화 기구의 권고안은 X.3이다.

- 하나의 회선을 여러 사용자가 공유할 수 있으므로 회선 이용률이 높다.

- 수신 측에서 분할된 패킷을 재조립해야 한다.

- 응답 시간이 빠르므로 대화형 응용이 가능하다.

- 통신량의 제어를 통한 망의 안전성을 높일 수 있다.

- 음성 전송보다 데이터 전송에 더 적합하다.

- 가상 회선 방식: 단말 장치 상호간에 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이의 연결을 확립한 후에 설정된 경로를 따라 패킷들을 순서적으로 운반하는 방식

- 데이터그램 방식: 연결 경로를 설정하지 않고 인접한 노드들의 트래픽 상황을 감안하여 각각의 패킷들을 순서에 상관없이 독립적으로 운반하는 방식

 

3. 라우팅(Routing, 경로제어)의 개요

라우팅: 송수신 측 간의 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능

- routing table을 참조해서 이루어지며, 라우터에 의해 수행

- 라우팅 요소에는 성능 기준, 경로의 결정 시간과 장소, 정보 발생지, 경로 정보의 갱신시간이 있다.

- RIP(Routing Information Protocol): 자율 시스템(AS) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 통신규약으로, 최대 홉(Hop Count)수를 15개로 제한한 라우팅 프로토콜

- IGRP(Interior Gateway Routing Protocol): RIP의 단점을 보완하기 위해 만들어 개발된 것으로, 네트워크 상태를 고려하여 라우팅하며, 중규모 네트워크에 적합

- OSPF(Open Shortest Path First Protocol): 대규모 네트워크에서 많이 사용되는 프로토콜로, 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에 알린다. (링크 상태 알고리즘)

- BGP(Border Gateway Protocol) 자율시스템(AS)간의 라우팅 프로토콜로 EGP의 단점을 보완하기 위해 개발되었다.

 

4. 라우팅 알고리즘

- 거리 벡터 알고리즘(Distance Vector Algorithm): 인접해 있는 라우터 간의 거리(Distance)와 방향(Vector)에 대한 정보를 이용하여 최적의 경로를 찾고 그 최적 경로를 이용할 수 없을 경우 다른 경로를 찾는 ㅇ라고리즘으로, 대표적인 프로토콜에는 RIP와 IGRP가 있다.

- 링크 상태 알고리즘(Link State Algorithm): 라우터와 라우터 간의 모든 경로를 파악하여 미리 대체 경로를 마련해두는 알고리즘으로, 거리 벡터 알고리즘의 단점을 보완하기 위해 개발되었으며, 대표적인 프로토콜에는 OSPF가 있다.

 

 

'정보처리기사 > 시나공 정리' 카테고리의 다른 글

9장 소프트웨어 개발 보안 구축  (0) 2020.11.26
8장 SQL응용  (1) 2020.11.25
7장 애플리케이션 테스트 관리  (0) 2020.11.22
5장 서버 프로그램 구현  (0) 2020.11.18
4장 통합 구현  (1) 2020.11.16