공부용 블로그 | seokmin100

Trinity - 네트워크 기초 본문

Trinity/Network

Trinity - 네트워크 기초

seokmin100 2024. 5. 6. 22:56

네트워크란?

네트워크란 Net+Work의 합성어로 컴퓨터와 같은 노드들이 통신 기술을 통해 그물망처럼 연결되어 통신을 하는 형태를 뜻한다. 이를 요약하여 설명하면 '두 대 이상의 컴퓨터들이 서로 통신할 수 있도록 연결된 것'이다.

네트워크에서 주고 받는 정보를 모두 데이터라고 하다.

 

장점 : 데이터 통신을 통해 방대한 자료를 공유할 수 있는 것과, 사진, 음악, 영상 등의 디지털 미디어를 볼 수 있는 것입니다.

단점 : 바이러스나, 악성코드로 인한 해킹으로 보안상의 문제가 있고, 데이터 변조가 가능하다는 것이다.

 

 

 

네트워크 구성요소

네트워크에서는 통신이 이루어지도록 각자의 역할을 수행하는 네트워크 장치들이 있으며, 그 네트워크 장치들을 모두 연결하는 전송 매체가 있다.

 

기본적으로 연결의 대상이 되는 장치들을 '노드'라고 하고, 노드들을 연결하는 전송매체는 '링크'라고 한다.

pc,노트북 같은 장비들을 '단말장치'라 하고, 장치들을 연결하고 있는 선들을 '전송매체'라고 한다.

'전송 매체'는 이동하는 데이터가 알맞은 방향으로 전송되도록 안내하며, 신호가 왜곡되지 않고 전송되도록 보호하는 역할을 한다.

또한, 케이블 형태의 물리적인 모습으로 존재하기도 하고 무선 연결 형태로 존재하기도 한다.

 

- 유선 전송 매체

종류 : 꼬임선 케이블, 동축 케이블, 광섬유 케이블 등

 

- 꼬임선 케이블

가장 일반적으로 사용되는 것이 꼬임선이고, UTP, FTP, STP가 있다.

UTP(Unshielded Twisted Pair Cable) : 차폐되지 않은 꼬임쌍선 케이블
FTP(Foiled Twisted Pair Cable) : 꼬임쌍선 4개를 한번에 알루미늄 호일로 한 번 감싼 케이블
STP(Shielded Twisted Pair Cable) : 각 꼬임쌍선을 이중삼중으로 알루미늄 호일로 감싼 케이블

 

- 동축 케이블

중앙 구리선을 꼬임선보다 쉴딩을 많이해서 즉 더 많이 감까서 외부 간섭에 강하고 더 많은 데이터를 보낼 수 있다.

 

- 광섬유 케이블

꼬임선이나 동축처럼 전기 신호를 이용하는 것이 아니라 빛을 사용해서 데이터를 전달하기 때문에 속도가 매우 빠르지만 비싸다.

 

 

 

네트워크의 분류

네트워크는 PAN < LAN < WAN < 인터넷 순으로 범위가 점점 넓어진다.

 

- PAN(Personal Area Network) : 개인 영역 네트워크

개인이 전용으로 사용하는 장치가 해당된다.

 

- LAN(Local Area Network) : 근거리 영역 네트워크

가까운 거리에 위치한 컴퓨터의 네트워크를 말하며 보통 한 건물 정도의 규모이다.

 

- WAN(Wide Area Network) : 광대역 네트워크

여러 개의 LAN이 모여 구성된다. 지역이나 국가 단위의 규모이다.

 

- 인터넷(Internet)

LAN과 WAN을 모두 포함하고 전 세계의 모든 장치들을 포함하는 가장 넓은 네트워크이다.

 

 

 

프로토콜

프로토콜은 서로 통신을 하기 위해 정해둔 규칙이라고 할 수 있다.

