1. 개요
'네트워크'를 배운다면 OSI 7 계층의 흐름을 알고 있어야 한다. 외워야 한다가 아니라 절대적으로 이해해야한다.
OSI 7 계층의 흐름을 이해하고 나면 앞으로 네트워크라는 것을 배울 때 더 쉽게 접근할 수 있다.
본 게시물은 형식적인 개념보다 나의 경험을 토대로 최대한 이해하기 쉽게 풀어나가보려고 한다.
2. 왜 OSI 7 계층이 필요한가?
OSI 7 계층은 ISO(국제표준화기구)가 통신에 대한 구조를 정의하고 규약한 모델이다.
그렇다면 왜 이렇게 귀찮게, 통신에 대한 규약을 만들어 놓았느냐라는 것이다.
만약 상대방과 대화를 주고 받는다고 가정을 한번 해보자, 대화가 어떻게 되든지 나는 상대방과 의사표현을 할 수 있으면 된다. 글로 써서 내 의사를 표현할 수도 있을 것이고, 말을 통해 내 의사를 표현 할 수도 있을 것이고, 수화를 통해 의사를 전달 할 수도 있을 것이다. 이처럼, 상대방과 나의 의사표현(데이터) 를 전달하는 것 (통신)에는 어떠한 과정이 존재 한다. 과정의 방법은 굉장히 많다. 너는 이 방식 나는 이 방식 멋대로의 방법을 사용한다면 어떻게 될까?
인터넷이라고 불리우는 거대한 네트워크는 모든 사람을 이어주는 곳 인데, 상대방을 생각하지 않고 자기만의 방법으로 통신한다면 인터넷의 존재가 불가능하다. 통신에서 규약이란 것은 매우 중요하다. (규약: 프로토콜에 대해서 나중에 다뤄본다) 이처럼 모든 사람이 정해진 약속대로 통신할 수 있도록 만들어진 통신 구조가 OSI 7 계층 모델이 되는 것이다.
이것은 약속이기 때문에, 인터넷을 사용한다면 내맘대로 바꿀수 도 없고 바꿔서도 안된다.
3. OSI 7 계층 VS TCP/IP 4 계층?
결론부터 말하자면 OSI 7계층이 좀 더 넓은 관점의 통신을 위한 모델이고 TCP/IP 4계층은 인터넷 네트워크를 위한 모델이다. 즉, OSI 7 계층이 TCP/IP 4계층을 포함하고 있다는 것이다. 통신이라는 것은 인터넷 네트워크 만을 의미하지는 않는다.
우리가 알고 있는 HDMI 케이블도 사실은 TV나 모니터와 통신하기 위한 케이블이다. 이어폰, 마우스, USB 등도 어떠한 디바이스와 통신하기 위한 케이블이다. OSI 7 계층은 이러한 케이블도 통신할 수 있도록 규약을 정의 할 수있다.
반면에 HDMI 케이블이 인터넷을 사용하기위한 모델은 아니기 때문에 TCP/IP 4계층으로 정의가 불가능하다.
TCP/IP는 인터넷 네트워크를 위한 모델이 되는 것이다. 당연하게도 TCP/IP 4계층은 OSI 7 계층 모델대로 만들어졌기 때문에 OSI 7계층을 공부한다면 TCP/IP 4계층을 같이 공부할 수 있는 것이다.
3. OSI 7 계층 살펴보기
1계층 : 물리 계층 (Physical Layer)
1계층은 물리 계층으로 물리적인 연결과 관련되 정보를 정의한다. 주로 전기적인 신호를 전달하는데 초점이 맞춰져 있으며, 주요 장비로는 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭 등이 있다. 1계층은 전기 신호를 그대로 잘 전달하는 것이 목적이므로 전기 신호가 1계층 장비에 들어오면 이 전기 신호를 재생성하여 내보낸다. 전기의 신호를 잘 전달하는 것이 목적이므로 주소의 개념의 없다. 그래서 1계층에서 작동하는 허브(더미 허브 이다 헷갈리지 마시길..) 같은 경우에는 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송하는 것이 큰 특징이다.
2계층 : 데이터링크 계층 (DataLink Layer)
2계층은 데이터 링크 계층으로 1계층에서 전달된 전기 신호를 모아서 우리가 알아볼 수 있는 데이터의 형태로 처리한다. 2계층에서 부터는 주소 개념을 정의하고 정확한 주소로 통신이 되도록 하는 데 초점이 맞추어져 있다. 1계층에서는 주소의 개념이 없어 출발지와 목적지를 구분 할 수 없지만, 2계층에서는 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행한다. 2계층에서는 물리적 주소 (MAC)의 개념이 생긴다. 이더넷 기반 네트워크의 2계층에서는 에러를 탐지하는 역할만 수행한다. 2계층의 장비로는 MAC 주소를 이해 할 수 있는, NIC(네트워크 인터페이스 카드, 랜 카드, 네트워크 어댑터 등 생각하는 그게 다 맞다), 그리고 MAC주소를 보고 통신해야 할 포트를 지정해 내보내는 역할을 하는 스위치(L2)가 있다 (스위치 허브도 똑같은 역할을 한다).
3계층 : 네트워크 계층 (Network Layer)
3계층에서는 IP 주소와 같은 논리적 주소가 정의 된다. 데이터 통신할 때는 두 가지 주소가 사용되는데 2계층의 물리적인 MAC 주소와 3계층의 논리적인 IP 주소 이다. MAC 주소와 달리 IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 나뉜다. (물론 내가 알기론 장치에 따라서 고유적 MAC 주소도 변경할 수 있는 걸로 알고 있긴 하지만 안 바꾸는 것이 대부분이 이기 때문에..) 3계층에서 동작하는 장비는 정의한 IP 주소를 이해하고 최적의 경로를 찾아 해당 경로로 패킷을 전송하는 역할을 하는 라우터가 있다. (라우터는 L3스위치라고도 불림, 예전에는 비교했지만 이제는 무의미해져서 L3스위치/라우터를 분류하지 않는다. 이에 대해서는 네트워크 장비 카테고리 게시물에서...하여튼 목적은 둘다 IP 주소를 이해하고 최적의 경로를 찾아 해당 경로로 패킷을 전송하는 것이다 )
4계층 : 전송 계층 (Transport Layer)
1,2,3계층들은 신호와 데이터를 올바른 위치로 보내고 실제 신호를 잘 만들어 보내는데에 집중 된다. 4계층은 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 한다. 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 생길 수 있는데, 바로 잡아줄 수 있는 역할을 한다. 패킷이 유실되면 재전송을 요청할 수 있고, 순서가 뒤바뀌더라도 바로잡을 수 있다. 패킷에 보내는 순서를 명시한 것이 시퀀스 번호이고 받는 순서를 나타낸 것이 ACK 번호 이다. 뿐만 아니라 많은 애플리케이션을 구분할 수 있도록 포트 번호를 사용해 상위 애플리케이션을 구분한다. 4계층에서 동작하는 장비는 로드밸런서(L4스위치), 방화벽 등이 있다. 이 장비들은 애플리케이션 구분자 (포트 번호)와 시퀀스,ACK 번호 정보를 이용하여 부하를 분산하거나 보안 정책을 수립하여 패킷을 통과하고 차단하는 기능을 수행한다.
5계층 : 세션 계층 (Session Layer)
여기서 부터는 OS와 소프트웨어에서 관리되는 계층이다..ㅎㅎ
5계층 세션 계층에서는 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 한다. 흔히 우리가 말하는 “세션”을 관리하는 것이 주요 역할이다. 에러로 중단된 통신에 대한 에러 복구와 재전송도 수행한다.
6계층 : 표현 계층 (Presentation Layer)
표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위하여 하나의 통일된 구문 형식으로 변환하는 기능을 수행한다. 일정의 번역기나 변환기와 같은 역할을 하며, 인코딩, 암호화, 압축, 코드 변환과 같은 동작이 이 표현 계층에서 이루어진다.
7계층 : 응용 계층 (Application Layer)
최상위 계층인 7계층에서는 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행한다. 네트워크 소프트웨어의 UI, 입.출력 부분을 정의하는 것이 응용계층에서는 역할이다. 엄청나게 많은 프로토콜이 있지만 대표적으로 HTTP, SMTP, FTP, TELNET 등이 있다.
'Network' 카테고리의 다른 글
[L1] 모뎀 (Modem) (0) | 2022.11.26 |
---|---|
[L1] 케이블 (전송매체) (0) | 2022.11.22 |
[L2] L2 스위치 / 스위치 허브 (0) | 2022.11.21 |
[L1] 더미 허브(Dummy Hub) (0) | 2022.11.15 |
[L1] 리피터(Repeater) (0) | 2022.11.15 |