카테고리 없음

응용SW 기초 기술 활용(NCS 학습모듈)

야생늑대 2022. 8. 27. 13:15
반응형

목표 

- 응용소프트웨어 개발을 위하여 네트워크, 미들웨어, 데이터베이스의 기초 기술을 적용할 수 있다.

 

선수학습

- 개발자 환경 구축, 개발자 환경 운영 지원, 프로토콜 패킷 분석 

 

https://www.ncs.go.kr/unity/th03/ncsSearchMain.do

※   20.정보통신 -> 정보기술 -> 정보기술개발 --> 응용SW엔지니어링 선택 하면 선수학습 자료(PDF) 다운로드 가능

 

NCS 국가직무능력표준, NCS 블라인드채용

NCS 메인에서 국가직무능력표준(National Competency Standards) 및 블라인드 채용에 대한 다양한 정보와 유용한 컨텐츠를 만나 보세요

www.ncs.go.kr

 


핵심용어

- 네트워크 계층 구조, 프로토콜, TCP/UDP, 미들웨어, MVC, DbmS, ERD, SQL ,CRUD, 정규화

 

1. 네트워크 기초 활용하기

 1-1 네트워크 프로토콜 활용

학습목표

네트워크 계층 구조에서 각 계츠으이 역할을 구별할 수 있다.

패킷 스위칭 시스템의 라우팅 알고리즘과 프로토콜을 식별할 수 있다.

응용소프트웨어의 특성에 따라 프로토콜을 구별하여 적용할 수 있다.


1. 네트워크 계층 구조

 1-1. OSI 7 계층 (Open System Interconnection 7 Layer)

  (1) OSI 7 계층의 개념 

       국제표준기구(ISO) 에서 정리한 네트워크 구조에 대한 기본모델

   (2) OSI 7 계층의 필요성

  • 데이터 통신을 위해서는 데이터를 전기 신호로 변환하고 복잡한 네트워크 경로를 통해 데이터를 전달해야 한다.
  • 송신지와 수신지의 컴퓨터 구조가 상이할 경우 전송한 데이터가 올바르게 인식되지 않을 수도 있어 복잡한 변환 과정을 거쳐야 한다.
  • 복잡한 구성을 유사한 기능별로 계층화하여 처리되는 정보들을 캡슐화하여 구성하고 각 계층에 사용되는 통신 규격을 프로토콜로 표준화함으로써 응용소프트웨어 개발자, 서버/네트워크 엔지니어들이 본인이 연관된 계층만 고려하면 업무를 수행할 수 있도록 한다.

      응용 소프트웨어 개발자는 상위계층( 7~5) 사용 = (송수신 데이터의 가공 및 활용에 초점)

      서버/네트워크 엔지이너는 하위 계층(1~4) 사용 = (데이터를 목적지에 정확히 전달하는 것에 초점)

 

  ※ 하지만 응용 소프트웨어 개발자는 4계층에 지정된 포트 번호를 통해 상위 계층의 프로토콜을 구별할 수 있기 때문에

    개발을 위해서는 4계층의 헤더 정보 분석에도 관심을 가지고 학습해야 한다.

 (3) OSI 7계층의 구성

구분 계층 역할 및 기능 주요 장비
Application Layer
(상위 계층)
7. Application Layer - 사용자에 서비스 제공
- 사용자 입출력 정의
- 응용 프로세스 관리
L7 스위치,
웹 방화벽
6. Presentation Layer - 송수신지의 다른 데이터 표현 방식을 상호 인식 가능하도록 변환
-인코딩, 암호화, 입출, 코드 변환
 
5. Session Layer - 송수신지의 프로세스 간 연결 관리
- 통신 오류 복ㄱ 및 재전송
 
Data Flow Layer
(하위 계층)
4. TransPort Layer - 세크먼트 구성
- 송수신지의 포트(Port) 지정
- 메시지분할 및 재조립
- 프로세스 간 혼잡제어, 흐름제어
- 오류제어 및 재전송
로드밸런서.
방화벽
3. Network Layer - 패킷 구성
- 송수진지의 논리 주소(IP)주소
- 최적 경로 탐색 및 전송
라우터,  L3 스위치
2. Data Link Layer - 프레임 구성
- 오류제어, 흐름 제어, 접근제어
- 송수신지의 물리주소(MAC) 지정
NIC, L2 스위치
1. Physical Layer - 비트 스트림의 전기 신호 전송
- 비트의 부호화 및 복호화
- 물리적 연결 설정 및 해체
허브, 리피터, 케이블