각 프로토콜마다 사용하는 구문, 의미, 시간이 모두 다른데, 만약 한 통신에 여러가지 프로토콜이 적용되어 있다면 적용된 모든 프로토콜을 지키면서 통신해야 한다. 유명한 프로토콜로는 HTTP와 같은 것이 있다.

 

계층 모델

- OSI 7계층 모델

네트워크 상에서 이루어지는 데이터 통신 과정 중 비슷한 부분끼리 묶어 총 7단계로 나눠둔 것이다.

각 계층은 서로 겹치지 않고 독립적인 역할을 담당하고, 담당한 역할을 잘 수행하기 위해 각 계층마다 사용하는 프로토콜이 정의되어 있다.

ISO(국제표준화기구)에서 지정한 '공적 표준 모델'이다.

 

- TCP/IP 5계층 모델

OSI 7계층의 5,6,7계층을 하나로 묶은 것이다.

IEEE(국제인터넷표준화기구)에서 사용하고 있던 TCP/IP 모델이 데이터 통신 과정을 가장 명확하고 직관적으로 정의하고 있다고 해서 '사실 표준 모델'로 채택되었다.

 

1. 물리 계층

장치간의 물리적인 연결 방법, 전송 매체의 종류, 데이터 변환 방식 등 데이터 통신의 물리적, 기계적, 전기적인 측면을 담당한다. 그래서 데이터를 전송하기만 할 뿐 데이터 내용이나 형식이 무엇이고, 어떤 에러가 있는지 이런건 하나도 신경쓰지 않는다.

장치 : 허브, 리피터

허브 : 여러개의 pc를 한 번에 연결하는 장치. 데이터를 연결된 모든 장치에게 전송한다.
리피터 : 증폭기라고도 하는데 물리적인 회선으로 연결되어있어 보내는 데이터의 신호가 약해져서 손실되는 것을 막기 위해 중간에서 신호를 증폭시키는 역할을 한다.

 

2. 데이터링크 계층

여러 장치 간의 데이터 전송 순서 결정, 데이터에 발생한 오류 검출 및 검정 등을 담당한다.

'MAC 주소'라는 것을 관리하여 데이터가 거쳐가는 중간 장치를 확인한다.

이는 2계층부터 오류를 검사하고 흐름을 관리해서 데이터 전송에 신뢰성을 부여한다.

장치 : 스위치
스위치 : 데이터를 전송하는 역할은 허브와 비슷하지만 MAC 주소를 학습해서 전송을 받을 장치에게만 데이터를 전송한다.

 

3. 네트워크 계층

데이터가 전달되는 최적의 경로를 결정하며 'IP 주소'를 관리하여 데이터가 전달되는 종단 장치를 확인한다.

여기서 가장 중요한 기능은 데이터를 목적지까지 어떻게 하면 가장 빠르고 안전하게 보낼 수 있을까를 결정하는 것이다.

3계층에서 어느 길로 가야 가장 빠르고 안전한지를 판단해서 보내는데, 이 과정을 '라우팅'이라고 한다.

2계층처럼 데이터의 흐름이나 에러 제어도 한다.

장치 : 라우터
라우터 : IP주소를 확인해서 최종적으로 데이터가 어딜 가려는지 파악하고 거기까지 가는 최적의 경로를 정해주는 것이다.

주요 프로토콜 : ICMP, ARP
ICMP(Internet Control Message Protocol) : 인터넷 제어 메시지 프로토콜, 네트워크 장치에서 네트워크 통신 문제를 진단하는데 사용하는 프로토콜이다.
ARP(Address Resolution Protocol) : 주소 결정 프로토콜, IP 주소를 MAC 주소로 대응시키기 위해 사용되는 프로토콜이다.

 

4. 전송 계층

데이터 분할 및 재조립, 데이터 통신의 흐름 및 오류 제어 등을 담당하며 '포트 번호'를 관리하여 데이터를 처리하는 프로그램을 확인한다.

4계층에서 신뢰성있고 효율적인 데이터 전송을 위해 오류검출 및 복구와 흐름제어, 중복검사 등을 수행한다.

