OSI 7 계층
네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한
각 계층간 상호 작동하는 방식을 정해 놓은 네트워크 표준 모델이다.
-> OSI 7계층 모델을 알면 네트워크 구성을 예측하고 이해할 수 있다. 네트워크에서 트래픽의 흐름을 꿰뚫어 볼 수 있으며,
각 계층은 독립되어 있기 때문에 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도
이상이 생긴 단계만을 고칠 수 있다.
-> 즉, 각 계층이 특정 기능을 담당한다. 이러한 계층화는 시스템을 모듈화하고 표준화해 상호 운용성을 개선한다.
1계층 - 물리 계층 Physical Layer
주로 전기적, 기계적, 기능적인 특성을 이용해 통신 케이블로 데이터를 전송한다.
상위 계층인 데이터 링크 계층으로부터 물리적 전송 매체를 통해 전달된 비트 스트림을 상대측 물리 계층으로 전달한다.
이때, 데이터를 전기적인 신호인 0과 1로 변환(전기적으로 On, Off 상태)해서 주고 받는다.
이 계층에서는 데이터를 전달할뿐 데이터가 무엇인지 어떤 에러가 있는지는 신경쓰지 않는다.
통신 단위 : 비트(Bit)
장비 : 통신 케이블, 리피터, 허브 등
프로토콜 : Modem, Cable, Fiber 등
2계층 - 데이터 링크 계층 DataLink Layer
물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리해 안전한 정보 전달이 가능하게 한다.
물리적 주소(MAC Address)를 가지고 통신하며 이때 에러 검출, 재전송, 흐름 제어 기능을 한다.
이 계층은 Point to Potint 간 신뢰성 있는 정보 전달을 보장하기 위한 것으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.
전송 단위 : 프레임(Frame)
장비 : 브리지, 스위치, 이더넷 등
프로토콜 : 이더넷, MAC, PPP, ATM, LAN, Wifi 등
즉, 브릿지나 스위치를 통해 맥주소를 가지고 물리 계층에서 받은 정보 전달
3계층 - 네트워크 계층 Network Layer
데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이 가장 중요하며
목적지 네트워크 주소를 정하고(IP) 그에 따른 경로(Route)를 선택하고 경로에 따라 패킷을 전달한다.
이 계층은 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹 등을 수행하는데,
데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하도록 만든다.
전송 단위 : 패킷(Packet)
장비 : 라우터(Router)
프로토콜 : IP, ICMP 등
4계층 - 전송 계층 Transport Layer
port 번호, 전송방식(TCP/UDP) 결정해 두 지점간의 신뢰성 있는 데이터를 주고 받게 해주는 역할이다.
End-toEnd(발신지에서 목적지) 간 제어와 에러를 관리하며 오류 검출 및 복구, 흐름 제어와 중복 검사 등을 수행한다.
전송 단위 : 세그먼트(Segment)
장비 : 게이트웨이(GateWay)
프로토콜 : TCP, UDP, ARP, RTP
5계층 - 세션 계층 Session Layer
주 지점간의 프로세스 및 통신하는 호스트 간의 연결을 유지한다.
TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성하고 세션의 생성, 유지, 종료, 전송 중단 시 복구 기능을 수행한다.
프로토콜 : NetBIOS, SSH, TLS
6계층 - 표현 계층 Presentation Layer
송/수신 측 사이에서 전송되는 데이터의 표현 방식을 결정한다.
코드 변환, 구문 검색, 파일 인코딩, 디코딩 및 암호화, 명령어 포장, 압축 등의 기능을 한다.
프로토콜 : JPG, MPEG, GIF, ASCII 등
7계층 - 응용 계층 Application Layer
최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
사용자와 직접 접하는 유일한 계층으로,
사용자로부터 정보를 입력받아 하위 계층으로 전달하고 하위 계층에서 전송한 데이터를 사용자에게 전달한다.
프로토콜 : HTTP, FTP, DNS, SMTP, POP3, IMAP, Telnet 등
OSI 계층 전체 통신 흐름
1. 발신 측에서 응용 계층부터 시작해 각 계층마다 헤더를 붙여 캡슐화를 진행한다.
2. 수신 측에서 물리 계층부터 올라가면서 헤더를 떼어 내는 디캡슐레이션 진행해 데이터를 식별한다.
데이터가 목적지로 이동할 때, 네트워크 계층에서 IP 헤더에 있는 프로토콜 정보 이용해 데이터 TCP/UDP 식별하고
그에 따른 처리를 전송 계층에서 수행한다.
3. 목적지에 원하는 데이터가 전송된다.
<< 예시 - 이메일을 보내고 받는 과정 >>
이메일 클라이언트(Gmail 등)를 사용해 이메일 작성하고 전송 -> 응용 계층
이메일 클라이언트가 이메일을 텍스트, 이밎, 파일 등으로 표현하고 메일 전송할때 데이터 처리 -> 표현 계층
이메일 클라이언트와 이메일 서버 간의 세션을 설정하고 관리해 안전하게 데이터 교환 -> 세션 계층
이메일의 안전한 전송(데이터의 신뢰성 확보)을 위해 TLS/SSL 같은 프로토콜 사용 -> 전송 계층
이메일이 보내지는 동안 인터넷을 통해 목적지 이메일 서버까지의 경로 결정하고 라우팅 수행 -> 네트워크 계층
이메일은 인터넷 연결에 따라 다양한 데이터 링크 프로토콜 사용 -> 데이터 링크 계층
이메일 데이터는 물리적 매체(유선네트워크 - 광케이블 혹은 전기적 싱호, 무선네트워크 - 무선 주파수) 통해 전송 -> 물리 계층
<< 예시 - 웹 페이지 로드 원활하지 않은 경우 각 계층 확인을 통한 문제 해결 >>
먼저, 사용자의 컴퓨터와 라우터 간의 이더넷 케이블 연결 확인 -> 물리 계층
이더넷 케이블 상태 및 이더넷 프로토콜 이상 확인 (물리적 손상 혹은 이더넷 프레임 오류 검사) -> 데이터 링크 계층
IP 주소 및 라우팅 설정 확인해 사용자 컴퓨터와 인터넷 사이의 경로 문제 확인 -> 네트워크 계층
사용자 웹 브라우저 - 서버 간의 통신 프로토콜(HTTP)이 올바르게 작동하는지 확인 -> 전송 계층
웹 브라우저와 웹 서버 간의 세션 상태 및 데이터 형식 확인 -> 세션 계층 및 표현 계층
웹 브라우저가 웹페이지를 요청하는 과정 및 서버 응답 확인(HTTP 요청과 응답) -> 응용 계층
'CS' 카테고리의 다른 글
[CS] 스케줄러의 종류 (0) | 2024.02.07 |
---|---|
[CS] TCP/UDP (0) | 2024.02.05 |
[CS] 객체 지향 프로그래밍 OOP (0) | 2024.01.29 |
[CS] 절차지향, 객체지향 (0) | 2024.01.29 |
[CS] 동기와 비동기 (0) | 2024.01.22 |