본문 바로가기

네트워크/개념 정리

OSI 7계층이란?

[ OSI( Open System Interconnetion) 7계층이란? ]

직역하면 "개방형 상호접속 시스템의 7가지 계층" 이다.

 

[ OSI 7계층을 알려고 한 이유 ]

기본 개념이라고 알고있었기도 하고

회원가입시 전송시 암호화 방식중 SSL방식에서

전송계층과 응용계층이란 용어가 언급됐고 이해하기 위해

검색중 OSI라는 개념을 이해해야 했다.

 

[ 내가 생각하는 OSI 7계층의 필요이유 ]

pc든 어떤형태든 System 간의 상호작용이 필요할때 과정이 다를것이다

예를들어 pc방에서의 pc끼리의 통신과

pc방에서 외부 pc와의 통신의 과정은 두가지의 경우가 다를 것이라고 짐작이된다.

 

그리고 이런 통신관련한 일은 문제를 해결할때나

무언가를 만들어 나갈때 자주 언급이될 것이고.

어떠한 기준점에 따라서 구분을 해놓으면

앞으로 같은 일을반복할때 더 도움이 될것이라 생각해

OSI 7계층을 만들었다고 생각한다.

 

[ OSI 7계층 알아보기 ]

 

 

[ 1계층 - 물리계층(Physiacl Layer) ]

시스템이 아무리 소프트웨어 형태로 통신한다고 해도 그시작은 어떤 도구일 것이다

- 통신기기와 전송매체 사이의 모든 물리적 인터페이스

- 비트 전송을 위한 기계적,전기적 수단

 

[ 2계층 - 데이터 링크 계층(Data Link Layer) ]

이제 계층 별로 올라가는 것이다.

1계층인 물리계층에서 3계층인 네트워크 계층으로 바로 올라갈수는 없다

그래서 데이터 링크 계층이 존재하는 것이다.

 

그래서 데이터 링크의 계층이 하는일은?

데이터 링크 계층은 "직접 연결된" 서로 다른 2개의 네트워크 장치의 데이터 통신을 담당한다.

깊게 알려고할수록 복잡해지기에 우선은 "안전하게 통신 전달"이 주목적인 것만 생각하자.

 

MAC? MACadress?

추가로 2계층에서 MAC이 자주 언급되는데

MAC은 프로토콜 MACadress는 하드웨어 주소라고 표현한다

NIC(랜카드)제조사에서 랜카드안에 ROM안의

정보중 MAC ADRESS가 있다.

랜카드안의 있는 주소이기에 랜카드의 주소라고 생각해도 무방할 것같다

 

랜카드는 네트워크 통신을위한 물리적 네트워크 하드웨어 장치이다

그런데 MAC주소가 2계층과 관련돼 있고

바로 윗 계층이 3계층 네트워크 계층이니

네트워크 통신이전단계로 적절하다고 생각이 된다.

 

[ 3계층 - 네트워크 계층(Network Layer) ]

네트워크의 뜻을 검색해보면 

"데이터를 전달할수 있는 통신망" 정도로 생각되며

구글에서는 "쉽게말해 2대 이상의 컴퓨터들로

통신(이야기)할수 있는것" 이라고 돼있다.

 

그러니까 내가 배우는 이 it분야쪽에서는

pc가 다른 pc로 데이터를 전달할 때 통신망을

거쳐야하고 그과정에 있는 영역을

네트워크 계층이라고 하는것 같다.

그리고 꼭 필요하다는 것도 알수있다.

통신망은 여러가지 형태가 있었다.

 

알아보면서 제일 관심이간 것은 IP주소와 MAC주소의 관계였다.

 

IP주소는 소프트웨어에 있는 논리적 주소

MAC주소는 하드웨어에 있는 물리적 주소며

 

IP주소가 좀더 추상적이고

MAC주소가 좀더 구체적이였다

마치 데이터통신에 있어서

IP가 도로명주소 MAC주소가 지번주소 처럼 느껴졌다.

 

MAC주소만 있으면 되는데 IP주소까지 필요한 이유가 뭘까?

논리적인 근거는 없지만.. 느낌상 예시를 들자면

1~10반 학생 모두에게 사이다 1캔씩을 준다면

모든 학생들에게 일일이 주는것보다

각반 교실에 사이다를  1box씩 놓고가는 쪽이 일반적이다

각반의 선생님이나 반장이 반학생에게

사이다를 1캔씩 나눠줄 것이기때문이다.

 

적절한 비유일까?

처음에는 물론 이러한 방식이 무언갈 전달하는데 효과적이지만

그건 반마다 반장/선생님이 있는거고

이건 데이터 통신인데 비유가 적절한가? 라고 생각이 들었었다

하지만 컴퓨터가 그역할을 대신한다고 생각하니

어느정도 납득이 되기시작했다. 

 

그러니까 데이터를 받을수있는 장치가있는 곳기준으로

