[네트워크] LAN
컴퓨터 네트워크 강의시간에 배운 내용을 요약해서 정리해보고자 한다.
What is LAN?
LAN 이란, Local Area Network의 줄임말으로 근거리 통신망 이란 뜻이다.
근거리 약 2.5km^2 의 거리의 제한이 있는 네트워크라는 말 그대로, 거리가 짧기 때문에 다음과 같은 특징을 갖는다.
- 전송되는 패킷의 손실(에러) 및 수신 지연(대기)이 적다. => 즉, 신뢰성이 높다.
- 네트워크의 확장 및 구축비용이 적다. => 관리 및 유지보수의 용이
디지털 데이터는 전송되는 거리가 길어질수록 감쇄현상이 있기 때문에 에러제어가 필요하고, 이를 위해 1계층(물리계층)에서 사용하는 ‘리피터’ 가 필요하다.
리피터를 통해 에러제어를 하여 감쇄효과로 사라진 정보를 재생 하여 다시 정보를 전송한다.
따라서 다음과 같은 단점을 갖는다.
- 거리확장을 위해 리피터가 반드시 필요하다.
- 네트워크에 연결된 노드가 많을 수록 충돌이 발생하여 성능(속도)이 떨어진다. (하나의 리피터에는 보통 10개의 노드가 적당하다)
충돌? 충돌이 무슨말일까?
Collison
충돌은 연결된 호스트들이 정보를 송신할 때 동시에 여러명이 공통 회선으로 데이터를 전송하여 데이터가 섞이면서 훼손되는 것을 말한다.
공통회선?을 말하기 이전에 공통회선의 유래설명이 필요하다.
Bell의 전화망
아주 옛날 1877년 Bell이라는 아저씨가 전화망의 개념으로 장거리 통신 회사를 수립한다. 이때 사용한 방식이 Point-To-Point (점대점) 으로 모든 사용자들이 각 다른 사용자들과 회선을 1:1로 연결하여 N명의 사용자가 존재한다면, N*(N-1) / 2 만큼의 회선개수가 필요했다.
땅을파고, 회선을깔고, 덮고… 그모든 과정은 결국 ‘돈’이 많이 필요했다. 그래서 비용을 줄일 수 있는 방법이 없을까? 를 고민한끝에 Sharing 개념이 등장한다.
NetWork
회선을 공유하는 개념인것인데, 이당시에는 교환기 라는 것을 설치하여 각 사용자가 교환기와 1:1로 연결하고 교환기들이 서로 연결되는 형태로 사용자들이 모두 각 다른 사용자와 1:1연결을 하지않아 비용이 절감되는 효과가 있었다.
하지만 회선을 공유하면서 사용자A가 사용자B와 전화하기 위해 누가 사용자A고, B인지 알아야하는 문제점이 있기 때문에 이때 주소 개념이 등장한다.
또한, 이러한 교환기가 훗날 현대의 네트워크의 노드 확장으로 거리를 늘리기 위한 장비로 리피터, 허브, 브릿지, 라우터, 게이트웨이 와 같은 장비의 모태(母胎)가 된다.
그리고 이러한 교환기(노드)들의 집합을 네트워크 라고 말한다.
다시돌아와서… 공통회선으로 라인을 공유하여 비용을 절감하는 형태가 LAN에서 사용되는데, 문제는 공통회선으로 인해 동시에 사용자들이 사용할때 신호가 섞여 충돌이 발생한다는 것이다.
이 충돌을 어떻게 해결할까?
CSMA/CD
CSMA/CD란 Carrier Sense Multiple Access / Collison Detection 으로 현대의 LAN에서는 CSMA/CD 프로토콜을 이용하여 충돌을 해결한다.
말이 정말 길다..
하나하나 뜯어보면 Carrier Sense 는 반송파를 감지한다는 말로 즉, 회선의 상태를 감지한다는 말이다.
Multiple Access 는 여러명의 사용자가 접근한다는 말이고, Collison Detection은 충돌을 감지한다는 말이다.
요약하자면, 회선을 사용하는지 감지하여 아무도 안쓰면 그때 써라. 또! 충돌이 발생했는지 확인을 하라 라는 말이다.
훨씬 이전에 ALOHA 라는 프로토콜이 먼저 사용되었었다.
ALOHA
ALOHA는 태평양의 섬들 간의 통신을 하기위해 고안된 프로토콜인데, 당시에 MA(Multiple Access)로 무조건 보내고 싶으면 그냥 신호를 보내면서 충돌이 발생하는 빈도가 너무 많았다.
그래서 Slotted ALOHA라는 방식을 사용하게 된다. Slotted ALOHA는 시분할 형태로 사용자들이 정해진 시간대에 정보를 송신하는 형태인데, 문제는 사용자가 많으면 많을수록 time slot의 한계점이 명확했다.
예를들면 1초 단위로 쪼개서 사용자에게 할당하면 60명의 사용자가 사용할수 있는데 사용자가 100명이라고 하면 40명이 중복해서 사용할수 밖에 없다.
따라서, 데이터가 부분적으로 겹쳐서 발생하는 충돌은 해결했지만 동시에 사용하는 충돌은 해결하지 못했고 CSMA 프로토콜이 고안된다.
CSMA ( Carrier Sense Multiple Access)
즉, 눈치껏 사용하라는 소리다. 최소한 누군가 채널을 사용중인지 아닌지를 확인하고, 정보를 송신하라는 소리다.
하지만 이프로토콜의 문제도 똑같다. 아무도 사용하지 않고 있어서 데이터를 보냈는데 하필이면 동시에 다른사용자도 데이터를 전송하면 충돌이 발생한다.
그래서 CSMA/CD 프로토콜이 고안된 것이다.
CSMA/CD 프로토콜은 IEEE 802.3에 표준화된 프로토콜이다.
CSMA/CD 프로토콜의 동작과정
동작과정은 다음과 같다.
- 주기적으로 채널을 사용하고 있는지에 대한 채널상태를 확인한다.
- 아무도 채널을 사용하고 있지 않다면, 데이터를 전송한다.
- 전송한 데이터에 충돌이 발생했는지 확인하기 위해 보낸 데이터를 즉시 받아본다.
- 충돌이 발생하지 않았다면? 4-1. 다음 데이터를 보낸다.
- 충돌이 발생했다면? 5-1. 재전송 알고리즘에 따라 임의의 시간동안 대기한다. 5-2. 이후 데이터를 재전송한다.
LAN 의 분류
토폴로지
토폴로지란, 네트워크를 구성하는 노드들의 물리적 배치를 말하는데 다음과 같이 4가지의 유형이 있다.
- 버스형 : 하나의 공통회선에 여러개의 호스트들이 공유한다. => 비용절감, 확장&유지보수 용이, 노드의 고장은 네트워크에 영향 x. But, 회선고장이 모두 사용불가
- Star 형 : 하나의 허브로 여러개의 호스트들이 공유한다. => 버스랑 비슷
- 트리형 : Star형을 여러개로 묶은 형태인데, 즉 여러개의 허브로 공유한다. => 트리의 확장이므로 비슷
- Ring 형 : 원형으로 호스트들이 공유한다. => 버스형과 달리 노드의 추가가 성능영향 미비. But, 구현의 어려움, 단방향만 가능, 확장 및 유지보수 어려움
보통 이중에서는 링형은 현재 SONET/SDH 외에는 사용하지 않고, 버스형을 가장 많이 사용한다.
버스형은 방송망에서 유래된 개념인데, 방송망을 생각해보면 각각의 세대들이 모두 하나의 공통된 배선(버스형)에 연결되어 기지국으로 부터 받은 공통된 영상을 TV로 수신만 받는다.
사실 이러한 단방향 데이터 전송에서는 충돌이란 개념이 필요없다. 하지만, 반이중(Half Duplex) 통신에서는 충돌이 발생할 수 있다.
전송신호
전송신호는 기저대역(BaseBand)과 광대역(BroadBand)로 분류된다.
기저대역은 디지털신호를 그대로 전송하며, 거리가 짧고(최대 1km), 양방향으로 전송이 가능하며, 주로 버스형에서 사용되고, 단일채널로 TDM(시분할 다중화)방식을 사용한다.
광대역은 아날로그 신호를 변조하여 전송하며, 거리가 길고, 단방향으로 전송이 가능하며, 여러개의 채널로 FDM(주파수 분할 다중화)방식을 사용한다.
거리 확장 장비
LAN의 거리를 늘리기 위해 사용하는 장비는 다음과 같다.
- 리피터 : 1계층(물리계층) 에서 사용하는 장비로 (감쇄효과로 인한) 신호를 증폭해서 전달하며 거리를 늘리는 단순한 장비다.
- 허브 : 리피터의 한종류이다.
- 스위칭허브 : 허브의 문제점을 보완한 장비
예를들어, (A B C D E F G H - 리피터 - I J K L M N O P Q R … Z) 로 연결되어 있다고 가정해보자.
리피터의 문제점은 하나의 리피터에 연결된 노드가 많을수록 성능이 떨어진다는 점이다.
왜냐하면 CSMA/CD 프로토콜로 인해 충돌이 발생했을 때 임의의 시간동안 대기해야 하고, 많은 사용자가 동시에 사용하려 할때 (이용률이 높을때) 대기를 계속 해야한다는 점이다.
이를 보완하기 위해 스위칭 허브는 각 연결을 점대점(Point-To-Point) 방식으로 연결하여(Full Duplex) 충돌이 발생하지 않아 성능이 좋다는 장점이 있다.
- 브릿지 : 2계층(데이터링크)에서 사용하며, LAN 과 LAN을 연결하는 장비다.
(A B C D E - 리피터 - I J K L M N) 로 사용자가 이용중이라고 가정했을때, A사용자가 E 사용자로 데이터를 전송하면 흐르는 신호가 그대로 리피터를 통해 전달되기 때문에 그동안 아무도 사용할수 없다.
(A B C D E - 브릿지 - I J K L M N) 로 바꾸면, 브릿지의 경우 A -> E로 데이터가 전달될때 흐르는 신호를 막아서 우측으로 전달되지 않도록 한다.
따라서 A -> E 일때 브릿지 좌측은 다른 사용자가 대기해야 하지만, 우측에서는 사용자가 데이터를 전송할 수 있어 네트워크 운용의 효율성이 높아진다는 장점이 있다.
또한 브릿지의 경우 MAC 주소를 결정하는 역할도 하는데, 2계층인 데이터링크 계층은 두가지로 나뉜다.
- LLC(Logial Link Control) : 여러 종류의 Ethernet 프레임중에서 어떤 타입인지를 결정하는 역할을하며, 3계층과 MAC계층의 인터페이스 역할을 하여 에러제어와 흐름제어를 담당한다.
- MAC(Media Access Control) : 공유된 매체간에 충돌을 방지하기 위해 매체간의 접근제어를 담당한다.
- 라우터 : 3계층(네트워크 계층)에서 사용하는 장비로 주요 특징은 라우팅 테이블 알고리즘에 따라 송신지에서 수신지로의 최단거리를 계산하는 역할을 한다.
(A B C D E - 라우터 - 라우터(E F G H I) - 라우터 - T U V W X) 라고 했을때,
라우터 들끼리 주기적으로 상태(이용가능 한지의 여부)를 확인하여 라우팅테이블을 개선하는 동적 라우팅 이 있고, 한번 결정되면 절때 바뀌지 않아 하나의 라우터가 고장났을때 그 회선은 모두 사용불가능한 정적라우팅 이 있다.
이외에 3계층 내용은 중요하여 이후 OSI 7 Architecture 포스팅에 자세하게 정리해야겠다.
- 게이트웨이 : 전계층에서 사용가능한 장비로 마찬가지로 거리를 확장할때 사용하는 장비이다.
Ethernet
CSMA/CD MAC 프로토콜을 사용하는 LAN 을 Ehternet 이라고 부르는데, Ethernet에는 4가지 종류가 있다.
- Standard Ethernet : 10M bsp 속도를 보장한다.
- Fast Ethernet : 100M bsp 속도를 보장한다.
- Gigabit Ethernet : 1G bsp 속도를 보장한다.
- Optical Ethernet : 10G bsp 속도를 보장한다.
여기서 말하는 속도는 컴퓨터안의 Ethernet Card에서 신호를 전달하는 속도를 말한다.
Ethernet Frame
IEEE 802.2와 802.3의 프레임 형식은 다음과 같다.
- 프리엠블(7Byte) : 흐름제어를 위한 프레임간의 동기화를 위해 사용하는 필드
- 시작 프레임 지시자(SFD: Start Frame Delimiter)(1Byte) : 프레임의 시작을 알리는 필드로 다음필드가 목적지 필드임을 알린다.
- 목적지 (Destination Address)(6Byte) : 목적지 주소가 담겨있는 필드
- 송신지 (Source Address)(6Byte) : 송신지 주소가 담겨있는 필드
- 타입 (2Byte) : 프레임의 타입( 프레임, 네트워크, 네트워크 프로토콜 등의 구분자)을 정의한 필드
- PDU (46 Byte ~ 1500 Byte) : 데이터 전송 단위로 프레임의 정보가 담기는 필드
- CRC (4Byte) : 에러정보가 담기는 필드
보통 목적지 - 수신지 순서가 아니라 수신지 - 목적지 순서인데, Ethernet Frame에서 저러한 순서가 되는 이유는 빠르게 데이터를 처리하고 전송하기 위함이다.
또한, IEEE 802.3 과 이더넷의 차이점은 Type필드가 다르다는것과 전송케이블 배선이 다르다는 점이다.
목적지+송신지+타입+CRC 필드는 고정적으로 18Byte 이다. 여기에 PDU의 필드크기를 더하면 최소 64Byte ~ 최대 1518Byte의 크기를 갖는다.
프레임의 크기는 결국 최대 보다는 최소의 크기에 초점을 맞추어야 하는데, 64Byte는 512Bit 이며 Standard Ethernet의 속도인 10MB/s로 나누면 51.2/us (마이크로세크)가 된다.
이속도에 따라 광속이 1초에 약 30만 km를 돌기 때문에 충돌을 감지할 수 있는 최대 거리(Collison Window)가 2.5km가 된다. ( 교수님 피셜이다..)
그렇다면 Fast Ethernet은 10배의 속도가 증가 하기 때문에 그에따라 거리가 10배 감소하여 250m가 된다.
또한, Gigabit Ethernet은 25m가 되는데 이 거리는 너무 작다. 속도가 빠른만큼 Collison Window가 줄어들때 좀 늘릴수 있는 방법은 없을까?
이때, 송신측에서 Collison Window를 늘리기 위해 Carrier Extension 또는 Frame Bursting을 사용한다.
- Carrier Extension은 최소 프레임 크기인 64Byte에 448Byte 프레임을 패딩으로 붙여서 보내게 되면 전체 프레임의 크기가 늘어나고, 그에따라 계산하면 Collison Window가 늘어나서 거리가 늘어나는 효과가 나타난다.
송신측의 물리계층에서 Carrier Extension으로 늘린 프레임을 전송하면, 수신측에서는 그길이만큼 무시한다.
- Frame Bursting은 Carrier Extension에서 빈공간이 많은 프레임을 보냈을 때, 전송효율이 떨어져 성능이 떨어지는 오버헤드를 줄이기 위해 길이가 짧은 여러 프레임들을 모아서 한번에 보내는 방법이다.
최초의 전송할 프레임에는 Carrier Extension을 적용하여 프레임을 전송하고 나면, 최소 캐리어 접속시간이 보장되어 Frame Bursting 으로 8192바이트 만큼은 충돌없이 전송할수 있다.
즉, Carrier Extension은 필수적으로 사용해야 한다. 반면에 Frame Bursting은 선택사항이다.
하지만 Optical Ethernet에서는 2.5미터 밖에 되지않아 Carrier Extension을 해도 거리가 너무 적다. 따라서 이때는 점대점 연결(Full Duplex)을 하여 CSMA/CD 프로토콜을 이용하지 않는다.
따라서 충돌이 발생하지 않아, 속도도 빠르게 유지할수있다. 단..비용이 많이든다.
끝으로
여기까지 LAN에 대해 정리해보았다. 다음은 OSI 7 Architecture 에 대해 정리해보아야겠다.
댓글남기기