네트워크 시스템 개요

dong5854·2022년 12월 17일
0

네트워크 시스템 개요

컴퓨터 네트워크란 두 개 이상의 장치 또는 노드(node) 간의 연결(link)를 말한다. 노드란 서버, 라우터, 스위치 등의 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미한다.

네트워크 토플로지

네트워크의 토플로지(topology)란 네트워크 상의 노드 구성을 말한다. 토플로지의 유형은 점대점 연결형, 데이지 체인형, 버스형, 링형 스타형과 그물형의 6가시 기본 범주로 나뉜다.

가장 단순한 형태의 네트워크인 점대점(point-to-point) 연결은 두 노드가 한의 연결을 공유한다. 이러한 유형의 네트워크 연결은 드물지만 두 노드간의 직접 통신이 필요할 때 유용하다.

(그림1, 두 노드간의 직접 연결)

연속되는 점대점 연결을 데이지 체인(daisy chain) 이라고 하는데 출발지 노드의 목적지 노드 사이의 중간 노드를 일반적으로 홉(hop)이라고 한다. 요즘의 네트워크에서는 거의 존재하지 않는 유형이다.

(그림2, 데이지 체인에 연결된 점대점 세그먼트)

버스형 토플로지상의 노드들은 공통으로 공유 네트워크 링크를 갖는다. 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 모습으로 근거리 통신망(LAN)에서 사용된다.

설치 비용이 적고 신뢰성이 우수하지만 스푸핑이 가능한 문제점이 있다.

스푸핑이란 LAN 상에서 송신부의 패킷을 송신과 관련 없는 다른 호트에 가지 않도록 하는 스위칭 기능을 마비시키거나 혹여 특정 노드에 해당 패킷이 오도록 처리하는 것이다.

일부 광섬유 네트워크 배포에 사용된 링(ring)형 토플로지는 뎅이터가 단일 방향으로 이동하는 페쇄 루프이다. 노드의 수가 증가해도 네트워크상의 손실이 거의 없고 노드의 고장 반견을 쉽게 찾을 수 있지만, 네트워크 구성 변경이 어렵고 회선에 장애가 생기면 전체 네트워크에 영향을 크게 끼친다.

스타(star)형 포틀로지에서 중앙 노드는 다른 모든 노드에 개별 점대점 연결읋 한다. 유선 네트워크는 대부분 이 토플로지의 형태를 한다. 중앙 노드는 네트워크 스위치(network switch) 이며, 스위치는 발신 노드로부터 데이터를 수신해 목적지 노드로 데이터를 재전송 하는 장치이다. 장치를 스위치에 연결하는 것만으로 간단하게 네트워크에 노드를 추가할 수 있다. 또한 패킷의 충돌 발생 가능성이 적고 어떠한 노드에 장애가 발생해도 이를 발견하기 쉽지만 중앙 노드에 장애가 발생하면 전체 네트워크가 마비되고 설치 비용이 비싸다.

완전히 연결된 그물형(mesh) 네트워크의 모든 노드는 다른 노드와 직접 연결된다. 이 토플로지는 단일 노드에 장애가 발행해도 다른 노드 간의 트래픽에 영향을 주지 않아 단일 장애 지점을 제거한다. 반면 노드의 추가가 어렵고 구축 비용과 운용 비용이 비싸다는 단점이 있다.

현실에서의 네트워크는 둘 이상의 기본적인 토플로지를 결합해 네트워크 토플로지를 만든다. 이런 하이브맅트 토플로지로는 스타-링, 스타-버스 하이브리드 토플로지 등이 있다.

처리량과 지연 시간

처리량은 전달되는 단위 시간당 데이터 향을 말한다. 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러와 장치의 스팩 등에 영향을 받는다. 보통 ISP가 제공하는 대역폭(bandwidth)이란 일정 시간 내에 네트워크 연결을 통해 전송할 수 있는 데이터 양이다. 일반적으로 대역폭이 높아야 연결속도도 빠르고 성능이 좋다고 생각하지만, 대역폭이 낮더라도 레이턴시가 작은 경우 대역폭이 높지만 레이턴시가 큰 네트워크보다 성능이 더 좋을 수 있다.

지연 시간(latency, 레이턴시)은 네트워크 리소스 요청을 보내고 응답은 받는 사이에 측정된 시간으로 쉽게 말하면 메시지가 두 장치 사이를 왕복하는데 걸리는 시간이다. 웹사이트에서 레이턴시는 매체 타입(유선, 무선), 클라이언트와 서버 간의 네트워크 레이턴시, 데이터 저장소에서 데이터를 검색하는데 걸리는 시간, 서버 층에서 동적인 컨텐츠를 컴파일 하는데 걸리는 시간, 브라우저가 페이지를 렌더링하는데 걸리는 시간 등의 다양한 이유로 발생한다.

레이턴시를 줄이기 위해 CDN이나 클라우드를 사용해 사용자와 서비스 사이의 거리와 홉 수를 줄이거나, 요청 및 응답 크기의 최적화, 그리고 캐싱 전략 혹은 서버 측에서 동시성, 비공기 프로그래밍을 통해 응담이 블로킹되는 것을 최소화하는 등의 방법을 사용한다.

OSI 참조 모델

