본문 바로가기
전공수업/정보보안

[정보보안] 네트워크의 이해

by JooRi 2025. 4. 21.
728x90
반응형
SMALL

* OSI 계층

1. 프로토콜 개요

- 표준화된 통신규약으로 네트워크 기능을 효율적으로 수행하기 위한 약속

- 통신을 원하는 두 개체 간에 무엇을, 어떻게, 언제 할 것인가를 약속한 규약

 

1) 프로토콜 기본 3요소

- 구분: 데이터의 형식, 부호화 방법, 전기적 신호 레벨에 대한 사항

- 의미: 오류, 동기 및 흐름제어 등의 각종 제어절차에 대한 사항

- 타이밍: 송수신간 또는 통신 시스템 간 통신속도 및 순서 등에 대한 사항

 

2) 프로토콜의 기능

분할 및 재조립(Fragmentation
And Reassembly)
정보전송시 오류를 줄이거나 전송효율을 증가시키기 위해 사용 (일반적으로 패킷망 사용)
정보의 캡슐화(Encapsulation)
- 정보의 정확한 전송을 위하여 전송할 데이터의 앞부분과 뒷부분에 헤더와 트레일러 추가    
(헤더: 목적지 주소포함, 트레일러: 오류 검출 코드)
연결제어(Connection Control)
데이터를 전송하기 위한 과정, 노드 간 연결은 연결확립, 데이터 전송, 연결해제의 3개 과정
흐름제어(Flow Control)
전송되는 패킷의 수를 조절하여 시스템 전체의 안정성을 유지하고 서비스품질의 저하를 방지
오류제어(Error Control)
전송 중에 발생한 오류를 검출하여 정정
동기화(SYNchronization)
정보를 전송하기 위하여 송수신 시스템 간 같은 상태를 유지하는 것
순서지정(Sequencing)
패킷 교환망에서 사용되는 방식으로, 패킷 단위로 분할 전송할 때 패킷의 순서를 정하는 것
주소지정(Addressing)
네트워크에서 송수신 시스템 간 인식이 가능하도록 하는 역할
다중화(Multiplexing)
한정된 통신 링크를 다수의 사용자가 공유할 수 있도록 하는 전송방식

 

2. OSI 7 계층 참조 모델

- 개방형 시스템 간 상호접속규격으로, 서로 다른 시스템 간 통신 시 네트워크 구조에 관계없이 통신할 수 있는 모델

- 하드웨어와 소프트웨어의 논리적 변경 없이 시스템 간 통신 개방

 

1) 계층별 역할

7계층 응용
- 여러 프로토콜 개체에 대하여 사용자 인터페이스 제공
6계층 표현
- 데이터 표현형식의 차이를 해결하기 위하여 서로 다른 형식으로 변환
- 부화화(Encoding), 압축(Compression), 암호화(Encryption)
5계층 세션
- 응용프로그램 간 세션을 형성 및 관리
- 상위 계층의 표현 계층에서 두개 이상의 요소 간 통신을 가능하게 함
- 통신을 동기화(작업사이의 수행 순서를 맞추는 것)
- 어플리케이션 접근 스케줄링 담당
4계층 전송
- 종단(End to End)간 신뢰성 있는 데이터 전송 보장
- 메시지의 전송, 오류 제어, 흐름제어, 연결 제어 기능
- 출발지와 목적지의 포트 번호가 결정되는 계층
- 분하 분산(과도한 트래픽 분산)
3계층 네트워크
- 패킷 목적지 IP주소를 참조하여 최적의 경로를 설정 및 전송
- 라우팅, 흐름제어, 단편화, 오류제어 수행
- 단편화:
프로토콜 기본 전송단위인(PDU)를 여러 작은 단위로 나누는 것
2계층 데이터 링크
- 점 대 점(Point To Point)간 신뢰성 있는 전송보장
- 프레임 구성: 헤더+네트워크 계층에서 받은 패킷+트레일러
- 서브계층: LLC(Logical Link Control), MAC주소를 사용한 매체접근 방식
1계층 물리
- 시스템 간 링크를 활성화하고 관리하기 위한 사용자 장비와 네트워크 종단 장비 간 기계적, 전기적, 기능적, 절차적 특성과 인터페이스 정의

 

