기타/정보보안기사

네트워크 보안 [계층구조1]

maru_ 2026. 6. 3. 17:54

- 누가 누구한테 어떻게 통신하는가?

- 그 과정에서 어디를 공격할 수 있는가?

- 그걸 막기 위해 어떤 장비나 프로토콜을 쓰는가?

 

네트워크

-> 컴퓨터기리 데이터를 주고받기 위한 연결 구조

 

네트워크 보안

-> 네트워크 통신 과정에서 정보가 안전하게 오가도록 보호하는 것

- 기밀성 : 허가받은 사람만 볼 수 있어야 한다

- 무결성 : 중간에 내용이 변조되면 안 된다

- 가용성 : 필요할 때 서비스를 사용할 수 있어야 한다

=> 네트워크 공격도 대부분 이 셋 중 하나를 깨뜨리는 방식이다.

 ex)

- 스니핑 -> 기밀성 침해

- 패킷 변조 -> 무결성 침해

- DDoS 공격 -> 가용성 침해

 

OSI 7계층

- 7계층 : 응용 계층 Application

- 6계층 : 표현 계층 Presentation

- 5계층 : 세션 계층 Session

- 4계층 : 전송 계층 Transport

- 3계층 : 네트워크 계층 Network

- 2계층 : 데이터링크 계층 Data Link

- 1계층 : 물리 계층 Physical

 

1계층 : 물리 계층

-> 물리적인 전송을 담당

-> 데이터가 아직 의미 있는 정보x, 0과 1의 신호로 흐르는 단계

-> 데이터 단위 : 비트(Bit)

- 전기 신호

- 광 신호

- 케이블

- 허브

- 리피터

 

2계층 : 데이터링크 계층

-> 같은 네트워크 안에서 데이터를 전달하는 계층

-> 대표적으로 MAC 주소를 사용

- Ethernet

- MAC 주소

- ARP
- Switch

- VLAN

 

3계층 : 네트워크 계층

-> 서로 다른 네트워크 간의 통신을 담당

내 컴퓨터 -> 네이버 서버

내 컴퓨터 -> 구글 서버

회사 내부망 -> 외부 인터넷

이런 식으로 다른 네트워크로 넘어가는 순간 3계층이 중요

- IP

- ICMP

- Routing

- Router

- NAT

장비 : 라우터

주소 : IP 주소

데이터 단위 : 패킷

 

4계층 : 전송 계층

-> 데이터를 어떤 프로그램으로 보낼지를 담당

-> 포트 번호가 중요함

예를들어서, 한 컴퓨터에서 동시에 여러 프로그램

- 웹 브라우저

- 카카오톡

- 게임

등등이 인터넷을 쓴다고 한다면,

IP 주소만 있으면 어느 컴퓨터로 보낼지는 알 수 있는데,

그 컴퓨터 안에서 어느 프로그램으로 보낼지는 알 수 없음

그래서 포트 번호가 필요함!

- HTTP : 80

- HTTPS : 443

- FTP : 20, 21

- SSH : 22

- DNS : 53

- SMTP : 25

프로토콜 : TCP, UDP

데이터 단위 : 세그먼트, 데이터그램

 

5계층 : 세션 계층

-> 연결 상태, 즉 대화의 시작과 종료를 관리

- 로그인 상태 유지

- 연결 수립

- 연결 종료

- 세션 관리

이런 개념과 관련이 있음

 

6계층 : 표현 계층

-> 데이터 표현 방식을 담당함

- 암호화

- 압축

- 인코딩

- 디코딩

- 문자 코드 변환

 

7계층 : 응용 계층

-> 사용자가 직접 사용하는 서비스와 가장 가까운 계층

- HTTP

- FTP

- SMTP

- POP3

- IMAP
- DNS

- Telnet

- SSH

- SNMP

 

TCP/IP 4계층

-> 인터넷 통신 구조를 4단계로 나눈 모델

-> 실제 인터넷 통신을 설명할 때는  OSI계층보다 많이 씀

 

OSI 7계층, TCP/IP 4계층 비교

OSI 7계층                      TCP/IP 4계층
-----------------------------------------
응용/표현/세션 계층        응용 계층
전송 계층                        전송 계층
네트워크 계층                  인터넷 계층
데이터링크/물리 계층       네트워크 접근 계층

 

1계층 : 네트워크 접근 계층

-> OSI의 1계층(물리계층) + 2계층(데이터 링크 계층)

-> 실제 네트워크 장비를 통해 데이터를 보내는 역할

-> 같은 네트워크 안에서의 통신

- Ethernet

- MAC 주소

- LAN

- 스위치

- 허브

- ARP

 

2계층 : 인터넷 계층

-> OSI의 3계층(네트워크 계층)에 해당

-> 핵심은 IP주소와 라우팅

- IP

- ICMP

- ARP

- RARP

 

3계층 : 전송 계층

-> OSI의 4계층(전송 계층)

-> TCP, UDP

-> 핵심은 포트번호

