OSI 참조 모델과 TCP/IP 프로토콜 계층 구조
OSI 참조 모델과 TCP/IP 계층
OSI 참조 모델과 TCP/IP 프로토콜 계층 구조
한 눈에 보기
TCP/IP 모델 | OSI 모델 |
---|---|
응용 계층 | 응용 계층 |
표현 계층 | |
세션 계층 | |
전송 계층 | 전송 계층 |
인터넷 계층 | 네트워크 계층 |
네트워크액세스 계층 | 데이터링크 계층 |
물리 계층 |
TCP/IP 모델 | 과정 및 내용 |
---|---|
응용 계층 | 데이터 생성 |
⟶ 1. TCP(UDP) 헤더 추가 | |
전송 계층 | 데이터를 세그먼트(데이터그램)로 캡슐화 |
⟶ 2. IP 헤더 추가 | |
네트워크 계층 | 세그먼트를 패킷으로 캡슐화 / IP 주소로 패킷 라우팅 |
⟶ 3. 물리적 주소 추가 | |
데이터링크 계층 | 패킷을 프레임으로 캡슐화 (프레임: 물리 매체 통한 전송 단위) |
물리 계층 | 프레임을 비트로 변환 / 전기 신호 혹은 광신호로 전송 |
프로토콜이란?
- 최적화된 소프트웨어 설계와 개발을 위해서는 네트워크에 사용되는 표준 프로토콜에 대한 이해가 필요하다.
- 프로토콜이란, 네트워크를 통하여 데이터를 주고 받기 위한 표준화된 통신 규약을 뜻한다.
- 라우터는 많고 많은 PC와 서버를 연결해주는데,
라우터들이 데이터를 주고 받기 위해서는 서로 이해할 수 있는 공통의 프로토콜이 필요하다. - 프로토콜은 국가 간 원활한 교류를 위해 만들어진 의례, 외교용 언어라는 의미로 쓰이기도 하는데,
마찬가지로 서로 다른 전자 기기 간 원활한 통신을 위해 맺은 약속이라고 생각하면 된다.
- 라우터는 많고 많은 PC와 서버를 연결해주는데,
OSI 참조 모델
- OSI: Open Systems Interconnection의 약자로, 직역하면 개방 시스템의 상호 연결 구조라는 뜻이다.
OSI 모델 | 프로토콜 |
---|---|
응용 계층 | HTTP, SMTP, SNMP, FTP 등 |
표현 계층 | PEG, MPEG, XDR 등 |
세션 계층 | TLS, SSH, RPC, NetBIOS 등 |
전송 계층 | CP, UDP, SCTP 등 |
네트워크 계층 | IP, IPX, ICMP, ARP 등 |
데이터링크 계층 | Ethernet, Token Ring, 무선랜 등 |
물리 계층 | 전파, 광선유, PSTN 등 |
통신 과정 예시
- 사용자가 웹 서버에 접속 요청
- 무선 공유기가 사용자 요청을 받아 인터넷으로 전달
- 라우터가 중간에서 패킷을 라우팅
- 쉽게 말해 라우터는 작은 데이터 블록(패킷)을 다른 네트워크로 운송하는데,
이때 최적의 경로를 결정(라우팅)하는 장치라고 이해하면 된다.
- 쉽게 말해 라우터는 작은 데이터 블록(패킷)을 다른 네트워크로 운송하는데,
- 스위칭허브를 거쳐 최종 서버로 도달
- 스위칭허브는 장치들을 연결하여 데이터를 효율적으로 전달한다.
- 그림은 프로토콜 계층 개념을 반영한 가상 네트워크이다.
- 그림을 보면 화살표가 흐르는 방향이 각 계층을 거치는 순서라는 것을 알 수 있다.
물리층을 거칠 땐 전선 혹은 스위치와 같은 하드웨어로 직접 연결되어 전기 신호를 통해 동작한다.
이후 데이터 링크층 이상부터는 소프트웨어적으로 구현되어 동작하게 된다.
TCP/IP 프로토콜 계층
- TCP: Transmission Control Protocol / IP: Internet Protocol
- OSI 7계층과 TCP/IP 4계층 모두 통신 과정을 표현하기 위한 계층.
OSI 7계층은 각 계층과 역할을 보다 정확하게 정의하며,
TCP/IP 4계층은 이름처럼 인터넷에서 쓰이는 프로토콜 중심으로 단순화하여 모은 것이다. - TCP/IP 계층은
- 응용 계층,
- 전송 계층,
- 인터넷 계층(= 네트워크 계층),
- 네트워크액세스 계층(= 데이터링크 계층 + 물리 계층)
으로 이루어진다.
TCP/IP 모델 | 전송 단위 | 주요 프로토콜 |
---|---|---|
응용 계층 | 메시지 | 약 6,5000개 |
전송 계층 | 세그먼트(데이터그램) | TCP, UDP 등 |
네트워크 계층 | 패킷 | IP, ICMP 등 |
데이터링크 계층 | 프레임 | Ethernet, PPP 등 |
물리 계층 | 비트 |
네트워크 프로토콜 헤더와 데이터 구성
- 통신은 (헤더, 데이터) 묶음 구성을 전달하며 이루어진다. 위 계층에서 내려받은 데이터는 프로토콜 헤더와 함께 전달된다.
이 때 프토코콜 헤더에는 데이터의 내용과 출발지 주소 및 도착지 주소가 담겨있다. - 헤더는 전송하려는 계층에 따라 종류가 달라진다.
- 응용 계층에서 전송하는 데이터는 전송 계층 프로토콜을 통하여 전송 가능
- 전송 계층 프로토콜 TCP를 통하려 한다면 TCP 헤더 필요
- 전송 계층에서 전송하는 데이터는 TCP 헤더를 포함하며, 이는 네트워크 계층 프로토콜 통해 전송
- 네트워크 계층 프로토콜 IP를 통하려 한다면 IP 헤더 필요
- 네트워크 계층에서도 마찬가지로 IP헤더까지 데이터로 간주, 이는 데이터링크 계층 프로토콜 통해 전송
- 데이터링크 계층 프로토콜은 주로 이더넷을 사용, 이더넷 헤더 필요
- 응용 계층에서 전송하는 데이터는 전송 계층 프로토콜을 통하여 전송 가능
- 캡슐화: 데이터에 헤더를 추가해 패킷을 구성하는 과정
- 디캡슐화: 캡슐화의 역과정
각 계층에 대한 설명
1. 응용 계층
- 응용 계층은 이름처럼 응용 프로그램들이 동작하는 계층이다.
- 응용 계층 프로토콜은 응용 프로그램 간 정보를 주고받기 위해 사용하는 프로토콜이다.
- FTP: 파일 전송에 사용
- TELENT: 터미널 연결에 사용
- SMTP, PIP3, IMAP 등: 이메일 송신 및 접근에 사용
- DNS: 호스트 이름과 IP 주소를 매핑
- SNMP: 네트워크 관리에 사용
- HTTP: 웹 클라이언트와 웹 서버 간 데이터 전송을 위해 사용
- Bit Torrent: 네트워크 인프라에 접속하는 방식이 아닌, 단말 대 단말 통신인 P2P 프로토콜
- HTTP: Hypertext Transfer Protocol
- 하이퍼링크처럼 비선형적인 텍스트 등 하이퍼미디어 정보 시스템을 위한 프로토콜이다.
- WWW 콘텐츠를 전송하기 위한 목적으로 사용한다.
- 요청/응답 프로토콜 사용
- 클라이언트가 서버로 요청 메시지 ⟶ 서버가 status line으로 클라이언트에게 응답 메시지
2. 전송 계층
- 전송 계층 프로토콜은 클라이언트 애플리케이션과 서버 애플리케이션을 이어주는 최하위 프로토콜이다.
- TCP와 UDP가 많이 사용된다.
- TCP(Transmission Control Protocol)
- TCP는 하나의 전체 데이터를 여러 개의 세그먼트(Segment)로 나누어 처리한다.
- 특징
- 흐름 제어: 패킷이 넘쳐 분실하는 일이 발생하지 않도록 패킷의 흐름 양을 조절
- 오류 제어: 전송 도중 발생한 오류를 잡아내고, 실제 데이터 값을 복구
- 혼잡 제어: 네트워크 용량을 초과하는 경우 발생하는 혼잡 상태를 제어
- UDP(User Datagram Protocol)
- UDP의 전송 단위는 사용자 데이터그램(user datagram)이다.
- 특징
- TCP와 달리 연결을 위한 사전 설정과정 없이 바로 데이터를 주고 받아, 신뢰성을 보장하지 않는다.
따라서 흐름 및 오류제어, 혼잡 제어가 없어 빠르지만 안정성이 떨어진다. - 위와 같은 특징 때문에 실시간 통신이 중요하고 일정 수준의 손실을 처리하도록 설계된
음성 및 비디오 트래픽(인터넷 기반 전화 서비스 등)이 UDP와 같은 프로토콜을 통해 작동된다.
- TCP와 달리 연결을 위한 사전 설정과정 없이 바로 데이터를 주고 받아, 신뢰성을 보장하지 않는다.
3. 네트워크 계층
네트워크 계층은 전송 계층으로부터 받은 세그먼트를 캡슐화하고 데이터링크 계층으로 전달한다.
TCP/IP 모델에서는 인터넷 계층이다.
네트워크 계층의 기능
- 패킷화(Packetized): 출발지에서는 캡슐화, 도착지에서는 캡슐 제거
- 라우팅(Routig): 출발지에서 도착지까지 경로 찾기 수행
- 포워딩(Forwarding): 출발지에서 도착지까지 갈 수 있도록 실제로 운송시키는 작업
4. 데이터링크 계층
- 데이터링크 계층은 물리계층을 이용해 주변 장치로 데이터를 전송하는 계층이다.
TCP/IP 계층에서는 네트워크 인터페이스 계층, 네트워크 액세스(네트워크 접근) 계층이라고도 한다.
- 데이터링크 계층의 기능: 주소할당, 오류감지
This post is licensed under CC BY 4.0 by the author.