공개

네트워크 간단한 정리2

sangwoon 2021. 8. 30. 19:03

TCP/IP

 

TCP/IP는 인터넷을 사용하기 위해 꼭 필요한 프로토콜이다

 

IP의 특징은 각각 네트워크에 접속되는 호스트들은 고유의 주소를 가지고 있어서 자신이 속해 있는 네트워크 뿐만 아니라 다른 네트워크에 연결되어 있는 호스트까지도 서로 데이터를 주고받을 수 있도록 만들어져 있는 것이 특징이라고 할 수 있다

 

호스트의 주소는 interNIC 에서 관리한다

 

 

 

TCP/IP 계층

애플리케이션 계층(Telnet,FTP,http)
트랜스포트 계층(TCP,UDP)
인터넷 계층(IP)
네트워크 액세스 계층(Network Driver, Hardware 등)

 

IP 주소 

인터넷을 사용하는 우리에게  모두 하나씩 주어진 주소가 있는데 이것을 ip주소라고 한다

 

근데 한정되어있는 ip 갯수에 비해 너무 많이 인터넷 사용자가 늘고 있어서 내부에 네트워크에서는 공인되지 않은 IP주소를 사용하고 인터넷이 나갈 때만 공인 주소(즉 유일한 IP 주소)를 가지고 나가는 방식인 NAT나 동일한 IP주소를 가지고 여러 명이 인터넷에 접속하면서 포트 넘버만을 바꾸는 PAT등이 사용되고 있습니다.

 

 

우리가 우리의 ip를 보면 알 수 있는 것이 있는데 

10진수로 최소 0부터 255까지 가능합니다 왜 255까지 냐면 IP주소는 이진수로 만들어졌기 때문입니다

원래 10진수 한 자리가 2진수의 8자리 인데

2진수 8자리로 가장 큰 수를 만들어 내면 255라는 것이다

 

IP는 총 42억개 정도 남았다

 

ip4는 한 자리당 8개로 총 4자리니까 32개 

ip6는 한 자리당 8개로 총 16자리니까 128개

 


네트워크 장비에 관한 이야기 

랜카드

랜카드는 유저의 데이터를 케이블에 실어서 허브나 스위치, 혹은 라우터 등으로 전달해주고 자신에게 온 데이터를 cpu에게 전달해주는 역할을 합니다

 

이런 랜카드는 어떤 환경에서 사용하는가에 따라서 이더넷용 랜카드와 토큰링용 랜카드, 그리고 FDDI,ATM용 랜카드 등으로 구분합니다.하지만 대부분의 환경에서는 이더넷용을 사용하기 때문에 아마 여러분 PC에 설치된 랜카드나 사무실에서 설치된 렌카드는 90% 이더넷 방식 랜카드를 사용하고 있습니다  그래서 우리는 이더넷용 랜카드위주로 알아보겠습니다

 

대부분 랜카드는 '랜에 접속하기 위한 카드처럼 생긴 것이다'  라고 생각하면 딱이다.

 

데스크톱용 랜카드를 선택하는 경우에는 또 하나 생각해야 할 것이 있는데 바로  BUS방식이다

3가지 정도로 나누어 볼 수 있는데, 현재 가장 많이 사용하고 있는 방식은 PCI 방식이고 이전까지는 ISA방식

자주는 아니지만 서버급 PC에서는 EISA를 사용하곤 했다

자기 PC는 ISA방식인데 랜카드는 PCI방식을 사용할 수 없다

 

여기 제어판 -> 시스템 및 보안 -> 시스템 -> 장치 관리자 -> 속성 -> 리소스에

입출력 범위,인터럽트 요청,메모리 범위 등이 나타난다. 

아까 원래 옛날에는 설정을 해야 했다던 IRQ와 BASE MEMORY이다 

이건 내 목적지인 데이터 (목적지 주소가 자신의 랜카드 맥 어드레스와 일치하는 데이터)가 들어왔들 때 

