Skip to content

OSI 7 계층 모델

OSI 7 계층 모델이 발표되기 전에, 컴퓨터 네트워크는
각각 벤더들마다 독립적인 프로토콜을 사용하여,
이 기종간의 기기의 통신을 하기가 상당히 힘들었다.
예로써, 애플 컴퓨터와 IBM 컴퓨터간의 통신을 하고자 할 경우,
서로의 다른 프로토콜을 사용하기 때문에
번역이 가능한 별도의 장치를 설치하거나,
소프트웨어적으로 많은 처리를 해 주어야 하였다.
이는 시스템을 변경하거나 다른 장치와 통신을 해야 할 경우,
많은 비용이 들었다.
그리하여, 이 기종간의 하드웨어나 소프트웨어의 변화 없이
서로 다른 시스템 간의 통신을 원할하게 하고자 하여,
1984년에 국제 표준 기구(ISO, International Standards Organization)에서 OSI 7 계층 네트워크 표준 모델을 발표하였다.

OSI 7 계층 모델은 아래 그림과 같이 7개의 계층으로 구성되어 이다.

제 1계층은 물리 계층 (Physical Layer)이고, {LAN cable.. etc}
제 2계층은 데이터링크 계층(Datalink Layer), {ethernet}
제 3계층은 네트워크 계층 (Network Layer),
제 4계층은 전송 계층(Transport Layer),
제 5계층은 세선 계층(Session Layer),
제 6계층은 표현 계층(Presentation Layer),
제 7계층은 응용 계층(Application Layer) 이다. {IE,NC}

★ Physical Layer

네트워크를 물리적으로 연결하는 네트워크 카드,
케이블과 케이블을 통에 전송돼는 데이터에 대한 프로토콜
즉 비트(bit)로 전환된 데이터를 어떻게 케이블로
전송하는지를 정의 하는 규약이다.

케이블에 대한 규약:
케이블의 전송매체(동선, 광케이블), 케이블 최소 길이,
케이블 최장길이, 연결할수 있는 최대 컴터수
데이터전송방식에 대한 규약:
이더넷의 CSMA/CD(Carrier Sense Multiple Access/ collision detection), 토큰링의 Token, apple의 localtalk, 받은 데이터를 상위 계층에 전달하는 방법