1-2 TCP/IP(Transmission Control Protocol/ Internet Protocol) 프로토콜 스택

 (1) TCP/IP 프로토콜 스택의 개념

  OSI 7 Layer 를 실무에 활용하는 기능 중심으로 4계층으로 구조화하고, 각 그룹에서 활용되는 프로토콜군을 정리한 네트워크 통신 구조 모델

  (2) TCP/IP 프로토콜 스택의 구성

 OSI 7 Layer의 1, 2계층과 5, 6, 7 계층을 통합하여 4계층으로 구성된다.

 


2. 인캡슐레이션(Encapsulation) 과 디캡슐레이션(Decapsulation)

 인캡슐레이션  

  • 송신지에서 전송데이터를 패킷으로 분할, 각 패킷에 송수신지의 IP/Port, 전송 순번 등을 같이 보낸다.
  • Appication Layer에서 하위 계층으로 이동
  • 각 계층에서 처리한 결과를 캡슐화하는 과정

                          

 디캡슐레이션 

  • 수신지에서 분할되어 도착된 패킷들을 재조합한다.
  • 하위계층 - >>  상위계층  으로 이동
  • 각 네트워크 계층에서 처리 가능한 형태로 디캡슐화 하는 과정

PDU(Protocol Data Unit)

- PDU는 각 네트워크 계층에서 사용하는 데이터 단위를 의미하는 용어로 통신에 필요한 헤더정보(제어 정보) 와 데이터를 캡슐화하여 구성하며 Frame, Paket, Segment 등 계층 별로 다른 단위를 사용한다.

 

3. 네트워크 계층별 헤더 정보

 - 송신지와 수신지의 각 계층에서는 독립적으로 통신을 수행하기 위해 PDU의 헤더 정보에 계층별 주요 제어정보를 포함

 

 (1) 계층별 헤더 정보

 Transport (4 Layer) - Port 가 들어가거나 Number 가 들어가면 이것.

 Network (3 Layer) - IP 가 들어가거나 , Protocol, Version, DSCP, ECN, IHL 등

Data Link (2 Layer) - MAC가 들어가거나 Ether Type 

 

(2) 상위 프로토콜 지시자

 

4. 라우팅 유형

- 데이터가 송신지에서 수신지까지 이동하는 경로를 형성하는 것을 라우팅 이라 한다.

 4-1 정적 라우팅 (Static Routing)

     네트워크 관리자가 직접 테이블에 경로를 입력하여 관리하는 방법

 4-2 동적 라우팅(Dynamic Routing)

    네트워크 직접 개입하지 않고 라우터 간에 정보를 교환하면서 라우팅 경로를 관리하는 방법

     (1) 거리 백터 라우팅 알고리즘 (Distance Vector Routing Algorithm)

         인접 라우터와 라우팅 테이블 정보를 교환하여 패킷 전송을 위해 거쳐야하는 라우터의 개수로 거리를 산정하여

         최적의 라우팅 경로를 수립하는 방법 RIP등의 프로토콜을 이용해 라우터 간 정보를 교환한다.

      (가) RIP(Routing Information Protocol)

            라우팅 테이블에 동일 네트워크에 포함된 각 라우터에 도달하기 위해 거쳐야하는 라우터들의 최대 수와 각 라우터에 도달하기 위해 아동해야 하는 다음 라우터 정보를 관리하고, 정기적으로 라우팅 테이블 정보를 인접 라우터와 교환하여 자신의 라우팅 테이블을 갱신하는 방법

(2) 링크 상태 라우팅 알고리즘( Link State Routing Algorithm)

연결된 모든 라우터로부터 연결 상태 정보를 수신. OSPF 등의 프로토콜을 이용해 라우터 간 정보를 교환

     (가) OSPF(Open  Shortest path First)

  라우터의 연결 상태가 변경된 경우 동일 네트워크에 포함된 모든 라우터에 자신의 변경정보를 전달하고, 정보를 수신한 라우터들이 각 라우터에 접근하기 위한 최적의 네트웤 경로를 갱신하는 방법

 