랜카드는 컴퓨터와 CPU에 자기가 가지고 있던 IRQ를 이용해서 인터럽트를 걸게 된다. 그럼 CPU에서 자신이 하던 일을 멈추고 자신의 일을 해줄 것을 요청하는 것이다 그리고 이 데이터에 어떤 서비스를 할 것인지를 미리 정해놓는 장소(BASE Memory)로 이동해서 작업을 시작하는 겁니다

 

허브

허브는 직사각형의 상자에 뚫려있는 모양으로 되어있습니다

이 구멍이 몇개 뚫려 있느냐에 따라서 '몇 포트 허브다' 라고 이야기하고,이 구멍의 숫자가 바로 몇대의 장비를 연결할 수 있는지를 결정하게 된다.

 

즉 랜카드가 설치된 각각의 PC들은 케이블을 타고 바로 이 허브에 연결되는 겁니다. 그리고 같은 허브에 연결된 PC끼리는 서로 통신이 가능합니다.

 

두 번째 방법은 구멍이 10개인 허브 1대를 산 후 이 2대를 서로 연결하고2개의 허브에 pc를 연결하는 방법입니다.

 

즉 허브는 서로 연결을 하게 되면 마치 1대의 허브터럼 동작이 가능합니다.

 

허브 역시 랜카드 처럼 이더넷용과 토큰링용이 있다

혹시 100mbps 랜카드를 설치하신 분이 허브는 10mbps용을 사용하신다면 당연히 통신 속도는 10메가이기 때문에 랜카드에 맞는 허브를 선택하는 것이 중요하다

 

 

일단 랜카드, 케이블,그리고 허브만 있다면 일단 내부에서는 허브에 접속된 모든 pc 가 통신이 가능하다는 겁니다.

 

 

 

허브를 한마디로 이야기 하면 

멀티포트,리피터라고 말할 수 있습니다. 

멀티포트: 포트가 많이 붙어있다는 뜻이다

리피터: 돌어온 데이터를 그대로 재전송한다는 의미를 가지고 있으니까 허브는 포트가  여러 개 달린 장비인데 이것은 한 포트로 들어온 데이터를 나머지 모든 포트로 뿌려준다는 것이다.

 

 

 

리피터

네트워크에서 데이터를 전송하는 경우 케이블에 따라서 전송 거리에 제약이 있다. 예를 들어 우리가 가장 많이 상용하는 utp 케이블의 경우는 최대 전송 거리가 100미터 입니다.  즉 그 이상은 전송하기 어렵다는 뜻이다

그럼 이 경우 케이블이 갈 수 있는 최대 거리 이상 떨어진, 예를 들어 두 장비 간의 거리가 150미터인 경우 두 장비 간을 utp 케이블로 연결하려면 어떻게 해야할까요

 

 

그때 중간에서 들어온 데이터를 다른 쪽으로 전달해 주는 역할을 하는 것이 바로 리피터 입니다. 

따라서 중간에 리피터를 두고 두 장비는 케이블을 통해서 리피터로 연결하면 둘 간의 통신이 가능해지게 됩니다.

지금 설명하고 있는 허브도 이 기능을 가지고 있습니다.

즉 utp로 연결이 불가능한 거리에서는 리피터를 사용해라

 

1번 pc가 데이터를 허브를 통해 전송하면, 1번을 제외한 모든 포트에 데이터가 뿌려지는데 

목적지를 빼고 다른 데이터들은 받은 데이터를 버리고 목적지만 그 값을 받는다.

이 허브는 이더넷 허브인 만큼 CSMA/CD의 적용을 받습니다.

그리고 허브에 데이터를 내보내고 있을 때 다른 pc가 데이터를 보내려고 하면 콜리전이 발생한다

 

따라서 같은 허브에 연결되어 있는 모든 pc들은 모두 같은 콜리전 도메인에 있다 라고 한다 

 

이 말은 같은 콜리전 도메인에 있다는면 그 허브에 붙어있는 하나의 PC가 통신을 하게 되면 다른 모든 PC 는 통신을 할 수 없게 되고, 또 이 허브에 붙어 있는 하나의 pc에서 콜리전이 발생하면 모든 pc가 영향을 받는 다는 개념입니다.

 

