컴퓨터 네트워크 3장 네트워크의 분류

zoo_gathers·2024년 10월 12일

컴퓨터 네트워크

목록 보기
7/20


여기서는 네트워크의 분류에 대해서 볼 것이다.

우리가 흔히 네트워크라고 하면은 LAN, MAN, WAN으로 구분하는데

이는 모두 호스트 사이의 연결 거리를 기준으로 구분된다.

LAN은 주로 학교 규모의 네트워크

MAN은 주로 도시 규모의 네트워크

WAN은 주로 국가 규모의 네트워크

이렇게 구분된다.

먼저 LAN에 대해서 살펴보자.

LAN

  • LAN은 단일 건물, 학교 같은 가까운 거리에 위치하는 호스트로 구성된 네트워크
  • LAN은 MAN이나 WAN 환경보다 호스트 간의 간격이 가깝기 때문에 데이터를 브로드캐스팅 방식으로 전송
  • LAN은 수십 Mbps ~ 수 Gbps의 전송 속도를 지원
  • LAN 환경에서 호스트를 연결하는 방식을 구성 형태에 따라 버스형, 링형으로 구분함.

LAN = 버스형, 링형으로 구분

브로드캐스팅 방식 = 네트워크 내 모든 호스트에게 전송하는 방식

LAN은 크기가 작기 때문에 브로드캐스팅 방식이 가능하고 어울리는 것임.

브로드캐스팅 방식은 LAN과 일정 MAN까지만 가능

LAN 환경에서 가장 많이 사용하는 네트워크 연결 형태는 버스형과 링형임.

버스형

  • 공유 버스 하나에 여러 호스트를 직접 연결하는 방식
  • 버스형에서는 전송 데이터가 모든 호스트에 브로드캐스팅되므로 라우팅 기능이 필요없음.
  • 둘 이상의 호스트에서 데이터를 동시에 전송하고자 하면 공유 버스에서는 데이터가 충동이 발생
  • 이더넷은 충돌이 발생하는 것을 허용하는 대신, 충돌 후에 문제를 해결하는 사후 해결 방식임.

위 사진과 같이 버스형의 경우엔
데이터를 전송하게 되면 중앙을 흐르는 선로에 데이터를 흘려보낸다.

a가 데이터를 d에게 보내면 데이터를 받은 b, c, e는 받은 데이터를 버리고 d만 데이터를 받는다.

이때 a와 e 호스트가 동시에 데이터를 보내게 되면 둘다 중앙에 있는 공유 버스에 데이터를 흘려보내게 되고 데이터는 브로드캐스팅 되기 때문에 중간에서 데이터 충돌이 발생하게 된다.

이렇게 충돌이 나면 어떻게 해야할까 해석해서 정해놓은 기술이 바로 이더넷이다.

이더넷은 충돌이 발생하는 것은 허용하는 대신에, 충돌이 난 후에 이를 해결하도록 하는 방식이다.

링형

  • 데이터를 시계나 반시계 방향으로 전송할 수 있지만, 미리 정해진 한쪽 방향으로만 전송이 가능함.
  • 링형도 둘 이상의 호스트에서 데이터를 동시에 전송하면 충돌이 발생할 수 있어 이 문제를 고려해야 함.
  • 링형은 토큰이라는 제어 프레임을 사용해 충돌 가능성을 원천적으로 차단함.

링형은 순환 구조에 어느정도 거리가 있어 충돌이 나지 않을 것처럼 보이지만 데이터가 순환하면서 충돌이 일어날 가능성이 있다.

토큰 = 토큰을 가지고 있어야 호스트가 데이터를 전달할 수 있는 구조로 변경한 것.

토큰도 링형에서 데이터와 같이 순환함. 필요한 호스트가 순환하고 있는 토큰을 잡아 데이터를 전송할 수 있는 기회를 얻는 것임.

토큰도 데이터이고 여기서 이 데이터를 프레임이라고 부름.

토큰은 프레임의 종류를 구분해서 보았을 때 제어 프레임에 해당된다.

버스형 = 충돌이 일어날 것을 전재로 이더넷 방식을 사용
링형 = 충돌을 사전에 예방하기 위해 토큰 방식을 사용

