📌 이 포스팅에서는 Network의 기본 규칙인 OSI 모델과 TCP/IP모델에 대해 정리하였습니다.
🔥 OSI 모델 & TCP/IP모델
🔥 캡슐화 & 역캡슐화
✔️ 과거 표준 규격이 없었던 시절에는 같은 회사의 컴퓨터끼리만 통신이 가능하는 등 불편함이 존재했다.
✔️ 이에 ISO(International Organization for Standardization)에서 OSI라는 표준 규격을 제정했다.
✔️ OSI 모델은 네트워크 기술의 기본이 되는 모델로, 데이터 송수신 과정에서 발생되는 여러가지 일을 7개의 계층으로 규정했다.
✔️ 7개의 계층으로 분리한 이유는 필요한 작업들을 계층에 따라 독립적으로 구분하고 순차적으로 처리함으로써, 디버깅이 용이하고 모듈간 교체 및 확장 등이 자유롭기 때문이다.
✔️ OSI 7계층은 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층으로 아래처럼 나뉜다.
- 응용 계층(L7) : 이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공
- 표현 계층(L6) : 문자 코드, 압축, 암호화 등 데이터 변환
- 세션 계층(L5) : 세션 체결, 통신 방식을 결정
- 전송 계층(L4) : 신뢰할 수 있는 통신 구현
- 네트워크 계층(L3) : 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소 결정
- 데이터 링크 계층(L2) : 네트워크 기기 간의 데이터 전송 및 물리 주소 결정
- 물리 계층(L1) : 시스템 간의 물리적인 연결과 전시 신호를 변환 및 제어
✔️ L1~L3 계층은 하드웨어 영역으로써, 각 층마다 매칭되는 하드웨어 장치가 존재한다. 이에 해당 계층의 역할들은 하드웨어가 실질적으로 수행하는 영역이다.
✔️ L4~L7 계층은 소프트웨어 영역이며, L4~L6 계층은 OS, L7계층은 우리가 사용하는 프로그램이 해당 계층의 역할을 수행한다.
✔️ 데이터를 송신하는 측은 L7 계층에서 L1 계층 방향으로 데이터를 전달하고, 데이터를 수신하는 측에서는 L1 계층에서 L1층으로 역으로 데이터를 전달한다.
✔️ TCP/IP 모델은 OSI 7계층의 L7~L5 계층을 응용 계층으로 묶고, L4 계층을 전송 계층, L3 계층을 인터넷 계층, L2, L1 계층을 네트워크 계층으로 묶은 모델이다.
✔️ 독립적인 계층을 구성하는 방식은 정답이 존재하지 않지만, 분리된 모듈이 서로 의존도가 너무 높거나, 모듈이 매우 작은 단위로 구성된 경우 응집도가 떨어진다. 이는 소프트웨어적 가치 하락의 요인으로 이어진다.
✔️ 더욱 단순하면서도 의존도와 응집도에서 우세하게 평가된 TCP/IP 모델이 시장 점유가 높아지면서, 현대의 네트워크 통신 규격은 TCP/IP를 따르고 있다.
✔️ 전송할 데이터를 하위 계층으로 전달할 때, 각 층에서 데이터의 식별 정보를 담은 헤더(트레일러를 붙이는 것 포함)를 붙이는 과정을 캡슐화라 한다.
✔️ 이와 반대로, 데이터를 수신한 측에서 데이터를 각 계층으로 전달할 때 헤더를 제거(L2 계층에서 트레일러를 제거하는 것 포함)해 나가는 것을 역캡슐화라 한다.