관리 메뉴

나구리의 개발공부기록

CHAPTER 02 - 네트워크 기초 활용하기(2) 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/실기 11강 - 응용 SW 기초 기술 활용

CHAPTER 02 - 네트워크 기초 활용하기(2)

소소한나구리 2024. 7. 13. 20:32

2024년도 수제비 실기책(6판) 내용 정리


2. 네트워크 프로토콜 파악

1) 프로토콜

(1) 프로토콜(Protocol)개념

 

  • 서로 다른 시스템이나 기기들 간의 데이터 교환을 원할히 하기 위한 표준화된 통신규약
  • 심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 기술적 은어를 뜻하는 프로토콜이라고 정의함
  • 통신을 위해 프로토콜이 가져야 하는 일반적인 기능에는 데이터 처리기능, 제어기능, 관리적 기능이있음

(2) 프로토콜의 기본 3요소(구의타)

 

  • 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규정
  • 의미(Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
  • 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정

2) 네트워크 프로토콜 개념(Network Protocol)

  • 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
  • 통신 규약 또는 규칙에는 전달 방식, 통신 방식, 자료의 형식, 오류 검증 방식, 코드 변환 규칙, 전송 속도 등을 정하게 됨
  • 다른 기종의 장비는 각기 다른 통신 규약을 사용하는데 프로토콜을 사용하면 다른 기기 간 정보의 전달을 표준화할 수 있음
특징 설명
단편화 전송이 가능한 작은 블록으로 나누어지는 기법
재조립 단편화되어 온 조각들을 원래 데이터로 복원하는 기법
캡슐화 상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 기법
연결 제어 데이터의 전송량이나 속도를 제어하는 기법
오류 제어 전송 중 잃어버리는 데이터나 오류가 발생한 데이터를 검증하는 제어 기법
동기화 송신과 수신 측의 시점을 맞추는 기법
다중화 하나의 통신 회선에 여러 기기들이 접속할 수 있는 기법
주소 지정 송신과 수신지의 주소를 부여하여 정확한 데이터 전송을 보장하는 기법

3) 데이터 링크 계층(2계층)

(1) 데이터 링크 계층(Data Link Layer)의 개념

 

  • 링크의 설정과 유지 및 종료를 담당하며 노드 간의 회선 제어, 흐름 제어, 오류 제어 기능을 수행하는 계층
  • 회선 제어(Line Control) : 두 개의 스테이션이 동시에 신호를 전송하는 경우 신호 간 충돌이 발생하지 않도록 제어하는 기술로 ENQ/ACK 기법과 풀링 기법이 있음
  • 흐름 제어(Flow Control) : 전송 스테이션으로 하여금 전송 데이터의 양을 제한하기 위해서 사용되는 기술로 정지-대기 기법과 슬라이딩 윈도우 기법이 있음
  • 에러 제어(Error Control) : OSI 7 Layer의 하위의 두 계층 사이에서 데이터의 전송 오류를 검출하여 복구하는 기술로 해밍 코드와 같은 전진 오류 수정(FEC) 기법과 체크썸, CRC, ARQ와 같은 후진 오류 수정 (BEC) 기법이 있음

(2) 데이터 링크 계층 프로토콜

프로토콜 설명
HDLC
(High0Level Data Link Control)
점대점 방식이나 다중방식의 통신에 사용되는 ISO에서 표준화한 동기식 비트 중심의 데이터 링크 프로토콜
PPP
(Point to Point Protocol)
네트워크 분야에서 두 통신 노드 간의 직접적인 연결을 위해 일반적으로 사용되는 데이터 링크 프로토콜
프레임 릴레이
(Frame Relay)
프로토콜 처리를 간략화하여 단순히 데이터 프레임들의 중계(Relay) 기능과 다중화 기능만 수행함으로써 데이터 처리속도의 향상 및 전송지연을 감소시킨 고속의 데이터 전송 기술
ATM
(Asynchronous Transfer Mode)
정보전달의 기본단위를 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송기술

 

[1] HDLC 개념 : 점대점, 다중점 링크 상에서 반이중, 전이중 통신을 모두 지원하도록 설계된 비트 지향형 프로토콜

[2] HDLC 프레임 구조

8비트 8비트 8비트 가변 16비트 8비트
플래그 주소부 제어부 정보부 FCS 플래그
01111110   I프레임
S프레임
U프레임
    01111110
영역 설명
플래그 프레임의 동기를 제공하기 위해 사용하는 영역
주소부 프레임 목적지인 보조국의 주소를 나타내는 영역
제어부 프레임의 종류를 식별하기 위해 사용하는 영역
정보부 실제 정보 메세지가 들어있는 영역
FCS(Frame Check Sequence) 프레임에 대한 전송 오류를 검출하기 위해 사용하는 영역

 

  • 정보 프레임(I 프레임; Information Frame) : 피기백킹(Piggybacking) 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용되는 프레임
  • 감시 프레임(S 프레임; Supervisory Frame) : 프레임 수신 확인, 프레임 전송 요구, 프레임 전송의 일시 연기 요구와 같은 제어 기능을 수행하는 프레임
  • 비번호 프레임(U 프레임; Unnumbered Frame) : 링크의 동작 모드 설정 및 관리, 오류 회복 기능을 수행하는 프레임