MAN

  • LAN보다 더 큰 지역을 지원함
  • 사용하는 하드웨어와 소프트웨어는 LAN과 비슷하지만 연결 규모가 더 큼
  • MAN은 근처에 위치한 여러 건물, 한 도시에서의 네트워크 연결로 구성 가능
  • MAN에서는 국제 표준안인 DQDB를 사용함(요즘엔 사용 X, 이런게 있었다 인지만)

DQDB란?
2가지 버스를 사용하는 것으로 그림과 같이 두 버스 모두 한 방향으로 데이터를 흘려보내 모든 호스트가 연결되도록 한 것이다.

DQDB가 있다는 것만 인지하고 넘어가기

WAN

  • WAN은 국가 이상의 넓은 지역을 지원하는 네트워크 구조임
  • 거리가 먼 WAN에서는 브로드캐스팅이 어렵고 전송 매체의 길이가 길어지는 환경을 고려해야 함.
  • 점대점으로 연결된 WAN 환경에서는 전송과 더울어 라우팅 기능이 반드시 필요함

WAN은 전송 매체의 길이가 길기 때문에 브로드캐스팅 방식은 사용할 수 없다.
따라서 라우팅 기능이 필요하다.

WAN은 중간에 전송 선로가 있었던 LAN의 버스형과 달리 점대점, 1대1로 연결하는 방식을 사용한다.

호스트와 호스트가 1대1로 연결되도록 한 것이 WAN 방식이다.

WAN에서는 호스트 사이의 거리가 멀어 연결 수가 늘어날수록 전송 매체를 많이 사용해 비용이 많이 든다.

인터네트워킹 = 둘 이상의 서로 다른 네트워크를 연결하는 기능

라우팅 = 경로를 안내해주는 기능

라우팅 장비는 네트워크 내부에서 경로 선택 기능을 수행함.

둘 이상의 서로 다른 네트워크를 연결하는 기능을 인터네트워킹이라고 함.

네트워크 연결을 위한 라우터의 역할

  • 네트워크 계층(데이터가 잘 전달되도록 경로 설정)
  • 데이터 링크 계층(데이터 전송 중간에 발생하는 오류를 제어)
  • 물리 계층(데이터 전송)

위 내용은 앞에서 많이 이야기한 단어의 정의이므로 읽어보도록 하자.

밑에서는 브리지에 대해 더 이야기를 해보자.

브리지 좌우에 위치하는 LAN은 종류가 같을 수도, 다를 수도 있음.

위 사진과 같은 경우엔 왼쪽 LAN은 링형이고 오른쪽 LAN은 버스형일 수 있다.

이렇게 되면 버스 형태의 데이터가 전달이 될 때 버스 형태에서 데이터가 흐를 수 있게 필요한 정보가 추가가 되야 할 것이고, 버스 형태에서 링 형태로 넘어갈 때는 링 형태에서 필요한 정보가 있을 것이다.

이거를 중간에 브릿지와 같은 중계기가 이를 도와주게 된다.

위 사진에서 LAN1으로 데이터가 들어가기 전에 필요한 정보들이 헤더에 붙어서 내려가는 것을 확인할 수 있다. LLC 헤더와 LAN 1의 MAC 헤더가 붙어 브리지로 들어가는 것을 확인할 수 있는데

브리지가 LAN1의 데이터를 받으면 아래에서 위로 올라가면서 MAC 계층에서 LAN1의 MAC 헤더가 제거되고 LLC 계층을 찍고 다시 MAC 계층으로 내려가면서 LAN2의 MAC 헤더가 붙게 된다.

(LAN2에서 데이터가 흐를 수 있게 필요한 정보인 헤더가 새로 붙게 되는 것이다. LAN1이 버스이고 LAN2가 링형이면 원래 헤더에는 이더넷이라는 정보가 있었지만 이 헤더가 빠지고 토큰이라는 정보가 들어있는 헤더가 다시 붙게 되는 것이라고 생각.)

따라서 이런 브리지의 역할 덕분에 브리지 좌우에 위치하는 LAN의 종류가 달라도 충분히 처리가 가능한 것이다.


양쪽 LAN이 모두 이더넷을 사용하면 프레임 헤더를 해석하는 간단한 작업을 통해 쉽게 중개할 수 있지만 종류가 다르면 프레임 변환 등 복잡한 과정이 필요.

