일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch14
- 스프링 입문(무료)
- 타임리프 - 기본기능
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch8
- 스프링 db2 - 데이터 접근 기술
- 스프링 mvc1 - 스프링 mvc
- 스프링 mvc1 - 서블릿
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch2
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch11
- @Aspect
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch7
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch9
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch4
- 게시글 목록 api
- 자바의 정석 기초편 ch13
- 2024 정보처리기사 수제비 실기
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch6
- 2024 정보처리기사 시나공 필기
- 스프링 mvc2 - 타임리프
- Today
- Total
나구리의 개발공부기록
CHAPTER 02 - 네트워크 기초 활용하기(2) 본문
CHAPTER 02 - 네트워크 기초 활용하기(2)
소소한나구리 2024. 7. 13. 20:322024년도 수제비 실기책(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 |
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 실기 11강 - 응용 SW 기초 기술 활용' 카테고리의 다른 글
CHAPTER 02 - 네트워크 기초 활용하기(기출문제,예상문제) (5) | 2024.07.14 |
---|---|
CHAPTER 02 - 네트워크 기초 활용하기(3) (2) | 2024.07.13 |
CHAPTER 02 - 네트워크 기초 활용하기(1) (0) | 2024.07.10 |
CHAPTER 01 - 운영체제의 특징(기출문제, 예상문제) (0) | 2024.07.10 |
CHAPTER 01 - 운영체제의 특징(3) (0) | 2024.07.10 |