[3] HDLC 동작 모드

 

  • 정규 응답모드(NRM), 비동기 응답 모드(ARM), 비동기 균형 모드(ABM)가 있음
  • 국(Station)은 개방 시스템에서 HDLC 절차를 실행하는 부분이며 데이터 제어 명령을 전송하고 응답함
동작 모드 구성도 설명
정규 응답 모드
(NRM; Normal
Response Mode)
- 점대점이나 멀티포인트 불균형 링크 구성에 사용
- 주국(Primary Station)이 링크 제어를 담당하며,
보조국(Secondary Station)은 주국(Primary Station)으로 부터 폴(Poll) 메세지를 수신한 경우에만 데이터를 전송
비동기 응답 모드
(ARM; Asynchronous 
Response Mode)
- 전이중 통신을 하는 포인트 투 포인트 불균형 링크 구성에 사용
- 보조국도 전송 개시할 필요가 있는 특수한 경우에만 사용
- 보조국은 주국의 허가 없이 송신할 수 있지만, 링크 설정이나 오류 복구 등의 제어 기능은 주국만 하는 특징
비동기 균형 모드
(ABM; Asynchronous 
Balanced Mode)
- 균형 링크 구성에 사용
- 각국이 주국이자 보조국으로 서로 대등하게 균형적으로 명령과  응답을 하며 동작

 

(3) 데이터 링크 계층의 오류제어

 

[1] 오류 제어 개념 : 데이터 전송 시 감쇠, 왜곡, 잡음에 의해 생성되 오류를 검출하고 정정하는 기능이며 데이터 전송의 신뢰성을 위해 반드시 필요한 기능임

 

[2-1] 오류 제어 종류 - 전진(순방향) 오류 수정(FEC; Forward Error Correction)

 

  • 데이터 전송 과정에서 발생한 오류를 검출하여 검출된 오류를 재전송 요구 없이 스스로 수정하는 방식
  • 해밍(Hamming) 코드 방식 : 수신측에서 오류가 발생한 비트를 찾아 재전송을 요구하지 않고 자신이 직접 오류를 수정하는 방식으로 1비트의 오류 수정이 가능
  • 상승 코드 방식 : 1개의 오류 비트를 수정할 수 있는 해밍 코드 방식과는 다르게 여러 개 비트의 오류가 있더라도 한곗값(경곗값), 순차적 디코딩을 이용하여 모두 수정할 수 있는 방식

[2-2] 오류 제어 종류 - 후진(역방향) 오류 수정(BEC; Backward Error Correction)

 

  • 데이터 전송 과정에서 오류가 발생하면 송신 측에 재전송을 요구하는 방식
  • 패리티 검사(Parity Check) : 7 ~ 8개의 비트로 구성되는 전송 문자에 패리티 비트를 추가하여 오류를 검출하는 방식
  • CRC (순환잉여검사; Cycle Redundancy Check) : 다항식을 통해 산출된 값을 토대로 오류를 검사하는 방식으로 집단 오류를 해결하기 위한 방식
  • 블록합 검사(Block sum check) : 프레임의 모든 문자로부터 계산되는 잉여 패리티 비트들을 사용하는 이차원(가로/세로) 패리티 검사 방식
  • 자동반복 요청 방식(ARQ; Automatic Repeat Request) : 신뢰성 있는 데이터를 전달하기 위해 재전송을 기반으로 하는 에러제어 방식

** ARQ의 종류(스고셀)

종류 설명
Stop-and-Wait
ARQ 방식
- 한 개의 프레임을 전송하고 수신 측으로부터 ACK 및 NAK 신호를 수신할 때까지 정보 전송을 중지하고 기다리는 방식
- 송신 측이 수신측으로부터 ACK를 받으면 다음 프레임을 전송하고 NAK를 받으면 재전송
- 데이터 프레임의 정확한 수신 여부를 매번 확인하면서 다음 프레임을 전송해 나가는 가장 간단한 오류 제어 방식
- 구현이 간단하고 송신 측에서 최대 프레임 크기의 버퍼가 1개만 있어도 됨
- 전송시간이 긴 경우 전송효율이 저하
Go-back-N
ARQ 방식
데이터 프레임을 연속적으로 전송하는 과정에서 NAK를 수신하게 되면, 오류가 발생한 프레임 이후에 전송된 모든 데이터 프레임을 재전송
Selective Repeat
ARQ 방식
연속적으로 데이터 프레임을 전송하고 에러가 발생한 데이터 프레임만 재전송 하는 방식

4) 네트워크 계층(3계층)

  • 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 위한 수단을 제공하는 계층
  • 라우팅, 패킷 포워딩, 인터 네트워킹(Inter-Networking) 등을 수행함
