컴퓨터/정보처리기사

OSI 7계층, TCP/IP 4계층

수제녹차 2025. 4. 22. 22:26
728x90
반응형
  • 프로토콜이란

 

서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약

 

(기출 지문)

 

심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 프로토콜이라는 용어로 정의하였다

 

톰 마릴의 1968년 논문 이후, 프로토콜은 컴퓨터 간 통신 절차라는 기술 용어(jargon)로 자리 잡았다

 

 

프로토콜의 기본 요소

 

요소 설명 예시
구문 데이터 형식과 구조 이메일 헤더, TCP 패킷 구조
의미 데이터의 의미와 동작 ACK 응답, HTTP 메서드
시간 데이터 전송의 타이밍과 동기화 흐름 제어, 실시간 통신

(1) 구문

전송하고자 하는 데이터의 형식, 부호화(Encoding), 신호 레벨, 프레임 구조, 전송 속도, 시작/종료 방식 등을 규정

데이터를 어떤 형식으로, 어떻게 표현할지에 대한 규칙

 

ex. TCP/IP에서 패킷이 “헤더 + 데이터” 구조를 갖는 것

 

i. 부호화 (Encoding)

 

데이터(문자, 숫자)를 전기 신호로 바꾸는 과정

정보를 컴퓨터가 이해할 수 있는 0과 1의 조합으로 바꾸는 것

 

부호화 방식 ex. ASCII, UTF-8, Base64

 

 

ii. 신호 레벨 (Signal Level)

 

부호화된 이진 데이터를 실제로 전송할 때 쓰는 전기적 표현(전압 레벨)

전기 신호(혹은 광 신호, 무선 신호)로 데이터를 전달하는데, 이 신호의 전압 범위나 형태가 신호 레벨

 

(2) 의미 (Semantics)

두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보 규정

 

어떤 데이터가 어떤 의미를 가지는지, 어떤 행동을 해야 하는지를 정의한다.

어떤 메시지를 받았을 때 어떻게 해석하고 반응할지를 정한 것

 

ex.

"ACK" 패킷을 받으면 "데이터 잘 받았음"이라고 이해하고, 다음 데이터를 보내는 것.

HTTP에서 GET 요청은 "서버야, 이 자원 좀 줘!" 라는 의미고, POST는 "이 데이터 처리해줘!" 같은 의미.

 

 

(3) 시간 (Timing)

두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정

데이터 전송의 타이밍, 속도, 동기화 등을 정의

언제 데이터를 보내고 받아야 하는지, 보내는 속도가 맞는지 등을 다룬다

 

ex.

양쪽 컴퓨터가 속도를 맞추지 않으면 데이터가 유실될 수 있어 → 흐름 제어 필요

실시간 영상 통화는 정확한 타이밍이 중요 → 실시간 전송 프로토콜 필요

 

 

 

  • OSI 7계층이론적인 모델 (설명용)
  • TCP/IP 4계층실제 인터넷에서 사용되는 모델

 

OSI 7계층 (국제표준 모델)

OSI 7계층(Open Systems Interconnection Model)은 네트워크 통신을 7개의 계층으로 나눈 모델이야.

 

 

📌 OSI 7계층 쉽게 외우기
📝 "물리 데네 전세표응" (물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용)
or

계층 이름 역할 프로토콜 & 장비
7계층 응용 계층 (Application Layer) 사용자와 네트워크 인터페이스 제공, 사용자 앱과 직접 연결 HTTP(포트 80), HTTPS(포트 443), FTP, SMTP(이메일 전송, 포트 25), DNS
6계층 표현 계층 (Presentation Layer) 데이터 형식 변환(인코딩, 디코딩), 암호화, 압축 JPEG, MP3, TLS, SSL
5계층 세션 계층 (Session Layer) 통신 연결(세션) 설정, 세션 시작/유지/종료, 누가 누구와 대화 중인지 상태 관리 NetBIOS, RPC
4계층 전송 계층 (Transport Layer) 데이터 흐름 제어, 오류 제어, 신뢰성 보장, 종단 (End-to-End) 데이터 전송, 데이터 분할, 세그먼트 TCP(신뢰성 보장), UDP(빠른 전송)
3계층 네트워크 계층 (Network Layer) IP 주소를 이용한 경로 설정(라우팅), IP 주소 처리, IP 헤더 붙은 패킷 IP, ICMP, ARP / 라우터
2계층 데이터 링크 계층 (Data Link Layer) MAC 주소 기반 데이터 전송, 프레임 전송, 오류 검출(CRC), 프레임 이더넷, 스위치, MAC 주소
1계층 물리 계층 (Physical Layer) 전기적 신호, 비트 전송 LAN 케이블, 허브, 광섬유

 

  • 응용 계층

 

Q. 크롬 창 여러 개 띄워도 왜 포트는 80번(HTTP)이나 443(HTTPS) 하나만으로 가능한가?

A. 서버는 고정된 포트(80, 443)를 사용해 클라이언트 요청을 기다린다.

클라이언트는 요청을 보낼 때마다 임의의 포트를 사용해서 서버에 연결한다.

TCP 연결을 구분하는 4개 정보 = 소켓 쌍

(클라이언트 IP, 클라이언트 포트, 서버 IP, 서버 포트)

=> 이 4쌍을 조합한 걸 소켓이라고 한다.

이 조합이 다르면 동시에 여러 연결이 가능하다

 

소켓

 

통신의 종착지 정보(IP 주소 + 포트 번호)

TCP/UDP에서 IP + 포트 번호 조합이 필요해서 둘 다 소켓 사용

소켓은 전송 계층과 응용 계층 사이에서 응용 프로그램이 TCP/UDP를 사용해서 통신하도록 연결해주는 인터페이스

전송 계층의 포트 번호, 네트워크 계층의 IP 주소를 함께 사용한다

 

  • 표현 계층

 

서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층

코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 등의 기능을 수행한다

 

SSL/TLS

 

표현 계층 프로토콜

데이터 자체의 표현 방식을 안전하게 바꾸는 일

=> 표현 계층의 책임임

통신 내용을 안전하게 표현(변환)하는 계층에 더 가깝다

기능 설명
🔒 암호화/복호화 데이터를 안전하게 변환
🧾 인증서 교환 검증 서버/클라이언트 신원 확인
🧪 무결성 검사 (MAC) 데이터 변조 여부 확인
🔑 세션 생성 관리 이후 암호화 통신용 설정

 

  • MAC(Message Authentication Code)

 

송신자가 데이터를 보낼 때, 해당 데이터의 해시 값을 계산해서 공유된 비밀키를 이용해 MAC을 생성한다.

이 MAC은 원본 데이터에 덧붙여서 함께 전송된다.

수신자는 받은 데이터로 동일한 방식으로 MAC을 다시 계산해서, 받은 MAC과 비교한다.

같다면 데이터가 중간에 변조되지 않은 것.

 

 

📘 예시: HTTPS 접속할 때

 

HTTPS = HTTP over SSL/TLS

