학습목표: OSI 7계층에서 각각 어떤 역할을 하는지 명확하게 파악한다.
- 각 계층의 데이터 전송 단위 / 목적지 식별 방법 / 물리적 하드웨어에 대해 이해한다.
이전까지 OSI 7 계층 중에서 응용계층을 중점적으로 학습하고 구현했었다.
웹 개발을 하다보면 사용자와 밀접하게 닫는 부분이기도 하고 여러 네트워크 서비스를 제공하는 계층이기 때문에 응용 계층을 가장 많이 접할 수 밖에 없다.
그런데 개발자는 다양한 상황의 오류를 마주할 수 있기 때문에 네트워크 통신에 대한 내용도 알아야 한다.
따라서 네트워크 통신이 일어나는 과정을 7단계로 나눈 네트워크 참조모델인 OSI 7 계층에 대해 알아보자.
🌐 OSI 7 계층 정리
네트워크 참조모델에서 각각의 계층이 하는 일은 명확하게 정해져있다. 따라서 계층별 목적에 맞는 프로토콜과 장비를 구성하면 네트워크의 구성과 설계, 문제 진단과 해결이 용이해진다.
1. 물리 계층(Physical Layer)
- 역할: 비트 신호를 유무선 통신 매체를 통해 운반하는 계층
- 데이터 단위: 비트(0, 1로 이루어진 신호로 구성)
- 목적지 식별: 없음(단순 신호 전달)
- 관련 하드웨어: 허브, 리피터, 케이블, 커넥터, NIC(물리적 부분)
2. 데이터 링크 계층 (Data Link Layer)
- 역할: 같은 LAN에 속한 호스트끼리 올바르게 정보를 주고받기 위한 계층
- 데이터 단위: 프레임 (Frame)
- 목적지 식별: MAC 주소 (물리적 주소, 48비트)
- 관련 하드웨어: 스위치, 브리지, NIC(논리적 부분)
같은 네트워크에 속한 호스트를 식별할 수 있는 주소(MAC 주소)를 사용하고, 물리계층을 통해 주고받는 정보에 오류를 식별한다.
3. 네트워크 계층 (Network Layer)
- 역할: LAN을 넘어 다른 네트워크와 통신을 주고받기 위해 필요한 계층
- 데이터 단위: 패킷 (Packet)
- 목적지 식별: IP 주소
- 관련 하드웨어: 라우터, L3 스위치
네트워크 통신 과정에서 호스트를 식별할 수 있는 주소(IP 주소)가 필요하다.
3계층까지는 물리적 계층이었기 때문에 관련 하드웨어가 존재했고, 4계층부터는 소프트웨어적 계층이기 때문에 소프트웨어 프로토콜과 관련이 있다.
4. 전송계층 (Transport Layer)
- 역할: 네트워크를 통해 송수신되는 패킷은 전송 도중에 유실되거나 순서가 뒤바뀔 때도 있는데, 전송 계층은 이러한 상황에 대비해 신뢰성 있는 전송을 가능하게 하는 계층
- 데이터 단위: 세그먼트 (Segment, TCP) / 데이터그램 (Datagram, UDP)
- 목적지 식별: 포트(Port) 번호
- 대표 프로토콜: TCP, UDP
- 특징: 방화벽, 로드밸런서와 밀접
포트(Port) 정보를 통해 특정 응용 프로그램과의 연결 다리 역할을 수행하는 계층이다.
5. 세션 계층 (Session Layer)
- 역할: 응용 프로그램 간의 연결 상태를 의미하는 세션(Session)을 관리하기 위한 계층
- 데이터 단위: 데이터 (Data)
- 목적지 식별: 세션 ID, 소켓 (IP + Port 조합)
- 대표 프로토콜: RPC, NetBIOS
프로그램 간의 연결 상태를 유지하거나 새롭게 생성하거나 연결을 끊는 역할을 수행한다.
6. 표현 계층 (Presentation Layer)
- 역할: 인코딩, 압축, 암호화와 같은 작업을 수행하며 번역가와 같은 역할을 하는 계층
- 데이터 단위 (PDU): 데이터 (Data)
- 목적지 식별: 없음 (데이터 변환만 담당)
- 특징: JPEG, MP3, SSL/TLS 등의 데이터의 표현 방식 통일
7. 응용 계층 (Application Layer)
- 역할: 사용자와 네트워크 서비스 간 인터페이스 제공
- 데이터 단위: 데이터 (Data, Message)
- 목적지 식별: 애플리케이션 식별자 (URL, 메일 주소 등)
- 특징: HTTP, FTP, SMTP 등
| 계층 | 데이터 단위 | 목적지 식별 | 주요 역할 | 하드웨어 예시 |
|---|
| 7 응용 | 데이터 | URL, 메일주소 | 사용자 서비스 | - |
| 6 표현 | 데이터 | 없음 | 암호화/압축 | - |
| 5 세션 | 데이터 | 세션 ID | 연결 관리 | - |
| 4 전송 | 세그먼트/데이터그램 | 포트 번호 | 신뢰성, 흐름 제어 | 방화벽, LB |
| 3 네트워크 | 패킷 | IP 주소 | 라우팅, 경로 선택 | 라우터 |
| 2 데이터링크 | 프레임 | MAC 주소 | 오류 검출, 프레임 전송 | 스위치, 브리지 |
| 1 물리 | 비트 | 없음 | 신호 전송 | 허브, 케이블 |
각 계층에 대해 살펴보았으니, 각 계층에 특징이 될만한 것들을 살펴보자!
물리계층, 데이터링크 계층의 통신 매체와 네트워크 장비
- 통신 매체는 의외로 모든 성능의 기본이 되는 경우가 많다.
- 연결 매체의 성능이 뒷받침되지 않으면 호스트의 빠른 속도는 아무런 효용이 없다.
- 예를 들어, 호스트가 1초에 100GB를 송신할 수 있어도, 1초에 1GB씩 송수신 가능한 통신 매체를 사용하면 송수신이 불가능하다.
물리계층과 데이터링크 계층에 속한 다양한 네트워크 하드웨어
1. 유선 LAN - 이더넷
물리계층과 데이터링크 계층에는 LAN 내의 호스트들이 올바르게 정보를 주고받을 수 있게 해주는 이더넷이 있다.
- 이더넷은 IEEE 802.3 이름으로 국제 표준화된 기술이다.
- 이더넷 프레임은 프리앰블, 수신지 MAC 주소, 타입/길이, 데이터, FCS 등의 정보를 포함하고 있다.
개발자 입장에서 특정 이더넷 표준을 자세히 들여다봐야하는 상황은 많지 않지만, 다음 2가지 사항은 기억해두는 것이 좋다.
1) 오늘날의 (유선) LAN 대부분이 이더넷 표준을 따르기 때문에 대다수의 LAN 장비들이 특정 이더넷 표준을 따른다.
2) 이더넷 표준이 달라지면 통신 매체의 종류를 비롯한 신호 송수신 방법, 나아가 최대 지원 속도도 달라진다.
유선 통신 매체 - 트위스티드 페어(twisted pair cable) 케이블
- 구리선을 통해 전기적으로 신호를 주고 받는 통신 매체
- 두가닥(pair)씩 꼬아져있는(twisted) 구리선
- 성능은 카테고리를 통해 알 수 있다.
이더넷 LAN 장비로 허브와 스위치가 있다. 허브와 스위치는 물리 계층과 데이터링크 계층의 중간 노드이다.
허브
- 물리 계층에 존재
- 여러 대의 호스트를 브로드캐스트로 연결한다.
- 허브는 전달받은 신호를 모든 포트로 내보낸다.
- 오늘날에는 허브 대신 스위치를 사용하는 경우가 많다.
스위치
- 스위치는 허브의 한계를 보완하기 위한 데이터링크 계층의 네트워크 장비이다.
- 스위치가 전달받은 신호를 원하는 포트에만 내보낼 수 있다.
- MAC 주소 테이블을 만들어 참조를 통해 가능하다.
- VLAN 기능을 통해 같은 스위치에 연결된 모든 호스트를 하나의 네트워크로 간주하고 싶지 않을 때, 여러 논리적인 네트워크로 나누고 싶을 때 사용한다.
2. 무선 LAN - WiFi
무선 통신 매체 - 전파와 WiFi
- 전파는 약 3kHz부터 3THz 사이의 진동수를 갖는 전자기파를 의미한다.
- 진동수 2.4GHz, 5GHz 정도는 알아두는 것이 좋다.
- 주로 와이파이를 사용할 때 활용된다.
와이파이
- IEEE 802.11 표준을 따르는 무선 LAN 기술이다.
- 같은 지역 내에 2.4GHz / 5GHz 대역을 사용하는 무선 네트워크가 여러개 존재할 수 있다.
네트워크 계층 - IP
LAN을 넘어서 다른 네트워크와 통신을 주고받으려면 네트워크 계층 이상의 기술이 필요하다.
여기서 중요하게 사용되는 기술이 네트워크 계층의 핵심 프로토콜인 IP이다.
IP의 목적과 특징
목적은 크게 2가지이다.
1. 주소 지정: 네트워크 간의 통신 과정에서 호스트를 특정하는 역할을 수행한다.
- 패킷을 올바르게 전송하기 위해 송신지와 수신지의 IP 주소와 MAC 주소가 모두 필요하다.
- MAC 주소보다는 IP 주소가 우선적으로 활용된다.
- 서로 다른 네트워크에 속한 두 호스트가 네트워크 간 통신을 수행할 때 IP 주소를 바탕으로 패킷을 전달한다.
- 이때 라우터 장비가 사용된다. 최적의 경로를 결정하고 해당 경로로 패킷을 내보낸다. (라우팅 과정)
- 단편화: 데이터를 여러 IP 패킷으로 쪼개어 보내는 역할을 수행한다.
- MTU(Maximum Transmission Unit) 단위에 따라 패킷을 쪼애서 전송한다. - 최대 1500 바이트
- 쪼개서 전송된 패킷들은 수신지에서 재조합된다.
- IP 패킷 헤더: 식별자 / 플래그 / 단편화 오프셋
특징
- 신뢰할 수 없는 통신이자, 비연결형 통신
- 전송 계층의 TCP, UDP의 존재 목적과 직결된다.
- 비연결형 프로토콜 - 상대 호스트의 수신 가능 여부는 고려하지 않고, 수신지를 향해 그저 패킷을 전송할 뿐
스위치와 라우터의 역할은 비슷하지만, 라우터는 ip자체로 제한(차단)을 둘수있다. 따라서 외부 ip주소를 관리가능하다. 현대에는 스위치도 발전을 해서 라우터의 역할까지 수행할 수 있다.
전송 계층 - TCP와 UDP
IP의 한계
IP는 네트워크 계층의 프로토콜로, "주소 지정"과 "패킷 전달/단편화" 까지만 책임진다.
하지만 다음은 책임지지 않는다.
- 패킷이 도착했는지 보장하지 않음 (손실 가능)
- 패킷이 순서대로 도착하는지 보장하지 않음 (라우팅 경로가 다르면 순서가 바뀔 수 있음)
- 패킷이 중복될 수도 있음
- 패킷의 무결성을 보장하지 않음 (손상될 수도 있음)
즉, IP만으로는 "데이터를 확실하게 전달한다"는 보장이 전혀 없다.
전송 계층의 TCP와 UDP가 존재하는 이유는, IP 혼자서는 통신 품질을 보장하지 못하기 때문이다.
TCP (Transmission Control Protocol)
목적: IP 위에서 신뢰성 있는 연결 제공
기능:
- 연결 지향적 (3-way handshake로 세션 수립)
- 데이터 전송 순서 보장 (시퀀스 번호)
- 데이터 무결성 확인 (체크섬, 재전송)
- 흐름 제어, 혼잡 제어
활용 예시: 웹(HTTP/HTTPS), 이메일(SMTP), 파일 전송(FTP)
즉, “IP가 불안정하니 내가 대신 신뢰성을 책임지겠다.”
UDP (User Datagram Protocol)
목적: IP의 단순, 빠른 성격을 그대로 활용
기능:
- 비연결형, 확인/재전송 없음
- 순서 보장 없음
- 단순히 IP 주소 + 포트만 붙여서 보냄
활용 예시: 스트리밍, 게임, DNS
즉, “IP의 불안정성을 그대로 쓰지만, 대신 속도와 단순성을 확보하겠다.”

네트워크 상에서 호스트가 실행하는 프로세스를 어떻게 식별할 수 있을까?
포트 번호를 통해 식별할 수 있다.
네트워크 패킷을 주고받는 프로세스에는 포트 번호가 할당된다.
즉, IP주소 + 포트 번호를 통해 '특정 호스트가 실행하는 특정 프로세스'를 식별할 수 있다.
이러한 식별은 전송 계층(TCP, UDP)의 주된 목적이다.
192.168.0.15:8000 같은 포트번호를 헤더에서 명시하는 필드가 존재한다.
TCP의 연결 수립
TCP는 UDP와 달리 송수신 이전에 연결을 수립하고, 송수신 이후에는 연결을 종료한다. TCP는 패킷을 주고받기 전에 연결 수립 과정을 거친다.
TCP의 연결 수립는 쓰리 웨이 핸드셰이크(Three-way-handshake)를 통해 이뤄진다.
- [송수신 방향 A -> B] SYN 세그먼트 전송
- [송수신 방향 B -> A] SYN+ACK 세그먼트 전송
- [송수신 방향 A -> B] ACK 세그먼트 전송