프로토콜 설명
IP
(Internet Protocol)
송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용하는 통신 프로토콜
ARP (Address
Resolution Protocol)
IP 네트워크상에서 IP 주소를 MAC 주소(물리주소)로 변환하는 프로토콜
RARP (Reverse
Address Resolution
Protocol)
- IP 호스트가 자신의 물리 네트워크 주소는 알지만, IP 주소를 모르는 경우 서버로부터 IP주소를 요청하기 위해 사용하는 프로토콜
- 물리 네트워크(MAC) 주소에 해당하는 IP 주소를 알려주는 역순 주소 결정 프로토콜
ICMP
(Internet Control
Message Protocol)
- IP의 동작 과정에서의 전송 오류가 발생하는 경우에 오류 정보를 전송하는 목적으로 사용하는 프로토콜
- 메세지 형식은 8바이트의 헤더와 가변 길이의 데이터 영역으로 분리
- 수신지 도달 불가 메세지는 수신지 또는 서비스에 도달할 수 없는 호스트를 통지하는데 사용
- ICMP 프로토콜을 사용해서 ping 유틸리티의 구현을 통해 오류가 발생했음을 알리는 기능을 수행
IGMP
(Internet Group
Management Protocol)
- 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는데 사용하는 통신 프로토콜
- 화상회의, IPTV에서 활용되는 프로토콜
- IGMP 기능에는 그룹 가입, 멤버십 감시, 멤버십 응답, 멤버쉽 탈퇴가 있음
라우팅 프로토콜
(Routing Protocol)
데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜
NAT (Network Address 
Translation)
- 사설 네트워크에 속한 IP를 공인 IP 주소로 바꿔주는 네트워크 주소 변환 기술
- 기업 내부에서 사설 IP를 부여해서 사용하다가 기업 외부로 통신할 때는 NAT를 통해서 공인 IP로 변환해서 통신함으로써 부족한 IPv4의 주소 문제를 해결하고 기업 내부의 보안을 강화할 수 있음

 

(1) IPv4(Internet Protocol version 4)

 

  • 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층의 프로토콜

[1] IPv4 헤더(Header)

 

  • IP 패킷의 앞부분에서 주소 등 각종 제어정보를 담고 있는 부분
  • IPv4 헤더 사이즈는 옵션 미지정시에는 최소 20바이트 이상(IPv6는 최소 40바이트 이상)
  • IPv4 헤더 구조(버헤타토 아플프 타플해 소데옵페)
0                                       4                                         8                                        16                                       24                                31
Version Header Length Type of Service Total Length
identification Flags Fragment Offset
Time to Live(TTL) Protocol type Header Checksum
Source Address
Destination Address
Option
Data Padding

 

[2] IPv4 주소체계

 

  • 10진수로 총 12자리이며 4부분으로 나뉘며 각 부분은 0 ~ 255까지 3자리의 수로 표현됨
  • 32비트로 구성되어 있으며 인터넷 사용자의 증가로 인해 주소 공간의 고갈로 128 비트를 주소체계를 갖는 IPv4가 등장되어 점차 확산되고 있음
  • 32비트 주소는 Network를 나타내는 부분과 Host를 나타내는 부분으로 구성되어있고, Network 부분과 Host 부분을 구분하는 것은 서브넷 마스크(Subnet Mask)임

** Network 부분과 Host 부분을 구분하는 표기법은 서브넷 마스크 표현법과 CIDR 표기법이 있음

 - CIDR(Classless Inter-Domain Routing) : 클래스 없는 도메인간 라우팅 기법으로 1993년 도입되기 시작한 최신의 IP 주소 할당 방법 1.1.1.1/32로 표기함

 - 서브넷 마스크표현법은 1.1.1.1(255.255.255.255)로 표기

 

** 네트워크 사용자에게 부여하는 호스트 주소를 지정할 때 네트워크 ID와 브로드캐스트 ID는 빼고 부여해줌

분류 설명 범위
A 클래스 - 가장 높은 단위의 클래스
- 첫 번째 단위의 세 숫자는 0 ~ 127 가운데 하나를 가지며 A클래스가 접속할 수 있는 네트워크를 지시
- 두 번째, 세 번째, 네 번째 단위의 세 숫자는 A 클래스가 자유롭게 네트워크 사용자에게 부여가 가능한 IP임
0.0.0.0 ~ 127.255.255.255
(서브넷 마스크 : 255.0.0.0)
B 클래스 - 두 번째로 높은 단위의 클래스
- 첫 번째 단위의 세 숫자는 128 ~ 191 가운데 하나를 가짐
- 첫 번째, 두 번째 단위의 세 숫자는 B 클래스가 접속할 수 있는 네트워크를 지시
- 세 번째, 네 번째 단위의 세 숫자는 B 클래스가 자유롭게 네트워크 사용자에게 부여가 가능한 IP임
128.0.0.0 ~ 191.255.255.255
(서브넷 마스크 : 255.255.0.0)
C 클래스 - 최하위의 클래스
- 첫 번째 단위의 세 숫자는 192 ~ 223 가운데 하나를 가짐
- 첫 번째, 두 번째, 세 번째 단위의 세 숫자는 C 클래스가 접속할 수 있는 네트워크를 지시
- C 클래스가 자유로이 부여할 수 있는 IP는 마지막 네 번째 단위의 254개
(2개는 네트워크 ID, 브로드캐스트 ID로 사용하지 못함)
192.0.0.0 ~ 223.255.255.255
(서브넷 마스크 : 255.255.255.0)
D 클래스 멀티캐스트 용도로 예약된 주소 224.0.0.0 ~ 239.255.255.255
E 클래스 연구를 위해 예약된 주소 240.0.0.0 ~ 255.255.255.255

 