=> HTTP 통신을 SSL 또는 TLS 프로토콜을 이용해서 암호화한 것

 

  1. 브라우저가 웹사이트에 접속 (https://)
  2. 클라이언트와 서버가 SSL/TLS 핸드셰이크 진행
  3. 이 과정에서:
  4. 이제부터 그 연결 안에서는 세션 키로 암호화된 데이터만 주고받음

 

대칭 키 암호화 방식

암호화와 복호화에 같은 키(비밀키)를 사용하는 암호화 방식

같은 키를 양쪽(송신자/수신자)이 미리 공유

ex. AES, DES, 3DES, RC4

단점: 키를 안전하게 공유하는게 어렵다

 

 

SSL/TLS 핸드셰이크

 

암호화된 통신을 위한 키를 교환하고

인증서 송수신과 검증이 이루어진다

 

 

클라이언트와 서버가 암호화에 필요한 정보를 주고받아, 보안 연결을 설정하는 과정

세션 키(대칭키)를 안전하게 공유하기 위해 사용한다

이후에는 대칭키로 데이터를 빠르게 암호화해서 통신한다

 

SSL(Secure Sockets Layer): 클라이언트와 서버 간 통신을 암호화해서 안전하게 보호

TLS(Transport Layer Security): SSL의 후속 버전, 보안성과 성능이 더 좋아짐

=> TLS가 현재 표준

 

핸드셰이크 흐름

(1) Client Hello

내가 지원하는 암호화 방식들을 이래~ 랜덤값 하나 보낼게

(2) Server Hello

좋아, 이 중에서 이 방식으로 하자!

나의 인증서(서버의 공개키+CA 서명 포함)도 줄게~ 랜덤값 하나 같이 보냄

 

[참고] CA 서명 (Certificate Authority 서명)

CA(인증기관)가 어떤 사람(혹은 서버)의 공개키가 진짜임을 보증해주는 디지털 서명

 

누군가(예: 웹사이트 서버)가 공개키를 만들었어

이걸 "인증기관(CA)"에 제출해서 인증을 요청해

CA는 이 요청자의 신원을 확인한 뒤

그 공개키 + 소유자 정보 등을 묶어서 → 인증서를 만들어

그 인증서에 CA가 자기 개인키로 디지털 서명을 함
이게 바로 CA 서명!

 

(3) 클라이언트 인증서 확인 & 세션 키 생성

클라이언트는 서버 인증서(공개키)를 검사함(CA로부터 신뢰 가능)

그리고 대칭키(세션 키)를 생성하고,

서버의 공개키로 암호화해서 서버에게 전송

 

(4) 서버가 세션 키 복호화

서버는 자기만의 개인키로 세션 키 복호화

=> 이제 클라이언트와 서버는 같은 세션 키를 공유하게 됨 (대칭키 암호화 준비 완료)

 

(5) 이제 암호화된 통신 시작하자! 신호 주고 받음

 

이후 세션키(대칭키)를 사용해서 빠르고 안전하게 암호화된 데이터 전송

 

** 대칭 키 암호화는 키를 안전하게 전송하기 어렵지만, 적은 부하 덕분에 암호화 및 복호화를 빠르게 수행할 수 있다.

공개 키 암호화는 암호화 및 복호화에 시간과 부하가 상대적으로 많이 들지만, 키를 안전하게 공유할 수 있다.

 

이러한 장단점을 고려해 대칭 키 암호화 방식과 공개 키 암호화 방식을 함께 사용하는 경우가 많다

대칭 키를 상대에게 안전하게 전달하기 위해 공개 키로 대칭 키를 암호화하고,

개인 키로 암호화된 대칭 키를 복호화.

대칭키를 안전하게 공유하고 대칭 키를 이용해 빠르게 암호화/복호화 할 수 있다.

이러한 방식으로 활용되는 대칭 키를 세션 키라고 부른다.

 

  • 디지털 서명

 

개인 키로 암호화된 메시지를 공개 키로 복호화함으로써 신원을 증명

 

 

서명값 = 인증서 내용에 대한 해시 값을 CA의 개인키로 암호화

서명 값을 CA의 공개키를 복호화한 값과

인증서 데이터에 대한 해시 값을 직접 구한 값을 비교한다.

 

값이 일치한다면 전달받은 인증서는 확실히 CA의 개인 키로 만들어졌다고 보장할 수 있다.

CA의 공개 키로 복호화 가능하다는 뜻이니까.

 

 

 

SSL(Secure Sockets Layer)/TLS

 

전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜입니다. 

이는 HTTPS의 기반이 됩니다.

 

SSL은 원래 웹 브라우저와 서버 간의 보안 연결을 위한 프로토콜로 개발되었으며, 이 방식은 SSL VPN에서 사용되어 인터넷을 통해 안전한 연결을 제공합니다.

SSL VPN은 웹 브라우저를 통해 쉽게 원격 액세스를 제공할 수 있는 방법으로, TCP 포트 443(HTTPS)을 사용합니다.

 

 

 

 

세션

 

두 컴퓨터(또는 클라이언트-서버) 간의 통신을 위한 “논리적 연결 상태”

지속적인 데이터 교환이 필요한 상황에서 하나의 연결 단위로 관리됨

대화방을 하나 만드는 것과 비슷

 

두 응용 프로세스 간의 통신에 대한 제어 구조 제공

연결의 생성, 관리, 종료를 위한 토큰 사용

 

송수신측 간의 관련성을 유지하고 대화 제어 담당

대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능

대화의 생성, 관리, 종료를 위한 토큰 사용

동기점은 오류가 있는 데이터의 회복을 위해 사용하는 것으로, 종류에는 소동기점과 대동기점이 있다.

 

 

암호화 세션

 

통신할 때 데이터를 암호화하기 위한 암호키, 알고리즘, 상태 정보 등을 공유한 상태

 

 

 

  • 세션 계층

로그인(Session Establishment), 연결 유지(Session Maintenance), 연결 종료(Session Termination)

애플리케이션 간 데이터 흐름 관리

NetBIOS, RPC 프로토콜 사용

 

"물리적으로 연결된 인접 시스템"이 아님 → 네트워크가 아니라 소프트웨어 프로세스 간 연결을 담당.

데이터 전송 기능 없음 → 세션을 관리할 뿐, 실제 데이터를 전달하지 않음.

MAC 주소 & IP 주소 사용 안 함 → 애플리케이션 계층과만 연동됨.

 

 

RPC(=Remote Procedure Call, 원격 프로시저 호출)

 

 

다른 컴퓨터(원격 서버)의 함수를 마치 내 컴퓨터에서 실행하는 것처럼 호출하는 기술

네트워크를 통해 다른 시스템의 프로세스를 실행할 수 있다

실행 결과를 네트워크를 통해 클라이언트로 반환할 수 있다.

쉽게 말하면, 로컬 함수처럼 보이지만, 실제로는 네트워크를 통해 실행되는 구조

 

ex. 분산 시스템, 마이크로서비스 아키텍처(MSA)-서로 다른 서비스 간 데이터를 주고받을 때 사용

클라우드 서비스 - 클라이언트가 원격 서버(API)를 호출할 때

 

MSA에서 RPC는 다른 마이크로서비스에 있는 함수를 마치 내 함수처럼 호출할 수 있게 해주는 통신 방식이며, 성능과 구조화에 유리하다.

ex. gRPC(Google Remote Procedure Call)

 

세션 계층인 이유

RPC(Remote Procedure Call)는 이렇게 동작한다

  1. 클라이언트가 원격 서버에 함수 호출
  2. 서버는 그 함수의 결과를 클라이언트에게 응답
  3. 양쪽이 이 호출을 **하나의 '논리적 대화(세션)'**로 인식

=> 원격 함수 호출을 논리적으로 연결하고 흐름을 관리하는 ‘대화’ 단위의 통신이기 때문에, 세션 계층 프로토콜로 분류된다

 

 

 

전송 계층 (Transport Layer)

 

그 컴퓨터 안의 어떤 프로그램으로 보내야 하지? 

프로세스 간 통신(앱 ↔ 앱)

포트 번호로 대상 앱을 찾고, 데이터 손실 없이 정확히 도착하게 해주는 택배 상자 정리 서비스

 

출발지와 목적지 간 종단 간 데이터 전송을 담당하는 계층

 

애플리케이션 계층과 네트워크 계층 간 중개 역할

=> 애플리케이션 계층에서 보낸 데이터가 네트워크 계층으로 전달되기 전에 전송 계층에서 가공된다

 

큰 데이터를 네트워크 전송이 가능하도록 잘게 나누고, 수신 측에서 다시 조립되도록 관리한다

네트워크는 MTU(Maximum Transmission Unit)라는 최대 크기 제한이 있다

너무 큰 데이터를 한 번에 보내면 전송 실패하거나 느려지고 손상 위험이 있다

데이터를 작은 블록(세그먼트)으로 나누고, 신뢰성 있는 전송 보장

주요 프로토콜: TCP(신뢰성 보장, 순서 번호를 붙임), UDP(빠른 전송)

구분 TCP UDP
분할 O (세그먼트 단위로 보냄) O (데이터그램 단위로 보냄)
순서 보장 O (재정렬 기능 포함) (보낸 순서대로 도착 수도)
손실 복구 O (재전송) ( )

 

🔹 예시:

  • 웹 브라우저(Chrome)가 웹 서버(Apache)에서 HTML 데이터를 가져올 때
  • Zoom이나 VoIP(음성 통화)에서 오디오 패킷을 전송할 때

 

TCP(신뢰성 보장), UDP(빠른 전송) 프로토콜 사용

포트 번호(Port Number) 기반 데이터 전달

패킷 분할(Fragmentation), 오류 복구(Retransmission)

 

"물리적으로 연결된 인접 시스템"이 아님 → 전송 계층은 출발지-목적지(End-to-End) 간 데이터 전송 담당.

IP 주소, MAC 주소 사용 안 함 → 대신 포트 번호(80, 443 등)를 사용하여 프로세스 간 통신 수행.

 

  • TCP

 

가상 회선 방식을 기반으로 하는 연결형 서비스 제공

패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능

 

  • 다중화

 

여러 개의 애플리케이션이 동시에 네트워크를 사용해도, 서로 간섭 없이 데이터를 주고받을 수 있게 해주는 기술

 

  • 패킷 다중화

 

TCP는 각각의 연결을 구분하기 위해 (출발지 IP, 출발지 포트, 목적지 IP, 목적지 포트) 조합을 사용해서

데이터를 올바른 애플리케이션에 전달하거나 받는 쪽에서 구분해서 처리할 수 있게 한다

 

 

  • 게이트웨이

 

프로토콜이 다른 네트워크를 연결시켜 주는 장치

응용 계층을 연결하여 데이터 형식의 변환 및 프로토콜의 변환 등을 수행한다.

주로 LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할을 하는 네트워크 관련 장비

 

1계층에서 7계층 모두 해당

 

서로 다른 네트워크 체계(프로토콜, 구조)를 연결해주는 장비

예: IP → IPX, TCP/IP → AppleTalk 등

단순한 라우터/스위치와 달리, 프로토콜 변환, 주소 변환, 포맷 변환 등을 처리할 수 있음

복잡한 처리 로직이 있어서 상위 계층에 가까움

 

 

  • ARQ

 

TCP는

(1) 중복된 ACK 세그먼트를 수신했을 때

(2) 타임아웃이 발생했을 때

송신한 세그먼트에 문제가 발생했음을 인지한다.

 

ARQ(Qutomatic Repeat Request): 자동 재전송 요구

수신 호스트의 답변(ACK)과 타임아웃 발생을 토대로 문제를 진단하고,

문제가 생긴 메시지를 재전송함으로써 신뢰성을 확보하는 방식

 

전송 계층만의 기술은 아님

 

(1) Stop-and-Wait ARQ: 제대로 전달했음을 확인하기 전까지는 새로운 메시지를 보내지 않음

(2) Go-Back-N ARQ: 여러 세그먼트를 전송하고 , 도중에 잘못 전송된 세그먼트가 발생할 경우 해당 세그먼트부터 전부 다시 전송

(3) Selective Repeat ARQ: 선택적으로 재전송. 개별적으로 ACK 세그먼트롤 보내므로 응답받지 못한 세그먼트가 존재한다면 해당 세그먼트를 재전송

=> 2,3번은 흐름 제어 필요

 

슬라이딩 윈도우로 흐름 제어

윈도우: 송신 호스트가 파이프라이닝(연속해서 메시지를 전송할 수 있는 기술)할 수 있는 최대량

 

흐름 제어의 주체는 수신 호스트

혼잡 제어의 주체는 송신 호스트

 

혼잡 제어

네트워크의 혼잡도를 파악하고 혼잡한 정도에 따라 전송량을 조절하는 방식으로,

느린 시작, 혼잡 회피, 빠른 회복 등의 알고리즘 사용

 

🧱 네트워크 계층 vs 전송 계층 차이 요약

구분 네트워크 계층 (Network Layer, 3계층) 전송 계층 (Transport Layer, 4계층)
역할 데이터가 어디로 가야 하는지 결정 (라우팅) 프로그램끼리 정확하게 통신하도록 보장
단위 패킷 (Packet) 세그먼트 (Segment, TCP), 데이터그램 (UDP)
주소 IP 주소 (논리적 주소) 포트 번호 (어떤 앱인지 구분)
프로토콜 IP, ICMP, ARP TCP, UDP
기능 경로 결정, 패킷 전달, 오류 알림 (ICMP) 연결 설정, 흐름 제어, 오류 복구, 순서 보장
대상 호스트 통신 (컴퓨터컴퓨터) 프로세스 통신 ()

ex.

A 컴퓨터에서 B 컴퓨터의 웹서버(포트 80)로 접속

전송 계층: "HTTP니까 TCP 80번 포트로 보내!"

네트워크 계층: "B의 IP는 192.168.1.10, 이 경로로 보내!"

 

 

  • 네트워크 계층

 

대표적인 장비: 라우터

 

IP 주소를 이용해 송수신지 대상을 지정하고,

다른 네트워크에 이르는 경로를 결정하는 라우팅을 통해 다른 네트워크와 통신한다

 

택배의 수신인 역할을 하는 정보가 MAC 주소,

수신지 역할을 하는 정보는 네트워크 계층의 IP 주소

네트워크에서 MAC 주소와 IP 주소를 함께 사용하고, 기본적으로 IP 주소를 우선 활용한다

 

데이터를 목적지 컴퓨터까지 어떻게 보내줄지 경로를 결정하는 계층

어디로 가야할지를 결정하고, 그 방향으로 패킷을 전달하는 역할

 

개방 시스템들 간의 네트워크 연결 관리

데이터 교환 및 중계 기능

 

1. 데이터 교환 (packet switching)

  • 발신지에서 목적지로 데이터를 패킷 단위로 전송
  • 이때 각 패킷은 독립적으로 라우팅
  • 스위칭, 라우팅 등 경로 설정이 이 계층에서 이루어짐

 

2. 데이터 중계 (forwarding)

  • **중간 노드(라우터)**가 다른 네트워크로 패킷을 전달 중계
  • 이건 전송계층이나 상위 계층에서는 하지 못하는 일

 

경로 제어(데이터가 어디로 가야하는지 라우팅), 패킷 교환, 트래픽 제어 등의 기능을 수행한다.

 

패킷 교환: 데이터를 작은 단위인 ‘패킷’으로 나눠서, 목적지까지 독립적으로 전달하는 방식

데이터를 작은 조각(패킷)으로 잘라서 보냄

각 패킷은 독립적으로 라우팅됨(다른 경로로 갈 수도 있음)

목적지에서 순서대로 재조립

회선을 미리 점유하지 않아 효율적

 

트래픽 제어

네트워크에 과도한 트래픽이 몰리는 것을 방지하고, 혼잡을 줄이기 위한 제어 기법

기법 예시

(1) 흐름 제어: 송신 속도가 너무 빠르면 수신자가 감당 못 하니 속도 맞춤

(2) 혼잡 제어: 네트워크 전체의 혼잡 상황 감지해서 전송량 줄임

(3) 버퍼 관리: 라우터 등 중간 장비의 대기열(버퍼)을 효율적으로 사용

 

다른 네트워크 간 경로 설정 및 전송

 

IP 주소 기반으로 데이터를 목적지까지 전달하는 역할(출발지에서 목적지까지 패킷을 보내는 역할)

다른 네트워크(서브넷)를 넘어가는 데이터 전송 가능

경로를 찾기 위해 라우팅 프로토콜 사용

 

관련 장비: 라우터

 

IP 주소를 이용한 데이터 전송

라우팅(Routing) 기능 제공 → 최적 경로 선택

주요 프로토콜: IP, ICMP, ARP

패킷(Packet) 단위 데이터 전송

🧱 네트워크 계층의 주요 기능

기능 설명
라우팅(Routing) 목적지까지 가장 효율적인 찾기
논리적 주소 지정 IP 주소를 사용하여 위치 지정
패킷 전달 다음 목적지(라우터) 패킷 넘기기
오류 알림 ICMP 문제 발생 알려줌 (: 목적지 도달 불가)

 

"물리적으로 연결된 인접 시스템"이 아님 → 네트워크 계층은 멀리 떨어진 시스템 간 전송을 담당.

MAC 주소가 아닌 IP 주소 사용 → 데이터 링크 계층과 달리, 전송을 위해 IP 주소 기반으로 패킷 전달.

오류 제어 기능 없음 → 패킷 손실이 발생해도 자체적으로 오류 수정하지 않음.

 

  • 네트워크 계층의 보안 프로토콜: IPSec

 

ICMP (Internet Control Message Protocol)

 

네트워크 계층 프로토콜

 

IP의 신뢰할 수 없는 전송 특성과 비연결형 전송 특성을 보완하기 위한 네트워크 계층 프로토콜

IP 프로토콜을 이용하여 ICMP 메시지 전달

 

(기출 지문)

TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜(IP)과 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로의 변경 등을 위한 제어 메시지를 취급하는 무연결 전송용 프로토콜

OSI 기본 참조 모델의 네트워크 계층에 속한다.

 

IP 패킷의 전송 중에 발생하는 오류를 알리거나, 네트워크 상태를 진단하기 위한 제어용 프로토콜

네트워크가 잘 돌아가는지 확인하거나, 문제가 생겼을 때 알리는 “알림 담당자” 같은 역할

네트워크 오류 알림과 상태 진단용 프로토콜이며, 경로 변경에는 간접적으로 도움을 줄 수 있다

 

IP 네트워크에서 오류 메시지와 제어 메시지를 전송하는 프로토콜

네트워크 컴퓨터의 운영체제에서 오류 메시지를 수신하거나, 전송 경로를 변경하는 등 오류 처리를 위한 제어 메시지를 주로 취급한다.

관련된 도구로 traceroute(라우팅 경로 추적), ping(네트워크 연결 확인)이 있으며,

ping of death와 같은 네트워크 공격 기법에 활용된다

 

sojeong@gimsojeong-ui-MacBookPro ~ % traceroute google.com

traceroute to google.com (172.217.161.46), 64 hops max, 52 byte packets

 1  172.30.1.254 (172.30.1.254)  3.209 ms  2.449 ms  2.254 ms

 2  121.135.132.1 (121.135.132.1)  5.422 ms  5.611 ms *

 

라우팅 경로를 직접 바꾸진 않지만,

라우터가 경로를 변경하도록 유도하는 정보 제공은 가능

  • Destination Unreachable 메시지: 특정 경로로 갈 수 없다고 알려줌 → 라우터는 다른 경로를 찾도록 시도할 수 있음
  • Redirect 메시지: 더 나은 경로가 있다고 클라이언트에게 제안함 → 일시적으로 라우팅 경로를 변경할 수 있음

 

TCP/UDP와 달리 데이터를 직접 전달하는 용도는 아니다

보안상 차단되는 경우도 많다(방화벽, IDS 등에서)

 

ICMP의 주요 기능

기능 설명 예시
오류 메시지 전송 목적지 도달 불가, TTL 초과 "Destination Unreachable", "Time Exceeded"
상태 확인(Ping) 목적지 호스트가 살아 있는지 확인 ping 명령어
경로 추적(Traceroute) 패킷이 거치는 라우터 확인 tracert, traceroute 명령어
속도 측정 RTT(round trip time) 측정 ping 응답 시간

 

 

ICMP의 주요 특징

  1. 네트워크 오류 감지 및 보고
  2. 연결 지향이 아님 (비연결형)
  3. 데이터 전송 기능 없음
  4. 주로 네트워크 진단 명령어에서 사용됨

 

ICMP 관련 보안 이슈

 

Ping Flood 공격

공격자가 과도한 Ping 요청을 보내 네트워크 과부하 유발

ICMP Echo Request(ping)를 대량으로 보내서 대상 시스템의 리소스를 고갈시키는 공격

핑을 엄청나게 보내서 상대방이 대응 못 하게 만드는 단순 폭격

1:1 직접 공격

요청이 많아서 CPU/메모리 사용률 급상승

상대방이 ICMP Echo Reply를 계속 하다 지쳐버림


Smurf 공격

ICMP를 악용하여 대량의 응답 패킷을 피해자에게 보내는 DDoS 공격

ICMP Echo Request를 브로드캐스트 주소로 보내고,

출발지 주소를 피해자의 IP 주소로 위조(spoofing)해서

여러 컴퓨터가 동시에 피해자에게 응답하게 만드는 공격

1:N 간접 공격(증폭형 DoS)


ICMP 차단 (보안 정책 적용)

일부 네트워크에서는 ICMP 트래픽을 차단하여 보안 강화

 

 

ARP(Address Resolution Protocol)

 

네트워크 계층 프로토콜

 

IP 주소를 이용해 MAC 주소를 찾아주는 역할을 한다

네트워크에서 통신할 때 MAC 주소가 필요하지만, 우리는 IP 주소만 알고 있음. ARP를 이용해 MAC 주소를 찾는다

같은 네트워크(LAN)에서만 동작한다.

라우터를 넘어서면 새롭게 ARP 요청이 발생한다

 

 

📌 ARP(Address Resolution Protocol) 요청

→ "이 IP 주소(192.168.1.1)의 MAC 주소를 가진 기기가 누구냐?"

 

송신자: 192.168.1.100 → 대상: 255.255.255.255 (모두에게 전송)

 

모든 장치가 이 요청을 받지만, 해당 IP를 가진 장치만 응답

 

ARP 스푸핑

 

로컬 네트워크(LAN)에서 사용하는 ARP 프로토콜의 취약점을 이용한 공격 기법

자신의 물리적 주소(MAC)를 변조하여 다른 PC에게 도달해야 하는 데이터 패킷을 가로채거나 방해한다

 

📌 RARP (Reverse Address Resolution Protocol, 역 주소 결정 프로토콜)

 

인터넷 환경에서의 호스트 상호 간 통신에서 연결된 네트워크 접속 장치의 물리적 주소인 MAC 주소를 이용하여  IP 주소를 찾는 인터넷 계층의 프로토콜

역순 주소 결정 프로토콜

✅ RARP는 IP 주소를 모르는 장치가 자신의 MAC 주소를 이용해 IP 주소를 알아내는 프로토콜입니다.
✅ "역(Reverse)"이라는 단어에서 알 수 있듯이, 일반적인 ARP와 반대 역할을 수행

 

"MAC 주소만 아는 장치가 RARP 서버에 브로드캐스트 요청을 보내고, RARP 서버가 해당 MAC 주소에 대한 IP를 응답하여 할당한다."

1️⃣ 클라이언트(워크스테이션) → 네트워크 전체

  • "나는 **MAC 주소 00:1A:2B:3C:4D:5E인데, 내 IP 주소가 뭐야?"
  • 📢 RARP 요청 브로드캐스트 (Ethernet Frame)

2️⃣ 네트워크 내 RARP 서버(라우터 또는 전용 서버) → 클라이언트

  • "MAC 주소 00:1A:2B:3C:4D:5E는 192.168.1.100을 사용하면 돼!"
  • 📩 RARP 응답 (IP 주소 제공)

3️⃣ 클라이언트 → 네트워크 사용 가능

  • "내 IP 주소는 192.168.1.100이네! 네트워크 접속 시작!"
  • 네트워크 정상 작동 (IP 기반 통신 가능)

 

 

🔹 RARP의 한계점과 대체 기술

❌ RARP는 전용 RARP 서버가 필요하며, 설정이 복잡하고 확장성이 떨어지는 단점이 있음.
✅ 현재는 RARP 대신 DHCP(동적 호스트 구성 프로토콜)가 널리 사용됨.
✅ DHCP는 IP 주소뿐만 아니라 서브넷 마스크, 게이트웨이, DNS 정보까지 함께 제공 가능

 

 

📌 DHCP (Dynamic Host Configuration Protocol)란?

 

DHCP는 네트워크 장치가 자동으로 IP 주소를 할당받도록 도와주는 프로토콜
✅ IP뿐만 아니라 서브넷 마스크, 게이트웨이, DNS 서버 정보도 함께 제공합니다.
✅ RARP의 발전형으로, 현재 대부분의 네트워크에서 DHCP를 사용합니다.

 

🔹 DHCP 동작 방식 (IP 자동 할당 과정)

1️⃣ 클라이언트 → 네트워크 (DHCP Discover)

  • "나 새로운 컴퓨터인데, IP 주소 좀 주세요!"
  • 📢 브로드캐스트(전체 전송)로 DHCP 요청

2️⃣ DHCP 서버 → 클라이언트 (DHCP Offer)

  • "OK! 네 IP 주소는 192.168.1.50, 서브넷 255.255.255.0, 게이트웨이 192.168.1.1!"
  • 📩 IP 주소 및 네트워크 정보 제공

3️⃣ 클라이언트 → DHCP 서버 (DHCP Request)

  • "좋아요! 192.168.1.50 주소 사용할게요!"
  • IP 주소 임대 요청

4️⃣ DHCP 서버 → 클라이언트 (DHCP Acknowledgment)

  • "확인 완료! 일정 기간 동안 192.168.1.50 주소 사용 가능!"
  • IP 주소 할당 완료 (임대 기간 동안 사용 가능)

 

 

보통 컴퓨터는 DHCP를 사용하며, IP 주소를 디스크에 영구 저장하지 않음.

고정 IP 설정 시에는 IP 주소가 네트워크 설정 파일에 저장됨.

DHCP는 IP 주소를 자동으로 할당하는 프로토콜이며, 현재 대부분의 네트워크에서 사용됨.

RARP는 과거 사용되던 방식으로, 현재는 거의 사용되지 않음(DHCP로 대체됨). 🚀

 

 

정적 라우팅 vs 동적 라우팅

 

정적 라우팅

수동으로 채워진 라우팅 테이블 항목을 토대로 라우팅

 

동적 라우팅

라우팅 프로토콜을 통해 자동으로 채워진 라우팅 테이블 항목을 토대로 라우팅

 

 

네트워크 계층의 주요 라우팅 프로토콜(RIP, OSPF, BGP)

 

특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가

 

(1) 빈칸 뚫기 기출

경로 제어 프로토콜은 크게 자율 시스템 내부의 라우팅에 사용되는 IGP와 

자율 시스템 간의 라우팅에 사용되는 EGP로 구분할 수 있다.

 

IGP는 

소규모 동종 자율 시스템에서 효율적인 RIP와

대규모 자유 시스템에서 많이 사용되는 OSPF로 나누어진다.

OSPF는 링크 상태(Link State)를 실시간으로 반영하여 최단 경로로 라우팅을 지원하는 특징이 있다.

 

BGP는 OSPF의 단점을 보완하여 만들어진 라우팅 프로토콜로, 처음 연결될 때는 전체 라우팅 테이블을 교환하고,
이후에는 변화된 정보만을 교환한다.

 

  • 경로 제어 프로토콜

네트워크에서 최적의 경로를 찾아 데이터를 전달하는 역할

크게 다음으로 나뉜다

IGP(내부 게이트웨이 프로토콜)

EGP(외부 게이트웨이 프로토콜)

 

 

1. IGP (Interior Gateway Protocol, 내부 라우팅 프로토콜)

 

소규모 네트워크(자율 시스템, AS) 내부에서 경로를 제어하는 프로토콜

자율 시스템(AS, Autonomous System): 하나의 조직이 관리하는 네트워크 영역

 

IGP 종류


1️⃣ RIP (Routing Information Protocol) → 소규모 네트워크에서 사용

  • 거리 벡터(Distance Vector) 방식 사용
  • 홉(hop) 수 기준으로 경로 선택 (최대 15홉)
  • 소규모 네트워크에서 효율적이지만, 대규모 네트워크에서는 성능이 떨어짐

 

2️⃣ OSPF (Open Shortest Path First) → 대규모 네트워크에서 사용

(기출 지문)

  • RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜
  • 인터넷 망에서 이용자가 최단 경로를 선정할 수 있도록 라우팅 정보에 노드 간의 거리 정보, 링크 상태 정보를 실시간으로 반영하여 최단 경로로 라우팅을 지원한다
  • 대규모 네트워크에서 많이 사용된다
  • 최단 경로 탐색에 다익스트라(Dijkstra) 알고리즘을 사용한다
  • 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에 알린다
  • 링크 스테이트 라우팅 알고리즘을 사용하며, 하나의 자율 시스템(AS)에서 동작하면서 내부 라우팅 프로토콜의 그룹에 도달한다.
  • 실시간으로 네트워크 상태를 반영하여 최단 경로를 찾음

 

📌 정리:

  • RIP → 소규모 네트워크 적합 (거리 벡터 방식)
  • OSPF → 대규모 네트워크 적합 (링크 상태 방식, 최단 경로 반영)

 

2. EGP (Exterior Gateway Protocol, 외부 라우팅 프로토콜)

자율 시스템(AS) 간의 경로를 제어하는 프로토콜

 

🔹 BGP (Border Gateway Protocol) → 대표적인 EGP 프로토콜

 

인터넷과 같은 대규모 네트워크에서 AS(자율 시스템) 간 라우팅을 담당
✅ OSPF의 단점을 보완하여 만들어짐

OSPF는 AS 간의 라우팅을 처리하지 못하는 한계가 있음

이 부분을 BGP가 보완하여 인터넷과 같은 광범위한 네트워크에서 효율적인 라우팅이 가능하도록 했다

BGP는 OSPF의 적용 범위 제한, 확장성 한계, 라우팅 정책 제어의 제한 등을 보완하여, 대규모 네트워크와 AS 간의 효율적인 라우팅을 가능하게 한다.
✅ 처음 연결될 때 전체 라우팅 테이블을 교환하고 이후에는 변경된 정보만 교환

“경로” 벡터 라우팅 프로토콜로, 대규모 네트워크에서도 안정적으로 동작한다
✅ ISP(인터넷 서비스 제공업체) 간 데이터 전송에 필수적

인터넷 경로 라우팅

인터넷에서 국가, 기업 간 라우팅을 담당하는 프로토콜

인터넷에서 실제로 사용되는 라우팅 프로토콜

 

 

📌 정리:

  • OSPF는 하나의 AS 내부에서 사용됨
  • BGP는 여러 AS 간의 통신을 담당

 

1️⃣ IGP (자율 시스템 내부 라우팅) → RIP(소규모) & OSPF(대규모)
2️⃣ EGP (자율 시스템 간 라우팅) → BGP 사용
3️⃣ OSPF는 실시간 링크 상태 반영하여 최단 경로 탐색, BGP는 전체 테이블 교환 후 변경 사항만 전송

 

 

(2) RIP ( 거리 벡터 라우팅 프로토콜 )

 

Routing Information Protocol

최단 경로 탐색에 Bellman-Ford 알고리즘이 사용된다.

거리(홉 수)가 가장 짧은 경로를 선택하는 단순한 라우팅

소규모 동종의 네트워크 내에서는 효율적이나, 최대 홉수가 제한되므로 대규모 네트워크에서는 사용할 수 없다.

최대 홉 수: 15 (16홉 이상은 네트워크 단절로 간주)

일정 시간마다(30초) 전체 라우팅 정보를 브로드캐스트함

일정 시간 동안 라우팅 정보가 갱신되지 않으면 해당 경로를 이상 상태로 간주한다

 

라우팅 업데이트가 많아 네트워크 트래픽이 증가한다

 

문제에서 간선에 가중치가 있어도 무시하고 홉 수만 센다

 

 

(3) OSPF: 링크 상태 라우팅

 

OpenShortestPath First

각 라우터가 네트워크 전체의 지도를 만들고 최단 경로를 선택하는 라우팅 프로토콜

최단 경로 탐색에 다익스트라 알고리즘 사용 (비용 계산)

링크 상태를 실시간으로 반영하여 최단 경로로 라우팅을 지원한다

네트워크 변경 시 필요한 정보만 업데이트 (변화가 있을 때만 라우팅을 업데이트한다. 브로드캐스트X, 멀티캐스트 사용)

라우팅 정보는 “영역(Area)” 단위로 관리 (계층적 구조로 트래픽 감소 가능)

 

홉 수 제한 없다 => 대규모 네트워크에서 많이 사용

RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜

 

계산량이 많아 CPU, 메모리 사용량이 증가

 

 

 

 

 

  • 공유기와 AP

 

공유기: 

 

네트워크를 연결하는 장치

네트워크를 서로 연결하고 데이터를 목적지까지 최적의 경로로 전달하는 장치

외부 인터넷과 내부 네트워크 간의 데이터를 적절히 전송하는 역할(라우팅)을 수행한다

 

인터넷(WAN)과 내부 네트워크(가정/사무실, LAN)를 연결하는 장치

AP와 다르게 여러 개의 네트워크(WAN, LAN 등)를 연결하는 기능을 가짐

 

보통 IP 주소를 할당하고 인터넷 연결을 관리

 

1️⃣ 컴퓨터나 스마트폰에서 네이버(https://www.naver.com)에 접속하면?

2️⃣ 공유기가 네이버 서버의 IP 주소를 찾아서(라우팅) 해당 트래픽을 인터넷(WAN)으로 보냄

3️⃣ 네이버 서버에서 응답을 보내면, 공유기가 이를 다시 내부 네트워크(LAN)로 전달

 


IP 주소를 관리하고 DHCP, NAT, 방화벽 기능을 제공

 

(1) DHCP(Dynamic Host Configuration Protocol): 네트워크에 접속하는 기기에 자동으로 IP 주소를 할당하는 프로토콜

 

(2) NAT(Network Address Translation): 사설 IP와 공인 IP를 변환하여 여러 기기가 하나의 공인 IP로 인터넷에 접속할 수 있도록 하는 기술

 

(3) 방화벽(Firewall): 네트워크 보안을 위해 특정 트래픽을 허용하거나 차단하는 시스템


유선(LAN 포트)과 무선(Wi-Fi)을 통해 여러 기기를 인터넷에 연결

 

 

공유기의 예시
집에서 사용하는 일반적인 Wi-Fi 공유기
회사에서 쓰는 기업용 네트워크 라우터

 

 

AP(Access Point, 무선 액세스 포인트):

 

유선 네트워크(LAN)를 무선 네트워크(Wi-Fi)로 변환하는 역할

유선 인터넷을 무선으로 바꿔주는 Wi-Fi 변환기

유선 인터넷 신호를 받아서 Wi-Fi 신호로 변환하여 여러 무선 기기가 네트워크에 연결할 수 있도록 해주는 장치

AP는 인터넷을 직접 공급하지 않고, 공유기에서 받은 인터넷을 무선 신호로 변환하여 전달하는 역할

공유기나 스위치에 연결된 유선 네트워크를 무선으로 확장하는 역할

 

보통 유선 네트워크(인터넷)와 연결되어 여러 기기들이 Wi-Fi를 통해 인터넷에 접속할 수 있도록 해줌

 

AP 자체는 라우팅 기능이 없고, 단순히 무선 신호를 중계하는 역할
기존 네트워크(LAN)에 연결된 기기가 무선으로 접속할 수 있도록 도와줌
단독으로 인터넷 연결을 제공하지 않으며, 반드시 라우터(공유기) 또는 스위치와 연결해야 함

 

예시

집이나 사무실에 있는 Wi-Fi 공유기(AP 기능 내장)
🏢 회사에서 여러 개의 AP를 설치해 Wi-Fi 범위를 확장하는 경우
🏫 학교나 카페에서 사용하는 Wi-Fi 신호 중계기

 

 

 

 

  • 데이터링크 계층

 

물리 계층에서 올라온 비트 스트림을 프레임 단위로 나누고, 에러 검출 및 흐름 제어, MAC 주소를 통한 통신 담당

즉, 같은 네트워크 내 장비 간의 통신을 안정적으로 만들어준다

 

(기출 지문)

물리적으로 연결된 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 연결 설정, 데이터 전송, 오류 제어 등의 기능을 수행한다.

 

인접한 장치 간(노드 간) 신뢰성 있는 데이터 전송을 담당하는 계층

 

직접적인 장치간 연결을 담당한다

 

MAC 주소를 이용하여 같은 네트워크 내에서 데이터 전송

같은 네트워크 내에서 데이터 프레임 전송

MAC 주소 기반 통신(IP 주소 X)

오류 검출, 흐름 제어 수행

 

"물리적으로 연결된 두 개의 인접한 개방 시스템들 간에"
데이터 링크 계층은 같은 네트워크(로컬 네트워크)에서 '인접한' 두 장치 간 통신을 담당
네트워크 계층(3계층)처럼 다른 네트워크를 거치지 않고, 직접 연결된 노드 간 데이터 전송

두 개의 네트워크 장치(컴퓨터, 라우터 등)가 직접 연결되어 있는 상태

OSI 2계층(데이터 링크 계층)에서 MAC 주소를 이용해 통신 가능

🔹 예시:

  • PC ↔ 스위치 연결 (LAN 케이블)
  • 라우터 ↔ 라우터 연결 (광케이블, 이더넷)
  • Wi-Fi 공유기 ↔ 스마트폰 연결 (무선 LAN)
  • PC에서 공유기(Wi-Fi AP)로 데이터 전송
  • 스위치를 통한 이더넷 데이터 프레임 전송

 

 

 

"신뢰성 있고 효율적인 정보 전송을 할 수 있도록"
데이터 프레임을 올바르게 전송하기 위해 오류 검출(CRC), 흐름 제어 수행
네트워크 계층(3계층)은 신뢰성을 보장하지 않지만, 데이터 링크 계층은 신뢰성을 높이기 위해 오류 제어 기능을 포함

"연결 설정, 데이터 전송, 오류 제어 등의 기능을 수행한다."

전송 중 비트 오류를 검출하고, 필요 시 재전송을 요청한다


연결 설정: 물리적 연결이 이루어진 후, 프레임 단위로 데이터를 전송

물리 계층(1계층)에서 송수신된 신호를 해석하고, 프레임 단위로 전송


데이터 전송: MAC 주소를 이용하여 로컬 네트워크 내에서 프레임을 주고받음

 

오류 감지 및 흐름 제어 수행 (CRC, 패리티 비트 등)
오류 제어(Error Control): 오류 검출(CRC, 패리티 비트) 및 재전송을 통해 신뢰성을 높임

전송 중 데이터가 손상되었는지 확인하고 수정하는 과정

데이터 링크 계층에서는 프레임(Frame) 단위로 오류를 검출하고, 필요하면 재전송을 요청해.

 

기술 설명
패리티 비트 0/1 개수를 맞춰서 오류 감지
체크섬 전체 데이터를 일정 규칙으로 더한
CRC (Cyclic Redundancy Check, 순환 중복 검사) 고급 오류 검출 방식 (일반적으로 많이 사용됨), 수학적 연산(나눗셈)으로 데이터가 손상되었는지 확인, 데이터 손상은 감지하지만 수정은 불가능 (재전송 필요)
ARQ (자동 재전송 요청) 오류 있으면 다시 보내달라고 요청함

 

 

🔹 CRC 오류 검출 과정

 

  1. 송신 측에서 프레임 데이터를 특정 다항식(제너레이터)로 나눠 나머지 값을 생성 (CRC 값)
  2. 프레임에 CRC 값을 추가한 후 전송
  3. 수신 측에서 수신한 프레임을 같은 다항식으로 나누어 나머지를 검사

 

 

  • FCS(Frame Check Sequence)

프레임 끝에 추가되는 오류 검출용 데이터

오류 검출을 위해 사용되는 필드

CRC: FCS를 생성할 때 사용하는 대표적인 오류 검출 방식

 

CRC는 오류 검출 방법이고

FCS는 그 결과값을 담는 필드

 

 

 

흐름 제어(Flow Control)

 

"송신자와 수신자의 데이터 전송 속도를 조절하여 손실을 방지하는 기법"
✅ 송신자가 너무 빠르게 데이터를 보내면 수신자가 처리하지 못해 데이터가 손실될 수 있음
✅ 이를 방지하기 위해 흐름 제어가 필요해!

🔹 흐름 제어 방법

1️⃣ 정지-대기(Stop-and-Wait) 방식
한 번에 한 개의 프레임만 전송하고, 응답(ACK)을 받으면 다음 프레임 전송
단순하지만, 속도가 느림

2️⃣ 슬라이딩 윈도우(Sliding Window) 방식

한 번에 여러 개의 프레임을 연속적으로 전송 가능

윈도우 크기만큼 프레임을 보낸 후, 수신자로부터 누락된 프레임만 재전송

 

기능 설명
프레임화 (Framing) 데이터 패킷을 프레임(Frame) 단위로 나눠서 전송
주소 지정 (Addressing) MAC 주소 사용하여 같은 네트워크 내에서 통신
흐름 제어 (Flow Control) 송신 속도 조절(슬라이딩 윈도우)
오류 검출 수정 (Error Control) CRC(Cyclic Redundancy Check), 패리티 비트 등을 이용하여 오류 검출
매체 접근 제어 (MAC, Media Access Control) 여러 장치가 하나의 네트워크를 공유할 충돌 방지 (CSMA/CD, CSMA/CA)

 

  • 무선 네트워크에서 패킷이 어떻게 전송되는지?

 

데이터링크 계층에서 MAC 주소 기반으로 대상 장치를 식별하고

무선 프로토콜인 IEEE 802.11(Wi-Fi)를 사용해 프레임 생성

무선 채널로 전송하기 위해 전기 신호를 전파로 변환

 

이를 물리 계층에서 무선 신호로 변환해서 송신

AP 또는 다른 장치가 이 전파를 수신

 

  • 허브

 

여러 대의 호스트를 연결할 수 있는 물리 계층의 장비

전달받은 신호를 다른 모든 포트로 내보내며 반이중 모드로 통신한다

 

 

CSMA/CD(유선 네트워크) vs. CSMA/CA(무선 네트워크)

 

공유된 네트워크 환경에서 여러 장치가 데이터를 송신할 때,

네트워크에서 여러 장치가 공유된 통신 매체(유선, 무선)를 통해 동시에 데이터 전송할 때, 

충돌을 방지하는 방법

 

비교

구분 CSMA/CD CSMA/CA
의미 충돌 발생 감지 & 재전송 충돌 방지를 위한 예약 & 대기
사용 환경 유선 LAN (이더넷, IEEE 802.3) 무선 LAN (Wi-Fi, IEEE 802.11)
충돌 감지 방식 충돌 발생 즉시 중단 & 백오프 알고리즘 적용 RTS/CTS 예약 방식으로 사전 회피
효율성 네트워크 부하가 적을 유리 네트워크 부하가 많아도 안정적
단점 충돌 발생 대역폭 낭비 RTS/CTS 인해 속도 저하 가능

 

Ethernet(IEEE 802.3): CSMA/CD 방식의 LAN

IEEE 802: LAN을 위한 표준 프로토콜

 

(1) CSMA/CD (Carrier Sense Multiple Access with Collision Detection)

 

반이중 이더넷 네트워크의 충돌 방지 프로토콜

 

충돌이 발생하면 감지 후 재전송하는 방식

주로 이더넷(유선 LAN, IEEE 802.3)에서 사용됨

 

채널 감지 (Carrier Sense) → 송신 전에 네트워크가 비어 있는지 확인

데이터 전송 → 네트워크가 비어 있으면 바로 데이터 전송

충돌 감지 (Collision Detection) → 충돌이 발생하면 즉시 중지

백오프(재전송 대기, Exponential Backoff) → 랜덤 시간 후 재전송 시도

만일 부득이하게 다수의 호스트가 접근하여 충돌이 발생하면 임의의 시간만큼 대기 후 다시 전송한다

 

충돌 감지 후 재전송 → 충돌이 발생해야 감지 가능

유선 네트워크(이더넷)에서 사용됨

스위치 사용 시 충돌 없음 (스위치는 각 포트를 독립적으로 처리)

 

채널을 감지하고, 충돌이 발생하면 데이터를 재전송하는 방식

-> 이더넷(유선 LAN)에서 사용됨

 

 

(2) CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)

 

충돌을 사전에 방지하는 방식

주로 Wi-Fi(무선 LAN, IEEE 802.11)에서 사용됨

 

📌 동작 방식 (Collision 회피 방식)
1️⃣ 송신 전 → 채널 감지 (Carrier Sense)

네트워크가 사용 중인지 확인
2️⃣ 사용 중이면 → 랜덤 대기 (Backoff Time)

네트워크가 비어 있을 때까지 대기
3️⃣ 데이터 전송 전 → 예약 신호 (RTS/CTS) 사용하여 충돌 방지)

