OSI 참조 모델
- 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약
하위 계층 : 물리 계층 -> 데이터 링크 계층 -> 네트워크 계층
상위 계층 : 전송 계층 -> 세션 계층 -> 표현 계층 -> 응용 계층
1. 물리 계층 (Physical Layer)
- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의함
2. 데이터 링크 계층 (Data Link Layer)
- 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당
- 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능
- 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능
- 오류의 검출과 회복을 위한 오류 제어 기능
프레임 : 컴퓨터 과학에서 물리 메모리를 일정한 크기로 나눈 하나의 블록
동기화 : 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미
3. 네트워크 계층 (Network Layer)
- 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
- 네트워크 연결을 설정 유지, 해제하는 기능
- 경로 설정, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송 수행
트래픽 : 서버와 스위치 등 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양
패킷 : 네트워크 전송의 용량 단위
4. 전송 계층 (Transport Layer)
- 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 간에 투명한 데이터 전송을 가능하게 한다.
- 종단 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
- 주소 설정, 다중화, 오류 제어, 흐름 제어 수행
다중화 : 하나의 고속 통신 회선을 다수의 단말기가 공유할 수 있도록 하는 것
5. 세션 계층 (Session Layer)
- 송 수신 측 간의 관련성을 유지하고 대화 제어 담당
- 대화 구성 및 동기 제어, 데이터 교환 관리 기능
6. 표현 계층 (Presentation Layer)
- 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 반환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능
- 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층
- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환, 문맥 관리 기능
7. 응용 계층 (Application Layer)
- 사용자 OSI 환경에 접근할 수 있도록 서비스 제공
1. 응용 계층의 주요 프로토콜
(1) FTP (File Transfer Protocol)
- 컴퓨터와 컴퓨터 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜
(2) SMTP (Simple Mail Transfer Protocol)
- 전자 우편을 교환하는 서비스
(3) TELNET
- 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비스
- 프로그램을 실행하는 등 시스템 관리 작업을 할 수 있는 가상의 터미널 기능 수행
(4) SNMP (Simple Network Management Protocol)
- TCP/IP의 네트워크 관리 프로토콜로, 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용되는 표준 통신 규약
(5) DNS (Domain Name System)
- 도메인 네임을 IP주소로 매핑하는 시스템
(6) HTTP (Hyper Text Transfer Protocol)
- 월드 와이트 웹에서 HTML 문서를 송수신 하기 위한 표준 프로토콜
2. 전송 계층의 주요 프로토콜
(1) TCP (Transmission Control Protocol)
- 양방향 연결형 서비스를 제공
- 스트림 위주의 전달
- 신뢰성 있는 경로를 확립하고 메시지 전송을 감독
- 순서 제어, 오류 제어, 흐름 제어 기능
스트림 : 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름
(2) UDP (User Datagram Protocol)
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스 제공
- TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로, 오버헤드가 적고, 흐름제어나 순서 제어가 없어 전송 속도가 빠름
- 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요시되는 네트워크에 사용
(3) RTCP (Real-Time Control Protocol)
- RTP(Real - Time Transport Protocol) 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션에 참여한 각 참여자들에게 주기적 제어 정보를 전송
3. 인터넷 계층의 주요 프로토콜
(1) IP (Internet Protocol)
- 전송할 데이터에 주소를 지정하고, 경로를 설정하는 기능
- 비연결형인 데이터그램 방식을 사용하는 것으로 신뢰성이 보장되지 않음
데이터그램 : IP의 전송 단위
(2) ICMP (Internet Control Message Protocol)
- IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역활
- 헤더는 8Byte로 구성
(3) IGMP (Internet Group Management Protocol)
- 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨
(4) ARP (Address Resolution Protocol)
- 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소로 바꿈
(5) RARP (Reverse Address Resolution Protocol)
- ARP와 반대로 물리적 주소를 IP 주소로 변환하는 기능
4. 네트워크 액세스 계층의 주요 프로토콜
(1) Ethernet (IEEE 802.3)
- CSMA/CD 방식의 LAN
CSMA/CD ( Carrier Sense Multiple Access/Collision Detetion ) : 이더넷 환경에서 통신을 하고 싶은 PC나 서버는 먼저 네트워크 상에 통신이 일어나는지 확인을 한다.
LAN(근거리 통신망) : 일반적으로 같은 건물 내에 있는 작은 지리적 영역 내에 포함된 네트워크
(2) IEEE 802
- LAN을 위한 표준 프로토콜
(3) HDLC
- 비트 위주의 데이터 링크 제어 프로토콜
(4) X.25
- 패킷 교환망을 통한 DTE와 DOE 간의 인터페이스를 제공하는 프로토콜
(5) RS-232C
- 공중 전화 교환망(PSTIN)을 통한 DTE와 DOE 간의 인터페이스를 제공하는 프로토콜
'C++ > C++ CS 개념' 카테고리의 다른 글
IP (2) | 2023.11.11 |
---|---|
형상관리, 빅오 표기법 (0) | 2023.11.11 |
모듈 (0) | 2023.11.11 |
디자인 패턴 (0) | 2023.11.09 |
생성자, 소멸자, 대입 연산자 (0) | 2023.11.08 |