본문 바로가기
License/정보처리기사

[정보처리기사] 4과목 프로그래밍 언어 활용 - 응용 SW 기초 기술 활용(네트워크)

by ngool 2024. 11. 9.

📌 네트워크 기초 활용

네트워크(Network)란?

  • 여러 장치들이 서로 데이터를 주고 받기 위해 연결된 시스템

<근거리 통신망(Local Area Network)>

  • 장치들이 케이블을 통해 물리적으로 연결된 형태
  • 안정적이고 빠르지만 이동성에 제한

<무선랜 통신망(WLAN, Wireless LAN)>

  • 장치들이 무선 신호로 연결
  • 간섭이나 신호 강도에 따라 성능이 달라질 수 있음

IEEE 802.11

  • 무선 네트워크(Wi-Fi) 통신을 위한 표준을 정의하는 규격

802.11e

  • IEEE 802.11 워킹 그룹의 중 QoS 강화를 위해 MAC 기능 지원을 채택한 것

MAC(Media Access Control)

  • 네트워크에서 여러 장치가 동일한 통신 매체를 공유할 때 데이터 충돌을 막고 효율적으로 통신하게끔 조정함
  • 충돌을 탐지하는 CSMA/CD 방식과 충돌을 회피하는 CSMA/CA 방식이 있음
  • CSMA / CD (Carrier Sense Multiple Access with Collision Detection)
  • CSMA / CA (CSMA with Collison Avoidance)

OSI(Open System Interconnection) 7계층

  • 네트워크 통신을 여러 계층으로 나눠 설명하는 참조 모델
  • 각 계층은 특정 기능을 담당하며, 상위 계층은 하위 계층의 서비스를 사용해 통신을 처리

 
1. 물리 계층(Physical Layer)

  • 실제 데이터를 전송하기 위해 사용되는 전기적 신호 등 물리적인 부분을 정의하는 계층
  • 허브(Hub), 리피터(Repeater) 등의 장비 활용

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

  • 링크의 설정과 유지, 종료를 담당하며 노드 간의 오류 제어와 흐름 제어 기능을 수행하는 계층
  • 대표적인 프로토콜은 HDLC, PPP, LLC, ATM 등이 있음
  • 스위치(Switch), 브릿지(Bridge) 등의 장비 활용

자동반복 요청 방식(ARQ, Automatic Repeat Request)

  • 데이터를 전송할 때 수신자 측에서 오류가 감지되면 송신자 측에 데이터 재전송을 요구하는 방식
  • Stop-And-Wait ARQ, Go-Back-N ARQ, Selective Repeat ARQ 방식이 있음

3. 네트워크 계층(Network Layer)

  • 패킷을 발신지로부터 최종 목적지까지 전달하는 역할을 수행하는 계층
  • 패킷에 발신지와 목적지의 논리 주소를 정의하고, 네트워크 간 연결을 담당
  • 대표적인 프로토콜은 IP, ARP, RARP, ICMP, 라우팅 프로토콜 등이 있음

네트워크 계층의 프로토콜

  • IP : 패킷의 주소 지정과 라우팅을 담당
  • ARP : IP 주소를 물리적 MAC 주소로 변환
  • RARP : MAC 주소를 IP 주소로 변환
  • ICMP : IP의 동작 과정에서의 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송
  • 라우팅 프로토콜 : 패킷 전송 경로를 결정

4. 전송 계층(Transport Layer)

  • 종단 간 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출과 복구, 흐름 제어를 수행하는 계층
  • 대표적인 프로토콜은 TCP, UDP

5. 세션 계층(Session Layer)

  • 통신 세션을 설정, 유지, 종료하는 역할
  • 통신 중 연결이 끊기지 않도록 관리

6. 표현 계층(Presentation Layer)

  • 데이터 형식 변환을 담당하는 계층
  • 서로 다른 시스템 간 데이터가 동일하게 해석되도록 압축과 암호화 등의 기능을 수행
  • 대표적인 프로토콜은 JPEG, MPEG 등