수행내용 - 네트워크 프로토콜 활용하기

 

수행순서 

1. 네트워크 계층 구조를 학습하고 각 계층의 역할을 구별한다.

 1-1 네트워크 계층 구조 및 계층 별 역할을 학습한다.

 (1) OSI 7 Layer 참조 모델을 학습한다.

(2) TCP/IP 프로토콜 스택을 학습한다.

(3) 인캡슐레이션과 디캡슐레이션을 학습한다.

(4) 네트워크 계층별 역할을 수행하기 위한 제어 정보가 포함된 헤더 구조를 학습한다.

 

 1-2 네트워크 계층의 헤더 정보를 분석하여 네트워크 계층의 역할을 구별한다.

(1) 네트워크 패킷분석기 설치

(2)국가직무능력표준 시스템의 IP확인

(3)네트워크 패킷 분석기로 계층별 헤더 정보를 분석하여 계층별 역할을 확인한다.

 

2. 패킷 스위칭 시스템의 구조를 파악하고 라우팅 알고리즘과 프로토콜을 식별한다.

※ 패킷 스위칭 시스템(Packet Switching System)

- 데이터를 패킷으로 분할하고 송수신 주소를 헤더로 만들어 교환기가 헤더 정보를 참고하여 수신자까지 전달시키는 데이터 통신 방식의 시스템

2-1 패킷 스위칭 시스템의 구조를 파악한다.

(1) 학습자의 IP와 기본 라우터 정보 확인

(가) 명령어처리기 프로그램 실행

(나) ipconfig /all 명령어를 입력

(다) Ipv4 주소로 할당 된 IP정보를 확인

(라)기본 게이트웨이로 기본 라우터 IP확인

(2) 접속하고자 하는 시스템의 네트워크 연결 상태를 확인

(가) ping(Packet InterNet Groper) 명령오로 접속하고자 하는 시스템의 IP 또는 URL을 입력하여 접속 여부를 확인

(나)네트워크 연결이 정상이면 왕복 시간 표시

(다) 네트워크 연결이 비정상이면 호스트를 찾을 수 없다고 표시되거나 요청시간이 만료되었다고 표시

(라) 문제가 없는 경우 라우팅 경로에 있는 모든 장비의 연결 상태를 순차적으로 점검

(3) 목적지 시스템까지의 라우팅 경로를 확인하여 네트워크 상태를 파악

(가) tracert 명령어로 접속하고자하는 시스템까지 경유하는 라우터 확인

(나)경로에 문제가 있거나 중간 라우터에 장애가 있는 경우 또는 방화벽 정책에 의해 연결이 막혀있는 경우 목적지 IP까지 도달하지 못한다.

 

※수행 TIP

  • 윈도우 ipconfig,  tracert  
  • 유닉스/리눅스  ifconfig,  traceroute
  • /? 로 옵션종류 확인가능
  • 기본게이트웨이가 0.0.0.0 이면 외부 네트워크와 단절된 상태
  • 네트워크 그루핑(Grouping) 현황을 알기 위해서는 서브넷 마스크도 중요(별도 학습하도록)

 

2-2 라우팅 알고리즘과 프로토콜을 식별한다.

(1) 라우팅 장비에 접속

(가) 라우팅 테이블(Routing Table)

- 라우터에 전달된 패킷이 목적지까지 전달되기 위해 거쳐야하는 라우팅 경로를 관리하는 테이블  

   Static Routing - 네트워크 장애가 있는 경우에도 관리자가 직접 경로를 입력해야하므로 

                             변화가 적은 소규모 네트워크에 적합

   Dynamic Rauting - 대부분의 일반적인 네트워크에 사용

(2) 라우팅 테이블을 조회하여 라우팅 알고리즘과 프로토콜을 식별한다.

 

3. 응용소프트웨어의 특성을 파악하고 프로토콜을 구별하여 적용한다.

3-1 응용소프트웨어의 특성을 파악한다.

(1) 요구사항 명세서 확인

(2) 요구사항을 분석하고 구현 기능의 특성을 파악한다.

3-2 기능 구현을 위해 필요한 프로토콜을 파악한다.