IP 주소가 어느 컴퓨터로 보낼지?를 정한다면

포트 번호는 그 컴퓨터 안의 어느 프로그램으로 보낼지를 정함

 

4계층 : 응용 계층

-> 사용자가 실제로 접하는 서비스들이 있는 계층

- HTTP 80

- HTTPS 443

- FTP 20, 21

- SMTP 25

- POP3 110

- IMAP 143

- DNS 53

- Telnet 23

- SSH 22

- SNMP 161, 162

- DHCP 67, 68

 

캡슐화와 역캡슐화

-> 네트워크 통신에서 데이터는 그냥 한 덩어리로 가는 게 아님

-> 각 계층을 내려가면서 헤더가 붙음  --> 이게 캡슐화

 

캡슐화

-> 데이터를 보낼 때 각 계층에서 필요한 정보를 앞에 붙이는 과정

예를들어서, 내가 네이버에 접속한다고 할 때

GET / HTTP/1.1
Host: www.naver.com

처음, 브라우저가 이런 요청을 만들고

HTTP 데이터로 응용 계층 데이터

근데, 이 HTTP 데이터만 가지고는 인터넷으로 못 보내는데

- 어느 프로그램으로 보낼 건데?

- 어느 컴퓨터로 보낼 건데?

- 같은 네트워크 안에서는 누구한테 먼저 보낼 건데?

- 전기 신호로는 어떻게 보낼 건데?

와 같은 정보가 부족함

그래서 아래 계층들이 차례대로 필요한 정보를 붙여줌

그래서 보면,

 

1단계: 응용계층(4계층)

- 브라우저가 HTTP 요청을 만들고 -> 웹 페이지 주세요 만 있음

[HTTP 데이터]

 

2단계 : 전송계층(3계층)

- 운영체제의 TCP 기능이 '이 데이터는 상대 서버의 443번 포트로 보내야 함!' 이라고 말해줌

[TCP 헤더][HTTP 데이터]

여기에는 보통

- 출발지 포트

- 목적지 포트 -> 이게 중요함

- 순서 번호

- ACK 번호

- TCP 플래그

같은 정보가 들어감

 

3단계 : 인터넷 계층

-IP계층이 말해줌 ' 이 데이터는 네이버 서버 IP 주소로 보내야 함!'

[IP 헤더][TCP 헤더][HTTP 헤더]

여기에는 보통

- 출발지 IP 주소

- 목적지 IP 주소

- TTL

- 프로토콜 정보

같은 정보가 들어감

 

4단계 : 네트워크 접근 계층

-> 이제 이 데이터가 내 컴퓨터 밖으로 나가려면, 보통 먼저 공유기에게 가야 함

-> 그래서 Ethernet 헤더가 붙음

[Ethernet 헤더][IP 헤더][TCP 헤더][HTTP 데이터]

여기에는 보통

- 출발지 MAC 주소

- 목적지 MAC 주소  --> 최종 네이버 서버 MAC이 아니라, 지금 바로 보내야 할 다음 장비의 MAC 주소

같은 정보가 들어감

 

정리하면, 캡슐화

응용 계층에서 만든 데이터를 전송 계층이 감싸고, 인터넷 계층이 또 감싸고, 네트워크 접근 계층이 또 감싸는 것,,

 

그럼, 반대로 역캡슐화

-> 캡슐화한 걸 반대로 ,,!

처음에 [Ethernet 헤더][IP 헤더][TCP 헤더][HTTP 데이터] 이렇게 데이터가 도착하면

서버가

하나씩 확인하며 벗김

Ethernet 헤더 확인
→ 이 MAC 주소 나 맞네? 통과

IP 헤더 확인
→ 이 IP 주소 나 맞네? 통과

TCP 헤더 확인
→ 443번 포트 서비스로 보내야겠네

HTTP 데이터 확인
→ 아, 사용자가 웹페이지 요청했구나

이게 역캡슐화..!

- 계층이 내려간다

--> 데이터를 실제 네트워크로 보내기 위해 헤더를 하나씩 붙인다 (캡슐화)

- 계층이 올라간다

--> 받은 데이터에서 헤더를 하나씩 벗기고 원래 내용을 해석한다 (역캡슐화)

 

결국, 그러니까 기본적으로 계층별로 담당하는 질문이 다른다고 보면 쉬움

응용 계층(4계층):
무슨 요청이야?
→ HTTP GET 요청

전송 계층(3계층):
어느 프로그램으로 보내?
→ 443번 포트로 ㄱㄱ

인터넷 계층(2계층):
어느 컴퓨터로 보내?
→ 목적지 IP로 ㄱㄱ

네트워크 접근 계층(1계층):
지금 당장 누구한테 넘겨?
→ 공유기 MAC 주소로 ㄱㄱ

물리 계층:
어떻게 실제로 보낼래?
→ 전기 신호/무선 신호로 ㄱㄱ

따라서 계층은 따로따로가 아니라

데이터가 목적지까지 가기 위해 필요한 질문을 순서대로 해결하는 구조 라고 보면 된다