[3-1] 서브네팅(Subnetting) 개념

 

  • IP 주소 고갈문제를 해결하기 위해 원본 네트워크를 여러 개의 네트워크로 분리하는 과정
  • 대표 네트워크 IP 주소일 경우 호스트 ID는 2진수 기준으로 모두 0을 채워넣고 브로드캐스트 IP 주소일 경우 호스트는 ID 2진수 기준으로 모두 1을 채워 넣음

[3-2] 서브네팅 종류

방식 설명 예시
FLSM (Fixed-Length
Subnet Masking)
- 서브넷의 길이를 고정적으로 사용
- 한 대역을 동일한 크기로 나누는 방식
- 서브네팅 전 : 1network - 256hosts
- 서브네팅 후 : 4network - 64hosts 4개
VLSM (Variable-Length
Subnet Masking)
- 서브넷의 길이를 가변적으로 사용
- 한 대역을 다양한 크기로 나눔
- 서브네팅 전 : 위와 동일
- 서브네팅 후 : 4network - 128, 64, 32, 32 hosts

 

[3-3] 서브넷 계산 : 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 9개의 서브넷으로 나누고 7번째 서브 네트워크의 사용 가능한 IP 주소를 계산

 

  • 10 진수 : 192.168.1.0
  • 2진수 : 11000000.10101000.00000001(여기까지 네트워크 ID).00000000(호스트 ID)

1. 서브넷을 위한 비트 수 결정

 

  • Host ID의 상위 n개의 비트를 이용하여 2ⁿ개의 서브넷으로 분할.(2ⁿ >= 서브넷 개수)
  • 9개의 서브넷으로 나누기 때문에 2ⁿ>=을 만족하는 n을 찾아야 하므로 계산해보면 n이 3일 때는 8 >= 9가 되므로 9개의 서브넷으로 나누지 못하고 n이 4가 되면 16 >= 9 이므로 9개 이상인 16개의 서브넷으로 나눌 수 있게 됨
  • 호스트ID 8자리 00000000을 0000(서브넷 ID) 0000 (호스트 ID)로 나눔

2. 서브넷 ID를 변경하여 유효 서브넷 ID 계산

 

  • 4비트를 서브넷 비트로 이용하므로 16개의 서브넷이 만들어짐(2ⁿ, n = 4)
  • 1개의 서브넷 마다 하위 4비트를 이용하여 호스트에게 ID를 부여할 수 있는데 서브넷 ID는 2진수로 0000 ~ 1111 값까지 1씩 증가시키지만, 9개의 서브넷으로 나눴으므로 1000(9번째 서브넷) 까지 1씩 증가시킴
  • 7번째 서브넷은 0110

3. 호스트 ID를 변경하여 사용 가능한 IP 주소를 계산

 

  • 각각의 서브넷 마다 호스트 ID를 부여할 때 2진수로 모두 0이 채워진 값은 네트워크 주소라 사용할 수 없고, 모두 1이 채워진 값은 브로드캐스트 주소라 사용할 수 없음(2개씩 호스트 ID로 사용할 수 없음)
  • 각각의 서브넷 마다 하위 4비트를 이용하여 호스트에게 ID를 부여할 수 있으므로 16개씩 부여할 수 있지만 2개씩은 사용할 수 없으므로 14개씩 부여할 수 있고, 호스트 ID를 0001 ~ 1110까지 1씩 증가시킴
  • 7번째 서브넷의 사용가능한 IP는 11000000.10101000.00000001.01100001 ~ 011011110 까지 사용할 수 있음

답 : 192.168.1. 97 ~ 110

 

(2) IPv6(Internet Protocol version 6)

 

  • 현재 IPv4가 가지고 있는 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해서 개발된 128bit 주소체계를 갖는 차세대 인터넷 프로토콜
특징 설명
IP 주소의 확장 IPv4의 기존 32비트 주소 공간에서 벗어자 128비트 주소 공간을 제공
이동성 네트워크의 물리적 위치에 제한받지 않고 같은 주소를 유지하면서도 자유롭게 이동가능
인증 및 보안 기능 - 패킷 출처 인증과 데이터 무결성 및 비밀 보장 기능을 IP프로토콜 체계에 반영ㅇ
- IPSec 기능 적용 및 IPv4보다 보안성 강화
개선된 QoS 지원 흐름 레이블(Flow Label) 개념을 도입, 특정 트래픽은 별도의 특별한 처리(실시간 통신 등)를 통해 높은 품질의 서비스를 제공
Plug&Play 지원 - IPv6 호스트는 IPv6 네트워크에 접속하는 순간 자동적으로 네트워크 주소를 부여받음
- 컴퓨터에 하드웨어를 연결하면 별도의 사용자 조작이나 프로그램 설치 없이 바로 사용할 수 있는 기능
Ad-hoc 네트워크 지원 - Ad-hoc 네트워를 위한 자동 네트워킹 및 인터넷 연결 지원
- 자동으로 네트워크 환경 구성이 가능
단순 헤더 적용 IP 패킷의 처리를 신속하게 할 수 있도록 고정 크기의 단순 헤더를 사용하는 동시에 확장 헤더를 통해 기능에 대한 확장 및 옵션 기능의 사용이 용이한 구조
실시간 패킷 추적 가능 흐름 레이블(Flow Label)을 사용하여 패킷의 흐름을 실시간 제공

 

