OSI 7계층
- 네트워크 구조를 표준화하는 개방형 시스템 사이의 상호 접속(OSI, Open Systems Interconnection)과 관련된 규정을 정의
- 헤더 정보
- 송신 호스트 : 데이터가 상위 계층에서 하위 계층으로 갈수록 헤더 추가
- 수신 호스트 : 데이터가 하위 계층에서 상위 계층으로 갈수록 헤더 제거
계층간 구성
- 하위 계층(1~4계층): 통신기기와 네트워크 간의 통신 경로를 설정하거나 경로의 유지·해제를 규정
- 상위 계층(5~7계층): 통신경로를 이용해 정보를 교환하는 절차를 규정
OSI 7 계층 상호 간의 데이터 전달 원리
- 최상위 계층(7계층 : 응용 계층)에서 발생한 데이터를 하위 계층으로 전달
- 처음의 데이터에 각 계층에서 전달받은 헤더(Header) 정보를 추가하여 전달
- 캡슐화(Encapsulation) : 데이터에 헤더를 씌우는 과정
- 최하위 계층(1계층 : 물리 계층)에 도달
- 각 계층의 헤더에 해당되는 부분을 벗긴 후 최상위 계층으로 전달
- 캡슐해제(Decapsulation) : 수신 측에서 각 계층의 헤더를 벗기는 과정
물리 계층 (Physical Layer)
- 전송 매체의 물리적 인터페이스에 관한 사항을 기술
- 데이터 전송 속도, 송수신 호스트 사이의 클록동기화 방법, 물리적 연결 형태 등..
- OSI 계층 중 가장 낮은 계층으로 네트워크에서 다른 네트워크로 전달되는 하드웨어로 구성
- 물리 계층의 데이터 단위: 비트(Bits)
- 데이터 계층에서 받은 데이터를 기계가 알아들을 수 있는 비트로 변환되어야 한함
- 한편 전자기적 신호로 구성되므로 매우 복잡한 기술을 필요함
- OSI 참조 모델 중 최하위 계층에 해당하는 1계층(L1)
- 상위 계층에서 내려온 비트열 데이터를 상대편에 전송할 수 있도록 통신기기 사이에 있는 물리적 매체를 이용해 연결을 확립하는 역할
- 데이터가 전송되는 동안 연결을 유지하거나 해제하는 기계적, 전기적, 기능적, 절차적 특성을 정의
물리 계층의 특성
- 기계적 특성: 시스템과 주변장치 간 연결
- 전기적 특성: DTE_DCE사이에서의 전기적 신호 규정
- 절차적 특성: 데이터 전송을 위한 Flow control 규정
물리 계층의 대표 프로토콜과 표준안
- 물리 계층과 관련된 프로토콜은 모뎀과 단말 장치 사이의 커넥터에 관한 규정
- 물리 계층을 표준화한 대표적 예
- RS-232C, RS-422, RS-485
- RS-232C 시리얼을 지원 모뎀, POS, PDA, 프린터 기타 산업용장비 호환
데이터 링크 계층 (Data Link Layer)
- 데이터의 물리적 전송 오류를 해결
- 프레임: 전송 데이터의 명칭
- 물리 계층으로 부터 받은 정보의 주소를 할당하는 역할 수행
- 자신의 인접한 노드의 주소를 할당하는 역할
- 데이터의 오류가 감지되는 경우 해당 데이터를 누락 시키는 기능도 수행
- 데이터 링크 계층의 데이터 단위: 프레임(Frame)
- 데이터 링크 계층의 프로토콜(장비): 무선 인터넷, 이더넷, ISDN
네트워크 계층 (Network Layer)
- OSI 참조 모델에서 하위 계층인 3계층을 뜻함
- 통신 노드에서 다양한 경로 설정, 메시지 등을 라우팅, 망 노드 간에 트래픽 제어
- 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리
- 호스트 구분을 위한 주소 개념 필요 (e.g. IP 주소)
- 패킷: 전송 데이터의 명칭
- 대표 프로토콜: CCITT의 X.25
- 네트워크 계층은 전송 계층 및 데이터 링크 계층으로부터 받은 데이터를 패킷 형태로 변환
- 네트워크 계층의 기능은 라우팅
- 목적지 네트워크로 가기 위해 다음으로 진행 되어야 할 네트워크 노드의 방향을 지정해줌
- 네트워크 계층의 데이터 단위: 패킷(Packet)
- 네트워크 계층의 프로토콜(장비): IPv4, IPv6, ICMP
전송 계층 (Transport Layer)
- 목적지의 주소 지정, 메시지 우선권, 다중화, 보안, 계정, 오류 발생 시 링크 회복, 흐름 제어, 송수신할 때 무결성 보장 등
- 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단(End-to-End) 통신 기능 제공
- OSI 참조 모델에서 하위 계층인 4계층(L4)
- 송수신 측의 응용 프로세스 사이에서 데이터를 확실히 송수신해 주는 역할
- 전송 계층은 데이터의 송수신자와의 연결에 대한 프로토콜 수행
- TCP가 데이터를 송신해 받는 사람이 데이터를 받을 준비가 되어 있는지 확인
- 준비가 되어 있으면 연결을 유지하며 양측간의 송수신 작업을 시작
- 전송 계층의 데이터 단위: 세그먼트(Segment)
- 전송 계층의 프로토콜(장비): TCP, UDP
세션 계층 (Session Layer)
- OSI 참조 모델에서 상위 계층인 5계층
- 송신 측과 수신 측 사이에 프로세스를 서로 연결·유지·해제하는 역할(토큰 사용)
- 프로세스 간 데이터를 전송하는 방식(전이중, 반이중) 결정
- 전송 계층에서 받은 데이터를 응용프로그램과의 연결을 유지하기 위한 계층
- 세션 계층의 데이터 단위: 메시지(Message)
표현 계층 (Presentation Layer)
- OSI 참조 모델에서 상위 계층인 6계층
- 송신 측과 수신 측 사이에서 서로 다른 부호 체계 간 변환과 표준화된 데이터 형식을 규정
- 데이터 형식, 명령 해석, 코드 변환, 암호화, 텍스트 압축 등
- 대표 프로토콜: ISO8824, CCITT의 X.409 표준에서 ASN.1 등
- 데이터의 의미와 표현 방법을 처리, 데이터를 코딩하는 문제를 다룸
- 세션 계층으로 부터 받은 메시지를 응용프로그램에 전달하는 기능을 수행
- 표현 계층의 데이터 단위: 메시지(Message)
- 표현 계층의 프로토콜(장비): XDR, SMB
응용 계층 (Application Layer)
- OSI 참조 모델에서 상위 계층인 7계층
- 사용자에게 직접 제공하는 서비스로, 제반적인 응용 작업 등의 서비스를 제공
- 전자우편, 파일 전송과 접근 및 관리, 가상 터미널, 자원 공유와 데이터베이스, 네트워크 관리 등
- 최상위, 다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룸
- 네트워크 데이터를 우리가 볼 수 있도록 변환
- 대표적으로 웹 브라우저로 데이터를 띄우는 과정
- 응용 계층의 데이터 단위: 메시지(Message)
- 응용 계층의 프로토콜(장비): HTTP, SMTP, FTP, SSH, 텔넷
계층별 기능
- 계층형 프로토콜의 도입 배경: 초기에는 회사마다 독자적인 프로토콜을 개발해서 사용
- 문제점: 타사 제품과 호환이 어려움 (특히 통신 서비스와 기능을 추가하고 변경, 유지하는 것)
- 해결책: 이러한 문제점을 해결하기 위해 계층형 프로토콜 도입
계층형 구조
- 프로토콜의 계층화: 미래의 변화에 유연하게 대처할 수 있도록 통신을 제어하는 기능을 여러 계층에 나누어 두고, 각 층마다 독립적으로 프로토콜을 적용하는 것
구성요소의 모델화
- 응용 객체
- 상호 간의 정보를 교환하며, 사무 처리 등을 수행할 수 있는 주체
- 응용 프로그램이나 단말 장치의 운용자 등
- 개방형 시스템
- 응용 프로세서 간에 통신이 가능하도록 통신 기능을 제공하는 장치
- 호스트 컴퓨터, 단말 장치, 통신 제어 장치, 단말 제어 장치 등
- 물리 매체
- 정보와 신호를 교환할 수 있게 해 주는 전기적 매체
- 통신회선, 채널 등
- 접속
- 응용 객체 사이를 논리적으로 연결해 주는 통신회선
계층형 구조의 구성요소
- 계층(Layer) : 개방형 시스템과 여러 부시스템이 논리적으로 구성되어 있는 것
- 개방형 시스템: 표준을 기본으로 서로 다른 시스템 사이에서도 통신이 가능하도록 함
- 부시스템: 순서를 각각 부여
- 인터페이스 : 상위 계층과 하위 계층 사이를 연결해 주는 기능
- 객체 : 시스템에서 각 계층의 일을 수행하는 기능 모듈의 실체
데이터 단위와 프로토콜 제어 정보
- 서비스 데이터 단위(SDU): 바로 위의 층(layer) 또는 바로 아래의 층 사이에 주고받는 것
- 프로토콜 데이터 단위(PDU): 동위층 상호 간에 주고받는 것
- 프로토콜 제어 정보(PCI): 헤더 정보
프로토콜 기능
단편화 & 재합성
- 단편화: 송신 측에서는 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송
- 재합성: 수신 측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원
캡슐화 (Encapsulation)
- 각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 것
- e.g. 플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능
연결 제어 (Connection Control)
- 비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설·유지·종결
흐름 제어 (Flow Control)
- 데이터양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정
오류 제어 (Error Control)
- 데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출 및 정정
순서 결정 (Sequencing)
- 연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신 측에 전달
주소 설정 (Addressing)
- 발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달
동기화 (Synchronization)
- 두 통신 객체의 상태(시작, 종류, 검사 등)를 일치시킴
다중화 (Multiplexing)
- 하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사용할 수 있도록 함
전송 서비스 (Transmission Service)
- 통신 객체를 사용하기 쉽도록 별도로 추가 서비스(패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공
구현 환경
- 시스템 공간 (계층 1~4)
- TCP(연결형 서비스 제공)와 UDP(비연결형 서비스 제공)는 시스템 운영체제인 커널 내부에 구현됨
- 네트워크 계층은 IP로 구현, 전송 패킷의 올바른 경로 선택 기능을 제공
- 사용자 공간 (계층 5~7)
- 사용자 프로그램으로 구현
- 전송 계층의 기능을 제공하는 소켓 시스템 콜을 호출해 TCP와 UDP 기능을 사용
프로토콜
- TCP/UDP: 사용자 데이터를 전송하는 전송 계층 프로토콜
- IP: 사용자 데이터를 전송하는 네트워크 계층 프로토콜
- 오류 정보를 전송하는 목적으로 ICMP를 사용
- ARP: IP 주소를 MAC 주소로 변환
- RARP: MAC 주소를 IP 주소로 변환
- ICMP: 오류 메시지를 전송하는 프로토콜