OSI(Open Systems Interconnection) 참조 모델은 프로토콜의 개발과 통신을 위한 프레임워크의 역할을 한다. 오늘날에는 OSI 참조 모델이 예전만큰 사용되진 않지만, 하드웨어 관점에서 로우 레벨의 네트워킹, 라우팅과 같은 일반적인 개념을 이해할 수 있도록 해주다는 점에서 중요하다.

OSI 참조 모델은 네트워크 내의 모든 활동을 7개의 계층 구조로 구분한다. 이렇게 계층을 나누는 것은 소프트웨어에서의 추상화 라고 생각하면 된다.

7 계층 - 애플리케이션 계층: 애플리케이션 계층은 호스트를 식별하고 리소스를 검색하는 역할을 담당한다. 예시로는 웹 브라우저가 있다.
6 계층 - 프레젠테이션 계층: 데이터가 아래 계층으로 이동할 때 네트워크 계층에 대한 데이터를 준비하고 데이터가 스택 위로 이동할 때는 애플리케이션 계층에 데이터를 제공한다. 예시로는 데이터 인코딩, 암호화, 복호화가 있다.
5 계층 - 세션 계층: 네트워크의 노든 간의 연결 수명 주기를 관리한다. 연결 수립, 연결 시간초과 관지, 연결 종료 등의 기능을 담당한다.
4 계층 - 전송 계층: 전송의 안정성을 유지하면서 두 노드 간 데이터의 전송을 제어하고 저장한다. 데이터 저장의 신뢰성 유지를 위해서는 에러 수정, 데이터 전송 속도 제어, 누락된 데이터 재전송, 수신 데이터 등이 포함된다.
3 계층 - 네트워크 계층: 노드 간에 데이터를 전송하는 역할을 한다. OSI 참조 모델의 네트워크 계층에서는 전송의 신뢰성이나 전송 에러 등을 전송자에게 알려주기 위한 별도의 프로토콜이 필요하지 않다. 네트워크 계층은 라우팅, 주소 지정, 멀티캐스팅 및 트래픽 제어와 관련된 네트워크 관리를 위한 프로토콜이 중심이다.
2 계층 - 데이터 링크 계층: 직접 연결된 두 노드 간의 데이터 전송을 처리한다. 예를 들어 데이터 링크 계층은 시스템에서 스위치로, 스위치에서 다른 시스템으로 데이터를 쉽게 전송할 수 있도록 지원한다. 데이터 링크 계층에서의 프로토콜은 물리 계층의 에러를 식별하여 수정을 시도한다.
1 계층 - 물리 계층: 네트워크 스택에서 발생한 비트를 하위의 물리적 매체가 제어할 수 있는 전기, 광학 또는 무선 신호로 변환하고 타 노드의 물리적 매체에서 받은 신호를 다시 비트로 변환한다.

TCP/IP 모델

TCP/IP 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성된다. 추상화 계층은 애플리케이션 계층, 전송 계층, 인터넷 계층, 링크 계층으로 나뉜다.
TCP/IP의 프로토콜이 OSI 참조 모델의 5계층, 6계층, 7계층 사이의 경계를 자주 넘나들기 때문에 OSI 참조 모델의 애플리케이션 계층, 프레젠테이션 계층, 세션 계층은 TCP/IP 계층의 애플리케이션으로 단순화된다.
OSI 참조 모델의 데이터 링크 계층과 물리 계층을 TCP/IP의 링크 계층으로 단순화하고,
전송 계층과 네트워크 계층은 일대일로 매핑된다. 단, TCP/IP 모델에서는 네트워크 계층을 인터넷계층이라고도 한다.

애플리케이션 계층은 FTP, HTTP, SSH, SMTP, DNS, DHCP 등의 응용 프로그램이 사용하는 프로토콜 계층이다.

전송 계층은 대표적으로 TCP, UDP 등의 프로토콜이 있으며, 출발지에서 전송된 모든 데이터가 목적지로 데이터 무결성을 보장하며 완전하고도 올바르게 전송되도록한다. 데이터 무결성은 전송 계층을 통해 모든 데이터를 목적지에 모두 수신할 수 있다는 의미는 아니다. TCP 프로토콜에서의 무결성은 중복된 데이터나 누락된 데이터 없이 목적지에서 수신한 데이터의 순서가 정확하다는 의미이다.
TCP는 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인하며 가상회선 패킷 교환 방식을 사용하고,
UDP는 순서를 보장하지 않고 수신 여부를 확인하지 않고 단순히 데이터만 주는 데이터그램 패킷 교환 방식을 사용한다. UDP를 사용하는 경우, UDP를 사용하는 애플리케이션에서 에러 검사 기능이나 세션관리 등의 기능을 애플리케이션에서 직접 구현해야한다.

인터넷 계층은 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층으로, IPv4, IPv6, BGP, ICMP, 등이 있으며 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달한다.

링크 계층은 TCP/IP 프로토콜의 핵심적인 부분과 물리적인 매체 사이의 인터페이스이다. 링크 계층의 ARP는 노드의 IP 주소를 네트워크 인터페이스의 MAC 주소로 변환한다.

작성 예정

참고자료:
애덤 우드벡 저/김찬빈 역, Go 언어를 활용한 네트워크 프로그래밍 - 제이펍
박기현 저, 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 - 한빛 아카데미
주홍철 저, 면접을 위한 CS 전공지식 노트 - 길벗

profile
https://github.com/dong5854?tab=repositories

0개의 댓글

관련 채용 정보