그림은 데이터 링크 계층의 기능을 수행하는 일반 브리지의 역할을 보여줌.

양쪽 LAN의 종류가 달라 한쪽 LAN의 헤더를 제거하고 다른 쪽 LAN의 헤더를 붙여주는 과정

또 다른 특징 중 하나가 바로 트랜스페런트 브리지이다.

이 트랜스페런트 브리지는 투명한 브리지라는 의미로
프레임(데이터)이 어느 포트로 들어오고 어느 포트로 나가는지에 대해서 투명하게 사용자가 볼 수 있도록 공개되어 있는 방식을 트랜스페런트 브리지라고 말한다.

그래서 트랜스페런트 브리지는 전송하는 프레임 헤더에 라우팅 정보를 추가하지 않고

필요한 라우팅 과정은 브릿지가 자동으로 수행한다.
(여기서 중요한 점은 자동으로 수행해준다는 것이다.)

트랜스페런트 브리지 = 송신자가 어디 경로로 안내해줘 라고 사전에 프레임에 데이터를 입력 해놓는 방식이 아니라 브리지가 자동으로 어느 경로로 보내져온 데이터를 어디로 안내해줘야 겠구나라고 자동으로 수행하는 방식이다.

트랜스페런트 브리지는 2가지 방식으로 작동한다.
1. 수신 호스트가 송신 호스트와 동일한 방향에 위치할 때 = 프레임 중개 필요 없기에 무시
2. 수신 호스트가 송신 호스트와 다른 방향에 위치할 때 = 수신 호스트가 있는 방향으로 프레임 중개

조금 더 자세한 내용은 아래에서 보자.

위 사진과 같이 브리지 B1과 브리지 B2를 볼 수 있고 파란색 네모가 포트 번호, 동그라미가 호스트이다.

우리가 위에서 트랜스페런트의 2가지 방식 중 1번째는 수신 호스트와 송신 호스트가 동일한 방향에 위치할 때가 있다고 말했는데 그 내용이 바로

a가 b에게 데이터를 보내는 과정이다.

그리고 수신 호스트와 송신 호스트가 다른 방향에 위치할 경우는 a가 c, d, e에게 데이터를 보내는 과정을 말한다.

간단히 같은 네트워크 내에 있냐 아니냐에 대한 차이이다.

그럼 계속해서 a가 b에게 데이터를 보냈을 때를 설명해보자.

  1. 지금 LAN은 브로드캐스팅 방식을 사용한다고 했고 a가 b에게 데이터를 전송하면 b 뿐만 아니라 브리지B1에게도 포트 1번을 통해 데이터가 전달되었을 것이다.

  2. b는 데이터를 잘 받았을 것이고 브리지 B1은 받은 데이터가 b에게 보낸 데이터라는 것을 확인했을 것이다.

  3. 그럼 브리지 B1은 이미 b가 a와 같은 LAN1에 있다는 것을 확인하고 중개할 필요가 없기에 브리지에게 전달된 데이터를 무시하게 된다.

그럼 만약 다른 방향에 있을 땐 어떻게 전송될까?

a가 f에게 데이터를 보냈을 때를 설명해보자.

  1. 먼저 모든 브리지는 각각의 라우팅 테이블이라는 것을 가지고 있다. 따라서 테이블에는 어떤 호스트가 어느 포트에 연결되어 있는지를 알려주고 있고 이는 데이터 전송에 도움을 준다.

  2. 현재 브리지 B1의 라우팅 테이블을 확인하면 a, b는 1번 포트 c, d는 2번 포트, e, f, g는 3번 포트에 연결되어 있는 것을 확인할 수 있다.

  3. 그럼 a가 c에게 데이터를 전달하려고 한다면 브리지 B1을 통해 1번 포트로 들어온 데이터는 c가 위치한 LAN2로 흘러가기 위해 2번 포트로 들어가 c 호스트에게 전달될 것이다.