2) 계층별 특징

7 응용 전송단위
메시지(Message)
프로토콜
FTP, Telnet, SMTP, HTTP, DNS, SNMP, POP3, IMAP
장비
L7스위치, 게이트웨이
6 표현 전송단위
메시지(Message)
프로토콜
JPEG, MPEG, ASCII, GIF
장비
게이트웨이
5 세션 전송단위
메시지(Message)
프로토콜
- SSL, Socks
장비
게이트웨이
4 전송 전송단위
세그먼트(Segment)
프로토콜
TCP, UDP, SPX
장비
L4스위치, 게이트웨이
3 네트워크 전송단위
패킷(Packet)
프로토콜
IP, IPSec, IPX, ICMP, ARP, RARP
장비
라우터(Router), L3 스위치
2 데이터링크 전송단위
프레임(Frame)
프로토콜
PPP, PPTP, L2F, L2TP, HDLC, HDLC, SDLC, Ethernet
장비
브리지(Bridge), 스위치
1 물리 전송단위
비트(Bit)
프로토콜
EIA RS-232C, V.24, V.35, X.21
장비
리피터(Repeater), 더미 허브(Dummy Hub)

 

* TCP/IP 일반

1. TCP/IP 개요

1) TCP/IP 프로토콜

- 일반적으로 4계층으로 분류

- 통신 프로토콜 중 가장 널리 사용되는 프로토콜

- 다른 통신 프로토콜에 비해 이기종 간 연결이 용이

- LAN/WAN에서 모두 사용 (LAN: 근거리 통신망, WAN: 광역 통신망)

 

2) TCP/IP 계층 구조와 프로토콜

응용 계층
HTTP, FTP, SMTP, DNS, RIP, SNMP
전송 계층
TCP, UDP
인터넷 계층
ARP , IP,  IGMP,  ICMP
네트워크 엑세스
Ethernet, Token Ring, Frame Relay, ATM
물리적통신망(디지털 신호)

 

3) TCP/IP 통신원리

TCP/IP 통신원리

- 송신측: 송신하려는 데이터에 계층별로 헤더정보를 추가한 후 수신 측에 전송

- 수신측: 수신한 패킷의 헤더를 확인하면서 최종적으로 데이터를 확인

 

송신 측은 송신 데이터를 데이터로 변환하여 하위계층으로 전달하면 데이터는 세그먼트로 변경되고, 연결은 전송 및 수신 호스트에서 이루어지며, 다시 하위 계층으로 전달하면 세그먼트는 패킷이나 데이터 그램으로 변경되고, 다시 하위계층으로 전달하면 패킷 또는 데이터그램은 로컬 네트워크에 전달하기 위한 프레임으로 변화되어 수신 측에 전송

 

4) OSI 7 계층과 TCP/IP 프로토콜 비교

OSI 7 vs TCP/IP

 

2. TCP/IP 주요 프로토콜

1) IPv4

- 대부분의 네트워크에서 사용하는 IP주소 체계

- TCP.IP 프로토콜의 가장 기본적인 IP주소 체계

- 통신대상 호스트는 IP주소를 할당받아 사용

- 네트워크 주소(네트워크 영역을 구분)와 호스트 주소(개별장비를 구분)로 구성

- 네트워크 주소와 호스트 주소는 서브넷 마스크로 구분

- 비신뢰성, 비연결형 프로토콜

- 비신뢰성: 목적지까지 패킷의 정확한 전송을 보장하지 않음

- 비연결형: IP는 연결과 관련된 어떠한 상태 정보도 유지하지 않음

- 인터넷 프로토콜(IP) 주소와 네트워크 인터페이스(MAC) 주소와의 연관성을 가지지 않음

 

2) TCP/IP 주요 프로토콜

(1) 클래스 범위

- A클래스(대규모 네트워크 주소)00000001 00000000 . 00000000. 00000000

                                                (8비트 네트워크 ID)   (24비트 호스트 ID)

 