송신 장치 → "전송해도 되나요?" (RTS, Request to Send)

수신 장치 → "가능합니다!" (CTS, Clear to Send)
4️⃣ 확인 후 → 데이터 전송

데이터 전송 후 수신자가 응답(ACK) 보내면 성공

 

충돌이 발생하기 전에 회피 (Collision Avoidance)

Wi-Fi(무선 네트워크)에서 사용됨

충돌 발생 가능성이 낮음 → ACK(응답) 확인 필요

 

 

 

📌 사용 사례
Wi-Fi (무선 LAN, IEEE 802.11)
블루투스, IoT 네트워크

 

📌 장점 & 단점
충돌 자체를 방지하여 안정적
✅ 무선 환경에서 충돌이 나도 수정이 어렵기 때문에 필수적
❌ 예약 절차(RTS/CTS)로 인해 속도가 느림
❌ 트래픽이 많아질수록 대기 시간이 증가

 

  • 스위치 => 똑똑한 브리지 (멀티포트 브리지)

 

데이터 링크 계층

 

전달받은 신호를 수신지 호스트가 연결된 포트로만 내보냄

 

각각의 포트에 연결된 맥주소가 뭔지-맥주소 테이블

 

플러딩

송신지 포트를 제외한 모든 포트로 프레임 전송

 

