OSI 7계층 모델이란?
OSI 7계층 모델은 네트워크에서 통신이 일어나는 과정 데이터흐름을 파악하기 쉽게 단계 별로 계층을 7단계로 나눈 (독립적일 수 있는 모듈화)를 말하는것
브라우저에 도메인을 입력하면 여러 단계의 프로세스가 진행되며, 이를 OSI 7계층과 연관지어 설명할 수 있습니다.
1. 응용 계층 Appllication Layer (Layer 7):
이 계층은 웹서비스의 UI 부분, 사용자의 입출력(I/O)를 담당합니다.
사용자가 브라우저에 도메인을 입력하면, 먼저 DNS 서버에 요청을 보내어 해당 도메인의 IP 주소를 받아온 후, 그 주소로 HTTP/HTTPS 요청을 보냅니다. 여기서 HTTP/HTTPS 프로토콜이 사용됩니다.
예시 : 사용자가 브라우저에 "http://www.example.com"을 입력하면, 브라우저는 HTTP GET 요청을 생성합니다. 이 요청은 웹 서버에 특정 웹 페이지를 요청하는 내용을 포함합니다.
2. 표현 계층 Presentation Layer (Layer 6):
응용 계층과 네트워크 계층을 위해 계층 간에 데이터의 형식을 결정하는 단계로, 브라우저는 요청 데이터를 적절한 형식으로 인코딩합니다.
주로 데이터 포맷 변환, 압축, 암호화/복호화 등의 기능을 수행합니다.
예를 들어, 웹에서는 서버가 데이터를 HTML, JSON, 이미지파일 등으로 보내는데 표현 계층은 이런 데이터를 클라이언트가 이해할 수 있는 형식으로 변환해주는 역할을 합니다. 또, 보안을 위해 데이터가 암호화된 경우 이를 복호화하는 작업도 이 계층에서 이루어집니다.여기에는 헤더와 본문이 포함되며, 웹 페이지에 필요한 정보가 포함됩니다.
3. 세션 계층 Session Layer (Layer 5):
클라이언트와 서버 간의 세션(통신이 시작되고 종료되는 일련의 과정 )을 관리합니다. 브라우저는 세션을 설정하여 지속적인 연결을 유지하거나 필요한 정보를 공유합니다.
예시로 사용자가 웹사이트에 로그인하면 세션이 시작되고, 로그아웃하거나 웹 브라우저를 닫으면 세션이 종료됩니다. 세션 계층은 이런 연결 상태를 유지하고 관리하는 역할을 합니다. 또한 오류가 발생해도 다시 연결을 시도하거나(재연결), 통신의 시작과 끝을 조정해서 클라이언트와 서버 간의 통신을 원활하게 이어주는 역할도합니다.
4. 전송 계층 Transport Layer (Layer 4):
컴퓨터로 들어온 네트워크 데이터를 어느 포트(프로세스)로 보낼지 담당합니다. 하나의 컴퓨터에는 여러 프로세스가 동작하고 있으며 프로세스마다 별도의 네트워크 포트를 가지게 됩니다. 예를 들면 네트워크 데이터가 들어오면 80포트(프론트엔드 애플리케이셔), 8080포트(백엔드 애플리케이션)으로 보낼지 담당하는 것 입니다. TCP(전송 제어 프로토콜) 또는 UDP(사용자 데이터그램 프로토콜)를 통해 데이터를 전송합니다. TCP를 사용하면 데이터의 순서와 오류를 검사하는 신뢰성 있는 연결이 확보됩니다. 각 패킷에는 순서 정보와 오류 검사를 위한 체크섬이 포함됩니다
*TCP?
TCP (Transmission Control Protocol) 신뢰성 있는 연결을 제공하는 프로토콜입니다.
데이터 전송시 순서를 보장하고 오류검사를 통해 데이터가 손사오디지 않도록합니다. TCP는 데이터 패킷에 순서번호를 부여하고 수신자가 패킷을 제대로 받았는지를 확인하는 과정이 포함됩니다. 그래서 주로 웹페이지를 로드할 때나 파일 전송 시 주로 사용됩니다.
*UDP?
UDP (User Datagram Protocol): 빠른 데이터 전송이 필요한 경우 사용되며 오류 검사나 데이터 순서 보장은 하지 않습니다. 주로 실시간 데이터 전송(ex. 비디오 스트리밍, 온라인게임 등) 사용됩니다.
둘의 차이는 TCP는 안정성과 순서를 중시하는 반면 UDP는 속도와 효율성을 중시하는 프로토콜입니다.
*체크섬?
중복 검사의 한 형태이며, 송신된 자료의 무결성을 보호하는 단순한 방법입니다.
데이터를 전송하기 전에 데이터의 내용을 기반으로 체크섬이라는 값을 생성하여 패킷에 포함시키는데 수신 측에서는 패킷을 받은 후 체크섬 값을 다시 계산하고, 보낸 측의 체크섬과 비교합니다. 체크섬의 값이 다르면 데이터에 오류가 발생한 것이므로 해당 패킷을 재전송 요청합니다.
5. 네트워크 계층 Network Layer (Layer 3):
IP 주소를 사용하여 패킷을 목적지로 라우팅합니다. 브라우저는 도메인을 DNS를 통해 IP 주소로 변환하고, 이 주소를 기반으로 패킷을 전송합니다.도메인 이름을 DNS를 통해 IP 주소로 변환합니다. 예를 들어, "http://www.example.com"이 192.0.2.1로 변환됩니다. 이 IP 주소를 사용해 패킷을 목적지로 라우팅합니다.
6. 데이터 링크 계층 Data Link Layer (Layer 2):
데이터 링크 계층은 물리적 네트워크에서 이더넷 프레임 단위로 데이터를 전송합니다.
MAC 주소를 사용하여 같은 네트워크 내에서 데이터를 전달합니다. LAN의 경우, 브릿지나 스위치와 같은 네트워크 장치가 이더넷 프렘임을 수신하고 프레임의 MAC 주소를 확인하여 적절한 장치로 데이터를 전송합니다.
*이더넷 프레임?
데이터 링크 계층에서 사용하는 데이터 단위
데이터 링크 계층은 전송할 데이터를 프레임 단위로 나눕니다. 프레임에는 헤더(송신자와 수신자의 MAC주소가 포함되어 있음), 데이어(상위계층(네트워크 계층)에서 받은 데이터 , 트레일러(오류검사를 위한 정보가 포함)가 포함됩니다.
*브릿지?
두개 이상의 네트워크 세그먼트를 연결하는 장치입니다. 하나의 LAN을 여러 네트워크 세그먼트로 분리하여 각 네트워크 간 트래픽을 효율적으로 관리합니다.
*스위치?
브릿지의 발전된 형태로 더 많은 포트를 제공하며 더 효율적으로 데이터를 전달합니다. MAX 주소 테이블을 유지하여 각 포트에 연결된 장치의 MAC 주소를 기억합니다. 블필요한 네트워크 트래픽을 줄이고 네트워크 성능을 향상시킵니다.
7. 물리 계층 Physical Layer (Layer 1):
네트워크의 물리적인 연결을 담당합니다.
실제 전송 매체(예: 집에 설치된 인터넷 케이블, wifi 신호 등)를 통해 비트 신호로 변환하여 비트 전송을 관리하며 데이터를 전송합니다
이 과정을 통해 브라우저는 입력된 도메인에 대한 웹 페이지를 요청하고, 서버로부터 응답을 받아 화면에 표시하게 됩니다.