대표 통신 프로토콜 : TCP, UDP

TCP(Transmission Control Protocol) : 신뢰성있고 연결지향적인 통신을 제공한다.
ex) 이메일, 파일전송, 터미널 접속 등

UDP(User Datagram Protocol) : 비연결성이고 신뢰성이 없다. 하니잠 단순하고 속도가 훨씬 빨라서 적절히 사용하면 더 좋을 때가 있다. ex) DNS, 실시간 동영상 서비스, 온라인 게임, 음성 통화 등

 

5. 세션 계층

데이터가 통신하기 위한 논리적인 연결, 통신을 하기 위한 대문이다.

양쪽 통신이 끊기지 않게 유지해주고, '세션'을 열고 닫는 역할을 한다.

세션 : 인터넷 사용자가 브라우저에 접속해서 서버와의 연결이 종료되기 전까지의 상태를 의미하거나 이러한 상태를 일정하게 유지하는 기술을 말함.

 

6. 표현 계층

데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고 암호화한다.

전송 데이터의 포맷을 결정한다. (jpg, mp4, avi, gif....)

여기서는 코드 간의 번역을 담당해서 시스템에서 데이터의 형식상의 차이 때문에 생기는 부담을 덜기 위해 인코딩, 암호화 등의 작업을 수행한다.

 

7. 응용 계층

서비스 요청 및 제공, 통신 프로그램 실행 등 사용자와 컴퓨터 간의 상호작용을 담당한다.

우리가 사용하는 대부분의 프로토콜은 이 7계층 프로토콜이라 들어본 것도 있을 것이다.

사용자 인터페이스는 크롬, 파이어폭스, 엣지 같은 브라우저들이 해당된다.

프로토콜 : HTTP, FTP, TELNET, DNS

HTTP(Hyper Text Transfer Protocol) : 클라이언트가 요청하면 서버가 웹 페이지를 로드해 주는 프로토콜이다.
FTP(File Transfer Protocol) : 인터넷으로 연결된 클라이언트와 서버 사이의 파일 전송을 위한 프로토콜이다.
TELNET : 내 컴퓨터에서 네트워크를 이용하여 멀리 떨어져 있는 다른 컴퓨터에 원격 접속 할 수 있는 프로토콜이다.
DNS(Domain Name System) : IP주소와 도메인 주소를 서로 변환해주는 프로토콜이다.

 

 

 

데이터 단위(PDU), 캡슐화 & 탈캡슐화

데이터를 보내는 쪽(송신)에서는 응용계층 -> 물리계층으로 상위에서 하위로 데이터를 전달한다.

물리계층에서 전송을 위한 최종 되이터가 완성되는 것이다.

이때 각 계층에서 상위 계층의 데이터를 전달받아 데이터의 앞부분에 헤더라는 것을 덧붙이는데, 이 작업을 '캡슐화'라고 한다. 헤더에는 목적지 주소와 같이 전달받은 데이터에 대한 간단한 정보가 작성된다.

 

데이터를 받는 쪽(수신)에서는 물리계층 -> 응용계층으로 하위에서 상위로 데이터를 전달한다.

응용계층에서 준비된 데이터의 내용을 확인하게 된다.

이때 각 계층에서 하위 계층으로부터 전달받은 데이터와 헤더를 분리하여 헤더에 작성된 정보를 확인하는데 이 작업을 '탈캡슐화'라고 한다. 헤더에 작성된 주소가 자기 주소가 맞으면 계속해서 상위 계층으로 전달하고 아니라면 폐기 처리한다.

각 계층별 헤더 명칭

