[정보처리기사 필기] 4-3. 응용 SW 기초 기술 활용
2020 시나공 정보처리기사 필기책 참고
주의! 중요도가 낮은 항목(C)은 일부 제외
1. 운영체제의 개념 – A
- 운영체제(OS; Operating System)의 정의
- 시스템의 자원을 효율적으로 관리
- 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공
- 사용자와 하드웨어 간의 인터페이스로서 동작하는 시스템 S/W
- 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공
- 운영체제의 목적
- 처리 능력 : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간 : 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용 가능도 : 즉시 사용 가능한 정도
- 신뢰도 : 문제를 정확하게 해결하는 정도
- 운영체제의 기능
- 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원 관리
- 자원의 스케줄링 기능 제공
- 편리한 인터페이스 제공
- 각종 하드웨어와 네트워크를 관리 및 제어
- 데이터를 관리하고 데이터 및 자원의 공유 기능 제공
- 시스템의 오류를 검사하고 복구
- 자원 보호 기능 제공
- 입출력에 대한 보조 기능 제공
- 가상 계산기 기능 제공
- 운영체제의 주요 자원 관리
- 프로세스 관리 : 스케줄링 및 동기화 관리, 생성과 제거, 시작과 정지, 메시지 전달
- 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리
- 주변장치 관리 : 입출력장치 스케줄링 및 전반적인 관리
- 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리
- 운영체제의 종류
- Windows : MS사 개발. GUI
- UNIX : AT&T 벨 연구소, MIT, General Electric 공동 개발. CLI
- LINUX : UNIX와 호환이 가능한 커널. 누구나 제한 없이 활용 및 재배포 가능. CLI
- MacOS : 애플사가 UNIX를 기반으로 개발. GUI
- MS-DOS : Windows 이전에 사용되던 운영체제. CLI
- 단일 작업 처리 시스템에는 MS-DOS
- 다중 작업 처리 시스템에는 Windows, UNIX, LINUX, MacOS 등
- 개인용 운영체제는 Windows, MacOS, MS-DOS
- 서버용 운영체제는 UNIX, LINUX
2. Windows – C
- GUI
- 선점형 멀티태스킹
- PnP(Plug and Play, 자동 감지 기능)
- OLE
- 255자의 긴 파일명
- Single-User 시스템
3. UNIX/LINUX/MacOS – A
- UNIX의 개요 및 특징
- 대화식 운영체제. 소스가 공개된 개방형 시스템
- C언어로 작성되어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
- 크기가 작고 이해하기 쉬움
- Multi-User, Multi-Tasking 지원
- 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합
- 트리 구조의 파일 시스템
- 전문적인 프로그램 개발에 용이
- 다양한 유틸리티 프로그램 존재
- UNIX 시스템의 구성
- 커널
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하며 실행
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할
- 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환
- 쉘
- 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스 역할
- DOS의 COMMAND.COM과 같은 기능
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재
- 보조 기억장치에서 교체 처리 가능
- 파이프라인 기능을 지원하고 입출력 재지정을 통해 출력과 입력의 방향을 변경 가능
- 공용 쉘이나 사용자 자신이 만든 쉘을 사용할 수 있음
- Utility Program
- 일반 사용자가 작성한 응용 프로그램을 처리
- DOS에서의 외부 명령어에 해당
- 에디터, 컴파일러, 인터프리터, 디버거 등
- UNIX에서의 프로세스 간 통신
- 각 프로세스는 시스템 호출을 통해 커널의 기능을 사용
- 시그널, 파이프, 소켓 등을 사용
- 시그널 : 간단한 메시지를 이용하여 통신. 초기 UNIX 시스템에서 사용됨
- 파이프 : 한 프로세스의 출력이 다른 프로세스의 입력으로 사용되는 단방향 통신 방식
- 소켓 : 프로세스 사이의 대화를 가능하게 하는 쌍방향 통신 방식
- LINUX의 개요 및 특징
- UNIX를 기반으로 개발
- 프로그램 소스 코드가 무료로 공개되어 원하는 기능을 추가할 수 있음
- 다양한 플랫폼에 설치하여 사용 가능. 재배포 가능
- UNIX와 완벽하게 호환
- 대부분의 특지잉 UNIX와 동일
- MacOS의 개요 및 특징
- 애플사가 UNIX를 기반으로 개발
- 애플 사에서 생산하는 제품에서만 사용 가능
- 드라이버 설치 및 install과 uninstall의 과정이 단순
4. 기억장치 관리의 개요 – A
- 기억장치 계층 구조의 특징
- 레지스터 - 캐시 기억장치 - 주기억장치 - 보조기억장치
- 상위의 기억장치일수록 접근 속도와 접근 시간이 빠르지만, 기억 용량이 적고 고가
- 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성. 주소를 이용한 액세스 가능
- 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터는 CPU가 직접 액세스 할 수 있음
- 보조기억장치에 있는 프로그램이나 데이터는 CPU가 직접 액세스 할 수 없음
- 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스 될 수 있음
- 기억장치 관리 전략의 개요
- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치등을 지정
- 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
@ 반입(Fetch) 전략
- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정
- 요구반입 : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
- 예상반입 : 참조될 프ㅗ그램이나 데이터를 미리 예상하여 적재
@ 배치(Placement) 전략
- 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정
- 최초 적합 : 빈 영역 중에서 첫 번째 분할 영역에 배치
- 최적 적합 : 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
- 최악 적합 : 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치
@ 교체(Replacement) 전략
- 모든 영역이 이미 사용중인 상태에서, 어느 영역을 교체하여 사용할 것인지를 결정
- FIFO, OPT, LRU, LFU, NUR, SCR 등
5. 가상기억장치 구현 기법 / 페이지 교체 알고리즘 – A
- 가상기억장치의 개요
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것
- 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상 기억장치에 보관
- 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
- 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용
- 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음
- 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환작업이 필요
- 연속 할당 방식에서 발생할 수 있는 단편화를 해결
- 블록의 종류에 따라 페이징 기법과 세그멘테이션 기법으로 나눔
- 페이징(Paging) 기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눔
- 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행
- 프로그램을 일정한 크기로 나눈 단위를 Page라고 함
- Page 크기로 일정하게 나누어진 주기억장치의 단위를 Page Frame이라고 함
- 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
- 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 Page Map Table이 필요
- Page Map Table 사용으로 비용이 증가되고, 처리 속도가 감소
- 세그멘테이션(Segmentation) 기법
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행
- 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 Segment라고 함
- 각 Segment는 고유한 이름과 크기를 가짐
- 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법
- 기억공간을 절약하기 위함
- 주소 변환을 위해서 Segment가 존재하는 위치 정보를 가지고 있는 Segment Map Table 필요
- Segment가 주기억장치에 적재될 때 다른 Segment에게 할당된 영역을 침범할 수 없음. 기억장치 보호키 필요
- 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음
- 페이지 교체 알고리즘
- 페이지 부재가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정
@ OPT(최적 교체)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
- 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
@ FIFO
- 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
- 이해하기 쉽고, 프로그래밍 및 설계가 간단
@ LRU(Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
- 각 페이지마다 계수기나 스택을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지 교체
@ LFU(Least Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체
@ NUR(Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체
- LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있음
- 각 페이지마다 참조 비트와 변형 비트를 사용
@ SCR(Second Chance Replacement, 2차 기회 교체)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위함
- FIFO기법의 단점을 보완
6. 가상기억장치 기타 관리 사항 – A
- 페이지 크기
- 페이지 크기가 작을 경우
- 페이지 단편화가 감소, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듬
- 효율적인 워킹 셋을 유지
- 기억장치 효율이 높아짐
- Page Map Table의 크기가 커지고, Mapping 속도가 늦어짐
- 전체적인 입출력 시간은 늘어남
- 페이지 크기가 클 경우
- 페이지 단편화가 증가, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
- 불필요한 내용까지도 주기억장치에 적재
- Page Map Table의 크기가 작아지고, Mapping 속도가 빨라짐
- 전체적인 이불력의 효율성 증가
- Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
- 스래싱을 방지하기 위한 워킹 셋 이론의 기반
- 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법. 가상기억장치 관리의 이론적 근거
- Denning에 의해 구역성의 개념이 증명. 캐시 메모리 시스템의 이론적 근거
- 시간 구역성
- 하나의 페이지를 일정 시간 동안 집중적으로 액세스 하는 현상
- 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음
- Loop, Stack, Sub Routine, Counting, Totaling에 사용되는 변수
- 공간 구역성
- 일정 위치의 페이지를 집중적으로 액세스 하는 현상
- 참조한 페이지 근처의 페이지를 계속 참조할 가능성이 높음
- 배열 순회, 순차적 코드의 실행, 관련된 변수를 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때
- 워킹 셋(Working Set)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- 프로그램의 Locality 특징을 이용
- 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정됨
- 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경됨
- 페이지 부재 빈도 방식
- 페이지 부재는 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상
- 페이지 부재 빈도는 페이지 부재가 일어나는 횟수
- 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식
- 운영체제는 임의의 페이지 프레임을 할당하고, 부재율이 상한선을 넘어가면 좀더 많은 페이지 프레임을 할당하고, 부재율이 하한선을 넘어가면 페이지 프레임을 회수
- 프리페이징(Prepaging)
- 처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 한번에 페이지 프레임에 적재
- 사용되지 않는 페이지가 많을 수도 있음
- 스래싱(Thrashing)
- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 자주 페이지 부재가 발생함으로써 나타나는 현상. 시스템의 성능이 저하됨
- 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 특정 시점까지는 높아짐
- 정도가 더욱 커지면 스래싱이 나타나고, CPU 이용률은 급격히 감소
- 스래싱 현상 방지 방법
- 다중 프로그래밍의 정도를 적정 수준으로 유지
- 페이지 부재 빈도를 조절하여 사용
- 워킹 셋을 유지
- 부족한 자원을 증설하고, 일부 프로세스를 중단시킴
- CPU 성능에 대한 자료의 지속적 관리 및 분석으로 임계치를 예상하여 운영
7. 프로세스의 개요 – A
- 프로세스의 정의
- 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 실행중인 프로그램
- 작업, 태스크라고도 함
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체. 디스패치가 가능한 단위
- 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체
- 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건들의 과정
- 운영체제가 관리하는 실행 단위
- PCB(Process Control Block, 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 정요한 정보를 저장해 놓는 곳
- 각 프로세스가 생성될 때마다 고유의 PCB가 생성. 프로세스가 완료되면 PCB 제거
- PCB에 저장된 정보
- 프로세스의 현재 상태
- 포인터
- 프로세스 고유 식별자
- 스케줄링 및 프로세스의 우선순위
- CPU 레지스터 정보
- 주기억장치 관리 정보
- 입출력 상태 정보
- 계정 정보
- 프로세스 상태 전이
- 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
- 제출(Submit)
- 작업을 시스템에 제출한 상태
- 접수(Hold)
- 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
- 준비(Ready)
- 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 프로세스는 준비상태 큐에서 실행을 준비
- 접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행
- 실행(Run)
- 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
- 할당 시간이 종료되면 프로세스는 준비 상태로 전이
- 입출력 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이
- 준비 상태에서 실행 상태로의 전이는 CPU 스케줄러에 의해 수행
- 종료(Terminated, Exit)
- 프로세스의 실행으 끝나고 프로세스 할당이 해제된 상태
- 프로세스 상태 전이 관련 용어
- Dispatch : 준비 상태에서 대기하고 이쓴 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이
- Wake Up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이
- Spooling : 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력 데이터를 직접 입출력 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장
- 교통량 제어기(Traffic Controller) : 프로세스의 상태에 대한 조사와 통보 담당
- 스레드(Thread)
- 프로세스 내에서의 작업 단위. 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
- 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드
- 하나 이상의 스레드가 존재하는 경우에는 다중 스레드
- 프로세스의 일부 특성을 갖고 있어 경량 프로세스라고도 함
- 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할 담당
- 동일 프로세스 환경에서 서로 독립적인 다중 수행 가능
- 분류
- 사용자 수준의 스레드
- 사용자가 만든 라이브러리를 사용하여 스레드 운용
- 속도는 빠르지만 구현이 어려움
- 커널 수준의 스레드
- 운영체제의 커널에 의해 스레드를 운용
- 구현이 쉽지만 속도가 느림
- 사용자 수준의 스레드
- 스레드 사용의 장점
- 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진
- 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상
- 응용 프로그램의 응답 시간을 단축
- 실행 환경을 공유시켜 기억장소의 낭비가 줄어듬
- 프로세스들 간의 통신 향상
- 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신함
8. 스케줄링 – B
- 스케줄링의 개요
- 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 장기 스케줄링
- 어떤 프로세스가 시스템의 자원을 차지하게 할 것인가 결정하여 준비상태 큐로 보내는 작업
- 작업 스케줄링, 상위 스케줄링이라고도 함. 작업 스케줄러에 의해 수행
- 중기 스케줄링
- 어떤 프로세스들이 CPU를 할당받을 것인지를 결정하는 작업
- 할당받으려는 프로세스가 많으면 일시 보류시킨 후 활성화해서 일시적으로 부하 조절
- 단기 스케줄링
- 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
- 프로세서 스케줄링, 하위 스케줄링이라고도 함
- 프로세서 스케줄링 및 문맥 교환은 프로세서 스케줄러에 의해 수행됨
- 스케줄링의 목적
- CPU나 자원을 효율적으로 사용하기 위한 정책
- 공정성
- 처리율 증가
- CPU 이용률 증가
- 우선순위 제도
- 오버헤드 최소화
- 응답 시간 최소화
- 반환 시간 최소화
- 대기 시간 최소화
- 균형 있는 자원의 사용
- 무한 연기 회피
- 프로세스 스케줄링의 기법
- 비선점(Non-Preemptive) 스케줄링
- 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 기법
- 할당되면 해당 프로세스가 완료될 때까지 CPU 사용
- 모든 프로세스에 대한 요구를 공정하게 처리 가능
- 응답 시간의 예측이 용이. 일괄 처리 방식에 적합
- 중요한 작업이 중요하지 않은 작업을 기다리는 경우 발생 가능
- FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘 존재
- 선점(Preemptive) 스케줄링
- 할당된 CPU를 우선순위가 높은 다른 프로세스가 강제로 빼앗아 사용할 수 있는 기법
- 우선순위가 높은 프로세스를 빠르게 처리 가능
- 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용
- 많은 오버헤드를 초래
- 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요
- Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘 존재
9. 운영체제 기본 명령어 – B
- 운영체제 기본 명령어의 개요
- CLI : 키보드로 명령어를 직접 입력하여 작업
- GUI : 마우스로 아이콘이나 메뉴를 선택하여 작업
- Windows 기본 명령어
- CLI 기본 명령어
- DIR : 파일 목록 표시
- COPY : 파일 복사
- TYPE : 파일 내용 표시
- REN : 파일 이름 변경
- DEL : 파일 삭제
- MD : 디렉터리 생성
- CD : 디렉터리 위치 변경
- CLS : 화면 내용 지움
- ATTRIB : 파일 속성 변경
- FIND : 파일 찾음
- CHKDSK : 디스크 상태 점검
- FORMAT : 디스크 표면을 트랙과 섹터로 나누어 초기화
- MOVE : 파일 이동
- GUI 기본 명령어
- 마우스로 작업
- UNIX/LINUX 기본 명령어
- CLI 기본 명령어
- cat : 파일 내용 표시
- chdir : 디렉터리 위치 변경
- chmod : 파일의 보호모드를 설정하여 파일의 사용 허가를 지정
- chown : 소유자 변경
- cp : 파일 복사
- exec : 새로운 프로세스 수행
- find : 파일 참음
- fork : 새로운 프로세스를 생성
- fsck : 파일 시스템을 검사하고 보수
- getpid : 자신의 프로세스 아이디를 얻음
- getppid : 부모 프로세스 아이디를 얻음
- ls : 디렉터리 내의 파일 목록 확인
- mount/unmount : 파일 시스템을 마운팅/마운팅 해제
- rm : 파일 삭제
- wait : fork후 exec에 의해 실행되는 하위 프로세스 종료 등의 event를 기다림
- GUI 기본 명령어
- X Window라는 별도의 프로그램을 설치하여 운영 가능
10. 인터넷 – A
- 인터넷의 개요
- TCP/IP 프로토콜을 기반으로 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망
- 미 국방성의 ARPANET에서 시작됨
- UNIX 운영체제를 기반으로 함
- 시간과 장소에 구애받지 않고 정보 교환 가능
- 모든 컴퓨터는 고유한 IP 주소를 가짐
- 컴퓨터 또는 네트워크를 서로 연결하기 위해 브리지, 라우더, 게이트웨이가 사용됨
- 중추적 역할을 하는 네트워크. 인터넷의 주가 되는 기간망을 Backbone라고 함
- IP 주소(Internet Protocol Address)
- 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
- 8비트씩 4부분, 총 32비트로 구성
- 네트워크 부분의 길이에 따라 5단계로 구성
- A Class : 국가나 대형 통신망에 사용(0~127). 2^24개의 호스트 사용 가능
- B Class : 중대형 통신망에 사용(128~191). 2^16개의 호스트 사용 가능
- C Class : 소규모 통신망에 사용(192~223). 2^8개의 호스트 사용 가능
- D Class : 멀티캐스트 용으로 사용(224~239)
- E Class : 실험적 주소이며 공용되지 않음
- 서브네팅(Subnetting)
- 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것
- 4Byte의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고 하며, 이를 변경하여 네트워크 주소를 여러 개로 분할하여 사용
- IPv6의 개요
- 현재 사용하고 있는 IPv4의 주소 부족 문제를 해결하기 위해 개발
- 128비트의 긴 주소 사용. 자료 전송 속도가 빠름
- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결
- IPv4와 호환성이 뛰어남
- 주소의 확장성, 융통성, 연동성이 뛰어남. 실시간 흐름 제어로 향상된 멀티미디어 기능 지원
- Traffic Class, Flow Label을 이용하여 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장 용이
- IPv6 구성
- 16비트씩 8부분, 총 128비트
- 각 부분을 16진수로 표현하고 : 으로 구분
- 유니캐스트 : 1:1 통신에 사용
- 멀티캐스트 : 1:다 통신에 사용
- 애니캐스트 : 가장 가까이 있는 단일 수산자 간의 통신. 1:1 통신에 사용
- 도메인 네임
- 숫자로 된 IP주소를 사람이 이해하기 쉬운 문자 형태로 표현
- 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관 종류, 국가명 순으로 구성
- 왼쪽에서 오른쪽으로 갈수록 상위 도메인 의미
- 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 시스템을 DNS라 함
- 이 역할을 하는 서버를 DNS 서버라고 함
11. OSI 참조 모델 – A
- OSI 참조 모델의 개요
- 다른 시스템 간의 원활한 통신을 위해 ISO에서 제안한 통신 규약
- 7단계로 표준화하여 규정
- 1~3 계층을 하위 계층, 4~7 계층을 상위 계층
- 하위 계층 : 물리 -> 데이터 링크 -> 네트워크
- 상위 게층 : 전송 -> 세션 -> 표현 -> 응용
- OSI 참조 모델의 목적
- 서로 다른 시스템 간을 상호 접속하기 위한 개념을 규정
- OSI 규격을 개발하기 위한 범위를 정함
- 관련 규정의 적합성을 조절하기 위한 공통적 기반 제공
- OSI 참조 모델에서의 데이터 단위
- 프로토콜 데이터 단위(PDU; Protocol Data Unit)
- 동일 계층 간에 교환되는 정보의 단위
- 물리 : 비트
- 데이터 링크 : 프레임
- 네트워크 : 패킷
- 전송 : 세그먼트
- 세션, 표현, 응용 : 메시지
- 서비스 데이터 단위(SDU; Service Data Unit)
- 서비스 접근점(SAP)을 통해 상하위 계층끼리 주고받는 정보의 단위
- 물리 계층(Physical Layer)
- 전송에 필요한 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙 정의
- 물리적 전송 매체와 전송 신호 방식을 정의
- RS-232C, X.21 등의 표준
- 관련 장비 : 리피터, 허브
- 데이터 링크 계층(Data Link Layer)
- 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
- 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능
- 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능
- 오류의 검출과 회복을 위한 오류 제어 기능
- 프레임의 순서적 전송을 위한 순서 제어 기능
- HDLC, LAPB, LLC, MAC, LAPD, PPP 등의 표준
- 관련 장비 : 랜카드, 브리지, 스위치
- 네트워크 계층(Network Layer, 망 계층)
- 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
- 네트워크 연결을 설정, 유지, 해제하는 기능
- 경로 설정, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송 수행
- X.25, IP 등의 표준
- 관련 장비 : 라우터
- 전송 계층(Transport Layer)
- 논리적 안정과 균일한 데이터 전송 서비스 제공. 종단 시스템 간에 투명한 테이터 전송 가능
- 하위 3계층과 상위 3계층의 인터페이스 담당
- 종단 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
- 주소 설정, 다중화, 오류 제어, 흐름 제어 수행
- TCP, UDP 등의 표준
- 관련 장비 : 게이트웨이
- 세션 계층(Session Layer)
- 송수신 측 간의 관련성을 유지하고 대화 제어를 담당
- 대화 구성 및 동기 제어, 데이터 교환 관리 기능
- 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신 상태 체크. 체크점을 동기점이라고 함
- 동기점은 오류가 있는 데이터의 회복을 위해 사용
- 표현 계층(Presentation Layer)
- 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환
- 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환
- 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요
- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환, 문맥 관리 기능
- 응용 계층(Application Layer)
- 사용자가 OSI 환경에 접근할 수 있도록 서비스 제공
- 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스 제공
12. 네트워크 관련 장비 – B
- 네트워크 인터페이스 카드(NIC)
- 컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치
- 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경
- 이더넷 카드(LAN 카드) 혹은 네트워크 어댑터라고도 함
- 허브(Hub)
- 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치
- 각 회선을 통합적으로 관리. 신호 증폭 기능을 하는 리피터의 역할도 포함
- 더미 허브
- 네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만을 제공
- LAN이 보유한 대역폭을 컴퓨터 수만큼 나누어 제공
- 네트워크에 연결된 각 노드를 물리적인 성형 구조로 연결
- 스위칭 허브
- 네트워크상에 흐르는 데이터의 유무 및 흐름을 제어
- 각각의 노드가 허브의 최대 대역폭을 사용할 수 있는 지능형 허브
- 최근에 사용되는 허브는 대부분 스위칭 허브
- 리피터(Repeater)
- 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할
- OSI 참조 모델의 물리 계층에서 동작하는 장비
- 근접한 네트워크 사이에 신호를 전송하는 역할
- 전송 거리의 연장 또는 배선의 자유도를 높이기 위한 용도
- 브리지(Bridge)
- LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결하는 기능
- 데이터 링크 계층 중 MAC(Media Access Control) 계층에서 사용됨
- 트래픽 병목 현상을 줄일 수 있음
- 네트워크를 분산적으로 구성할 수 있어 보안성을 높일 수 있음
- 브리지를 이용한 서브넷 구성 시 전송 가능한 회선 수는 브리지가 n개일 때 n(n-1)/2개
- 스위지(Switch)
- LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
- 하드웨어를 기반으로 처리하므로 전송 속도가 빠름
- 포트마다 각기 다른 전송 속도를 지원하도록 제어 가능. 수십에서 수백 개의 포트 제공
- OSI 참조 모델의 데이터 링크 계층에서 사용
- 라우터(Router)
- LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능 추가.
- LAN과 WAN의 연결도 수행
- OSI 참조 모델의 네트워크 계층에서 동작하는 장비
- 접속 가능한 경로에 대한 정보를 라우팅 제어표에 저장하여 보관
- 프로토콜 변환 기능 수행
- 게이트웨이(Gateway)
- 전 계층의 프로토콜 구조가 다른 네트워크의 연결을 수행
- 데이터 형식 변환, 주소 변환, 프로토콜 변환 등을 수행
- LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할
- 네트워크 장비 설치 시 고려 사항
- 네트워크에 설치된 장비를 최대한 활용
- 시스템 확장이나 증설 등을 고려하여 설계
- 최신 버전을 선정
- 트래픽을 분산시킬 수 있도록 설계
- 관리나 유지 보수가 용이하게 설계
- 장애 발생 시 즉시 조치할 수 있도록 여유 포트를 고려하여 설계
- 신기술 도입 시 연동할 수 있는 미래 지향적인 네트워크 시스템 구축
13. 프로토콜의 개념 – B
- 프로토콜의 정의
- 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화한 통신 규약
- 하드웨어와 소프트웨어, 문서를 모두 규정
- 프로토콜의 기본 요소
- 구문(Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정
- 의미(Semantics) : 협조 사항과 오류 관리를 위한 제어 정보 규정
- 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등 규정
- 프로토콜의 기능
- 단편화와 재결합
- 송싱 측에서 전송할 데이터를 전송에 알맞은 크기의 작은 블록으로 자르는 작업을 단편화
- 수신 측에서 단편화된 블록을 원래의 데이터로 모으는 것을 재결합
- 단편화된 데이터 블록을 프로토콜 데이터 단위(PDU)라고 함
- 단편화하여 전송하면 전송 시간이 빠르고, 통신중의 오류를 효과적으로 제어 가능
- 너무 작게 단편화할 경우 재결합 시 처리 시간이 길어지고, 부수적인 데이터가 많아져 비효율적
- 캡슐화
- 단편화된 데이터에 송수신지 주소, 오류 검출 코드, 프로토콜 기능을 구현하기 위한 프로토콜 제어 정보 등의 정보를 부가하는 것으로 요약화라고도 함
- 데이터 링크 제어 프로토콜의 HDLC 프레임
- 정보 데이터를 오류 없이 정확하게 전송하기 위해 캡슐화 수행
- 흐름 제어
- 수신 측의 처리 능력에 따라 송신 측에서 송신하는 데이터의 전송량, 속도를 조절하는 기능
- 정지-대기, 슬라이딩 윈도우 방식을 이용
- 오류 제어
- 전송중에 발생하는 오류를 검출하고 정정하여 데이터나 제어 정보의 파손에 대비하는 기능
- 동기화
- 송수신 측이 같은 상태를 유지하도록 타이밍을 맞추는 기능
- 순서 제어
- 전송되는 PDU에 전송 순서를 부여하는 기능
- 연결 위주의 데이터 전송 방식에만 사용
- 데이터들이 순서적으로 전송되도록 하여 흐름 제어 및 오류 제어를 용이하게 함
- 주소 지정
- 데이터가 목적지까지 정확하게 전송될 수 있도록 목적지 이름, 주소, 경로를 부여하는 기능
- 다중화
- 한 개의 통신 회선을 여러 가입자들이 동시에 사용하도록 하는 기능
- 경로 제어
- 송수신 측 간의 송신 경로 중에서 최적의 패킷 교환 경로를 설정하는 기능
- 전송 서비스
- 우선순위 : 우선순위를 부여하여 우선순위가 높은 메시지가 먼저 도착하도록 함
- 서비스 등급 : 서비스 등급을 부여하여 서비스
- 보안성 : 액세스 제한과 같은 보안 체제를 구현
14. TCP/IP – A
- TCP/IP의 개요
- 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
- ARPANET에서 사용하기 시작
- UNIX의 기본 프로토콜로 사용. 현재 인터넷 범용 프로토콜로 사용
- TCP 프로토콜 + IP 프로토콜
- TCP
- 전송 계층
- 신뢰성 있는 연결형 서비스 제공
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
- 스트림 전송 기능 제공
- IP
- 네트워크 계층
- 데이터그램을 기반으로 하는 비연결형 서비스 제공
- 패킷의 분해/조립, 주소 지정, 경로 선택 기능 제공
- 헤더의 길이는 최소 20Byte에서 최대 60Byte
- TCP/IP의 구조
OSI | TCP/IP | 기능 |
응용, 표현, 세션 | 응용 | 응용 프로그램 간 데이터 송수신 |
전송 | 전송 | 호스트들 간의 신뢰성 있는 통신 |
네트워크 | 인터넷 | 데이터 전송을 위한 주소 지정, 경로 설정 |
데이터 링크, 물리 | 네트워크 액세스 | 실제 데이터(프레임)를 송수신 |
- 응용 계층의 주요 프로토콜
- FTP
- 파일을 주고받을 수 있도록하는 원격 파일 전송 프로토콜
- SMTP
- 전자 우편을 교환하는 서비스
- TELNET
- 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용
- 시스템 관리 작업을 할 수 있는 가상의 터미널 기능을 수행
- SNMP
- TCP/IP의 네트워크 관리 프로토콜
- 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용
- DNS
- 도메인 네임을 IP 주소로 Mapping하는 시스템
- HTTP
- WWW에서 HTML 문서를 송수신 하기 위한 표준 프로토콜
- 전송 계층의 주요 프로토콜
- TCP
- 양방향 연결형 서비스 제공
- 가상 회선 연결 형태의 서비스 제공
- 스트림 위주의 전달(패킷 단위)
- 신뢰성 있는 경로를 확립하고 메시지 전송 감독
- 순서 제어, 오류 제어, 흐름 제어
- 패킷의 분실, 손상, 지연이나 순서가 틀린 것 등이 발생할 때 투명성 보장하는 통신 제공
- UDP
- 비연결형 서비스 제공
- 상대적으로 단순한 헤더 구조를 가져 오버헤드가 적음
- 빠른 속도, 동시에 여러 사용자에게 데이터 전달, 반복해서 전송할 경우 사용
- 실시간 전송에 유리
- 신뢰성보다는 속도가 중요시되는 네트워크에 사용 -RTCP
- RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션에 참여한 각 참여자들에게 주기적으로 제어 정보 전송
- 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화 제공
- 데이터 전송을 모니터링하고 최소한의 제어와 인증 기능만을 제공
- RTCP 패킷은 항상 32비트의 경계로 끝남
- 인터넷 계층의 주요 프로토콜
- IP
- 전송할 데이터에 주소를 지정하고 경로를 설정하는 기능
- 비연결형인 데이터그램 방식을 사용
- 신뢰성이 보장되지 않음
- ICMP
- IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리
- 헤더는 8Byte
- IGMP
- 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용
- ARP
- 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC 주소)로 바꿈
- RARP
- ARP와 반대로 물리적 주소를 IP 주소로 변환하는 기능
- 네트워크 액세스 계층의 주요 프로토콜
- Ethernet(IEEE 802.3)
- CSMA/CD 방식의 LAN
- IEEE 802
- LAN을 위한 표준 프로토콜
- HDLC
- 비트 위주의 데이터 링크 제어 프로토콜
- X.25
- 패킷 교환망을 통한 DTE와 DCE 간의 인터페이스를 제공
- RS-232C
- 공중 전화 교환망(PSTN)을 통한 DTE와 DCE 간의 인터페이스를 제공
댓글남기기