네크워크 참조 모델
OSI 7 Layer : 국제 표준화 기구ISO에서 발표한 네트워크 통신 기준이 되는 가장 대표적인 참조 모델 TCP/IP 4 Layer : 미 국방성 연구에서 시작되어 발전한 사실상의 업계 표준 참조 모델
네크워크 참조 모델
OSI 7 Layer : 국제 표준화 기구ISO에서 발표한 네트워크 통신 기준이 되는 가장 대표적인 참조 모델 TCP/IP 4 Layer : 미 국방성 연구에서 시작되어 발전한 사실상의 업계 표준 참조 모델
프로토콜은 참조 모델 계층의 구현체
- IP(Internet Protocol) : 데이터를 목적지(IP 주소)까지 전송
- TCP(Transmission Control Protocol) : 데이터 전송의 신뢰성 보장 -> 패킷 손실 시 재전송, 순서 보장
- UDP(User Datagram Protocol) : 실시간 스트리밍등의 빠른 데이터 전송
- 응용 계층 프로토콜 : HTTP, DNS, FTP, SMTP
HTTP 로 통합 최종사용자 I/F: HTTP 요청/응답처리, URL, 메소드 포맷변환, 암호화: HTTP 헤더, TLS 세션유지 기능: 쿠키, 세션 ID, JWT port handling ,socket IP Handing NIC에서 바이트로 해석 및 Frame 단위 묶음 공유기와 PC간 무선./광신호
레이버별 역할
OSI 개층 별 서버 간 연결 방식과 장비
| 계층 | 주요 역할 | 주요 장비 | 설명 |
|---|---|---|---|
| L1 | 신호 전송 | 허브, 리피터 | 물리적 신호를 단순 중계하며 충돌이 많음. 주로 구시대 장비 |
| L2 | 같은 네트워크 내 MAC 기반 통신 | L2 스위치 | MAC 주소를 기반으로 패킷을 전달 |
| L3 | 서로 다른 네트워크 간 통신 | 라우터, L3 스위치 | IP 기반으로 라우팅하며 외부 네트워크로 트래픽을 전달 |
| L4 | TCP/UDP 포트 기반 트래픽 처리 | L4 로드 밸런서 | 포트와 세션을 기반으로 트래픽을 분산하며 방화벽 기능을 제공하기도 함 |
| L5~L7 | 세션 유지, 콘텐츠 기반 분산 | L7 로드 밸런서, 게이트웨이 | HTTP 헤더, URL 등을 기준으로 로드 밸런싱 및 보안 제어 수행 |
| 계층 | 쉽게 비유하면 | 하는 일 |
|---|---|---|
| L1 | 전선을 이어주는 중계기 | 신호를 받아 그대로 전달 |
| L2 | 아파트 경비실 | MAC 주소를 확인해 같은 네트워크의 목적지로 전달 |
| L3 | 동네 우체국 | IP 주소를 확인해 다른 네트워크로 전달 |
| L4 | 교통 정리원 | TCP/UDP 포트를 기준으로 트래픽을 알맞게 분산 |
| L5~L7 | 똑똑한 안내 데스크 | 세션, URL, HTTP 헤더 등을 확인해 요청을 처리하고 분산 |
참고 : Transport Layer Port 기반
| 상황 | 비유 |
|---|---|
| IP 주소 | 건물 주소 |
| 포트 번호 | 건물 안의 방 번호 |
| 패킷 | 여러 개의 택배 상자 |
| 전송 계층 | 택배를 나누고, 순서를 확인하고, 정확한 방으로 전달하는 담당자 |
flowchart LR
A[호스트 A<br/>사용자 컴퓨터] --> B[전송 계층<br/>데이터 분할, 흐름 제어, 오류 제어]
B --> C1[포트 443<br/>HTTPS 웹 요청]
B --> C2[포트 25<br/>메일 전송]
B --> C3[포트 20<br/>파일 전송]
C1 --> D1[웹 서버]
C2 --> D2[메일 서버]
C3 --> D3[파일 전송 서버]
D1 --> E1[웹 페이지 응답]
D2 --> E2[메일 처리]
D3 --> E3[파일 업로드 또는 다운로드]
| 구분 | 쉽게 설명하면 | 예시 |
|---|---|---|
| 호스트 A | 데이터를 보내는 컴퓨터 | 내 컴퓨터 |
| 호스트 B | 데이터를 받는 서버 | 웹 서버, 메일 서버 |
| 전송 계층 | 데이터가 어느 프로그램으로 가야 하는지 안내 | 포트 번호 사용 |
| 포트 번호 | 컴퓨터 안에서 프로그램을 구분하는 번호 | 웹 443번, 메일 25번 |
| 패킷 분할 | 큰 데이터를 여러 개의 작은 조각으로 나눔 | 패킷 단위로 전송 |
| 패킷 흐름 제어 | 데이터가 너무 빠르게 가지 않도록 조절 | 서버 처리 속도에 맞춤 |
| 오류 제어 | 데이터가 빠지거나 잘못되었는지 확인 | 문제가 있으면 재전송 |
| 웹 브라우저 | 웹 페이지를 요청하는 프로그램 | HTTPS, 443번 포트 |
| 메일 애플리케이션 | 이메일을 주고받는 프로그램 | SMTP, 25번 포트 |
| 파일 전송 애플리케이션 | 파일을 업로드하거나 다운로드하는 프로그램 | FTP, 20번 포트 |
웹(WWW - World Wide Web)이란?
인터넷 상의 문서, 이미지, 비디오등 하이퍼링크로 연결된 정보들의 집합 웹 브라우저로 접근 가능한 전 세계 정보을 의미
- 인터넷 = 네트워크 인프라 (하드웨어, 라우터, IP)
- WWW = 인터넷 위에 구현된 정보 공간
- 웹 문서는 HTML, 웹 서버는 HTTP, 사용자 인터페이스는 브라우저
| 구분 | 쉽게 설명하면 | 주요 요소 |
|---|---|---|
| 인터넷 | 전 세계 컴퓨터를 연결하는 네트워크 인프라 | 네트워크, 라우터, IP 주소 |
| WWW 또는 웹 | 인터넷을 통해 접근하는 전 세계 정보 공간 | 문서, 이미지, 비디오, 하이퍼링크 |
| 웹 문서 | 웹에서 보여지는 정보의 내용 | HTML |
| 웹 서버 | 웹 문서를 저장하고 요청에 응답하는 컴퓨터 | HTTP |
| 웹 브라우저 | 사용자가 웹 문서를 볼 수 있도록 해주는 프로그램 | Chrome, Safari, Edge |
| 하이퍼링크 | 다른 문서나 웹 페이지로 이동할 수 있는 연결 | 링크, URL |
응용 계층 프로토콜 : HTTP(s)
웹에서 데이터를 주고 받기 위한 통신 규약, 프로토콜이다. 응용 계층 Application 내부에서 처리 클라이언트 웹 브라우저 등 가 서버에 요청을 보내면 서버는 해당 요청에 대한 응답을 돌려주는 방식 HTTP는 웹 페이지, 이미지, 영상 등 다양한 형태의 데이터를 전송하는 데 사용
| 구분 | 설명 | 예시 |
|---|---|---|
| 응용 계층 | 사용자가 직접 사용하는 애플리케이션에서 데이터를 처리하는 계층 | 웹 브라우저, 메일 프로그램 |
| 클라이언트 | 서버에 필요한 정보를 요청하는 프로그램 또는 기기 | 웹 브라우저 |
| 서버 | 클라이언트의 요청을 처리하고 결과를 보내는 컴퓨터 | 웹 서버 |
| 요청 | 클라이언트가 서버에 보내는 데이터 요구 | 웹 페이지 요청 |
| 응답 | 서버가 요청을 처리한 뒤 클라이언트에 보내는 결과 | HTML 문서, 이미지 |
| HTTP | 클라이언트와 웹 서버가 데이터를 주고받을 때 사용하는 통신 규칙 | 웹 페이지, 이미지, 영상 전송 |
| 순서 | 과정 |
|---|---|
| 1 | 클라이언트가 서버에 웹 페이지를 요청 |
| 2 | 서버가 요청 내용을 확인하고 처리 |
| 3 | 서버가 HTML, 이미지, 영상 등의 데이터를 응답 |
| 4 | 웹 브라우저가 받은 데이터를 화면에 표시 |
웹 브라우저(클라이언트) │ │ HTTP 요청 ▼ 웹 서버 │ │ HTTP 응답 ▼ 웹 브라우저에 웹 페이지 표시
HTTPS ( ~Secure)
| 구분 | 설명 |
|---|---|
| HTTPS | HTTP에 보안 기능을 적용한 통신 방식 |
| 암호화 기술 | SSL/TLS를 사용해 데이터를 암호화 |
| 데이터 보호 | 사용자와 서버가 주고받는 정보를 다른 사람이 쉽게 확인하지 못하도록 보호 |
| SSL | 과거에 사용하던 보안 프로토콜. 현재는 거의 사용하지 않음 |
| TLS | SSL을 개선한 최신 보안 프로토콜 |
| 사용 목적 | 로그인 정보, 비밀번호, 결제 정보 등 중요한 데이터 보호 |
| 웹 표준 | 현재 대부분의 웹사이트에서 HTTPS 사용 |
| 브라우저 경고 | HTTPS를 사용하지 않는 사이트에 Chrome 등의 브라우저가 보안 위험 또는 ‘안전하지 않음’ 경고 표시 |
URL
URL Uniform Resource Locator
- 네트워크 상에서 통합 자원의 위치를 나타내기 위한 규약
- 웹사이트 주소 컴퓨터 네트워크 상의 자원
| 프로토콜 | Scheme 포맷 예시 | 기본 포트 | 설명 |
|---|---|---|---|
| HTTP | http://example.com | 80 | 웹에서 일반적으로 사용하는 프로토콜 |
| HTTPS | https://example.com | 443 | TLS/SSL을 사용하는 보안 웹 프로토콜 |
| FTP | ftp://user:pass@example.com:21/path/file | 21 | 파일 업로드와 다운로드에 사용하는 프로토콜 |
| FILE | file:///C:/Users/example/file.txt | 없음 | 로컬 파일 시스템에 접근하는 방식 |
| WS / WSS | ws://example.com/socketwss://example.com/socket | 80 / 443 | 웹소켓을 이용한 실시간 통신 |
Request / Response 예시
GET Request Message
GET Response Message
HTTP Method
CRUD 작업
- Create, Read, Update, Delete 를 나타내며 기본적인 데이터 처리 기능을 의미
| HTTP Method | CRUD 작업 | 의미 |
|---|---|---|
GET | Read | 데이터 조회 |
POST | Create | 새로운 데이터 생성 |
PUT | Update | 기존 데이터 전체 수정 |
DELETE | Delete | 데이터 삭제 |
HTTP Message
Payload 페이로드 전송되는 데이터
- 함께 전달되는 헤더나 속성은 포함되지 않음
응용 계층 프로토콜: 무선공유기 DHCP
공유기 DHCP 서버 와 Client PC DHCP Client 사이에 PC의 내부 네트워크 상에서 사용 가능한 IP를 동적으로 할당받기 위한 프로토콜 서버 67 번포트, 클라이언트 68 번 포트
COMMENTS
GitHub 계정으로 로그인하여 댓글을 남길 수 있습니다. 댓글은 GitHub Discussions에 공개 저장되며, 작성 내용과 GitHub 프로필 정보가 다른 방문자에게 보일 수 있습니다.