물리층에서는 물리적 매체를 통해 비트 흐름을 전송하기 위해 필요한 기능들을 조정한다.
물리층은 인터페이스의 기계적`전기적 규격, 그리고 전송매체를 다룬다.
우리가 사용하는 케이블 따위의 정의를 물리층에서 담당한다는 뜻. RJ 45, AUI 등등…
또한 물리층은 물리적 장치와 인터페이스가 전송을 위해 필요한 기능과 처리절차를 규정한다.

– 인터페이스와 매체의 물리적 특성 : 물리층은 장치와 전송매체 간의 인터페이스 특성을 규정하며, 또한 전송매체의 유형에 대해서도 규정한다.

– 비트의 표현 : 물리층의 데이터는 어떤 해석이 필요없는 비트의 스트림으로 구성된다. 한마디로 0과 1의 쇼~라고 보면된다. 비트를 전송하려면 전기나 광으로 보내야한다. 물리층은 이런 부호화의 유형을 규정한다.

– 데이터 속도 : 전송속도(bps : bit per second로써 초당 전송되는 비트수다.. 여기서 여담을 하자면 8bit = 1byte이다. 즉, 속도가 80,000bps라고 해서 초당 80,000개의 문자를 보내는 것이 아니라 10,000개의 문자를 보내는 것이다.)도 물리층에서 규정한다.

%데이터 전송의 이론적 속도
adsl은 프리미엄 : 10M bit / sec이다.
즉 10M / 8 = 1.2M, 1초에 1.2M를 전송할수 이다.
익스 플로어 다운로드 창에서 나오는 전송 속도가 여기에 해당된다.
일반적으로 라이트를 쓸경우 2M bit / sec
즉 2M / 8 = 1초에 256k를 전송할수 이다.
그러나 실제적으로는 최대값의 절반정도의 속도가 나온다.

전송 속도 비교
T1 = 1544K bps
E1 = 2048K bps
T3 = 45M bps

– 비트의 동기화 : 송신자와 수신자는 같은 비트를 사용해야한다. 즉, 클럭이 같아야한다. 무슨소리냐면 회선에는 계속적으로 신호가 오고간다. 여기서 내가 보낸 신호가 어디서부터 어디까지다~라고 말해주는 것이 클럭이다. 이것이 송수신간에 같아야 내가 보낸 데이터가 어디서부터 어디까지인지 수신측에서 알 수 이다.

– 회선 구성 : 물리층은 매체에 대한 장비의 연결과 관련이 이다. 점 대 점 구성에서 두 장치는 전용 링크로 연결하는 반면, 다중점 구성에서 링크는 여러 장치들이 공유하게 된다.

– 물리적인 접속형태 : 물리적인 접속형태는 네트워크를 구성하기 위해 장치를 연결하는 방법을 규정한다. 스타형, 버스형, 링형, 망형 등등…

– 전송방식 : 물리층은 2개의 장치간에 이루어지는 전송방향을 규정한다. 전송방식에는 단방향, 반이중, 전이중 방식이 이다.

우선 각각의 특성을 살피면…

* 단방향 방식 (Simplex mode) : 이것은 쉽게 생각하면 TV라고 보면된다. 우리는 방송국이 보내주는 전파를 일방적으로 보고만 있지 우리가 TV를 통해 방송국에 뭐라고 할수는 없다. 즉, 한쪽은 보내고 한쪽은 받기만 하는것이다.

* 반이중 방식 (Half-duplex mode) : 이것은 워키토키라고 생각하면 된다. 무전기는 한사람이 말을 하고 ‘오버’라는 신호를 보내 내가 말이 다 끝났음을 알리고 상대방이 말을 하게 하는 것이다. 즉, 서로 신호를 주고 받을 수 있지만 동시에 하지는 못한다.

* 전이중 방식 (Full-duplex mode) : 이것은 전화기다. 동시에 두사람이 말해도 된다. 즉, 동시에 신호를 주고받을 수 이다.

★ Data Link Layer :
Physical 계층 위에 있는 계층으로 네트워크 계층과 Physical 계층을 연결하는 계층이다.
이 데이터링크 계층은 더 새분화 돼어 MAC(Media Access Control)계층과 LLC(Logical Link Control)으로 나눠져 이다.

MAC계층은 Physical 계층쪽에 있으며 LLC는 네트워크 계층쪽에있다.
MAC계층의 역활은 물리적 주소와 frame synchronization, error checking를 담당한다. 그래서 모든 NIC 카드에는 고유의 MAC 주소가 이다. 주소의 길이는 48비트이다.
LLC계층은 flow control을 담당한다.

Ethernet은 랜연결 규약으로 제록스, 인텔, DEC가 합동개발했다. Physical 과 MAC 계층을 담당한다. LLC는 이더넷 규약에 포함돼어있지 않다.
후에 IEEE에서 이더넷에 대한 표준 규약을 IEEE 802.3으로 발표했다.
이더넷과 IEEE 802.3은 약간의 차이가 있으나 네트워크카드가 이 둘의 모든 표준에 맞게 설계돼어 나온다.
데이터 전송방식으로 CSMA/CD(Carrier Sense Multiple Access/ collision detection)를 사용한다.
이말은 어느 컴터나 순서 없이 데이터를 전송할수 있고 데이터 충돌을 감지한다는 말이다.

이더넷 네트워크카드 표준에는 10base2, 10base5, 10Base-T, 100Base-T, 1000Base-T가 있으며 현재 100Base-T가 가장 많이 활용돼고 있다.

데이터 링크층은 가공되지 않은 내용의 전송을 담당하는 물리층을 신뢰성 있는 링크로 변환시켜주고 노드 대 노드를 책임진다. 데이터 링크층은 상위계층인 네트워크 층이 보기에 오류없는 물리층으로 보여지도록 한다.

– 프레임 구성 : 데이터 링크층은 네트워크층으로 부터 받은 비트 스트림을 프레임이라는 데이터 단위로 나눈다.

– 물리주소 지정 : 만약 프레임을 네트워크상의 다른 시스템에 분배할 경우 데이터 링크층은 프레임의 송신자와 수신자의 물리주소 (physical address : 맥어드레스라고 하는 랜카드 고유의 주소이다.) 를 나타내는 정보를 프레임의 헤더에 추가한다. 만약 프레임이 송신자 네트워크의 외부에 있는 시스템일 경우, 수신자 주소는 다음 네트워크에 연결되어 있는 접속장치의 주소가 된다.

– 흐름제어 : 수신자에 의해 수신되는 데이터 전송률이 송신자가 송신하는 전송률보다 낮을 경우, 데이터 링크층은 수신자의 수신능력이 초과되는 것을 막기 위해 흐름제어 메커니즘을 적용한다.

군대에서 햄버거 먹이기 고문을 하는데 나는 10개를 먹이는데 먹는 놈이 7개밖에 못먹느나면 나머지 3개는 바닥에 떨어지게 된다. 데이터 링크층은 이런 3개의 낭비를 없애기 위해 흐름제어를 하여 7개만 먹이도록 한다.

– 오류제어 : 데이터 링크층은 손상되거나 잃어버린 프레임을 발견하고, 재전송하기 위한 메커니즘을 추가함으로써 물리층의 신뢰성을 높일수 있다. 또한 프레임의 중복을 막기 위한 메커니즘도 사용된다. 보통 오류제어는 프레임의 끝에 추가된 트레일러를 통해 이루어진다.

– 접근제어 : 둘 이상의 장치가 같은 링크에 연결되어 있을때, 데이터 링크층 프로토콜은 주어진 순간에 링크를 사용하는 장치를 결정할 필요가 이다.

★ Network Layer : 네트워크층은 패킷을 발신지로부터 여러 네트워크를 통해 목적지까지 전달하는 책임을 가진다. 데이터 링크층은 같은 네트워크에 있는 두 시스템 간에 패킷 전달을 제공하는데 반해 네트워크층은 각 패킷의 발진지로보터 최종 목적지까지 전송을 제공한다.

간단히 생각하면 장비로 생각하면 된다. 스위치는 WAN에 접속되지 않는다. LAN을 담당하는 장비이므로 네트워크가 다르면 스위치는 정송을 하지 못한다. 다른 네트워크 사이에서 패킷을 전송하려면 라우터가 필요하다. 스위치는 2계층장비, 라우터는 3계층 장비이다.

– 논리주소 지정 : 데이터 링크층에서 구현되는 물리주소는 내부적인 주소지정의 문제를 처리한다. 만약 패킷이 네트워크 경계를 통과하면, 발신지와 목적지 시스템을 구분하기 위해 또 다른 주소지정 시스템이 필요하다. 네트워크층은 상위계층에서 받은 패킷에 발신지와 목적지의 논리주소를 추가한다.

여기서 사용되는 논리주소가 IP이다.

– 라우팅 : 독립적인 네트워크나 링크를 네트워크 간 네트워크 또는 대규모 네트워크를 구성하기 위해 서로 연결하고자 할 때 연결하는 장치는, 패킷이 최종 목적지에 전달될 수 있도록 경로를 지정하거나 교환기능을 제공한다.

이것이 이 네트워크층의 핵심이다. 라.우.팅

이것이 라우터의 기능이며 인터넷의 핵심 역할중 하나이다. 내가 미국에 있는 야후에 메일을 보내는 것도 우리나라의 내 컴퓨터에 연결된 라우터에서 시작되어 나의 편지를 미국의 야후 서버가 물려있는 라우터까지 가장 빠른 경로로 내 편지를 보내는 것이 이 라우팅인것이다.

★ Transport Layer : 전송층은 전체 메시지의 발신지 대 목적지 전달을 책임진다. 네트워크층은 개별적인 패킷들의 종단 대 종단 전달을 감독하지만, 패킷들 사이의 관계는 전혀 인식하지 못하므로 마치 각각의 조각이 별개의 메시지에 속해있는 것처럼 독립적으로 다룬다. 반면, 전송층은 오류제어와 흐름제어를 발진지 대 목적지 수준에서 감독하면서 전체 메시지가 완벽하게 바른 순서대로 도착하도록 보장한다.

즉, 쪼잔한 전달책임은 네트워크층이 책임을 지고 전체적으로 시작점에서 끝점까지의 책임은 전송층이 진다.

더 안전하게 전송하기 위해, 전송층은 양 끝단의 포트 사이에 연결을 만들 수 이다. 연결이란 메시지를 이루고 있는 전체 패킷에 대한 발신지와 목적지 사이에 하나의 논리적인 통로이다. 연결을 만드는 데에는 연결설정, 데이터 전송 및 연결 해제의 세가지 단계가 이다. 모든 패킷의 전송을 하나의 경로로 제한함으로써 전송층은 순서화, 흐름, 그리고 오류검출과 오류정정을 더욱 원할히 수행한다.

이론적으로 FTP를 사용해 파일을 받는다고 치면, 서버의 21번 포트와 사용자 컴퓨터의 21번 포트를 사용해 그 포트를 서로 연결해 전송상의 안전성을 책임진다.

– 서비스 지점 주소지정 : 컴퓨터는 여러 개의 프로그램을 동시에 실행하는 경우가 많다. 그건 무슨소리냐면.. 메시지 전달이라는 것은 내 컴퓨터에서 상대방 컴퓨터로의 전달이라는 말을 세분화하면 내 컴퓨터에 익스플로러, FTP, 포토샵등의 프로그램을 동시에 사용하고 이다고 가정할때 내 컴퓨터의 FTP라는 프로그램과 상대방 컴퓨터의 FTP 프로그램 사이의 전달이라고 하는 것이 정확한 표현이다. 그러므로 전송층 헤더는 서비스 지점 주소(또는 포트주소)라는 주소휴형을 포함해야한다. 네트워크층은 각 패킷을 정확한 컴퓨터에 전달하고, 전송층은 전체 메시지를 해당 컴퓨터의 정확한 프로세스에 전달한다.

– 분할과 재조립 : 메시지를 전송할 수 있는 세그먼트 단위로 나누며, 이때 각 세그먼트 순서번호를 갖는다. 이 번호는 메시지가 목적지에 정확하게 도착하게 되면 전송층이 재조립할 수 있도록 하거나, 전송 중에 손실된 패킷을 발견하고 대체할 수 있도록 한다.

– 연결제어 : 전송층은 비연결과 연결지향이 될 수 있다. 비연결 전송층은 각 세그먼트를 독립된 패킷으로 다루고, 목적지 시스템의 전송층에 전달한다. 연결지향 전송층은 패킷을 전달하기 전에 먼저 목적지 시스템의 전송층과 연결을 설정한다. 모든 데이터가 전송된 후 연결을 종료된다.

– 흐름제어 : 데이터 링크층과 같이 전송층도 흐름제어를 제공한다. 그러나 전송층의 흐름제어는 단일 링크가 아닌, 종단 대 종단에 대해 수행된다.

즉, 소심하게 하나의 링크만을 감시하여 제어를 하는 것이 아니라 시작점과 끝점을 포괄적으로 감시, 관리한다.

– 오류제어 : 데이터 링크층과 같이 전송층은 오류제어를 한다. 그러나 전송층의 오류제어는 단일 링크가 아닌 종단 대 종단에 대해 수행한다. 송신하는 전송층이 전체 메시지를 오류없이 수신하는 전송층에 도착하도록 제공한다. 오류교정은 항상 재전송을 통해 이루어진다.

★ Session Layer : 처음 3개의 계층(물리, 데이터링크, 네트워크 층)에서 제공되는 서비스는 프로세스에 충분하지 않다. 세션층은 네트워크의 대화제어지로서 통신 시스템 간의 상호대화를 설정하고 유지하며, 동기화한다.

– 대화제어 : 세션층은 두 시스템간의 대화를 허용한다. 이는 반이중 또는 전이중 상태에서 일어나는 2개의 프로세스 간의 통신을 허용한다.

– 동기화 : 세션층은 데이터 흐름에 검사점(동기점)을 추가하는 프로세스를 한다. 예를 들어 5,000장짜리 파일을 보내려고 한다. 이럴때 100장 단위로 독립적으로 보내고 100장 단위로 검사점을 삽입한다. 그럴때 834쪽에서 에러가 나면 800쪽부터 다시 재전송한다.

세션층의 특징은 현금지급기에서 보면 알 수 이다.

우리가 현금지급기에서 돈을 찾는다고 하자. 비밀번호까지 누르고 돈이 기계에서 세어지고 이다. 그런데 갑자기 정전이 되어 기계가 멈추어졌다.

그렇다면 과연 현재 상황에서 내 통장에 돈은 나간걸까?
정답은 아니다.

이것이 세션층의 역할이다. 기계는 내가 돈을 꺼내지 않았다는 것을 알고 이다. 그렇기 때문에 내가 돈을 찾기위한 행위는 완결되어지지 않았다고 판단하여 통장에서 돈의 인출을 하지 않는 것이다.

세션층은 이렇듯 대화의 시작점과 종단을 보장한다.

★ Presentation Layer : 표현층은 두 시스템간 주고받는 정보의 구문 및 의미와 관련된다.

– 변환 : 두 시스템의 프로세스는 항상 문자열, 숫자 등의 형태로 정보교환이 이루어진다. 정보는 전송되기 전에 비트 스트림으로 변환되어야한다. 서로다른 컴퓨터간에는 서로 다른 부호화 시스템이 사용되기 때문에 표현층은 서로 다른 부호화방식간에 호환성을 제공한다. 송진자의 표현층은 정보를 송신자의 표현형식에서 공통형식으로 변환한다. 수신측 표현층은 공통 표현을 수진자의 표현형식으로 변경하게 된다.

– 암호화 : 중요한 정보를 전달하기 위해 시스템은 비밀성을 보장해야 한다. 암호화는 송신자가 원래의 정보를 다른 형태로 변화시키고, 그러한 메시지를 네트워크를 통해 전송하는 것을 의미한다.

%복호화는 암호화된 메시지를 원래의 메시지로 변환하는 것이다.

– 압축 데이터 : 압축이란 정보에 들어있는 비트의 수를 줄이는 것이다. 데이터 압축은 문자, 오디오, 비디오 같은 멀티미디어 전송에서 매우 중요하다.

★ Application Layer : 응용층은 사용자가 네트워크에 접근할 수 있도록 해준다. 여기서는 사용자 인터페이스를 제공하며, 전자우편, 연격 파일 접근과 전송, 공유 데이터베이스 관리 및 여러 종류의 분산 정보 서비스를 제공한다.

– 네트워크 가상 터미널 : 네트워크 가상 터미널은 물리적인 터미널의 소프트웨어 버전이며 사용자가 원격 호스트에 로그온 하는 것을 허용한다. 이를 위해 응용층은 원격 호스트에 터미널의 에뮬레이션 소프트웨어를 생성한다. 사용자 컴퓨터는 소프트웨어 터미널에게 이야기하고, 소프트웨어 터미널이 다시 원격 호스트에 이야기하며, 그 역도 마찬가지로 진행된다. 원격 호스트는 자신의 터미널 중 하나와 통신하는 것으로 알고 로그온을 허용한다.

그럼 라우터는 몇번째 레이어 일까?
데이타 통신은 말그대로 송신측과 수신측 단말간 정보의 전달이 목적 이다.
송신측과 수신측의 단말은 PC로 구성할 수 있으며, 중간 경로상의 장비들은 통신경로를 연결시켜주기위한 매개체 역할을 할 뿐이다.

송신측에서 보내려는 정보(Payload)는 레이어7에서부터 레이어1까지 각 계층의 상호개방형표준에 입각하여 헤더(Header)가 하나씩 씌워지게 됩니다. 이것을 Encapsulation 이라고 하지요. 이와는 반대로 수신측에서는 레이어1에서부터 레이어7까지 원데이타인 Payload에 씌워진 헤더를 하나씩 벗겨내고(Decapsulation) 최종적으로 Payload를 추려내어 사용자가 해당 정보를 볼 수 있게 됩니다.

% 중간매개체 역할을 하는 장비가 4,5,6,7계층이 필요없어야 하는 이유

기본적으로 라우터의 하드웨어 성능은 스위치에 비하면 매우 낮다. 중앙프로세서의 속도도 스위치에 비해 훨씬 떨어집니다.
라우터는 머리는 좋치만 손발이 느린놈이라고 보시면 되고, 스위치는 머리는 나쁘지만 손발이 아주 빠른놈이라고 생각하셔도 무방한다.

라우터는 심하게 느리다.
심지어 레이어3계층에서 하는 일인 IP필터링기능을 라우터에 설정해놓으면, 라우터는 원래 일인 루팅기능(경로 설정)에다가, 입력되는 모든 데이타패킷의 출발지,목적지 IP주소를 검색하여 필터링까지 동시에 수행해야 하므로, 설정하지 않았을때보다 훨씬 Data Queue 처리속도가 떨어지게 된다.

이와같은 이유때문에 4,5,6,7계층의 기능은 라우터에게는 필요 없다.원칙적으로는 클래식한 라우터에서는 없어도 되는 기능인 것이다.
또한 원래 클래식한 개념으로는 라우터는 스위치보다 아주 느린 장치이다
그러나, 최근에는 멀티레이어스위치라는 것이 이다.
광범위한(멀티 레이어에 대한) 스위칭이 가능하고, 라우터가 하던 일까지 포함해서 한다.

일반적인 통념으로 스위치라하면 레이어2 스위치를 떠올리게 되는데요, 레이어4스위치도 있고, 레이어7스위치까지 모두 다 구비되어 이다.

레이어4 스위치는 Transport레이어의 포트레벨까지 스위칭하는 장비여서, TCP, UDP 등의 프로토콜 레벨까지 스위칭이 가능하여, DNS서버(UDP, 53번 포트 사용)라던가 Web서버(TCP, 80번 포트 사용) 쪽으로 들어오는 데이타패킷 등을 효과적으로 스위칭할 수 이다.

레이어7스위치는 Application레이어 기반의 스위치로써, H323, SIP등의 응용프로그램까지 정책설정을 통해 스위칭범주에 포함시킬 수 있는 장비 이다.

이렇듯, 필드에서 운영되는 스위치는 이미 라우터의 라우팅기능을 포함했고, 계층도 OSI의 전계층까지 포함시킬수 있는 단계까지 진화되어 이다.

네트워크스위치의 생명은 쓰루풋(Through put)속도이다. 스위치의 쓰루풋 성능이 어느정도냐가 가장 중요한 이슈이고, 그 다음에 한큐에 처리할 수 있는 용량이 스위치의 성능판단의 척도 이다. 한큐에 처리용량이 많기 위해서는 가용 메모리(백플레인이라고 함)가 많이 있어야 한다. 당연히 비싸다.

스위치는 요즘엔 10/100Mbps스위치가 있고, 1Gbps 스위치가 있고, 최근 표준화가 진행중인 10Gbps 스위치가 이다. 당연히 10Gbps가 한큐에 처리할수 있는 용량이 크고 비싸다.

layer4 switch 의 경우엔 좀 더 고급기능을 한다.

예를들면 로드밸런싱이라던가 약간의 보안기능 등등을 담당한다.
소형급 라우터엔 로드발란싱 기능이 우선은 없고 중형의 라우터에도
로드발란싱을 할려믄 장비를 사다 껴야한다.

이 글의 의문상은 http://gamespeople.info 에서 리플로 남겨 주시기 바랍니다.

Published inLinux