CS
  • CS-Study
  • database
    • B-Tree와 B+Tree
    • DB JOIN
    • DB Lock
    • DB 트래픽
    • DBCP (DB Connection Pool)
    • Flyway
    • Message Broker
    • MySQL InnoDB 스토리지 엔진
    • MySQL 엔진 아키텍처
    • RDB와 NoSQL
    • Redis
    • SQL Injection
    • 스키마 (Schema)
    • Table Scan과 Index Scan
    • Apache Kafka
    • Key
    • 뷰 (View)
    • 인덱스
    • 정규화
    • RDBMS, NoSQL의 클러스터링/리플리케이션 방식
    • 트랜잭션(Transaction)
    • 트랜잭션의 격리성(Transaction Isolation)
    • 프로시저와 트리거
    • DB 정규화 (Normalization)
  • etc
    • MSA
    • REST, REST API, RESTful
    • SOLID 원칙
    • TDD (Test-Driven Development)
    • 서버리스
    • 컨테이너와 도커
  • java
    • Collections
    • Garbage Collection
    • Generic
    • JDBC
    • Java Virtual Machine(JVM)
    • Java Thread
    • Java8 vs Java11 vs Java17
    • 객체지향 프로그래밍 OOP (Object Oriented Programing)
    • Optional
    • RxJava(Reactive Programming)
    • 문자열(String & StringBuffer & StringBuilder)
    • Synchronized
    • Virtual Thread
    • Wrapper Class
    • Equals()와 Hashcode()
    • final
    • Jackson 라이브러리
    • 리플렉션(Reflection)
    • static class와 static method
    • 스트림(Stream)과 람다(Lambda)
    • 스프링 프레임워크에서 사용되는 디자인 패턴
    • 예외처리(Exception)
    • Java Annotation
    • 추상클래스와 인터페이스
  • network
    • 3-way handshake
    • 4-way Handshake
    • DHCP(Dynamic Host Configuration Protocol)
    • DMZ(DeMilitarized Zone)
    • DNS(Domain Name System)
    • HTTP Method
    • HTTP 버전 비교
    • HTTP status code
    • HTTP
    • IP Address
    • Mutiplexing & Demultiplexing
    • OSI 7계층
    • SOP, CORS
    • TCP와 UDP
    • XSS와 CSRF
    • gRPC
    • Stateless와 Connectionless
    • 라우터 Router
    • 로드밸런서(Load Balancer)
    • 브라우저에 URL입력시 네트워크 상 일어나는 일
    • 서브넷 마스크, 게이트웨이
    • 웹 소켓과 소켓 통신
    • 쿠키(Cookie)와 세션(Session)
  • operating-system
    • IPC (Inter Process Communication)
    • 인터럽트
    • TLB
    • 스레싱 Thrashing
    • Thread Pool, Fork-Join
    • Thread Safe
    • 프로세스
    • 가상 메모리
    • 데드락 (DeadLock, 교착 상태)
    • 동기/비동기 & 블로킹/논블록킹
    • 동기화(Synchronization)
    • 메모리 할당과 단편화
    • 뮤텍스와 세마포어, 모니터
    • 세그먼테이션과 페이징
    • 운영체제
    • 캐시 메모리
    • Context switching(문맥 교환)
    • 컴파일
    • 파일 시스템
    • 페이지 교체 알고리즘(Page Replacement Algorithm)
    • 프로세서 스케줄링 알고리즘
    • 프로세스 주소 공간
  • spring
    • @Transactional
    • AOP(Aspect-Oriented Programming)
    • DTO, DAO, VO, Entity
    • DispatcherServlet
    • Hibernate, JPA, Spring Data JPA
    • Ioc와 DI
    • JPA 연관관계 맵핑
    • N+1 Problem
    • ORM
    • Persistence Context
    • SQL Mapper vs ORM vs QueryBuilder
    • Servlet Filter와 Spring Interceptor
    • Servlet
    • Spring MVC와 Spring Boot
    • Tomcat
    • WebFlux
Powered by GitBook
On this page
  • OSI 7계층이란?
  • OSI상의 통신 흐름
  • TCP/IP 4계층
  1. network