[1] IPv6 헤더(Header)

 

  • IPv4 헤더에 비해 IPv6 출발지 주소, 목적지 주소의 주소 길이로 인하여 커졌고 IPv4의 불필요한 필드를 제거함으로써 헤더가 단순해 짐
  • IPv6 헤더 구조(버트플 페넥홉 소데)
0                                                 4                                                    12                                               24                                              31
Version Traffic Class Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address

 

[2] IPv6 주소체계

 

  • 128 비트의 주소 공간을 제공하며 일반적으로 16비트 단위로 나누어지고 각 16비트 블록은 다시 4자리 16진수로 변환되고 콜론으로 구분됨
  • 64비트를 기준으로 앞 64비트를 네트워크 주소로, 뒤 64 비트를 네트워크에 연결된 랜카드 장비 등에 할당하는 인터페이스 주소로 활용됨
  • 128 비트 주소 공간은 2¹²⁸ 개인 약 3.4 x 10³⁸개의 주소를 갖고 있어 거의 무한대로 쓸 수 있음
  • 16비트(2옥텟)를 16진수로 표현하여 8자리로 나타냄
    ex) 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
  • 대부분의 자리가 0의 숫자를 갖게 되므로 0000 일 경우 하나의 0으로 축약하거나 혹은 아예 연속되는 0의 그룹을 없애고 :(세미콜론)만 남길 수도 있음
    ex) 2001:0db8:0000:0:0::1428:57ab
  • 맨 앞자리의 0도 축약할 수 있으며 0을 축약하고 :로 없애는 규칙은 두번이상 적용할 수 없음
    ex) 0db8 -> db8

(3) IPv4와 IPv6의 특징

구분 IPv4 IPv6
주소 길이 32bit 128bit
표시 방법 8비트씩 4부분으로 나뉜 10진수 16비트씩 8부분으로 나뉜 16진수
주소 개수 약 43억개 3.4 x 10³⁸
주소 할당 A, B, C, D 등 클래스 단위 비순차적 할당(비효율적) 네트워크 규모 및 단말기 수에 따른 순차적 할당(효율적)
헤더 크기 20바이트의 기본 헤더 부분과 가변적인 길이를 가지고 있는 옵션 부분으로 구성 40바이트의 고정된 길이
QoS Best Effort 방식(보장 곤란) 등급별, 서비스별 패킷 구분 보장
보안 기능 IPSec 프로토콜 별도 설치 보안과 인증 확장 헤더를 사용함으로써 인터넷 계층의 보안 기능을 강화
Plug&Play 지원 안함 지원
모바일IP 곤란 용이
웹 캐스팅 곤란 용이
전송방식 유니캐스트, 멀티캐스트, 브로드 캐스트 유니캐스트, 멀티캐스트, 애니캐스트

 

(4) IPv4에서 IPv6로 전환 방법

 

  • IPv4 전용 호스트와 IPv6 전용 호스트 간의 통신을 위한 기술이며 주소와 헤더의 변활을 수행함

[1] 듀얼 스택(Dual Stack)

 

  • IP 계층에 두가지의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택을 선택하는 방법
  • 장점 : DNS 주소 해석 라이브러리가 두 IP 주소 유형을 모두 지원
  • 단점 : 프로토콜 스택 수정으로 인한 과다한 비용 발생

[2] 터널링(Tunneling)

 

  • IPv6망에서 인접한 IPv4 망을 거쳐 다른 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송하는 방법
  • 장점 : 여러 표준화 활동이 존재하고 다양한 기술 표준이 제안되고 있음
  • 단점 : 구현이 어려우며 복잡한 동작 과정을 가짐

[3] 주소 변환(Address Translation) = 헤더 변환 방식이라고도 함

 

  • IPv4 망과 IPv6망 사이에 주소 변환기(게이트웨이)를 사용하여 서로 다른 네트워크상의 패킷을 변환시키는 방법
  • 게이트웨이 관점이라고도 하며 변환 방법에 따라서 헤더 변환 방식, 전송 계층 릴레이 방식, 응용 계층 게이트웨이 방식으로 분류 함
  • 장점 : v4, v16 호스트의 프로토콜 스택에 대한 수정이 필요 없고, 변환 방식이 투명하고 구현이 용이
  • 단점: 고가의 주소 변환기 필요

(5) IP 통신 방식

 

[1] 멀티캐스트 프로토콜(Multicast Protocol)

 

  • 인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송할 수 있는 프로토콜
  • 멀티캐스트 프로토콜 = 멀티캐스트 라우팅 프로토콜 + 그룹관리 프로토톨(IGMP)
  • 멀티캐스트 라우팅 프로토콜 : IP주소로 구분되는 네트워크상의 특정 그룹 모든 사용자에게 동일한 메세지를 전송하기 위한 라우팅 프로토콜
  • 그룹관리 프로토콜(IGMP) : 멀티캐스트를 지원하는 라우터가 멀티캐스트 그룹에 가입한 네트워크 내의 호스트를 관리하기위해 사용하는 프로토콜