(1)RQ-01의 네트워크 구간 암호화 적용을 위해 HTTPS 프로토콜을 파악한다.

(가) 네트워크 구간 암호화는 사용자의 웹브라우저와 웹서버 사이에 송수신 중인 데이터를 암호화하여 중간에 데이터를 탈취하여 악용하는 것을 방지하기 위한 기법으로 HTTPS(HyperText Transfer Protocol over Secure socket layer) 프로토콜을 이용하여 기능 구현할 수 있다. HTTPS 프로토콜을 이용하기 위해서는 웹 서버에 SSL인증서를 설치하고 사용자가 HTTP로 접속을 하면 HTTPS로 Redirect하도록 설정해야 한다. HTTPS는 443포트를 이용해 통신하는 프로토콜로 패킷분석도구로 확인할 수 있다.

 

※ 수행 TIP

TLS는 SSL3.0의 업그레이드 버전으로 SSL의 보안 취약점을 보완한 네트워크 보안 프로그램이다.

 

(2) RQ-04의 메일 발송 기능을 위해 SMTP를 파악한다.

(가) 메일발송을 위해서는 TCP 25번 포트를 사용하는 애플리케이션 계층 프로토콜인 SMTP(Simple Mail Transfer Protocol)를 사용하며, 아래와 같은 구조로 메일을 발송한다. 이 기능을 사용하기 위해서는 웹 서버에 SMTP 전자메일 서비스 설정을 해야한다.

 

※ 수행 TIP

서버 환경 구성 시 방화벽에서 25번 포트의 사용을 차단했을 수 있으므로 방화벽 해제를 네트워크 담당자에 요청한다.

25번포트가 일반적이지만 최근에는 보안을 위해 587번 포트를 사용하는 추세이다.

메일 서버에서 사용자 로컬환경으로 메일을 수신하기 위해서는 POP3 프로토콜을 사용한다.

 

(3) RQ-06의 파일 서버전송 기능을 위해 FTP를 확인한다.

파일 서버로 자료를 관리하려면 아래와 같이 응용소프트웨어로 WAS(Web Application Server) 에 파일을 업로드하고 WAS에서 파일 서버로 FTP(File Transfer Protocol) 전송하도록 프로그램을 개발하거나 FTP Client 소프트웨어로 FTP Server에 직접 접속하여 업로드 한다. 이 때 사용하는 애플리케이션 계층의 파일 전송용 프로토콜로 능동모드(Active Mode) 수동 모드(Passive Mode)가 있으며 각각 사용하는 포트가 다르다. 

능동모드 - FTP접속을 위한 21번 포트, 데이터전송을 위한 20번포트

수동모드 - 21번 포트, 데이터전송을 위한 1024이상의 포트를 FTP Server가 정해서 사용한다.

수행 TIP

FTP는 보안에 취약하여 최근에는 암호회하여 파일을 송수신하는 sFTP를 사용하는 추세이다. sFTP는 22번포트를 사용한다. 

FTP 유형 및 모드에 따라 방화벽 해제가 필요하다.

 

3-3 프로토콜을 적용한다.

(1) 리눅스 서버에 접속하여 FTP 소프트웨어를 설치한다.

(가) APT 파일 목록을 갱신한다.

(나) vsftpd 설치 패키지 존재 여부를 체크한다.

(다) vsftpd를 설치한다.

(2)FTP 소프트웨어 설치상태를 점검한다.

(가) vsftpd의 실행상태를 확인

(나) FTP spxmdnjzm tkdxo ghkrdls

(다) FTP 설정을 확인하고 필요한 부분이 있으면 변경한다.

1) /etc/vsftpd.conf 파일을 백업

2) vi 편집기로 /etc/vsftpd.conf 파일을 연다.

3) #write_enable=YES의 #을 제거하여 사용자의 파일 쓰기 허용을 설정한다.

4) :wq!를 입력하여 저장하고 vi 편집기 종료

5) vsftpd 서비스를 재기동

(3)20, 21번 포트 방화벽을 해제하고 상태를 확인한다.

(4) FTP 접속용 계정을 생성한다.

(5) 오픈소스 소프트웨어인 FileZilla를 다운로드 및 설치하여 접속 테스트를 한다.

 

 

반응형