OSI 7계층 vs TCP/IP 4계층
네트워크 통신은 복잡한 과정이며, 이를 이해하기 위해서는 네트워크 계층에 대한 개념을 알고 있어야 한다고 생각한다. 특히, OSI 7계층 모델과 TCP/IP 모델은 네트워크 통신에 대하여 필수적인 개념이다.
OSI vs TCP/IP
OSI 모델은 이론적이고 포괄적인 접근을 제공하여 네트워크 통신 과정을 상세히 이해할 수 있는 기반이다. 반면, TCP/IP 모델은 인터넷의 실제 작동 원리를 바탕으로 하여, 실용적이고 효율적인 통신을 가능하게 한다.
구조적 차이
OSI 모델은 통신 과정을 더 세분화하여 7개의 계층으로 구분한다. 이는 각 계층의 기능을 명확히 이해하고, 통신 과정에서 발생할 수 있는 문제를 쉽게 식별하고 해결하는 데 도움을 준다. 하지만, 실제 네트워크 환경에서는 모든 계층이 명확히 구분되어 사용되지는 않는다.
TCP/IP 모델은 실제 인터넷 환경에 적합하도록 설계되었기 때문에, OSI 모델에 비해 더 단순하고 실용적이다. 이 모델은 특히 인터넷 통신을 위해 최적화되어 있으며, 실제 네트워크 장비와 프로토콜 개발에 널리 사용되고 있다.
해당 포스팅에서 OSI모델과 TCP/IP 모델 둘 다 다루겠지만, 실제 네트워크 장비와 프로토콜 개발에 널리 사용되는 TCP/IP 모델을 중점으로 부연 설명을 하고자 한다.
OSI 7계층 모델
OSI(Open Systems Interconnection) 7계층 모델은 국제표준화기구(ISO)에 의해 개발되었습니다. 이 모델은 네트워크 통신 과정을 7개의 계층으로 구분한다.
각 계층은 특정 기능을 수행하며, 상위 계층은 하위 계층의 기능을 활용합니다. OSI 7계층은 다음과 같다:
물리 계층(Physical Layer)
: 하드웨어 전송 기술을 다룬다.
데이터 링크 계층(Data Link Layer)
: 두 장치 간의 데이터 전송을 처리한다.
네트워크 계층(Network Layer)
: 데이터 패킷의 라우팅을 담당한다.
전송 계층(Transport Layer)
: 데이터 전송의 신뢰성을 보장한다.
세션 계층(Session Layer)
: 통신 세션을 관리한다.
표현 계층(Presentation Layer)
: 데이터 형식을 변환한다.
응용 계층(Application Layer)
: 최종 사용자의 응용 프로그램과 직접적으로 관련된다.
1계층 - 물리계층(Physical Layer)
- 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비
- 데이터를 전기적인 신호(0,1)로 변환해서 주고받는 기능
- 통신 단위 : 비트(Bit)이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태
- 장비 : 통신 케이블, 리피터, 허브 등
2계층 - 데이터 링크계층(DataLink Layer)
- 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한통신의 흐름을 관리
- 프레임에 물리적 주소(MAC address)를 부여하고 에러검출, 재전송, 흐름제어를 수행
- 전송되는 단위 : 프레임(Frame)
- 장비 : 브릿지, 스위치, 이더넷 등(MAC주소를 사용)
-> 브릿지나 스위치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달.
3계층 - 네트워크 계층(Network Layer)
- 데이터를 목적지까지 가장 안전하고 빠르게 전달
- 라우터(Router)를 통해 경로를 선택하고 주소를 정하고(IP) 경로(Route)에 따라 패킷을 전달 > IP 헤더가 붙음
- 전송되는 단위 : 패킷(Packet)
- 장비 : 라우터
4계층 - 전송 계층(Transport Layer)
- port 번호, 전송방식(TCP/UDP) 결정 > TCP 헤더 붙음
- TCP : 신뢰성, 연결지향적(패킷 교환 방식), 느리다, 1:1 통신
- UDP : 비신뢰성, 비연결성(데이터그램 방식), 빠르다, 1:1 or 1:N or N:N 통신
- 두 지점간의 신뢰성 있는 데이터를 주고 받게 해주는 역할
- 신호를 분산하고 다시 합치는 과정을 통해서 에러와 경로를 제어
5계층 - 세션 계층(Session Layer)
- 주 지점간의 프로세스 및 통신하는 호스트 간의 연결 유지
- TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성
- API, Socket
6계층 - 표현 계층(Presentation Layer)
- 전송하는 데이터의 표현방식을 결정(ex. 데이터변환, 압축 및 암호화 등)
- 파일인코딩, 명령어를 포장, 압축 및 암호화
- JPEG, MPEG, GIF, ASCII 등
7계층 - 응용 계층(Application Layer)
- 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행(ex. chrome 등)
- HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜
TCP/IP 4계층 모델
반면, TCP/IP(Transmission Control Protocol/Internet Protocol) 모델은 미국 국방부(DoD)에서 정의한 네트워크 통신 표준 모델로, 4계층 또는 5계층으로 설명되곤 한다. 여기서는 4계층 모델을 기준으로 하겠다. TCP/IP 모델은 다음과 같이 구성된다:
1. 네트워크 연결 계층(Network Access Layer)
: 실제 데이터인 프레임 송수신 역할을 위한 계층이다.
2. 인터넷 계층(Internet Layer)
: 데이터 전송을 위한 논리적 주소 및 경로 지정을 위한 계층이다.
3. 전송 계층(Transport Layer)
: 호스트 간 송수신을 위한 계층이다.
4. 응용 계층(Application Layer)
: 응용프로그램끼리의 데이터 송수신을 위한 계층이다.
1계층 - 네트워크 액세스 계층(Network Access Layer)
- OSI 7계층의 물리계층(1)과 데이터 링크 계층(2)에 해당
- TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
- 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
- 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계.
- 물리적인 주소로 MAC을 사용
- LAN, 패킷망, 등에 사용됨
2계층 - 인터넷 계층(Internet Layer)
- OSI 7계층의 네트워크 계층(3)에 해당
- 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
- 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공
- 프로토콜 종류 – IP, ARP, RARP
3계층 - 전송 계층(Transport Layer)
- OSI 7계층의 전송 계층(4)에 해당
- IP와 Port를 이용하여 프로세스와 통신
- 애플리케이션 계층의 세션과 데이터그램(datagram) 통신서비스 제공
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당
- 프로토콜 종류 – TCP, UDP
4계층 - 응용 계층(Application Layer)
- OSI 7계층의 세션 계층(5), 표현 계층(6), 응용 계층(7)에 해당한다.
- 프로그램(브라우저)가 직접 인터액트하는 레이어. 데이터를 처음으로 받는곳
- 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공
- 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
- HTTP, SMTP등의 프로토콜
- TCP/UDP 기반의 응용 프로그램을 구현할 때 사용
- 프로토콜 종류 – FTP, HTTP, SSH, 등