- B클래스(중형 네트워크 주소):  00000001 .  00000000 . 00000000. 00000000

                                                  (16비트 네트워크 ID)    (16비트 호스트 ID)

 

- C클래스(소규모 네트워크 주소):  00000001 .  00000000 . 00000000. 00000000

                                                      (24비트 네트워크 ID)        (8비트 호스트 ID)

 

(2) 서브넷마스크

- IP 주소를 네트워크 부분과 호스트 부분으로 나눔

  • 네트워크 영역: 서브넷 마스크가 2진수로 “1”인 부분
  • 호스트 영역: 서브넷 마스크가 2진수로 “0”인 부분

- 디폴트 서브넷 마스크

  • 클래스 A: 255.0.0.0
  • 클래스 B: 255.255.0.0
  • 클래스 C: 255.255.255.0

- 서브넷이 필요한 이유

  • 브로드캐스트 영역을 나눔: 서브넷으로 나누지 않고 사용하는 경우 브로드캐스트 도메인이 켜져서 불필요한 브로드캐스트 패킷이 많이 발생
  • IP 주소를 절약: 큰 네트워크를 작은 네트워크로 나눔으로써 필요한 만큼의 IP 주소를 효율적으로 부여

(3) 통신방식

- 유니캐스트(Unicast)

  • 단일 인터페이스를 지정
  • MAC주소기반으로 상대측 IP주소를 목적지로 전달하는 일대일 통신방식
  • 유니캐스트 주소로 전송된 패킷은 그 주소에 해당하는 인터페이스만 전달

- 멀티캐스트(Multicast)

  • 여러 노드에 속한 인터페이스의 집합을 지정
  • 멀티캐스트 주소로 전송된 패킷은 그 주소에 해당하는 모든 인터페이스에 전달
  • 하나 이상의 송신자가 네트워크의 특정 그룹에 패킷을 전송하는 다대다 통신방식

- 브로드캐스트(Broadcast)

  • 자신의 호스트가 속해있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신방식

3) 사설 IP 주소

  • 공인 IP 주소가 아닌 사적인 용도로 사용되는 IP 주소
  • IP 주소의 부족을 해결할 수 있으며 자유로이 사용할 수 있음
  • 클래스 A: 10.0.0.0 ~ 10.255.255.255
  • 클래스 B: 172.16.0.0 ~ 172.31.255.255
  • 클래스 C: 192.168.0.0 ~ 192.168.255.255

4) MAC(Media Access Control) 주소

- 네트워크 인터페이스 카드(NIC)에 부여된 고유식별자

- 하드웨어 주소로, 데이터링크 계층(2계층) 프로토콜

- 서로 다른 컴퓨터에 있는 NIC는 서로 다른 이름, 즉 서로 다른 MAC 주소를 가지고 있음

- ARP스푸핑(ARP스푸핑) 공격을 통해서 MAC주소를 변조할 수 있음

 

* TCP/IP 프로토콜과 포트

- 클라이언트/서버 모델에서 응용서비스 간 통신을 위한 논리적 통로

- 데이터를 송수신할 때 프로그램이 사용하는 프로토콜의 일련번호를 표기한 것

- 여러 개의 클라이언트와 통신가능: 각 네트워크 메시지가 특정 프로세스를 인식하기 위한 방법

 

1. 포트번호 체계 (총 65536개: 0~65535)

Well-Known Port
0~1,023 (인터넷 할당 번호 관리기관: Internet Assigned Numbers Authority :IANA)
Registered Port
1024~49151
Dynamic Port
49,152-65,535

 

2. 포트 관련 디렉터리와 파일

Linux /etc/services/
Windows C:\WINDOWS\system32\drivers\etc\services

 

3. TCP/UDP 기반 응용 프로토콜과 포트번호

 

* 주요 프로토콜 및 특징

1. ARP(Address Resolution Protocol)

- IP주소를 MAC주소로 변환하여 주는 프로토콜

- TCP/IP 네트워크의 시스템이 동일 네트워크나 다른 시스템의 MAC 주소를 알고자 하는 경우에 사용

- 여러 시스템에서 주소지정의 차이를 해결하기 위한 규약

 

1) ARP 동작원리