[2] 유니 캐스트 프로토콜(Unicast Protocol)

 

  • 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로(One-to-One) 트래픽 또는 메세지를 전송하는 프로토콜

[3] 브로드캐스트 프로토콜(Broadcasting Protocol)

 

  • 하나의 송신자가 같은 서브 네트워크상의 모든 수신자에게 데이터를 전송하는 프로토콜
  • 전체에게 트래픽을 전달하는 브로드캐스트 프로토콜은 각 송신자가 그룹 내의 모든 수신자에게 메세지를 전송하는 컴퓨터 통신 방법임

[4] 애니 캐스트(Anycast Protocol)

 

  • 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 데이터를 전달하는 프로토콜
  • 하나의 수신 주소로 식별되는 다수의 노드로 데이터그래므이 전송이 가능함
주소 형식 - 여러 개의 인터페이스에 동일한 anycast 주소의 부여가 가능
- anycast 주소의 포맷은 unicast 주소와 동일
- 서브네트 Prefix 이후가 모두 '0'으로 채워져 있음
패킷 전달 - 송신자는 매트릭스를 참조하여 anycast 그룹의 가장 가까운 인터페이스로 데이터를 전달
- 가장 가까운 인터페이스의 판단 기준은 라우팅 매트릭스

 

(6) 라우팅 프로토콜(3계층)

 

  • 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 규약
라우팅   정적(static)
동적(Dynamic) 내부 라우팅 프로토콜(IGP) Dintance-Vector 방식 RIP IGRP
Linked-state 방식 OSPF EIGRP
외부 라우팅 프로토콜(EGP) Path-Vector 방식 BGP

 

  • 정적라우팅 : 패킷 전송이 이루어지기 전에 경로 정보를 라우터가 미리 저장하여 중개하는 방식
  • 동적라우팅 : 라우터의 경로 정보가 네트워크 상황에 따라 동적으로 변경되어 중개하는 방식
  • 내부 라우팅 프로토콜(IGP; Interior Gateway Protocol) : 동일한 AS 내의 라우팅에 사용되는 프로토콜
  • 외부 라우팅 프로토콜(EGP; Exterior Gateway Protocol) : 서로 다른 AS 간 라우팅 프로토콜로 게이트웨이 간의 라우팅에 사용되는 프로토콜

[1] RIP(Routing Information Protocol)

 

  • AS(Autonomous System; 자치시스템; 자율시스템) 내에서 사용하는 거리 벡터(Distance-Vector) 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜

* 자치 시스템 : 하나의 도메인에 속하는 라우터들의 집합을 말함(하나의 도메인에 속한다는 것과 같은 의미)

특징 설명
벨만-포드
알고리즘 사용
거리 벡터 라우팅 기반 메트릭 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고 라우팅 테이블을 구성 및 계산

메트릭(Metric) : 라우팅 프로토콜들이 최적 경로(Best Route)를 선택하는 기준 값
15홉 제한 최대 홉 수(Hop Count)를 15 개로 제한

홉 : 데이터가 목적지까지 전달되는 과정에서 거치는 네트워크의 수를 의미(경유 네트워크 서버)
UDP 사용 UDP 포트 번호 520 사용
30초 마다 정보 공유 30초마다 전체 라우팅 정보를 브로드캐스팅

 

[2] OSPF(Open Shortest Path First)

 

  • 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크상태(Link-State) 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
특징 설명
다익스트라
알고리즘 사용
링크 상태 라우팅 기반 메트릭 정보를 한 지역 내 모든 라우터에 변경이 발생했을 때만 보내(Flooding)고 라우팅 테이블을 구성 및 계산
네트워크 변화에 신속하게 대처
라우팅 메트릭 지정 최소 지연, 최대 처리량 등관리자가 라우팅 메트릭 지정
AS 분할 사용 자치 시스템을 지역으로 나누어 라우팅을 효과적으로 관리
홉 카운트 무제한 홉 카운트에 제한 없음
멀티캐스팅 지원 멀티캐스트를 사용하여 정보를 전달

 

[3] BGP(Border Gateway Protocol)

 

  • AS 상호 간(Inter-AS 또는 Iner-Domain)에 경로 정보를 교환하기 위한 라우팅 프로토콜
  •  변경 발생 시 대상까지의 가장 짧은 경로를 경로 벡터(Path Vector) 알고리즘을 통해 선정하고, TCP연결(port 179)을 통해 자치시스템(AS) 으로 라우팅 정보를 신뢰성있게 전달함
  • ISP 사업자들 상호 간에 주로 사용되는 라우팅 프로토콜이며 순환을 피할 수 있도록 목적지까지 가는 경로를 제공함
  • 라우팅 비용(CPU 부하)이 많이 들고, 라우팅 테이블의 크기가 커서 메모리 사용량이 많음
  • 송신 측으로부터 수신 측까지 데이터를 전달하는 과정에서 다양한 물리적인 장치들을 거쳐가며 최적 경로를 산출하기 위한 법칙이 라우팅 알고리즘