7. 응용 계층(Application Layer)

  • 사용자와 가장 가까운 계층으로, 사용자와 직접 상호작용하는 프로그램들이 위치
  • 웹 브라우저, 이메일 클라이언트 등
  • 대표적인 프로토콜은 HTTP, FTP, SSH, SMTP 등

SSH(Secure Shell)

  • 네트워크 상에서 안전하게 원격 서버에 접속하고 명령을 실행할 수 있는 프로토콜
  • 22번 포트를 사용해 통신하며 전송되는 데이터는 암호화됨
  • 키를 통한 인증은 클라이언트 공개키를 서버에 등록해야 함

📌 IP

IP(Internet Protocol)란?

  • 네트워크 상에서 데이터 패킷을 목적지로 전송하기 위한 규칙과 방법을 정의
  • 네트워크 계층(3계층)에서 주소 지정, 패킷 분할병합 기능을 담당
데이터 패킷이 뭐냐구요?
쉽게 말해, 그냥 네트워크 상에서 주고 받는 "데이터 덩어리"입니다.

IP의 특징

  • Best Effort 원칙에 따른 전송 기능을 제공
  • (Best Effort : IP는 최선을 다해 데이터를 전달하지만, 전달을 100% 보장하지는 못한다는 의미)
  • 에러 제어와 흐름 제어가 없음
  • 송신된 데이터가 송신된 순서와 다르게 목적지에 도착할 수 있음
  • 비연결형 서비스를 제공
  • 패킷을 분할, 병합하는 기능을 수행하기도 함

IP 헤더(header)

  • 네트워크에서 데이터 패킷을 전달하기 위해 필요한 정보를 담고 있는 부분
  • 데이터 패킷의 시작 부분에 IP 헤더가 붙어 있어 목적지까지 정확히 전달되도록 함
  • 출발지와 목적지 주소, 패킷의 길이, 데이터 처리 방법 등이 포함됨
  • IP 프로토콜에서는 데이터가 아닌 헤더에 대해서만 체크섬(Checksum) 기능을 제공

📌 IPv4

IPv4란?

  • 가장 널리 사용되는 IP version으로, 32비트 주소 체계를 사용
  • 2^32개의 고유한 IP 주소를 생성할 수 있으며 약 43억 개의 주소를 제공

IPv4 주소

  • 32비트를 8비트씩 4개의 부분으로 나누어 3자리의 십진수로 표현
  • 각 부분은 0부터 255까지의 값을 가질 수 있음 (ex. 192.168.0.1)

IPv4 클래스

  • IPv4 주소는 네트워크를 효율적으로 관리하기 위해 여러 클래스로 구분
  • 각 클래스는 주소의 용도에 따라 다르며 클래스에 따라 네트워크와 호스트 주소의 길이가 달라짐
  • 클래스 A - 대규모 네트워크 용(대형 기업 등)
  • 클래스 B - 중간 규모 네트워크
  • 클래스 C - 소규모 네트워크(가정 집)
  • 클래스 D - 멀티 캐스트 용도 네트워크
  • 클래스 E - 실험 및 연구 목적 네트워크

📌 서브넷 마스크(Subnet Mask)와 서브네팅(Subnetting)

서브넷 마스크(Subnet Mask)란?

  • 네트워크 부분과 호스트(개별 장치) 부분을 나누는 데 사용하며 IP 주소와 같은 형식을 가짐
  • ex) 255.255.255.0은 IP 주소의 첫 24비트가 네트워크 부분, 나머지 8비트가 호스트 부분이라는 것을 의미

서브네팅(Subnetting)이란?

  • 기존의 네트워크를 여러 개의 작은 네트워크(서브넷)으로 나누는 과정
  • 동일한 크기로 나뉘는 FLSM가변적 크기로 나뉘는 VLSM으로 구분
