OSI 7 계층
- “물, 데, 네, 전, 세, 표, 응” 이라고 외우면 쉽다
도입배경
- 70년대, 각 회사별로 자체 프로토콜을 사용하였고, 그래서 이기종간 호환이 불가했다.그러니 통신이 어려웠음
- ISO에서 이 문제를 해결코자 도입한 개념이다.
- 네트워크 통신단계를 7개로 나눠어 각 계층별 프로토콜, 기술을 명확화
- 타 회사 간에도 호환성확보
- 계층이 분화되어서 개발자는 자신의 계층만 담당할 수 있음
- 당연히 IPv5 → IPv6 전환도 가능하며, 확장성 향상됨, 또한 문제 진단도 용이해짐
계층 설명
1계층 : 물리
- 0, 1전기 신호 처리하는 물리 장비
- 통신 케이블, 케이블, 리피터 , 허브
- 데이터 단위 : 비트
2계층 : 데이터링크
- 물리계층에서 송수신되는 정보 오류, 흐름을 관리하여 안전한 정보 전달을 수행을 돕는다.
- 에러 검출, 재전송, 통신 흐름 제어
- 프레임에 MAC주소를 넣는다.
- 데이터 단위 : 프레임
3계층 : 네트워크
- 데이터전송 신뢰성 보장
- 패킷 전달, IP주소부여, 경로 설정(라우팅)
- OSI 5계층에서는 IP계층이 여기해당한다.
- IP 패킷의 전달 및 라우팅을 담당하는 계층
- 패킷을 목적지까지 전달하는 역할 및 그에 수반되는 기타 역할을 함
- 주요프로토콜
- IP : ip주소 지정
- ICMP : 에러 진단, 보고
- 라우팅 프로토콜 : 경로 설정
- 데이터 단위: 패킷
4계층 : 전송
- 통신활성화계층, 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 한다.
- 종단간 신뢰성 있고 효율적인 데이터를 전송하며,오류검출 및 복구와 흐름제어, 중복검사 등을 수행
- 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful),
- 연결 기반(connection oriented)
- 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
- OSI 5계층에서는 TCP계층이 여기해당한다.
- 데이터 단위: 세그먼트(segment, TCP) / 데이터그램(datagram, UDP)
5계층 : 세션
- 데이터가 통신하기 위한 논리적인 연결
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능
- 프로세스 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공
- 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex) 가능
6계층 : 표현
- 데이터 형식 변환, 암호화·복호화, 압축·해제
- MIME 인코딩, TLS 암호화
7계층 : 응용
- HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜
- 사용자와 직접 맞닿는 애플리케이션 서비스 계층
IP 프로토콜
- 네트워크 계층 프로토콜
- TCP/IP 기반의 인터넷 망을 통하여 데이타그램의 전달을 담당하는 프로토콜
- 신뢰성보장안하고, 흐름제어안함 → 이 기능은 상위 계층에서 담당함(Best effort)
- 비신뢰성, 비연결성, Best-effort 전송
- 주소지정(ip), 패킷전달, 라우팅 담당
- 흐름제어, 재전송, 순서보장은 안하며 대신 상위계층에서 수행한다.
TCP 프로토콜
- 전송 계층의 통신 프로토콜
- 그래서 IP상위계층에서 수행됨
- 연결지향(Connection-Oriented), 신뢰성 보장
- 양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공
- Reliable : 패킷 순서, 손실·중복 방지
- Connection-oriented : 같은 전송계층의 UDP가 비연결성(connectionless)인 것과는 달리, TCP는 연결지향적이며 느슨한 연결(Loosly Connected) 가짐, 연결지향적
- 연결 관리를 위한 연결설정/해제 (3-way-handshake)
- 가상회선 방식
UDP 프로토콜
- 전송 계층의 통신 프로토콜
- 비연결성(Connectionless), 비신뢰성
- 가상회선 없으며 효율적인 전송을 지향
- 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 Datagram 서비스 제공
- 순서 보장·재전송 없음 → 실시간 스트리밍, 게임 등에 적합
- 단순한 헤더 구조 → 지연 시간 짧고 처리 속도 빠름
HTTP 프로토콜(HyperText Transfer Protocol)
- 웹 브라우저와 웹 서버 간 데이터 전송을 위한 응용계층 프로토콜
- 텍스트, 이미지, 동영상 등 다양한 데이터 전송 가능
- 클라이언트/서버 모델, 비연결성(Connectionless), 상태 비저장(Stateless)
- 트랜잭션 중심의 비연결성 프로토콜(connectionless, Stateless)
- 포트번호 : 80(HTTP), 443(HTTPS)