포워딩

프레임이 전송될 포트에 실제로 프레임을 내보내는 것

 

에이징

맥 주소 테이블에 등록된 포트에서 일정 시간동안 프레임 전송 못받으면 해당 항목 삭제

 

브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치

프레임 단위로 데이터 전달

MAC 주소를 사용하여 데이터를 목적지로 전송

스위치는 연결된 장치들의 MAC 주소와 해당 포트를 기억한다

목적지 MAC 주소를 확인하고, 해당 장치가 연결된 포트로만 데이터를 전송하여 네트워크 효율을 높임.

MAC 주소를 모르는 경우, 네트워크 전체에 브로드캐스트(모든 포트로 전송) 후 학습.

 

구분 허브(Hub) 스위치(Switch)
전송 방식 모든 포트로 데이터를 전송 (브로드캐스트), 물리 계층으로 주소가 없으니까 모두에게 전송 목적지 MAC 주소를 확인하고 해당 포트로만 전송 (유니캐스트)
충돌(Collision) 데이터 충돌 발생 가능 (Half-Duplex) 충돌 없음 (Full-Duplex 지원)
속도 느림 (네트워크 부하 ) 빠름 (네트워크 최적화)
MAC 주소 학습 없음 MAC 주소 테이블을 사용하여 포워딩

