4-1/인터넷프로토콜

[1_2]계층간의 통신과 네트워크 장비

개발자 덕구🐾 2022. 3. 9. 14:27
728x90

1. 계층간 통신 

 

 

같은 Device에서  어떻게 정보들이 전송될까?

 

 

먼저 한 Device가 있을 때 계층적 구조를 가진다.

OSI 7계층의 경우 응용, 표현, 세션, 전송, 네트워크, 데이터링크계층, 물리계층으로 이루어진다.

 

각각 계층을 지나면서 어떻게 데이터가 전송이 될까?

 

 

N+1계층, N계층, N-1 계층으로 이루어진다고 할 때

각 계층 사이에는 별도의 SW모듈을 연결하는 논리적인 경계선 interface가 존재한다.

하나하나 과정을 설명하기전에 약어를 먼저 보자면

 

SDU : Servide Data Unit |  투명하게 전달되는 사용자 데이터 

PCI : Protocol Control Information

IDU : Interface Data Unit | 계층 경계를 통과하여 전달되는 전체정보

ICI : Interface Control Information | 서비스를 호출하기 위해서 전달되는 임시 파라미터

PDU : Protocol data Unit | SDU와 PCI의 결합체

 

 

과정

 

N+1 계층에서 Interface를 통해 넘어오는 Data IDU가 N계층으로 넘어온다.

IDU는 SDU와 ICI로 나뉜다.

SDU는 N+1 계층이 보내고 싶은 실제 순수 data이다.

ICI는 같은 device내에서 윗계층에서 아래계층으로 넘어갈 때 부가정보를 의미한다.

 

SDU(위 계층에서 넘겨준 data)+ PCI(자체 계층에서 만든 상대방 N계층에게 알려주는 부가 제어정보) = PDU이다. 

PDU는 상대방 N계층에 전송되는 packet이다.

 

 

 

좀 다르게 예시를 들어 말해보자면

N+1 계층에서 hi - jack를 전송한다고 생각해보자. 그러면 hi - jack은 N+1 계층의 PDU가 된다.

이것이 아래 계층으로 가기 위해서 ICI와 함께 간다.

아래 계층에서는 hi - jack이 SDU가 되고 적절하게 헤더와 트레일러가 붙는다. 

여기서 헤더와 트레일러는 PCI이다. 

SDI + PCI = PDU 이므로 hi - jack에 붙은 헤더와 트레일러를 포함하여 이를 N - PDU라고 한다.

 

N계층의 PDU인것이다.

 

한계층 아래로 또 내려가면 N-PDU는 N-1계층의 SDU가 된다. 

그리고 여기에 또 헤더와 트레일러가 붙으면 이를 (N-1)의 PDU가 되는것이다.

 

 

 

계층간 이동을 하는데 통과하는 interface는 function call을 이용하고 이를 primitive라고 한다. 

주로 밑계층 개발자가 만든다.

 

 

 

여기서 질문!

왜 layer 구조로 만들까?

1. 네트워크 장비마다 필요한 layer(기능)이 다르기 때문이다.

2. 유지보수가 용이하기 때문이다.

3. 재사용에 용이하기 때문이다.

 

그렇다고 장점만 있는것은 아니다. 단점은 헤더가 붙고 이것이 SDU가 되고

또 헤더가 붙고 SDU가 되는 과정이 반복되므로 layer가 깊어질수록 overhead가 커진다.

 

2. 인터네트워킹 장비

네트워크 장비마다 구현한 계층이 다르다. 

 

우선 네트워크 장비에는 리피터, 허브, 브리지,  스위치, 라우터가 있다. 

 

 

먼저

리피터

 

- 물리계층(1계층)에서 동작하는 장비

- 전기나 광신호를 증폭하는 기능을 수행(신호의 감쇄를 방지)

- 리피터에 의해 연결된 네트워크는 완전히 하나의 네트워크로 동작 ( host들이 리피터가 있다는 것을 인지하지못한다.)

 

 

허브 (1계층 장비)