IP가 있으면 위와같은 방식으로 효율적인 처리가 가능한것이다.

 

[ 4계층 - 전송 계층(Transport Layer) ]

연결지향 데이터 스트림지원 ,신뢰성, 흐름제어 ,다중화등등 역할이 많고

"신뢰성 있는 데이터를 주고받을수 있게 해주는 계층" 이라는 말이 많이나온다.

transport라는 뜻이 운송하다 라는 뜻이라

계속 데이터가 전달 되는것은 맞는데 .. 여기서 뭔가 신뢰성이 생길만한

검증을 거친다는 뜻으로 이해가된다.

 

4계층의 대표적인 프로토콜이 TCP,UDP 이라고 소개된다.

TCP에는 hanshaking 방식이라는 뜻이 많이 나온다

hanshaking은 정보통신이 시작하기전에 변수를 동적으로 설정하는 뜻이라고 소개가되며

연결을 계속유지한다 라며 신뢰성에 관한 얘기가 많이나오는 반면

UDP는 연결하지 않은상태로 전송만한다 라는 맥락의 글을 보았을때


프로토콜에 따라 신뢰성을 보장해주지 않는경우도 있다는 것을 짐작할수있다.

반면에 신뢰성이라는 키워드가 많이보인다는 것에서

TCP프로토콜을 자주 사용하거나  그이외의

프로토콜또한 대체로 신뢰성이 높다고 판단할수 있었다.

 

처음에는 3계층도 전송의 영역이라 생각해

4계층과 3계층의 구분이 애매모호 하다느꼈지만

"마무리는 같은 IP내에서 일어나는 전송은

4계층에서 담당한다" 라고 정리하게 되었다.

 

[ 5계층 - 세션 계층(Session) ]

Session 단어의 뜻은 여러가지가 있지만 

대체로 "특정한 기간"이라는 뜻이 모든 단어의

핵심을 관통하는 것 같다.

 

그리고 네크워크 분야쪽에서는

"반영구적이며

정보교환을 정보교환을 하는둘이상의 통신장치

또는 컴퓨터와 사용사의 송수신 연결상태를 의미한다"

라고 되어있다.

 

말그대로 5계층에서는 통신하는 그어떠한 2개의것이

서로 1:1 연결되어 있는 구간이라는 의미가 강한 것같다.

이유는 2개이상의 컴퓨터라는 키워드를 못보았기 때문에 이렇게 생각했다.

 

눈에 띄는 키워드는 이렇다

세선 설정,유지,종료,정송,중단,복구 등의 기능이있다. ( 운영체제가 관리하는 영역같다 )

응용 프로세스가 통신을 관리하기 위한 방법

TCP/IP 세션을 만들고 없앤다

 

궁금한것을 검색해 보았다. (구글기준)

응용 프로세스 -> 특정 응용 업무의 데이터 처리를 실행하는 컴퓨터 시스템의 자원

TCP/IP 세션 -> "간단히 말하면 연결지향 신뢰성 보장 프로토콜 입니다.

                     IP와함께 사용하기에 일반덕으로 TCP/IP라 고 부릅니다."

 

TCP라는게 4계층에서 언급되기도 하였었고

4계층의 TCP가 "정보통신이 시작하기전 변수를 동적으로 설정" 이라는 뜻이

있었던걸 생각해본다면

 

5계층은 말그대로 두개의 통신이 연결된 시작점과 같은 느낌이며

이 통신을 5계층에서는 유지도하고 변경도하고 종료도하는

관리를 하는 계층이란 생각이 좀더 강하게 들었다.

 

Soket?

대표적인 프로토콜에서 Soket이 언급된글을 볼수 있었는데

Soket통신이라는 내용은 자주들었던 것이고

채팅기능을 구현하고 싶을때 필요한 기술이라 들었었는데

session계층의 의미를 어느정도 이해해보고 생각해보니

왜 필요하다고 했었는지 납득할수가 있었다.

 

[ 6계층 - 표현 계층(Presentaion) ]

6계층은 말그대로 표현하는 계층이다

상호접속간에 표현이란 말은 무엇을 의미할까?

암호화,인코딩형식 관련한 내용이 주를 이루는것을 보아

5계층이 서로 연결만 되있는 상태라면

6계층은 데이터를 보내는데 그 데이터를 보낼때 

어떠한 형식으로 보낼것인가?를

어떻게 표현할 것인가? 라고 의미하는 것같다

 

[ 7계층 - 응용 계층(Applocation Layer) ]

마지막 응용계층!

가장 위에있다 즉 가장 표면에있는 계층이다

그렇기에 이 7계층은 사용자에게 보여지는 부분이며

"사용자 인터페이스" 라고 생각하면 된다.

 

지금 내가쓰고있는 블로그도 7계층에 속한다 생각이된다.

GUI가아닌 CMD같은것도 7계층에 속한다 생각된다.