OSI 7 Layer와 TCP/IP Protocol
OSI 7 Layer
국제 표준화 기구(ISO)에서 컴퓨터 네트워크 프로토콜을 계층으로 표현한 모델을 OSI 7 Layer(Open System Interconnection)이라고 한다.
1. Physical Layer
- 실제 Data bit를 전송하는 물리적 링크 설정, 유지, 절단.
- 전기 신호들이 구리 선이나 광섬유를 통해 전달.
- 전송 매체로는 Twisted Pair, 광케이블, 동축 케이블, 기타 무선 매체 등이 있다.
- 단위 : signal, bit
- 대표 장치 : Hub, Reapeater(신호 세기 증폭)
2. Data Link Layer
- 논리적 연결 제어, 매체 접근 제어, 하드웨어 주소 지정.
- Point to Point 간 신뢰성 있는 전송을 보장하는 계층. CRC 기반의 오류 제어와 흐름 제어 필요.
- 물리적인 주소값(MAC address)을 할당받는다. HDLC, ADDCP 같은 PtP 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다. 네트워크 브릿지나 스위치 등이 이 계층에서 동작.
- 대부분의 LAN과 무선 LAN 기술이 정의되어 있다.
- 주요 프로토콜 : IEEE802.2 이더넷 프로토콜, 토큰링, 와이파이 등
- 단위 : Frame
- 대표 장치 : L2 Switch
3. Network Layer
- 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터넷워킹 등을 수행한다. 라우터가 이 계층에서 동작하고 이 계층에서 수행하는 스위치도 있다.
- 논리적 주소 구조(IP address)를 가진다. 네트워크 관리자가 직접 주소를 할당하거나 DHCP Server에서 동적으로 할당 받는다.
- 서브넷의 최상위 계층으로 경로를 설정한다. 데이터를 패킷 단위로 분할해 전송 후 재결합한다.
- 패킷을 단편화해 내려보낸 후 수신 호스트의 CPU가 네트워크 계층에서 재조합한다.
- 단위 : Packet, Datagram
- 대표 장치 : Router, L3 Switch
4. Transport Layer
- 전송 계층은 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받도록 해 준다. 목적지에서 발신지 간의 통신에서 에러 제어와 흐름 제어를 담당.
- 3계층까지는 IP로 도착지를 찾는다면 4계층에서는 포트 번호를 이용해 하위 계층이나 응용 프로그램에 연결(Bind) 한다.
- End to End 데이터 흐름 가능하도록 논리적 연결
- TCP/UDP 프로토콜 사용
- SSL 및 TLS 실행
- 단위 : Segment
5. Session Layer
- 양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공
- 동신 송수신 방식 Duplex, 반이중 방식 Half Duplex, 전이중 방식 Full Duplex의 통신과 함께 Check Point과 유휴, 종료, 다시 시작 과정 등을 수행
- 연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리
- 송수신 측 사이의 동기화 제공
- 가상 연결 제공 (Login/Logout 수행)
- 세션 계층에서 API 도구 모음(NetBios, TCP/IP socket, 원격 절차 호출 등)을 제공해 프로그래머는 TCP/IP의 세부 동작 방식을 알지 못해도 소프트웨어 구현 가능
- 사용되는 프로토콜 : NetBios
6. Presentation Layer
- 코드 간의 번역을 담당해 사용자 시스템에서 데이터 형식상 차이를 다루는 부담을 응용 계층에게 덜어준다
- 수신자와 송신자 사이의 데이터 암호화(스니핑 방지), 복호화, 변환, 인코딩, 디코딩, 압축, 해제 등을 담당
- ASCII 코드나 Little Endian 또는 Big-Ending(gif, jpg 확장자) 등의 포맷을 지정
- 텍스트 및 그래픽 정보를 16진수 데이터로 변환(코드화)
7. Application Layer
- 응용 프로세스와 직접 관계해 일반적인 응용 서비스를 수행
- 사용자에게 데이터를 받아 하위 계층으로 전달, 하위 계층에서 전달하는 데이터를 사용자에게 전달하는 역할 수행
- 프로토콜 : Telnet, FTP, 전자우편(POP, SMTP), HTTP, SNMP 등
- 단위 : Message
- 사용 장비 : Gateway
TCP/IP Protocol
TCP/IP란 무엇인가?
TCP/IP(Transmission Control Protocol/Internet Protocol)는 인터넷에서 데이터를 주고받는 데 사용되는 기본적인 통신 프로토콜 세트입니다. TCP/IP는 인터넷과 네트워크 통신의 근간을 이루며, 네트워크 장치 간에 데이터를 신뢰성 있게 전달하고 라우팅합니다. 이 프로토콜은 계층화된 구조로 설계되어 있어 각 계층이 특정한 역할을 담당합니다.
TCP/IP 모델의 계층 구조
TCP/IP는 네 계층으로 이루어져 있으며, 각 계층은 데이터를 처리하고 전달하는 데 필요한 특정 기능을 제공합니다.
1. 네트워크 인터페이스 계층 (Network Interface Layer)
- 역할: 실제로 데이터를 네트워크 장치를 통해 물리적으로 전송합니다.
- 주요 프로토콜 및 기술:
- Ethernet, Wi-Fi, ARP(Address Resolution Protocol) 등
- 기능:
- 데이터를 네트워크 인터페이스로 변환하여 물리적 매체로 전송.
- IP 주소를 물리적 MAC 주소로 변환.
2. 인터넷 계층 (Internet Layer)
- 역할: 데이터를 목적지까지 라우팅하고 전달.
- 주요 프로토콜:
- IP(Internet Protocol):
- 데이터 패킷에 출발지와 목적지 IP 주소를 포함.
- 데이터 전달 경로를 결정.
- IPv4와 IPv6 버전이 있음.
- ICMP(Internet Control Message Protocol):
- 네트워크 오류나 상태 정보를 전달.
- 예: 핑(ping) 명령어에서 사용.
- ARP 및 RARP:
- IP 주소 ↔ MAC 주소 변환.
- IP(Internet Protocol):
- 기능:
- 데이터 패킷(fragmentation)을 작은 단위로 나누고, 목적지에서 재조립.
- 경로 최적화를 통해 데이터가 올바른 목적지에 도달하도록 지원.
3. 전송 계층 (Transport Layer)
- 역할: 데이터를 세션 간에 신뢰성 있게 전송.
- 주요 프로토콜:
- TCP(Transmission Control Protocol):
- 신뢰성 있는 데이터 전송 보장.
- 연결 설정(3-way handshake), 흐름 제어, 오류 수정, 재전송 기능.
- UDP(User Datagram Protocol):
- 간단하고 빠른 데이터 전송.
- 연결을 설정하지 않으며 신뢰성 보장은 없음.
- 예: 동영상 스트리밍, VoIP.
- TCP(Transmission Control Protocol):
- 기능:
- 데이터 스트림을 세그먼트(segment)로 나누고 순서를 유지.
- 데이터 전달 성공 여부를 확인.
4. 응용 계층 (Application Layer)
- 역할: 네트워크 서비스와 애플리케이션 간의 상호작용을 지원.
- 주요 프로토콜:
- HTTP/HTTPS: 웹 페이지 전송.
- SMTP: 이메일 전송.
- FTP: 파일 전송.
- DNS: 도메인 이름 → IP 주소 변환.
- 기능:
- 애플리케이션이 데이터를 보내고 받기 위한 인터페이스 제공.
데이터 흐름 과정 (TCP/IP 패킷 전송 과정)
- 응용 계층:
- 애플리케이션에서 데이터를 생성 (예: 웹 브라우저가 HTTP 요청 생성).
- 전송 계층:
- 데이터를 세그먼트로 나누고, TCP 헤더(포트 번호, 순서 정보 등)를 추가.
- 인터넷 계층:
- TCP 세그먼트에 IP 헤더(출발지 및 목적지 IP 주소)를 추가하여 패킷 생성.
- 네트워크 인터페이스 계층:
- 패킷을 프레임(frame)으로 캡슐화하고, 물리적 네트워크를 통해 전송.
- 수신 측:
- 프레임 → 패킷 → 세그먼트 → 데이터의 순서로 역캡슐화.
- 최종적으로 응용 계층에 데이터 전달.
TCP와 UDP의 차이점
기능 TCP UDP
연결 방식 | 연결 기반 (Connection-oriented) | 비연결 기반 (Connectionless) |
신뢰성 | 데이터 전달 보장 | 데이터 전달 보장하지 않음 |
속도 | 느림 | 빠름 |
주요 사용 사례 | 파일 전송, 이메일, 웹 브라우징 | 스트리밍, 게임, VoIP |
TCP의 3-Way Handshake
TCP는 신뢰성을 보장하기 위해 세션을 설정할 때 3-Way Handshake 과정을 거칩니다.
- SYN: 클라이언트가 서버에 연결 요청.
- SYN-ACK: 서버가 요청을 수락하고 확인 응답.
- ACK: 클라이언트가 응답을 확인하고 연결이 성립.
IP 주소와 서브넷팅
- IP 주소: 네트워크 상의 각 장치를 식별하는 고유 주소.
- IPv4: 32비트 (예: 192.168.0.1)
- IPv6: 128비트 (예: 2001:0db8:85a3::8a2e:0370:7334)
- 서브넷 마스크: 네트워크와 호스트를 구분하는 데 사용.
- 예: 255.255.255.0 → 24비트는 네트워크, 나머지는 호스트.
TCP/IP의 장점
- 표준화: 전 세계에서 통용되는 표준 프로토콜.
- 유연성: 다양한 하드웨어와 운영체제에서 사용 가능.
- 확장성: 대규모 네트워크에서도 효율적으로 동작.
- 모듈화: 각 계층이 독립적으로 동작.