💡 즉, 허브는 데이터를 무조건 모든 포트로 보내지만, 스위치는 목적지를 찾아서 효율적으로 데이터를 보냄! 🚀

 

MAC 주소를 학습하고, 목적지 MAC 주소에 따라 데이터를 포트로 전달!
브로드캐스트를 최소화하여 네트워크 효율을 높이고 충돌을 방지!
Full-Duplex 통신을 지원하여 동시에 송수신 가능!
허브보다 똑똑하게 데이터를 전송하는 네트워크 장치!

📌 즉, 스위치는 같은 네트워크(LAN) 내에서 장치들을 연결하고, 데이터를 최적의 경로로 전달하는 "스마트 네트워크 분배기" 역할을 해! 🚀

 

전이중(Full-Duplex) vs. 반이중(Half-Duplex) 비교

구분 전이중(Full-Duplex) 반이중(Half-Duplex)
송수신 방식 동시에 송신 & 수신 가능 번에 방향으로만 송수신
데이터 충돌 없음 충돌 가능성 있음
속도 빠름 느림
사용 예시 유선 전화, 광통신, 최신 Wi-Fi 무전기, 초기 이더넷, Wi-Fi
장점 높은 효율성, 빠른 속도 장비 비용 저렴, 단순한 구현
단점 추가 하드웨어 필요 (비용↑) 송수신이 동시에 불가능 (지연↑)