OSI 7계층

PreviousMutiplexing & DemultiplexingNextSOP, CORS

Last updated 1 year ago

OSI 7계층이란?

OSI 7 계층은 네트워크 통신을 구성하는 요소들을 7개의 계층으로 표준화한 것이다.

통신의 과정을 단계별로 파악할수 있기 때문에, 오류가 생긴 부분만을 접근할수 있다는 장점이 있습니다.

img

계층

설명

7계층 (응용 계층)

- 사용자와 직접 상호작용하는 응용 프로그램들이 포함된 계층 - HTTP, FTP, SMTP, Telnet 등과 같은 프로토콜이 대표적이다.

6계층 (표현 계층)

- 데이터의 형식을 정의하는 계층 (데이터 변환, 압축, 암호화 등)

5계층(세션 계층)

- 통신 시스템 사용자 간의 연결을 유지 및 설정하는 계층 (API, Socket) - 세션 설정, 유지, 종료, 전송 중단 시 복구 제공 - 전이중 통신과 반이중 통신 방식이 존재한다.

4계층 (전송 계층)

- 종단 간 신뢰성 있고 정확한 데이터 전송을 담당하는 계층 - 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행한다. - 데이터 전송을 위해 포트 번호를 사용하며 대표적인 프로토콜은 TCP와 UDP가 있다. - 전송 단위 : 세그먼트

3계층 (네트워크 계층)

- IP를 기반으로 데이터(패킷) 전송 경로를 결정하는 계층(라우팅) - 라우팅, 흐름제어, 세그멘테이션, 오류 제어 등을 수행한다. - 목적지까지 안전하고 빠르게 데이터를 보내는 기능으로 최적의 경로를 설정해야한다. - 전송 단위 : 패킷

2계층 (데이터 링크 계층)

- MAC 주소를 사용하여 통신한다. - 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층 (브리지, 스위치 ) - 전송 단위 : Frame

1계층 (물리 계층)

- 데이터를 전기 신호로 바꾸어주는 계층 (통신 케이블, 리피터, 허브) - 전송 단위 : Bit

OSI상의 통신 흐름

  1. 발신 측에서 응용 계층(7 Layer)부터 각 계층마다 헤더를 붙여 캡슐화를 진행

  2. 수신 측에서 물리 계층(1 Layer)부터 올라가며 헤더를 뗴어 해당하는 데이터를 추출하는 디캡슐레이션을 진행

    ex) 데이터가 목적지로 이동할 때, 네트워크 계층(3 Layer)에서 IP헤더에 있는 프로토콜 정보를 이용해 데이터가 TCP인지 UDP인지 식별후 그에 따른 처리를 전송 계층(4 Layer)에서 수행한다.

TCP/IP 4계층

  • 네트워크 전송시 데이터 표준을 정리한것이 OSI 7계층이라면, 실제 해당 이론을 사용하는 표준은 TCP/IP 4계층이다.

  • OSI 7계층을 4-5계층으로 분류하여 적용한 것

계층

설명

4계층 (응용 계층)

- 사용자와 가장 가까운 계층으로, 사용자-소프트웨어 간 소통을 담당하는 계층 - 대표적인 프로토콜 : HTTP, FTP, DNS 등

3계층 (전송 계층)

- 통신 노드 간 신뢰성 있는 데이터 전송을 보장하는 계층 - IP와 포트번호를 이용하여 프로세스와 통신 - 대표적인 프로토콜 : TCP, UDP - 데이터 단위 : 데이터 그램

2계층 (인터넷 계층)

- 통신 노드 간의 IP 패킷 전송 및 라우팅을 담당하여 서로 다른 네트워크 간의 통신을 가능하게 한다. - 대표적인 프로토콜 : IP, ARP, RARP - 데이터 단위는 패킷

1계층 (네트워크 인터페이스 계층)

- MAC주소를 활용하여 물리적으로 장비간 데이터 전송을 담당하는 계층 (이더넷, 와이파이 등) - 데이터 단위는 프레임

image
img