허브의 한계

모든 pc들은 하나의 콜리전 도메인 안에 있기 때문에 어느 한순간에는 한 pc만 데이터를 보낼 수 있는 겁니다. 따라서 이러한 기능을 수행하는 허브를 우리는 Shared허브 라고 합니다. (공유 방식이다)

 

따라서 우리가 10Mbps의 허브에 20대의 pc를 연결해서 쓴다면 실제는 10Mbs 20으로 나눈 만큼 속도를 각자 쓰고 있다는 것이다!!

 

그럼 데이터 양이 아주 많은, 예를 들어 화장 회의나 멀티미디어 등에 모든 pc들이 계속 사용한다면 무리가 될 것이다 

 

그럼 용량을 늘린다고 해도 한순간에 한 pc만 네트워크 상에 데이터를 보낼 수 있고 콜리전이 발생하면 모든 pc에 무리가 가기 때문에 힘들 것이다 

이렇게 허브의 한계를 알 수 있다

 

 

허브 이야기 그 두 번째 

허브는 인텔리전트 허브와 더비 허브, 세미인텔리전트 허브로 나뉩니다 

 

인텔리전 허브란, 말 그대로 지능형 허브이다. 우리가 인텔리 전트 허브와 더미 허브를 나누는 가장 중요한 요소로는 NMS(네트워크 관리 시스템)를 통해서 관리가 되는가 입니다. 즉 인텔리전트 허브는 NMS에서 모든 데이터를 분석할 수 있을 뿐 아니라 제어도 가능합니다. 말 그대로 앉아서 멀리 있는 허브의 동작을 감시하고 조정할 수 있습니다

 

근데 이 인텔리전 허브는 대형 네트워크에서 사용하는 경우가 아니고는 별로 쓸 일이 없다

 

하지만 인텔리전트 허브는 예를 들어 연결된 한 pc에 문제가 발생했습니다. 그래서 그 pc에서 계속 이상한 데이터를 허브로 끊임없이 보낸다고 가정을 해보자 그러면 콜리전이 발생해서 pc는 통신이 불가능해진다

 

바로 이더넷의 CSMA/CD 란 특징 때문인데 

 

이 경우 문제의 pc 를 찾아서 pc를 끄지 않는 이상에는 그 문제를 해결할 수가 없다 

하지만 인텔리전트 허브의 경우는 문제의 pc 가 연결된 포트를 찾아내 자동으로 현제 내트워크에서 고립 시켜버립니다

즉 다른 pc들이 정상적인 통신이 가능해진다는 것이다

 

또 분리된 포트는 허브에서 램프로 표시되기 때문에 바로 어떤 pc인지 알게 되어 조치가 가능하다는 것이다 이 기능을 

Auto Partition이라고 하는데 요즘은 이 기능이 더미 허브에도 있다 

 

즉 더미 허브란 인텔리전트 허브와 연결하면 자신도 인텔리전트 허브가 됩니다. 따라서 혼자 있을 땐 더미 허브 인텔리전트 허브와 같이 있으면 인텔리전트 허브가 되는 허브를 말합니다

 

 

허브 끝 스위치의 시작 

 

허브에 연결된 한 pc에서 발생하는 콜리전이 다른 pc들에게도 영향을 주는 콜리전 도메인이 그 허브에 연결된 모든 pc들이라는 뜻입니다. 그래서 이 도메인이 너무 커지면 콜리전이 발생했을 때 너무 많은 pc에 피해를 주고 그 값을 나눠야 하기 때문에 항상 조심해야 한다 

 

이러한 문제를 해결하기 위해서 콜리전 도메인을 나누어 줄 수 있는 장비가 있는데, 이 장비가 바로 브리지 또는 스위치라한다

브리지와 스위치는 다른 것이다. 요즘은 속도가 바른 스위치를 많이 사용하는데 원조는 브리지다 즉 브리지도 잊으면 안 된다

 