응용계층 : 메시지 : 태초의 데이터로, 헤더 없이 페이로드만 존재한다.
전송계층 : 세그먼트 : 전송계층 헤더 + 메시지
네트워크계층 : 패킷 또는 데이터그램 : 네트워크계층 헤더 + 세그먼트
데이터링크계층 : 프레임 : 데이터링크계층 헤더 + 패킷 + 데이터링크계층 트레일러(뒷부분)
물리계층 : 물리계층에서는 추가로 캡슐화가 진행되지 않고 완성된 데이터 신호를 전기적 신호로 변환한다.

- 한 번에 통틀어서 패킷이라고 부르기도 한다.

 

 

 

통신 방식

네트워크에서 출발지에서 목적지로 데이터를 전송할 떄 사용하는 통신 방식 4가지가 있다.

 

1. 유니캐스트

송신 노드와 수신 노드가 1대 1로 통신하는 것이다. 실제로 대부분의 통신은 유니캐스트 방식을 쓴다.

 

2. 브로드캐스트

송신 노드와 모든 호스트가 1대 전체로 통신하는 것이다. 같은 네트워크 안에 존재하는 모든 노드를 못적지로 간주한다.

과도하게 사용하면 네트워크 성능이 떨어질 수 있다.

기본적으로는 모든 상대에게 패킷을 전달할때 사용하지만, 주로 상대방의 정확한 위치를 파악하기 위해서 사용한다.

 

3. 멀티캐스트

송신 노드와 다수의 특정 수신 노드로 1대 여럿으로 통신하는 것이다.

티비처럼 실시간 방송을 볼 때 멀티캐스트를 사용하고, 단방향으로 다수에게 동시에 같은 내용을 전달해야 할 떄 사용한다.

 

4. 애니캐스트

송신 노드와 수신 노드가 1대 1로 통신하는 것은 유니캐스트와 같지만 목적지가 될 수 있는 후보가 여러개 있어서 같은 네트워크 안에서 가장 가까운 노드에서 응답한다.

 

 

 

토폴로지

토폴로지는 네트워크를 구성할 때 컴퓨터나 케이블, 네트워크 장치들과 같은 구성 요소의 배치를 뜻한다.

한 네트워크의 모든 노드는 반드시 하나 이상의 다른 노드에 하나 이상 링크를 가지고 있다.

기본적인 유선 토폴로지로는 버스형, 스타형, 링형, 트리형, 메시형 토폴로지가 있다.

 

- 버스형 토폴로지

하나의 긴 케이블이 네트워크의 모든 장치를 연결하는 중추의 역할을 한다.

 

장점 : 설치가 쉽고 비용이 저렴하다. 각 장치의 고장이 네트워크 다른 부분에 영향을 주지 않는다.

 

단점 : 재구성이나 결합, 분리가 어렵고 거리가 멀어지면 신호가 약해져서 증폭기가 필요하다.

버스 케이블 즉, 중추 케이블에 문제가 생기면 모든 전송을 할 수 없다.

장치의 수가 많아지면 처리 속도가 급격히 감소하고 부하가 많으면 응답시간이 늦어진다.

 

- 스타형 토폴로지

각 노드가 중앙 장치에 Point-to-Point 링크로 연결된 초창기 사용 형태이다.

 

장점 : 고장 발견, 확장, 유지보수가 쉽다. 한 장치가 고장나도 네트워크에 영향을 미치지 않으며, 한 링크에 문제가 생겨도 네트워크에 영향을 미치지 않는다.

 

단점 : 중앙 장치가 고장나면 네트워크가 동작할 수 없다. 처음 세팅할 때 케이블을 많이 놓아야 해서 비용이 많이 들고, 통신량이 많으면 전송 지연이 발생한다.

 

- 링형 토폴로지

닫힌 루프 형태로 각 노드가 자신의 양쪽 노드와 연결되어 있다.

 

장점 : 설치, 재구성, 고장난 노드 발견이 쉽다. 장치 수가 늘어나도 성능에 별 차이가 없고, 스타형보다 케이블 비용이 적다.

 

단점 : 링을 제어하는 것이 복잡해서 기본적으로 지연이 발생한다. 단방향 전송이기 때문에 링에 문제가 생기면 전체 네트워크를 사용할 수 없다.

 