그럼 LAN에서 모든 데이터의 전달은 브로드캐스팅이라는 것을 다시 한번 생각하며 a에서 f로 데이터가 흘러가는 과정을 보자.

  1. a에서 브리지 B1으로 간 데이터는 브리지 B1 라우팅 테이블을 확인해 3번 포트로 나가 호스트 e와 브리지 B2에게 전달될 것이다.

  2. 호스트 e는 전달 받은 데이터를 무시할 것이고 브리지 B2는 전달 받은 데이터를 브리지 B2 라우팅 테이블을 확인해 2번 포트로 넘길 것이다.

  3. 2번 포트로 넘어간 데이터는 호스트 g와 f에게 전달되고 g는 데이터를 무시하고 f는 데이터를 받으며 그 과정이 끝나게 된다.

이때 브리지는 각 LAN에서 사용하는 방식이 버스형, 링형인지에 맞춰 계속해서 데이터 헤더의 변형이 발생한다는 것도 잊지 말자.

이렇게 전달되는 과정은 모두 트랜스페런트 브리지의 과정으로

트랜스페런트 브리지는 반드시 브리지 라우팅 테이블이 존재해야 데이터의 전달이 가능하다.

그럼 이 라우팅 테이블 정보는 사람이 관리하나?

아니다.

이 정보도 트랜스페런트 브리지가 모두 자동으로 생성하고 기록한다.

처음엔 이 테이블에는 아무런 정보도 없었을 것이다.

이 테이블을 채우는 과정을 바로 역방향 학습 알고리즘이라고 한다.
= 목적지를 계산해서 테이블을 채워넣는 게 아니라 처음 출발지를 역순환해서 채워넣음.

플러딩 = 브로드 캐스팅 방식을 사용해서 브리지와 연결된 모든 네트워크들에게 데이터를 보내느 기법

브로드 캐스팅 기법 = 네트워크 내에 있는 모든 호스트에게 데이터를 보내는 방식

그럼 이 역방향 학습 알고리즘은 플러딩 기법을 사용해서 어떻게 테이블을 채워넣는다.

a라는 호스트가 f 호스트에 데이터를 전송하고자 할 때 브로드 캐스팅 기법으로 b와 브리지 B1에게 전송되면

브리지 입장에서는 a가 1번 포트로 데이터를 전송했기 때문에 a가 1번 포트와 연결되어 있다는 것을 알 수 있다.

그럼 이때 브리지는 테이블에 내용이 없어 f가 어디에 있는지 모르기 때문에 브로드캐스팅 기법을 통해 모든 네트워크에 데이터를 전송하게 되고 결국은 데이터가 전송된다.

그럼 나머지 칸들도 마찬가지로 처음에 e가 b에게 데이터를 보낸다고 하면 e는 브리지 B1과 B2의 각각 3번, 1번 포트로 전송을 하고 각각의 브리지는 e가 어느 포트에 연결되었는지 알아차려 테이블에 적도록 한다.

이렇게 역방향으로 어느 호스트가 어느 포트에 연결되어 있는지 확인하는 방법이 바로

역방향 학습 알고리즘이다.

근데 여기서 문제는 위 사진과 같이 순환하는 경로에서는 이중 경로가 존재할 수 있다는 것이다.

위와 같이 이중 경로가 존재하게 되면 역방향 알고리즘을 사용했을 때 테이블에 제대로 된 정보가 전달되지 않을 수 있다.


스패닝 트리에 대해서 질문하기

어떤 방식으로 어느 경로가 차단되는 것인지

  1. a에서 나간 데이터가 브리지 b1 b2의 각각 1번 포트로 전송 각각은 2번 포트로 나가지 않음.

  2. a에서 나간 데이터가 브리지 b1으로 가고 2번 포트에서 나가 lan2에서 브리지 b2 2번 포트로 들어가 각각 1번과 2번으로 저장 + 브리지 b2 1번으로는 나가지 못하게 막음

둘 중 어느 것인지 물어보기.


이러한 이중 경로를 해결하기 위해서 스패닝 트리라는 것을 활용함.

이는 순환이 되지 않도록 막도록 한다.

따라서 a가 데이터를 전달하면 한쪽을 차단해 왼쪽이든 오른쪽이든 고정적으로 한 방향으로만 전달하게 하는 것이고

이를 스패닝 트리 알고리즘이라고 한다.

profile
전공: 소프트웨어, 관심 분야: LLM, NLP, 지식 그래프

0개의 댓글