- UTP케이블로 연결하는 네트워크 장비 (리피터의 역할도 수행)

- 더미허브, 인텔리전트 허브, 스택커블 허브가 있다. 

 

더미허브 : 단순히 허브의 다른 모든 포트로 전달

인텔리전트 허브 : 더미허브 기능 + 네트워크 관리 기능

스택커블 허브 : 여러 대의 허브를 하나로 묶음

 

그러나!

허브는 A->B로 데이터를 전송한다면 B뿐만 아니라 모든 host에게 broad casting하므로 bus와 다를바 없다.

broad cating할 때 C에서 D로 전송한다면 충돌이 발생하여 처리율이 낮아진다.

 

 

이를 극복하기 위한 장비가 bridge이다. 

 

브릿지

네트워크를 segment시켜 충돌을 방지하고, 효율적인 전송이 가능하도록 만든다.

self learning을 통해 데이터를 전송한 단말의 주소를 table에 채운다. 

table은 aging기능이 있어 일정시간이 흐르면 entry값이 빠진다.

 

이 주소는 physical layer에서는 알수가 없다.

그래서 브릿지는 MAC 주소를 사용한 2계층 장비이다. 

 

- 데이터링크 계층에서 동작하는 네트워크 장비

우리가 주로 사용하는 브리지는 투명 브리지이다.

 

수신된 프레임은 일달 버퍼에 저장되고 프레임의 목적지 필드에 따라 FDB(Forwarding Data Base)를

참조하여 전달경로 결정  

 

수신한 프레임의 송신 주소와 포트정보를 기억하고 목적지 주소가 FDB에 존재하면 프레임을 전달하고 

기록되어있지않으면 수신한 포트를 제외한 나머지 모든 포트로 프레임을 전송한다.

 

스위치

앞서 설명한 브릿지는 모두 스위치로 대체되었다. 

스위치는 브릿지와 비교하여 SW로 구현되어 속도가 빠르고 포트의 수가 많고 포트별고 속도가 다르다는 장점이 있다.

그리고 다양한 전송방식 구현이 가능하다.

- Cut - Through, Interim Cut-Through, Store-And-Forward 방식으로 구분된다.

 

먼저 

Store-And-Forward은 프레임을 모두 확인하여 오류가 없는 프레임만을 전달한다. 

그러나 프레임 대기시간이 길다는 단점이 있다. 이를 보완하기위해 고안된 방법이 Cut-Through방법이다.

 

Cut-Through는 송신지, 수신지 주소를 위해 프레임의 처음 몇 바이트만을 검색한다.

Store-And-Forward방식과는 달리 오류검사 없이 전달하기에 대기시간과 전달시간이 최소화된다.

store-And-Forward와 비교하여 대기시간은 1/20 수준이다.

 

단점은 주소 부분만 보고 전달하므로

프레임의 최소 규격보다 작은 런트 프레임(스위치 공격)과 오류가 발생한 프레임을 검출할수가 없다는 것이다. 

 

런트 프레임의 중계를 막기위해 고안된 스위치가 Interim Cut-Through이다. 

64byte 이하일 경우 프레임을 삭제한다. 이렇게 런트 프레임은 처리하였지만 오류가 발생한 프레임은 여전히 해결하지못했다. 

 

 

만약 전세계를 스위치로 연결한다면?

 

 

전세계의 host들의 주소를 모두 table에 저장해야한다. 

너무 많다. 

 

그리고 스위치는 broad casting을 할 때 정말 모두에게 전송한다. 

폐쇠된 공간에게만 broad casting을 할수없어 broad casting storm 현상이 발생한다.

 

그래서 새로운 장비의 필요성을 느끼고 나온 것이 라우터이다. 

 

위 문제를 해결하기 위해서는 계층적 구조를 가진 주소가 필요했다. 

이는 IP주소이고 이를 해석할 수 있는 장비라 라우터이다.

그러므로 라우터느 3계층 장비이다. 

 

 

라우터

 

 

- 최적 경로 선택

- 세그먼트의 분리

- 이종 네트워크간의 연결 

반응형