📌 즉, 전이중 통신은 속도가 빠르고 효율적이지만 비용이 높고, 반이중 통신은 간단하지만 속도가 느려! 🚀

 

  • 브리지

 

LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결하는 장치

 

리피터와 동일한 기능을 수행하지만, 단순 신호 증폭뿐만 아니라 네트워크 분할을 통해 트래픽을 감소시키며, 물리적으로 다른 네트워크를 연결할 때 사용한다.

데이터 링크 계층 중 MAC(Media Access Control) 계층에서 사용된다.

네트워크를 분산적으로 구성할 수 있어 보안성을 높일 수 있다.

 

허브처럼 전부 다에게 전달하지 않고, MAC 주소 테이블을 기반으로 필요한 포트로만 프레임을 전달한다

같은 네트워크 내에서 불필요한 트래픽을 줄여준다.

 

브리지를 이용한 서브넷 구성 시 전송 가능한 회선 수는 브리지가 n개일 때, n(n-1)/2

 

 

  • 터널링

 

데이터를 다른 프로토콜에 감싸서 보내는 방식

 

  • L2TP (Layer 2 Tunneling Protocol)

 

인터넷 같은 공용망 위에, 가상 전용 회선을 만드는 터널링 프로토콜

PPTP와 L2F의 기술적 장점들을 결합하여 만들어진 터널링 프로토콜