(1) 송신시스템은 목적지시스템의 MAC주소를 알아내기 위해 해당 네트워크의 모든 시스템으로 ARP Request 패킷 전송

(2) ARP Request 패킷을 수신한 모든 시스템은 자신의 IP주소와 일치하는지 확인 후 일치하지 않으면, 해당 패킷 폐기

(3) 목적지 IP주소와 일치하는 시스템은 자신의 MAC주소를 포함시켜 ARP Reply 패킷을 유니캐스트 응답

(4) 송신시스템은 목적지 IP주소에 대응하는 MAC주소를 알아냄

 

2) ARP Cache

- 송신시스템이 수신시스템으로 데이터를 보내기 전에 먼저 ARP Cache 내용을 참조

- 송신시스템은 수신시스템의 ARP Cache Table에 수신시스템의 MAC주소가 저장되어 있을 경우 ARP Request 패킷을 전송하지 않음

- ARP Cache에 저장된 정보는 일정시간 동안 사용되지 않으면 삭제 (Windows 경우 2분, 2분 이내 다시 통신하면 10분으로 저장 시간 증가)

 

2. Gratuitous ARP (GARP)

- 일반 ARP와 달리 자신의 IP주소를 목적지로 하여 ARP요청을 보냄

- 즉, 누군가의 MAC주소를 알고자 하는 것이 목적이 아님

- IP 주소 충돌 감지

  • IP 주소 충돌을 감지하기 위해 사용
  • 호스트에서 자신의 IP 주소를 목적지로 하여 ARP 요청을 보내고, 만약 다른 호스트에서 이에 대한 응답이 있다면 이미 해당 IP주소를 사용하고 있는 호스트가 존재하고 있음을  알 수 있음
  • 이 경우 Windows는 IP 주소 충돌 메시지를 화면에 띄움

- ARP Table 갱신

  • 서브넷 상에 존재하는 호스트/라우터의 ARP Table(AR P Cache)을 갱신하기 위해 사용
  • 즉, 누군가가 GARP패킷을 보내면 이를 수신한 모든 호스트/라우터는 GARP패킷의 Sender MAC Address와 Sender IP Address 필드로 자신의 ARP Table을 갱신

- VRRP/HSRP

  • VRRP(게이트웨이 이중화 프로토콜)/HSRP(시스코사 게이트웨이 이중화 프로토콜) 프로토콜에서 사용
  • VRRP/HSRP가 Enable 된 라우터 중 Master에 해당하는 라우터는 자신과 연결된 L2스위치의 MAC Address Table 정보를 갱신하기 위해 GARP를 사용

3. Proxy APR

- 서브넷을 인식하지 못하는 호스트와 서브넷을 인식하는 다른 호스트가 공존할 수 있도록 브로드 캐스트 네트워크에서 사용

- ARP를 요청한 호스트가 목적지의 호스트와 같은 세그먼트에 존재하지 않으면 일단 라우터가 자신의 MAC주소를 대신하여 응답

 

4. ICMP(Internet Control Message Protocol)

- TCP/IP를 이용하여 두 호스트 간 통신을 담당하는 프로토콜

- 네트워크 계층 프로토콜

- 오류보고, 도착 가능 검사, 혼잡제어, 수신 측 경로 변경, 성능 측정

- IP 패킷의 프로세스에 관련된 오류 정보를 보고하는 메시지 제공

- 두 호스트가 통신할 때 오류 정보를 알려주는 데 사용

- 첫 번째의 IP 데이터그램에 대해서만 오류보고

- 상대 호스트의 통신 가능유무를 확인하는 데 사용

- 중간 라우터에 문제 발생 시 IP 데이터그램이 전달되지 않아도 네트워크에서는 ICMP가 시작 호스트로 보내짐

 

1) ICMP Redirect 기본원리

ICMP Redirest 기본원리

(1) 호스트가 인터넷으로 패킷을 보낼 때, 디폴트 라우터로 라우터 A가 정해져 있으면 호스트는 일단 패킷을 라우터 A로 보냄

(2) 라우터 A는 라우팅 테이블을 참조하여 직접 데이터를 처리하는 것보다 라우터 B가 처리하는 것이 효율적이라면 패킷을 라우터 B로 전송