유형 설명
거리 벡터 알고리즘
(Distance Vector
Algorithm)
- 거리 벡터 알고리즘은 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘
- 벨만-포드(Bellman-Ford) 알고리즘 사용
- 각 라우터가 업데이트될 경우마다 전체 라우팅 테이블을 보내라고 요청하지만 수신된 경로 비용 정보는 이웃 라우터에게만 보내짐
링크 상태 알고리즘
(Link State
Algorithm)
- 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘
- 다익스트라(Dijkstra) 알고리즘 사용
- 링크 상태 알고리즘을 사용하면 네트워크를 일관성 있게 파악할 수 있으나 거리 벡터 알고리즘에 비하면 계산이 더 복잡하고 트래픽을 광범위한 범위까지 전달함

5) 전송 계층(Transport Layer, 4계층)

  • 상위 계층 들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층
  • 순차 번호 기반의 오류 제어 방식을 사용하고 종단 간 통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송함

(1) TCP(Transmission Control Protocol)

 

  • 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나로 IP와 함께 TCP/IP 라는 명칭으로 사용됨
  • 전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜

[1] TCP 특징(신연흐혼)

특징 설명
신뢰성 보장 - 패킷 손실, 중복, 순서 바뀜등이 없도록 보장
- TCP 하위 계층인 IP 계층의 신뢰성 없는 서비스를 보완하여 신뢰성 제공
연결 지향적 특징 - 같은 전송계층의 UDP가 비연결성인 것과는 달리, TCP는 연결지향적임
- 양단간 애플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신
흐름 제어 (Flow Control) 흐름 제어 기능을 활용여 송신(송신 전송률) 및 수신(수신 처리율) 속도를 일치 시킴
혼잡 제어 (Congestion Control) 네트워크가 혼잡하다고 판단될 때는 혼잡제어 기법을 사용하여 송신율을 감속함

 

[2] TCP 헤더 구조(소데씨엑 헤리플윈 체어옵패)

 

  • 세그먼트는 아래 그림과 같은 헤더 구조로 시작하고, 전송 데이터가 뒤따름
  • TCP 헤더 구조에서 마지막 줄의 Options와 Padding은 생략할 수 있으므로 TCP 헤더의 최소 크기는 20 바이트
  • Options 필드는 다양한 종류의 부가 정보를 전달하는 데 사용하며, 최대 40 바이트의 크기를 지원함
  • Padding 필드는 헤더의 크기를 4바이트 단위로 맞추려고 사용함
0 4 8         15                                                                                              31
Source Port Destination Port
Sequence Number
Acknowledge Number
H.L. Resrved URG ACK PSH RST FIN Window Size
Checksum Urgent Point
Option and Padding
Data

 

헤더 구조 설명 크기
Source/Destination
Port Number
- 송신지 Port 번호, 목적지 Port 번호
- 양쪽 호스트 내 종단 프로세스 식별
각 16 비트
Sequence Number - 바이트 단위로 구분되어 순서화되는 번호
- 이를 통해, TCP 에서는 신뢰성 및 흐름 제어 기능 제공
32비트
Acknowledgement
Number
- 확인응답번호/승인번호
- 상대편 호스트에서 받으려는 바이트 번호를 정의
32비트
HLEN(Header Length) TCP 헤더 길이를 4바이트(32비트) 단위로 표시 4비트
Flag BIt - TCP 연결 설정과 연결 해제 메세지를 구분하는 것이 제어 필드의 기능이며, 1Bit로 구성
- URG, ACK, PSH, RST, SYN, FIN 으로 구성
6개
Window Size - 해당 세그먼트의 송신측이 현재 수신하고자 하는 윈도의 크기(기본 단위는 바이트)
- 윈도우 크기는 송수신 측의 버퍼 크기로 전체 16bit로 되어있고 2¹⁶까지 표시할 수 있기 때문에 최대 크기는 65,535byte
16비트
Checksum - 헤더 및 데이터의 에러 확인을 위해 사용되는 16비트 체크섬 필드
- 데이터를 포함한 세그먼트의 오류를 검사
16비트
Urgent Pointer URG 플래그가 설정된 경우, 이 16비트 필드는 시퀀스 번호로부터의 오프셋을 나타냄 16비트
Options and Padding 최대 40바이트까지 옵션 데이터 포함가능 -

 

(2) UDP(User Datagram Protocol)

 

  • 비연결성이며 신뢰성이 없으며 순서화되지 않은 데이터그램 서비스를 제공하는 전송계층의 통신 프로토콜

[1] UDP의 특징

특징 설명
비신뢰성 - 데이터그램 지향의 전송계층용 프로토콜(논리적인 가상회선 연결이 필요 없음)
- 메시지가 제대로 도착했는지 확인하지 않음(확인 응답 없음)
- 검사 합을 제외한 특별한 오류 검출 및 제어 없음(오류 제어 거의 없음)
순서화되지 않은
데이터그램 서비스 제공
- 수신된 메세지의 순서를 맞추지 않음
- 흐름 제어를 위한 피드백을 제공하지 않음
실시간 응용 및
멀티캐스팅 가능
- 빠른 요청과 응답이 필요한 실시간 응용에 적합
- 여러 다수 지점에 전송 가능
단순 헤더 - 고정 크기의 8바이트만 사용(TCP는 20바이트)
- 헤더 처리에 시간과 노력이 필요하지 않음

 