자체적으로 암호화 및 인증 기능을 제공하지 않아 다른 보안 프로토콜과 함께 사용되는 경우가 많다

 

PPTP(Point to Point Tunneling Protocol)

PPP 패킷을 IP 패킷에 캡슐화하여 통과시키기 위한 터널링 프로토콜

 

L2F(Layer 2 Forwarding)

인터넷을 통한 VPN 연결을 위해 개발된 터널링 프로토콜

 

데이터링크 계층에서 동작하는 터널링 프로토콜

가상 사설망(VPN)을 구축할 때 많이 사용된다. 

PPTP의 단점을 보완하기 위해 나옴

항목 설명
계층 OSI 2계층 (데이터 링크 계층) 기반
보안 기능 암호화 기능은 없음 (보안은 없음!)
활용 IPsec 함께 쓰면 보안 O (→ L2TP/IPsec 조합), 자체적으로 암호화 인증 기능을 제공하지 않아 다른 보안 프로토콜(IPsec) 함께 사용되는 경우가 많다
용도 VPN 접속, 원격 네트워크 연결
전송 방식 PPP 프레임을 IP 네트워크를 통해 전송

회사 내부 네트워크에 집에서 접속하려고 할 때

L2TP가 회사 네트워크와 집 사이에 가상의 전용 통로를 만들어 줌

내 컴퓨터는 마치 회사 내부에 있는 것처럼 동작함

 

 

L2TP의 특징

  1. 2계층 프로토콜 기반 (PPP 사용)
  2. 암호화 기능 없음 → IPsec과 함께 사용
  3. PPTP보다 보안성이 높음
  4. UDP 포트 1701 사용

 

L2TP vs PPTP vs OpenVPN 비교

프로토콜 L2TP PPTP OpenVPN
암호화 없음 (IPsec 필요) 약함 (MPPE 사용) 강함 (SSL/TLS 기반)
보안성 높음 (IPsec 사용 ) 낮음 매우 높음
속도 중간 빠름 느릴 수도 있음
포트 UDP 1701 TCP 1723 UDP/TCP 1194
지원 플랫폼 널리 지원 널리 지원 다양한 OS에서 사용 가능

💡 정리:

  • L2TP는 VPN 터널을 만들지만 암호화 기능이 없어서 IPsec과 함께 사용!
  • 보안성은 PPTP보다 높고, OpenVPN보다는 낮은 편
  • UDP 1701번 포트를 사용하여 터널을 생성 🚀

 

L2TP 동작 방식

  1. 사용자가 VPN 접속 요청
  2. L2TP 터널 설정 (L2TP 터널링 프로토콜 사용)
  3. IPsec을 이용한 암호화 세션 생성
  4. 데이터 전송 (L2TP + IPsec 보안 적용)
  5. VPN 종료 시 터널 해제

 

 

  • 물리 계층

 

가장 큰 특징은 주소 개념이 없다는 것

 

전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.

 

전기 신호, 광 신호, 무선 신호를 전송하는 역할

0과 1의 비트(Bit) 단위 데이터 전송

케이블(LAN), 리피터(Repeater), 허브(Hub) 등의 장비 사용

 

오류 제어 없음 → 신호만 전달할 뿐, 오류를 감지하거나 수정하지 않음.

프레임 단위 전송 없음 → 데이터 구조 없이 비트만 전송함.

MAC 주소 사용 안 함 → 네트워크 주소 없이 단순 신호 전달 역할.

 

 

 

📌 패킷이 생성되는 과정 (OSI 7계층 기준)

💡 데이터가 전송될 때 계층별로 패킷이 만들어짐

1️⃣ 응용 계층 (Application Layer)

  • 사용자가 데이터를 입력 (예: 웹에서 HTTP 요청, 이메일 전송)

2️⃣ 전송 계층 (Transport Layer) - TCP/UDP

  • 데이터를 **세그먼트(Segment)**로 분할
  • TCP: 신뢰성을 위해 패킷에 순서 번호, 오류 검출 정보 추가
  • UDP: 가볍게 데이터만 보냄 (데이터그램 방식)

3️⃣ 네트워크 계층 (Network Layer) - IP

  • 각 세그먼트에 IP 헤더를 붙여서 **패킷(Packet)**을 생성
  • 출발지 IP, 목적지 IP 정보 포함