서브네팅을 통해 보안을 강화하고 IP 주소를 더 효율적으로 사용할 수 있습니다!

📌 서브넷 주소 & 브로드캐스트(Broadcast) 주소

서브넷 주소

  • 특정 서브넷을 식별하기 위해 사용되는 ip 주소
  • 호스트가 아닌 네트워크 자체를 지칭하며 호스트와는 구분
  • 해당 서브넷의 첫 주소를 사용

브로드캐스트(Broadcast) 주소

  • 특정 서브넷 내의 모든 호스트에게 동시 전송되는 메세지를 보내는 데 사용하는 ip 주소
  • 해당 서브넷의 마지막 주소를 사용


📌 IPv6

IPv6란?

IP 주소 고갈 문제를 해결하기 위해 개발된 새로운 버전으로 128비트 주소 체계를 사용

IPv6의 특징

  • 128비트 주소체계를 통해 2^128개의 주소를 표현할 수 있음
  • IPv6는 주소 자동설정 기능을 통해 손쉬운 네트워크 환경 구성이 가능
  • Plug&Play 지원으로 멀티미디어의 실시간 처리가 가능
  • 확장 헤더를 사용하여 보안, 인증 등 기능 확장에 용이
  • IPv4보다 보안성 강화
  • 패킷 크기는 최대 65535바이트까지 가능
  • 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장에 용이

IPv6 주소

  • 16비트씩 8개의 블록으로 나누어 표현하고, 각 블록은 4자리의 16진수로 표현
  • ex) 2001:0db8:85a3:0000:0000:8a2e:0370:7334

IPv6와 IPv4의 전송 방식 차이

IPv6의 전송 방식

  • 멀티캐스트 : 멀티캐스트 그룹에 속하는 여러 호스트에게 데이터를 전송
  • 유니캐스트 : 한 호스트와의 1:1 통신
  • 애니캐스트 : 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 데이터 전송

IPv4의 전송 방식

  • 멀티캐스트
  • 유니캐스트
  • 브로드캐스트 : 동일 서브네트워크 상의 모든 수신자에게 데이터를 전송

📌 라우팅 프로토콜

라우팅 프로토콜이란?

네트워크에서 데이터 패킷이 목적지까지 효율적으로 전달될 수 있도록 경로를 설정하는 알고리즘

 

=> RIP, OSPF, BGP 등 다양한 라우팅 프로토콜이 있으며, RIP가 대표적임


RIP(Routing Information Protocol)

  • 최단경로 탐색에 벨만-포드 알고리즘을 사용하는 IGP 프로토콜(Internal Gateway Routing Protocol)
  • 경로 선택 메트릭홉(Hop) 카운트이며 거쳐가는 라우터의 수를 의미
  • 최대 홉 카운트는 15개로 제한
  • 각 라우터는 이웃 라우터들로부터 수신한 정보를 이용하여 라우팅 표를 갱신

📌 TCP와 UDP

TCP(Transmission Control Protocol)란?

신뢰성 있는 전송 계층의 연결 지향 프로토콜로, 데이터 전송의 순서와 정확성을 보장

 

<TCP의 특징>

  • 신뢰성 있는 연결 지향형 전달 서비스
  • 스트림 전송 기능을 제공
  • 순서 제어, 오류 제어, 흐름 제어 기능을 제공
  • Stop-and-Wait는 송신자가 데이터를 전송한 후 수신자의 확인 응답을 기다리는 TCP 흐름 제어 기법

UDP(User Datagram Protocol)란?

데이터 전송의 신뢰성 보장은 없지만 속도가 빠른 전송 계층의 프로토콜

 

<UDP의 특징>

  • 흐름 제어나 순서 제어가 없어 전송 속도가 빠름
  • 비연결형 서비스를 제공
  • 단순한 헤더 구조(8바이트, TCP는 20바이트)로 오버헤드가 적음

TCP와 UDP의 쓰임새

정확성이 중요할 땐 TCP!
속도가 중요할 땐 UDP!