"provides a common basis for the coordination of standards development for the purpose of systems interconnection."
- Wikipedia
국제 표준화 기구(ISO)의 참조 모델(Reference Model)
- 네트워크 프로토콜이 서로 통신할 때 사용되는 일반적인 프레임워크
- 각 제조업체와 기관이 다양한 네트워크 장비와 프로토콜을 개발하여 사용하기 시작
- 다양한 컴퓨터 네트워킹 방법이 출현하기 시작하면서 이들간의 상호 운용과 통합에 어려움을 느낌
= 네트워크 통신에 대한 표준화의 필요성이 대두
- 기술 변화의 속도가 너무 빨라서, 현재의 기준으로 표준화된 절차를 만들기 보다는 새로운 시스템이 수렴할 수 있는 표준을 정의할 필요가 생김
= 표준 자체는 아니지만, 미래의 표준을 정의할 수 있는 프레임워크
계층
시스템이나 프로세스를 기능적으로 분할하는 것
- 추상화 : 각 계층은 자신의 인터페이스를 통해 상위 계층과만 상호 작용, 나의 상세 정보는 숨길 수 있음
- 유연성 : 각 계층은 독립적으로 개발되거나 수정될 수 있으므로 전체 시스템을 쉽게 확장하거나 변경 가능. 오류 수정도 쉬워짐
- 모듈화 : 시스템을 독립적인 모듈로 분할함으로써 시스템의 복잡성 감소 및 관리가 용이
- 상호 운용성 : 각 계층은 명확하게 정의된 인터페이스를 통해 상호 작용
계층 모델 (Layer Model)
복잡한 시스템이나 프로세스를 각각의 계층으로 나누어 구조화하는 방법
- 오버헤드 : 각 레이어 사이의 통신 및 데이터 처리 과정은 오버헤드를 야기
- 복잡성 : 시스템을 더 세분화하고 모듈화하기 위해 초기 설계 및 구현이 복잡함
7개의 계층(Layer)으로 구성 ( 응용 계층부터 탑-다운 )
헤더
데이터 패킷(IP 패킷보다 큰 개념)에 포함되는 메타데이터를 담고 있는 부분
헤더는 프로토콜마다 다양한 형식과 길이를 가짐
프로토콜
의례, 관습
프로그래밍의 프로토콜 : 원활한 데이터 통신을 위한 상호간의 합의(약속)
네트워크의 최종 목적인 응용 프로그램 간의 데이터 통신을 담당
- 사용자의 요구에 따라 다양한 서비스를 제공
- 각 서비스들은 처리할 데이터에 맞는 적절한 프로토콜을 선택하고 데이터 형식을 정의하며, 사용하기 쉽도록 구성된 사용자 인터페이스를 제공
주요 프로토콜
HTTP, FTP, SMTP, POP3, IMAP, Telnet ...
서비스 목록
웹 브라우저 : HTTP 를 통해 데이터를 요청(웹서버와 통신)하는 것을 돕는 소프트웨어
- Google Chrome, Mozilla, FireFox, Microsot Edge
이메일 클라이언트 : SMTP(이메일 전송), POP3 또는 IMAP(이메일 수신) 를 통해 이메일을 송수신하는 것을 돕기 위한 소프트웨어
- Gmail, Apple Mail, Microsoft Outlook ...
FTP 클라이언트: FTP(파일 전송 프로토콜) 를 통해 파일을 원격 서버로 전송하거나 다운로드
- FileZilla, Cyberduck ...
게임 클라이언트: 다양한 네트워크 프로토콜을 통해 온라인 게임을 플레이하고 플레이어들과 상호 작용
- Steam, Battle.net, Xbox Live ...
응용 계층에서 내려보낸 데이터에 추가적인 작업을 진행
- 송수신 간 시스템 차이를 고려, 호환성 보장을 위해 수신 데이터를 변환
- 네트워크 상에서 데이터의 표현 형식을 구분하여 전달
- 데이터 암호화와 압축(통신 효율 및 속도 증대) 등의 기능 수행
응용 프로그램 간의 통신을 시작하고, 종료하는 일련의 과정을 담당
네트워크 세션을 관리 및 제어
- 사용자간의 통신 동기화 및 오류 복구 명령 처리
- OS를 통해 통신 세션 구축, 유지(관리), 종료
세션
통신이 시작될 때부터 종료될 때까지의 시간
데이터 단위 도식
- TCP/IP 기준, 헤더 포함
송수신되는 데이터를 관리
본격적으로 데이터에 헤더 추가
데이터 단위
TCP = 세그먼트(Segment)
UDP = 유저 데이터그램(User Datagram)
목적지 및 스위치
응용 프로그램의 포트(Port) / 로드 밸런서(Load Balancer)
주요 프로토콜
TCP(Transmission Control Protocol)
UDP(User Datagram Protocol)
자세한 내용은 링크 : TCP/UDP
서로 다른 두 네트워크에 속한 호스트(Host) 간의 데이터를 IP Address를 기반으로 전송
데이터를 목적지(수신 호스트)까지 가장 안전하고 빠르게 전달
- IP : 네트워크 상의 통신 기기에게 고유하게 할당된 주소
- IP 패킷의 경로를 결정하는 것은 라우터(Router) = L3 스위치
데이터 단위
IP 패킷(Packet) 또는 데이터그램(Datagram)
목적지 및 스위치
IP / 라우터(Router)
주요 프로토콜
IP(Internet Protocol), ICMP(Internet Control Message Protocol), IGMP(Internet Group Message Protocol), IPsec ...
특징
라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹
Totla Length(패킷의 전체 길이), Header Checksum(헤더 무결성 검사), Source Address & Dest Address (송수신 호스트 주소), Time To Live(활동 유효기간) ...
같은 네트워크에 속한 호스트 간의 데이터를 MAC을 기반으로 전송
물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리
- MAC : 네트워킹이 가능한 모든 호스트가 갖고 있는 랜카드(NIC, Network Interface Card)에 부여된 고유 번호
데이터 단위
프레임(Frame)
목적지 및 스위치
MAC / 이더넷 스위치(Ethernet Switch), 브리지(Bridge)
주요 프로토콜
이더넷(Ethernet), HDLC 및 ADCCP (p2p protocol), LLC 및 ALOHA (근거리 네트워크 프로토콜)
특징
에러 검출, 재전송, 흐름 제어
Source MAC Address & Dest MAC Address(송수신 호스트 주소), Frame check sequence(헤더 무결성 검사)
각 계층을 거쳐 생성된 데이터 패킷을 전기 신호로 변환하여 전송
- 0과 1의 문자열인 비트 스트림(Bit Stream)으로 변환
데이터 단위
비트(Bit)
통신 장비
허브(Hub), 케이블(Cable), 리피터(Repeater)