4️⃣ 데이터 링크 계층 (Data Link Layer) - 이더넷, Wi-Fi

  • 패킷을 **프레임(Frame)**으로 감싸서 전송
  • MAC 주소 추가 (출발지/목적지)

5️⃣ 물리 계층 (Physical Layer)

  • 프레임을 **비트 스트림(0과 1)**으로 변환하여 전송

 

 

 

계층 프로토콜 설명 / 역할
7. 응용 계층 (Application Layer) HTTP(S) 서비스 (HyperText Transfer Protocol)

FTP 파일 전송 (File Transfer Protocol)

SMTP 이메일 발송 (Simple Mail Transfer Protocol)

POP3 / IMAP 이메일 수신 (Post Office Protocol v3 / Internet Message Access Protocol)

DNS 도메인 → IP 주소 변환 (Domain Name System)
6. 표현 계층 (Presentation Layer) SSL / TLS 데이터 암호화 (HTTPS에서 사용)

JPEG, MP3, GIF 데이터 변환 (파일 압축, 인코딩)
5. 세션 계층 (Session Layer) NetBIOS 윈도우 네트워크 파일 공유

RPC (Remote Procedure Call) 원격 프로시저 호출
4. 전송 계층 (Transport Layer) TCP (Transmission Control Protocol) 신뢰성 있는 연결 (패킷 분할, 재조립, 오류 검출)

UDP (User Datagram Protocol) 빠른 전송 (신뢰성 없음, 지연 최소화)
3. 네트워크 계층 (Network Layer) IP (Internet Protocol) 패킷 전달 (IP 주소 사용)

⭐️ICMP (Internet Control Message Protocol) 네트워크 오류 진단 (ping 명령어)

ARP (Address Resolution Protocol) IP 주소 → MAC 주소 변환

RIP / OSPF / BGP 라우팅 프로토콜 (경로 설정)
2. 데이터 링크 계층 (Data Link Layer) Ethernet LAN(유선) 네트워크 통신

PPP (Point-to-Point Protocol) 장비 직접 연결 (모뎀, VPN)

STP (Spanning Tree Protocol) 스위치 루프 방지
1. 물리 계층 (Physical Layer) 없음 전기적 신호, 신호

 

 

 

(1) 모뎀(Modem, MOdulator-DEModulator)

 

아날로그 전화선을 이용해 두 장비를 직접 연결하는 장치

전화선을 통해 원격지의 장비와 직접 연결 가능

 

디지털 신호 -> 아날로그 신호 변환(변조, Modulation)

전화선을 통해 신호 전송

수신 측에서 아날로그 신호 -> 디지털 신호 변환(복조, Demodulation)

두 장비가 직접 데이터 송수신 가능

 

(2) VPN(Virtual Private Network) (가상 터널 역할)

 

인터넷과 같은 공중망을 통해 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

인터넷과 같은 공용 네트워크를 사용하면서도, 두 장비를 마치 직접 연결된 것처럼 만들어주는 기술

VPN 터널링(Tunneling)을 통해 두 장비 간 가상 연결을 생성한다.

 

VPN이 두 장비를 직접 연결하는 방식

 

VPN 클라이언트가 VPN 서버에 접속

VPN 터널을 생성하여 암호화된 서버에 접속

마치 두 장비가 직접 연결된 것처럼 동작

 

 

 

 

  • 브로드캐스트 vs 멀티캐스트

 

브로드캐스트 vs 멀티캐스트 비교

구분 브로드캐스트 (Broadcast) 멀티캐스트 (Multicast)
전송 대상 네트워크의 모든 장치 특정 그룹(다수의 선택된 장치)
IP 주소 255.255.255.255 224.0.0.0 ~ 239.255.255.255
트래픽 절감 (불필요한 장치에도 전송) (필요한 장치에만 전송)
사용 예시 ARP 요청, DHCP 서버 IPTV, 온라인 스트리밍
네트워크 영향 트래픽 증가로 성능 저하 가능 네트워크 부하 감소

브로드캐스트 → 전체 대상에게 데이터 전송 (모든 기기가 받음)
멀티캐스트 → 특정 그룹(필요한 기기)에게만 데이터 전송 (불필요한 기기는 받지 않음)

 

 

📌 IPTV(인터넷 방송) 송출
→ IPTV 서버가 특정 멀티캐스트 그룹(예: 224.0.0.10)으로 방송 데이터 전송

 

송신자: 192.168.1.200 → 대상: 224.0.0.10 (특정 그룹만 수신)

 

✅ 이 그룹에 속한 장치(예: IPTV 가입자)만 데이터 수신

사용 사례

  • IPTV, 실시간 라이브 스트리밍
  • 온라인 화상 회의 (예: Zoom, WebRTC)
  • 라우팅 프로토콜 (OSPF, EIGRP 등)

 

 

 

  • MAC 주소(Media Access Control Address) => 장치의 물리적 주소
  • 변경되지 않는 주소로써 네트워크 인터페이스마다 부여된다
  • 일반적으로 고유하고 변경되지 않는 주소

네트워크 인터페이스 카드(NIC, 랜카드)에 내장된 고유한 하드웨어 주소

48비트(6바이트)로 구성 -> 16진수 12자리 (ex. 00:1A:2B:3C:4D:5E)

제조사별로 고유한 값 할당(IEEE에서 관리)

 

전 세계에서 유일한 주소

LAN(근거리 네트워크)에서 데이터 전송 시 사용

라우터를 넘어가면 MAC 주소가 변경됨(같은 네트워크 내에서만 유지됨)

 

  • NIC

호스트를 네트워크에 연결하기 위한 하드웨어

호스트와 유무선 통신 매체를 연결하고 이러한 변환을 담당하는 네트워크 장비

통신매체를 통해 전달하는 전기 빛 등 신호와 호스트가 이해하는 프레임으로 전환

 

TCP/IP 4계층 (실제 인터넷 모델)

TCP/IP 모델은 OSI 7계층을 단순화한 실제 인터넷에서 사용되는 네트워크 모델이야.

TCP/IP 계층 OSI 7계층 대응 역할 프로토콜
4계층 - 응용 계층 응용 + 표현 + 세션 계층 사용자와 직접 상호작용 HTTP, FTP, SMTP, DNS
3계층 - 전송 계층 전송 계층 데이터 흐름 제어, 오류 제어 TCP, UDP
2계층 - 인터넷 계층 네트워크 계층 경로 설정, IP 주소 관리 IP, ICMP, ARP
1계층 - 네트워크 액세스 계층 데이터 링크 + 물리 계층 실제 데이터 전송 이더넷, MAC, PPP

📌 TCP/IP 4계층 쉽게 외우기
📝 "응전인네" (응용, 전송, 인터넷, 네트워크 액세스)

 

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

OSI 7계층 TCP/IP 4계층 주요 역할
응용 계층 응용 계층 사용자 인터페이스 제공
표현 계층 데이터 변환(암호화, 압축)
세션 계층 세션 연결 관리
전송 계층 전송 계층 TCP/UDP 통한 데이터 흐름 제어
네트워크 계층 인터넷 계층 IP 주소 기반 라우팅
데이터 링크 계층 네트워크 액세스 계층 MAC 주소 기반 데이터 전송
물리 계층 전기적 신호 전송

 

📌 2. TCP/IP 4계층별 주요 프로토콜

TCP/IP 계층 프로토콜 설명
응용 계층 HTTP(S), FTP, SMTP, POP3, DNS 서비스, 이메일, 파일 전송
전송 계층 TCP, UDP 신뢰성 있는 전송(TCP) / 빠른 전송(UDP)
인터넷 계층 IP, ICMP, ARP, RIP, OSPF 패킷 전달, 네트워크 경로 설정
네트워크 액세스 계층 Ethernet, PPP, MAC 실제 데이터 전송

📌 프로토콜 특징 비교

프로토콜 특징 사용 사례
TCP 신뢰성 보장, 연결 지향 , 이메일, 파일 다운로드
UDP 빠른 전송, 비연결성 동영상 스트리밍, VoIP, 게임
IP 패킷 전송, 주소 지정 인터넷 통신
HTTP(S) 데이터 전송 브라우징 (Chrome, Edge)
FTP 파일 전송 파일 다운로드/업로드
SMTP 이메일 발송 Gmail, Outlook
DNS 도메인 → IP 변환 웹사이트 접속 (www.naver.com → IP)
ICMP 네트워크 오류 진단 ping, traceroute
ARP IP → MAC 주소 변환 로컬 네트워크 통신

📌 한눈에 보는 핵심 요약

  • TCP: 신뢰성 보장 (웹, 이메일, 다운로드)
  • UDP: 빠른 속도 (게임, 동영상, 실시간 통신)
  • IP: 인터넷에서 패킷을 전송하는 기본 프로토콜
  • HTTP(S): 웹에서 데이터를 주고받는 프로토콜
  • DNS: 도메인 주소를 IP로 변환
  • ICMP: 네트워크 연결 상태 확인 (ping)
  • ARP: IP 주소를 MAC 주소로 변환

 

 

 

 

 

 

반응형