(3) 라우터 A는 동일 목적지로 보내는 패킷이 라우터 B로 전송되도록 호스트에게 ICMP Redirect패킷을 보냄

(4) 호스트는 라우팅 테이블에 현재 전송 중인 패킷에 대한 정보를 저장하고, 동일 목적지로 전송하는 패킷은 라우터 B로 보냄

 

5. ICMPv6 (Internet Control Message Protocol Version 6)

- 네트워크 계층 프로토콜

- IP 패킷의 프로세스에 관련된 오류 정보를 보고하는 메시지 제공

- IPv4에서의 ICMP 기능과 ARP, IGMP 기능을 통합한 제어 프로토콜

- IPv6 네트워크에서는 모든 제어구조 기능이 ICMPv6에 통합됨으로써, 가장 중요한 역할을 하는 프로토콜

 

6. TCP(Transmission Control Protocol)

- 호스트 간 신뢰성 있는 데이터 전달과 흐름 제어 및 혼잡 제어 등을 제공하는 전송 계층의 연결지향형 프로토콜

- 패킷의 순서번호(Sequence Number)와 CRC(Cyclic Redundancy Check)을 이용하여 신뢰성 있는 통신 수행

- 상대방과 신뢰성 있는 통신을 위하여 세션을 연결

- 논리적으로 1:1 연결된 통신에서 가능

- TCP 기반 프로토콜: FTP, Telnet SMTP, HTTP 등

 

1) TCP Flag

URT
- 긴급 비트
- 1로 설정되면 세그먼트에 우선순위가 높은 데이터가 있다는 의미
- 긴급 포인트 필드 값 활용
ACK
- 승인 비트
- 1로 설정되면 세그먼트가 승인을 포함한다는 의미
- 승인번호 필드 값은 세그먼트의 목적지가 다음에 전송해야 할 순서번호를 가리킴
- 순서번호: TCP 각 세그먼트의 첫 번째 바이트에 부여되는 번호
PSH
- 밀어 넣기 비트
- 세그먼트 송신시스템이 TCP 밀어 넣기 기능을 사용했기 때문에, 세그먼트를 수신하는  즉시 응용계층으로 송신하라는 의미
RST
- 초기화 비트
- 송신시스템에 문제가 발생하였으니 연결을 초기화해야 한다는 의미
SYN
- 동기화 비트
- 순서번호를 동기화하고 연결 확립을 요청하는 비트
- 순서번호 필드는 세그먼트를 송신하는 장비의 ISN을 가짐
FIN
- 종료 비트
- 세그먼트의 송신 장비가 연결 종료를 요청한다는 의미

 

2) TCP 동작원리

(1) 상대 소켓과의 연결 (3-Way Handshake)

 

(2) 상대 소켓과의 데이터 전송

 

(3) 상대 소켓과의 연결 종료

 

7. UDP(User Datagram Protocol)

- 호스트 간 데이터 전송과 오류 검출만을 제공하는 비연결형 프로토콜

- 패킷 오버헤드가 적음(세그먼트 당 8바이트)

- TCP에 비해 전송과정이 단순하므로, 고속의 안정성 있는 전 매체를 사용

- 가상회선의 개념이 없음

- 슬라이딩 윈도우(네트워크 호스트 간 패킷의 흐름을 제어) 등의 복잡한 기술을 사용하지 않음

- 데이터의 전송 단위: 블록

- UDP의 사용자는 16비트의 포트 번호를 할당받음

- 전송 중 패킷이 손실되면 수신 측에서 패킷 손실의 유무를 알 수 없으므로, 신뢰성 부족

- UDP가 제공하는 두 가지 서비스

  • 프로세스 대 프로세스 데이터 전달
  • 오류검출: 헤더에 오류 검출 필드를 포함함으로써 무결성 검사 제공

- UDP 기반 프로토콜: DNS, NFS, SNMP, RIP 등

 

1) UDP 동작원리(소켓 흐름)

 

8. TCP/UDP 프로토콜 비교

TCP/UDP 프로토콜 비교

 

 

728x90
반응형
LIST

댓글