OSI 7 계층, TCP/IP 4 계층 정리
네트워크 과목의 뼈대가 되는 OSI 7 계층, 그리고 이것과 비슷한 빈도로 언급되는 TCP/IP 4계층.
어디서는 전자로, 어디서는 후자로 설명되어 헷갈리기도 한다.
OSI 7계층 모델과 TCP/IP 4계층 모델을 살펴보고, OSI 모델을 기준으로 각 계층을 하나씩 살펴보자.
목차
1. OSI 7 계층 개요
2. OSI 계층별 특징
1. OSI 7 계층 개요
네트워크가 처음 나왔을 때 정해진 규칙이 따로 없었기 때문에 다른 시스템끼리의 호환성 문제가 발생했다. 이를 해결하기 위해 표준을 만들 필요가 있었으며 1984년 국제표준화기구(ISO)에서 처음으로 OSI 7 모델을 개발 하였다.
OSI 7 계층이란 표준화를 위한 네트워크 모델이라고 생각하면 되겠다('이 모델에 맞춰서 시스템 만드셈' 이런 용도)
OSI 7 계층은 통신이 일어나는 과정을 7개의 단계로 구분하였으며 아래와 같은 계층 구조를 가진다.
OSI 7 계층 특징
- 통신의 과정을 7개 단계로 나눴으며, 단계별로 파악이 가능
- 각 계층은 독립적인 모듈로 구성
- 각 계층은 상하 관계
TCP/IP 4계층 모델
네트워크를 공부하다보면 OSI 7 계층 모델과 같이 등장하는 것이 TCP/IP 4계층 모델이다. 어디에서는 OSI 7 계층이 사용되고, 어디서는 TCP/IP 4계층이 사용되는 것을 볼 수 있다. 어떤 차이가 있는 것일까?
간단히 말하자면, OSI 7 계층의 경우 이론 설명을 위해 많이 사용되며(계층을 7개로 나눠놨으니 각각에 대해 설명을 하기 쉽다) 네트워크 표준으로 채택되지 않았다. 반면, TCP/IP 4계층은 OSI 7 계층 이후에 나온 모델이며, 네트워크 표준으로 채택되어 실무에서 널리 사용하고 있다.
OSI 7 계층 = 이론적인 관점을 설명하기 위해 사용
TCP/IP 4계층 = 실무에서 많이 사용
2. OSI 7 계층별 특징
사용자와 직접 상호작용하는 응용 계층에서 시작해서 Top-Down 방식으로 설명을 드리겠다.
응용 계층(7계층)
- 사용자와 직접 상호작용하며 서비스간 통신을 지원
- 송신측 - 사용자로부터 데이터를 입력받아 하위 계층으로 전달, 수신측 - 하위계층에서 전송받은 데이터를 사용자에게 전달
- 여러 응용 프로그램이 이 계층에서 동작(네이버, 유튜브 등)
- 대표 프로토콜 - HTTP, DNS, Telnet, FTP
표현 계층(6계층)
- 송신측과 수신측의 데이터 호환성을 위해 데이터의 형식을 정의하고 표준화를 담당
- 송신측 - 인코딩, 암호화, 수신측 - 디코딩, 복호화
- 표현 계층에서는 아래 작업이 수행된다.
- 데이터 변환 - 데이터 형식 정의, 데이터 교환시 형식 변환(eg. 송신 = UTF-8, 수신 = EUC-KR 사용)
- 압축 - 효율적인 데이터 전송을 위한 압축
- 암호화 - 데이터를 암호화하여 보안 강화
- 대표 프로토콜 - JPEG, GIF
세션 계층(5계층)
- 양 끝단 세션의 생성, 유지, 종료를 담당
- 대화제어(연결 시작, 유지, 종료), 흐름제어(데이터 속도 조절), 오류 복구 등을 수행
- TCP/IP 계층에서 전송 계층이 하는 일 중 일부를 진행
- 대표 프로토콜 : RPC, PPTP
헷갈리는 부분 정리
1. 세션 계층 = TCP 프로토콜과 유사한데, TCP/IP 4계층에서 전송계층으로 포함되는건가?
세션 계층을 정리하면서 TCP 프로토콜이 지원하는 기능이 여기에 해당하는 것을 볼 수 있다. TCP/IP 4계층과의 비교 그림에서는 세션 계층이 응용 계층으로 포함되듯이 그렸는데 사실은 TCP/IP 4계층의 전송 계층에 대응된다.
2. 세션계층의 세션은 무엇인가?
대부분의 블로그에서 세션 계층 설명에서 아래와 같이 정리를 해놓았다.
- TCP/IP 세션을 만들고 없애는 역할
- 세션 = 클라이언트와 웹 서버 간 네트워크 연결이 지속 유지되고 있는 상태(브라우저 시작과 종료)
이렇게 정리를 해놔서 헷갈렸다. TCP에서 말하는 세션과 HTTP에서 말하는 세션이 다른 것으로 이해를 했는데 같은 곳에 있다니..
내 나름대로 정리를 해보자면 각 세션은 의미하는게 서로 다르며, 위에서 작성된 세션은 각각 TCP의 가상회선과 HTTP에서 세션을 의미한다. 또한, 세션 계층에서의 세션은 이보다 좀 더 일반적인 통신의 연결 상태를 의미한다고 보면 된다.
TCP 세션 = 송신측과 수신측이 3-way-handshake를 통한 논리적 연결 (가상회선)
HTTP 세션 = 웹 서버와 브라우저 간 연결
세션 계층의 세션 = 두 시스템의 통신시 일반적인 연결
전송 계층(4계층)
- 종단 간 신뢰성 있는 통신을 가능하게 해주는 계층
- 오류 검출 및 복구, 흐름 제어, 중복 검사 등이 수행될 수 있음
- 헤더 : 포트 번호, 체크썸
- 전송 단위 : 세그먼트(Segment), 데이터그램(Datagram)
- 대표 프로토콜 : TCP ,UDP
네트워크 계층(3계층)
- 송신 호스트에서 목적 호스트로 데이터 패킷을 전달하는 역할
- 수행 작업
- 라우팅 - 여러 경로 중 최적의 경로를 선택
- 패킷 전송 - 목적 호스트까지의 패킷 전송을 담당
- 서비스 품질 제어(Quality of Service, QoS) - 특정 패킷에 우선순위를 설정하거나 특정 대역폭을 보장받을 수 있음
- 대표 프로토콜 - IP
데이터 링크 계층(2계층)
- 이웃한 노드 사이의 신뢰성 있는 데이터 전송을 담당
- 물리계층을 통해 전송된 전기적 신호의 오류 감지 및 수정 수행
- MAC 주소를 가지고 통신
- 전송 단위 - 프레임(Frame)
- 대표 프로토콜 - Ethernet, WIFI
전송 계층이 양 종단 간의 신뢰성을 보장했다면 데이터링크 계층은 이웃 장치 간의 신뢰성을 보장
물리 계층(1계층)
- 비트를 전기신호로 변환하고 물리적으로 전송하는 역할
- 0,1 로 이루어진 데이터를 전기신호로 변환
- 전기신호를 케이블, 광섬유, 무선 매체를 통해 전송
- 프로토콜 존재 x(하드웨어를 다루기에)
요약
OSI 7 모델
응용계층(7계층) - 사용자와 상호작용하며 서비스의 통신을 지원
표현계층(6계층) - 데이터의 형식 정의 및 표준화
세션계층(5계층) - 종단 간 세션의 연결,유지,해제를 하며 데이터 흐름을 관리
전송계층(4계층) - 종단 간 데이터 신뢰성에 대한 처리
네트워크 계층(3계층) - 송신측에서 수신측까지 신속한 데이터 전송
데이터 링크 계층(2계층) - 이웃 노드 간 신뢰성 있는 통신을 담당
물리 계층(1계층) - 노드 간 전기신호 전달
[참고 링크]
https://backendcode.tistory.com/167#google_vignette
https://dev-coco.tistory.com/161