- 트리형 토폴로지

스타형의 변형으로 연결된 노드는 중앙 장치에 연결되어 있지만 모든 노드가 직접 중앙 장치에 연결된 것은 아니다.

 

장점 : 관리와 확장이 쉽다. 신뢰도가 높고 에러 감지에 용이하다. 노드 중 하나가 고장나도 다른 노드에 영향 없다.

 

단점 : 특정 노드에 전송이 집중되면 속도가 느려진다. 상위 노드에 문제가 생기면 바로 아래 네트워크에도 문제가 생긴다.

 

- 메시형 토폴로지

모든 노드가 서로 직접 연결되어 있다. 국방 네트워크 처럼 어딘가에 장애가 발생해도 계속해서 네트워크를 사용할 수 있는 안전한 네트워크에서 사용된다.

 

장점 : 어떤 경로에 장애가 발생해도 다른 경로로 통신이 가능하다. 많은 양의 데이터를 주고 받을 수 있고, 장치를 추가해도 통신이 중단되지 않는다. 중앙 장치를 이용하지 않고 직접 통신한다. 만약 공격을 받으면 단일 노드를 교체할 수 있다.

 

단점 : 설치, 운영 비용이 많이 든다. 중복 연결의 가능성이 높아서 효율성이 떨어진다.

 

 

 

CSMA/CD

반송파 감지 다중 접속 및 충돌 탐지(Carrier-Sense Multiple Access with Collision Detection)

버스형 토폴로지에서 주로 사용된다. 이더넷에서 장치가 매체에 접속하는 것을 관리하는 방법을 말한다.

 

처리과정

1. 통신을 하고 싶은 노드는 먼저 네트워크에서 통신이 일어나고 있는지 확인한다. - '캐리어 센스'

2. 통신하고 있는 것이 감지되면 일단 데이터를 보내지 않고 기다린다.

3. 진행중인 통신이 없으면 데이터를 전송한다.

4. 그런데 진행중인 통신이 없는 것을 확인하고, 두 노드가 동시에 데이터를 보내는 것을 '다중 접근'이라 한다.

5. 이렇게 두 노드가 동시에 보내려다가 부딪히면 충돌이 발생한다 한다.

6. 그럼 이 충돌 당사자들은 랜덤한 시간동안 기다렸다가 다시 데이터를 전송한다.

7. 그럼에도 불구하고 이 과정이 15번 반복되면 통신을 끊는다.

 

충돌이 없는 상황

송신 노드는 캐리어 센스로 진행중인 통신이 없는 것을 확인하고 브로드캐스트를 날려서 수신 노드를 찾아낸다.

수신 노드는 유니캐스트로 응답하고 전송한다.

 

충돌이 있는 상황

송신 노드가 캐리어 센스를 하고 데이터를 보내는데, 두 프레임은 공유 매체에서 충돌을 발생시킨다.

충돌이 나면 Jam Signal(잼 신호)를 모든 노드에게 전송해서 충돌이 났다고 알리고, 잼 신호를 받으면 일정 시간 기다렸다가 다시 전송을 시작한다.

 

 

 

토큰링

링형 토폴로지에서 충돌을 방지하기 위해 사용되는 방식이다.

기존에는 통신을 하고 싶은 노드가 아무때나 데이터를 보낼 수 있었는데, 토큰 링 방식에서는 토큰을 가지고 있는 노드 딱 한 대만 데이터를 전송할 수 있다. 데이터를 다 보내면 옆 노드에게 토큰을 전달하고 보낼 데이터가 없으면 또다시 옆으로 토큰을 전달한다. 당연히 충돌이 발생하지 않는다. 하지만 당장 데이터를 보내야하는 노드가 있어도 그 노드에게 토큰이 없으면 토큰이 돌아올 때까지 기다려야한다. 그래서 원래의 방식보다 속도가 느리다.