[2] UDP 헤더 구조(소데렝체다)

0                                                                                                     16                                                                                                   31
Source Port Number(16bit) Destination Port Number(16bit)
UDP Length(16bit) UDP Checksum(16bit)
Data(가변)

 

헤더 구조 설명
Source Port Number 송신 포트번호
Destination Port Number 수신 포트번호, 선택항목(사용하게 되면 응답받게 될 포트 표시)
UDP Length 바이트 단위의 길이(최소값 8, 헤더만 포함될 때)
UDP Checksum 헤더 및 데이터의 에러 확인을 위해 사용하는 필드, 선택항목(체크섬 값이 0이면 수신측은 체크섬 계산 안함)
Data 가변 길이 데이터

6) 세션 계층(Session Layer, 5계층)

  • 응용 프로그램간의 대화를 유지하기 위한 구조를 제공하고 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당하는 계층
  • 통신 중 연결이 끊어지지 않도록 유지시켜주는 역할을 수행하기 위해 TCP/IP 세션 연결의 설정과 해제, 세션 메세지 전송 등의 기능을 수행
프로토콜 설명
RPC
(Remote Procedure Call)
원격 프로시저 호출이라고 불리며 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있는 프로세스 간 통신에 사용되는 프로토콜
NetBIOS (Network Basic
Input/Output System)
응용계층의 애플리케이션 프로그램에게 API를 제공하여 상호 통신할 수 있도록 해주는 프로토콜

7) 표현 계층(Presentation Layer, 6계층)

  • 애플리케이션이 다루는 정보를 통신에 알맞은 형태로 만들거나, 하위계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할을 담당하는 계층
  • 수신자 장치에서 적합한 애플리케이션을 사용하여 응용계층 데이터의 부호화 및 변환 수행을 통해 송신 장치로부터 온 데이터를 해석하고 데이터 형식 설정과 부호교환, 압축, 암/복호화를 수행함
프로토콜 설명
JPEG 이미지를 위해 만들어진 표준규격
MPEG 멀티미디어(비디오, 오디오)를 위해 만들어진 표준 규격

8) 응용 계층(Application Layer, 7계층)

  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 역할을 담당하는 계층
  • 응용 프로세스가 개방된 형태로 다양한 범주의 정보처리기능을 수행할 수 있도록 여러가지 프로토콜 개채에 대해 사용자 인터페이스를 제공함
프로토콜 설명 Port
HTTP
(Hyper Text Transfer Protocol)
- 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜
- 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜

* 하이퍼텍스트(Hyper Text) : 컴퓨터 화면이나 전자기기에서 볼 수 있는 텍스트
80
FTP (File Trasfer Protocol) TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜 20,21
SMTP (Simple Mail
Transfer Protocol)
- 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜 25
POP3 (Post Office Protocol
Version3)
- 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는데 사용하는 프로토콜
- 이메일 공급업체 서버에서 단말로 이메일을 내려받아서 사용자의 단말에서 이메일을 관리
- 이메일 서버와 동기화가 이루어지지 않고 오프라인에서도 사용가능
110
IMAP (Internet Messaging
Access Protocol)
- 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는데 사용하는 프로토콜
- 중앙 서버에서 동기화가 이루어지기 때문에 모든 단말에서 동일한 이메일 폴더를 확인할 수 있는 프로토콜
- 이메일 서버와 동기화가 이루어지고 온라인 및 오프라인에서 모두 사용가능
143
Telnet 인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜 23
SSH(Secure Shell) - Telnet 보다 강력한 보안을 제공하는 원격접속 프로토콜
- 서로 연결되어 있는 컴퓨터 간 원격 명령실행이나 쉘 서비스 등을 수행
- 키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 하고 전송되는 데이터는 암호화 됨
- 인증, 암호화, 압축, 무결성을 제공함
22
SNMP(Simple Network
Management Protocol)
- TCP/IP 네트워크 관리 프로토콜
- 라우터나 허브 등 네트워크 장치로부터 정보를 수집 및 관리하며 정보를 네트워크 관리 시스템에 보내는데 사용하는 인터넷 표준 프로토콜
161
DNS (Domain Name System) 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행하는 프로토콜 53
DHCP (Dynamic Host
Configuration Protocol)
- 각 컴퓨터에서 IP 관리를 쉽게 하기 위한 프로토콜
- TCP/IP 통신을 실행하기 위해 필요한 정보를 자동적으로 할당, 관리하기 위한 프로토콜
67,68
HTTPS (Hyper-Text
Transfer Protocol
over Secure Soket Layer)
- HTTP의 보안이 강화된 프로토콜
- 통신의 인증과 암호화를 위해 개밣한 웹 프로토콜이며 전자 상거래에서 널리 쓰임
- SSL/TLS 프로토콜을 통해 세션 데이터를 암호화
443