일단 스위치라는 말이 들어가면 스위치허브라도 스위치라고 생각하면 된다 

 

 

  • 이제 스위치에 대해 설명을 하자면 1번 포트에 연결된 pc가 2번 포트에 연결된 pc와 데이터를 주고 받는 동안에도 3번 포트에 연결된 pc와 4번 포트에 연결된 pc가 서로 데이터를 주고 받을 수 있게 하는 장비입니다.
  • 이걸 전문적인 용어로는 '포트별로 콜리전 도메인이 나눠져 있다' 라고 할 수 있습니다 

그래서 스위티의 경우 각각 포트에 연결된 pc가 독자적으로 10Mbps 또는 100Mbps의 속도를 가집니다

 

그리고 스위치는 허브에 비해 데이터를 처리하는 방법이 우수할 뿐만 아니라 데이터의 에러 등을 복구해 주는 기능 등 

여러가지 기능이 있습니다

 

간단한 프로젝트는 허브로 사용해도 되지만 조금 복잡하고 통신을 동시에 여러번 해야한다면 switch를 쓰는게 좋다

 

하지만 한번 

pc여러 대 -> 허브 -> 서버 

pc여러 대 -> 스위치 -> 서버

 

이런 구성을 간다고 했을 때는 별로 차이가 없다는 것이다 

어짜피 1번 pc가 서버와 연결을 할때 다른 2번 pc가 들어와 함께 연결한다는 것은 그냥 말이 안되는 것이다

 

즉 모든 장비가 무조건 어느 한 곳으로만 향하는 경우는 허브나 스위치나 속도의 차이가 크게 나지 않는다는 것이다

 

 

브리지

 

이번에는 스위치의 원조격인 브리지에 대해 알아보겠다

 

브리지의 역할은 네트워크 규모가 커지고 통신량이 증가할 때 콜리전 도메인을 나누어 주기 위해 사용한다(+스위치)

 

브리지는 허브로 만들어진 콜리전 도메인 사이를 반으로 나누고 중간에 다리를 놓는 것이다

그렇게 되면 다리남단은 다리 남단끼리, 다리 북단은 북단끼리 동시에 통신이 가능하게 됩니다.

 

브리지 스위치 기능

브리와 스위치가 하는 일은 

Learning 

Flooding

Forwarding

Filtering

Aging

이렇게 5개가 있다

 

 

일단 Learning이다

 

만약 한 세그먼트에 pc들이 연결되어 있는데 어떤 맥 어드레스가 통신을 하게 되면 그 세그먼트에 연결되어 있는 모든 장비가 그 프레임을 받게 되는데 이때 브리지는 이 프레임을 받아서 이 프레임이 어디서 출발한 것인지 확인합니다.

그리고 그 통신을 한 장비의 어드레스를 브리지가 관리하는 브리지 테이블에 이 정보를 써넣습니다.

 

두번짼 Flooding이다

그냥 들어온 포트를 제외한 나머지를 모든 포트로 뿌리는 것을 의미한다.

만약 들어온 프레임이 찾아가는 주소를 보니 그 주소가 만약 브리지가 가지고 있는 브리지 테이블에 없는 주소라면 어떻게 할까요. 다시 말해서 이 주소가 다리를 건너야 하는지 아니면 안 건너도 되는지를 알지 못한다면 어떻게 할까 

이때 사용되는 것이 flooting이다 그냥 나머지를 포트로 뿌려주는 것이다

 

세번째는 forwarding(포워딩)이다

포워딩은 브리지가 목적지에 맥 어드레스를 자신의 브리지 테이블이 가지고 있고, 이 목적지가 출발지의 맥 어드레스와 다른 세그먼트에 존재하는 경우 일어난다. 이 목적지가 출발지의 맥 어드레스와 다른 세그먼트에 존재하는 경우에 일어난다. 한마디로 목적지가 어디 있는지 알고 있는데 그 목적지가 다리를 건너가야만 하는 경우를 말한다

 

네번째는 filtering(필터링)이다

필터링은 브리지가 목적지의 맥 어드레스를 알고 있고