OSI(Open System Interconnection) 7계층은 ISO(International Standard Organization), 국제표준화기구가 네트워크 통신 모델로 개발한 모형이다.
이전 포스팅에서 네트워크 기본용어를 정리하면서 프로토콜을 정리했었다. 프로토콜은 계층 간의 데이터를 처리하는 절차적 순서를 담은 통신 규약이다. OSI 7계층은 계층 간 적용되는 프로토콜이 따로 있다. 이는 계층 별로 적용되는 데이터 해석방식이 모두 다르다는 의미다. 이런 것을 두고 '모듈화'라고 한다.
통신이 이루어지는 시스템은 거대하다. 거대한 시스템을 기능 별로 나누어야 관리가 용이해진다. 그 분류 기준이 '프로토콜(Protocol)'이 된다. 각 계층은 상하위계층 사이에 인터페이스를 두고 소통한다. 그러므로 각 계층은 독립적인 활동이 보장된다. 네트워크 통신은 OSI 7계층 모델를 토대로 모듈화되어 있으므로 유지보수와 관리에 용이하다.
OSI 7계층 구성
1. 물리 계층 (Physical Layer)
실질적으로 데이터가 이동하는 통로이다. bit단위로 전송되고 bit가 이동하는 통로인 전송매체에 따라 데이터 전송 방식과 특징이 달라진다.
2. 데이터 링크 계층(DataLink Layer)
2계층 헤더에 저장된 MAC주소는 데이터가 이동해야할 물리적 장비의 주소를 나타낸다. 전송과정에서 발생하는 오류를 검출하고 송신측에 재송신을 요청한다. 흐름제어를 하여 입력으로 들어오는 데이터가 버퍼에 쌓여 유실되지 않도록 한다. 데이터 단위는 프레임이다.
3. 네트워크 계층 (Network Layer)
MAC 주소가 라우터 장비를 가리키면 데이터들은 라우터에 들어온다. 라우터는 2계층 헤더를 벗기고 3계층 헤더를 읽는다. 3계층 헤더는 IP 주소가 들어있다. 라우터는 IP주소의 네트워크 주소를 담당하는 라우터를 파악한다. 파악이 완료되면 라우터는 2계층 헤더를 다시 프레임에 씌운다. 해당 헤더의 MAC 주소는 파악한 라우터를 가리킨다. 라우터를 파악하는 과정에서 라우팅 테이블을 활용하여 근처 라우터들의 라우팅 상태를 파악하여(혼잡제어) 최적의 경로를 탐색한다. (경로배정기능)
4. 전송 계층 (Transport Layer)
네트워크 계층을 통해 호스트와 호스트가 연결되었지만 통신은 이루어지지 않는다. 그 이유는 사용자는 호스트에서 정보를 요청한 것이 아니기 때문이다. 사용자는 호스트 안의 프로그램에서 정보를 요청한 것이다. 그러므로 프로그램까지 가는 주소가 필요하다. 이것이 포트번호이다. 포트번호는 프로그램에게 부여되는 번호이다. 4계층 헤더 안에는 송신 측 포트번호와 수신 측 포트번호가 저장되어 있다.
4계층 프로토콜에는 TCP 프로토콜과 UDP 프로토콜이 있다.
TCP(Transmission control Protocol)는 연결형 서비스를 지원한다. 연결형 서비스란 미리 데이터 전달 경로를 설정한 후, 통신이 이루어지는 방법이다. 전화기처럼 상대방이 받아야 연결되는 원리와 같다. 그래서 정확성을 추구한다. 핸드셰이크(HandShake) 과정을 거치면서 데이터가 정확히 도착했는지 여부를 검사하고 검사가 완료되면 진행한다. 그래서 통신 속도가 느리다.
UDP(User Datagram Protocol)는 비연결형 서비스를 지원한다. 비연결형 서비스란 수신측의 연결여부와는 상관없이 송신측이 독립적으로 수신 측에 전송한다. 안정한 경로를 설정한 후 통신하는 것이 아니라, 독립적인 과정으로 경로 선택을 하며 데이터가 전송된다. 정확한 전송보다는 빠른 전송에 조금 더 초점을 맞춘 프로토롤로 데이터의 분실이나 변형이 일어날 확률이 크지만 속도가 빠르다. 실시간 스트리밍에 사용된다.
cmd 창을 열어 > netstat -ano 명령어를 입력하면 현재 프로그램들의 연결상태를 확인할 수 있다.
이렇듯 전송계층은 어떤 방식으로 통신이 이루어질지 규격을 정하는 역할을 한다.
5. 세션 계층 (Session Layer)
세션은 연결의 개념을 다룬다. 여기서 연결은 호스트와 호스트의 연결 같은 낮은 개념의 연결이 아니다. 웹사이트에 로그인 후, 접속 유지와 같은 상위적 개념의 연결을 담당하는 계층이다. 접속 유지와 같이, 수신 측과 송신 측이 서로 데이터를 주고 받으려면 같은 상태를 유지해야한다. 이를 동기화라고 한다. 이와 같은 동기 기능을 담당한다.
6. 표현 계층(Presentation Layer)
지금까지는 데이터가 10010100 같은 2진 데이터였지만 이제부터는 실제 인간이 사용하는 데이터로 바뀌어야한다. '표현 계층'은 '표현'을 담당하다. 데이터는 언제든 탈취될 수 있기 때문에 암호화되어 전송된다. 그러므로 수신 측은 데이터를 복호화해야한다. 이런 데이터의 암호화와 복호화를 담당하는 계층이 표현 계층이다. 이를 비롯해, 압축을 한다거나 UTF-8이나 ASCII 코드와 같이 문자표로 인코딩하거나 디코딩 하는 과정도 표현 계층에서 일어난다.
7. 응용 계층(Application Layer)
파일 공유, 전자 메일 같은 실제로 사용자가 사용하는 기능을 제공하는 계층이다. 실제로 정보가 생성되는 곳이기도 하다. 7계층에서 생성된 정보가 6계층에서 인코딩되고 암호화 되고 압축 된 후, 5계층 동기화 정보와 함께 4계층에서 수신측 호스트의 프로그램으로 이동하는 것이다.
'CS > NETWORK' 카테고리의 다른 글
교환 시스템(Switching) (0) | 2021.06.24 |
---|---|
TCP/IP 모델 (0) | 2021.06.21 |
Network 기본용어정리 (0) | 2021.06.21 |
다중화기(Multiplexer) (0) | 2021.06.21 |
시그널 기본 용어 (0) | 2021.06.21 |