IT 엔지니어를 위한 네트워크 입문) 제 1장. 네트워크 시작하기

JungEun Park·2022년 4월 20일
2

[ 학습 목표 ]

  • 네트워크의 물리적인 연결 기술 및 구성 요소
  • 네트워크 이론적 기반이 되는 OSI 7계층
  • 패킷이 실제로 전송되는 인캡슐레이션/디캡슐레이션 과정

1.1 네트워크 구성도 살펴보기

  • 네트워크는 크게 서비스를 받는 입장서비스를 제공하는 입장으로 구분

1.1.1 홈 네트워크

  • 구성요소
    • 모뎀, 공유기, 단말(노트북, 스마트폰, 태블릿, 데스크톱 등)
  • 물리적 연결 방법
    • 무선 연결 : 무선 랜 카드와 무선 신호를 보낼 수 있는 매체(공기)가 필요
    • 유선 연결 : 유선 랜 카드(=이더넷 랜 카드), 랜 케이블(=랜선)이 필요

1.1.2 데이터 센터 네트워크

  • 데이터 센터 네트워크는 안정적이고 빠른 대용량 서비스 제공목표로 구성
  • 이를 위해 다양한 이중화 기술을 사용해야 하며, 높은 통신량을 수용할 수 있어야만 함
  • 이런 조건을 만족하기 위해 10G, 25G, 40G, 100G, 400G와 같은 고속 이터넷 기술 사용
  • 기존엔 3계층 구성이 일반적이었지만, 가상화 기술과 높은 대역폭을 요구하는 스케일아웃 기반의 애플리케이션과 서비스가 등장하면서 2계층 구성인 스파인-리프 구조로 변화

💡 계층적 디자인 VS 스파인-리프 구조
- 계층적 네트워크 구조
: 전통적인 네트워크 디자인인 캠퍼스 네트워크와 같이 단말의 트래픽이 외부영역으로 이동하기 위해 코어 영역으로 집중(North-South 트래픽)되는 환경에서 효율적
: 각 지역간 링크를 최소화하고 두대의 장비가 각 Layer에 이중화로 구성되어 Fail-Over 수행
: 성능 개선을 위해선 트래픽이 집중되는 코어와 분산 스위치의 업그레이드 필요(Scale-Up)
- 스파인-리프 구조 (Spine-Leaf)
: Spine-Leaf 구조는 데이터센터의 트래픽이 수직적(North-South)에서 수평적(East-West / 서버 간 통신 증가)으로 변화되는 것을 효과적으로 대응하기 위해 적용
: 성능 개선을 위해서는 트래픽 분산을 위해 SPINE 스위치를 추가연결하는 구조(Scale-Out)
: SPINE-LEAF 구조는 CLOS 네트워크와 동일한 구조
: 작은 포트수의 고정형 스위치로 non-blocking 기반의 대규모 네트워크 패브릭 구축가능

💡 서버확장을 위한 2가지 방법 : 스케일 아웃 & 스케일 업
- 스케일 아웃 (Scale-Out)
: 서버를 여러 대 추가하여 시스템을 확장하는 방법
: 각 서버에 걸리는 부하를 균등하게 해주는 ‘로드밸런싱’이 필수적으로 동반되어야 함
: 서버 한 대가 장애로 다운되더라도 다른 서버로 서비스 제공이 가능
: 반면 모든 서버가 동일한 데이터를 가지고 있어야 하므로, 데이터 변화가 적은 ‘웹 서버’에 적합한 방식
- 스케일 업 (Scale-Up)
: 서버에 CPU나 RAM 등을 추가하거나 고성능의 부품, 서버로 교환하는 방법
: 서버에 추가 부품을 장착할 수 있는 여유 슬롯이 있어야 함
: 여유 슬롯이 없는 경우, 서버 자체를 고성능으로 교체하는 방법으로 확장 가능
: 서버 한 대에 모든 부하가 집중되므로 장애 시 영향을 크게 받을 수 있는 위험성이 있음
: 한 대의 서버에서 모든 데이터를 처리하므로 데이터 갱신이 빈번하게 일어나는 ‘데이터베이스 서버’에 적합한 방식

1.2 프로토콜

  • 프로토콜(Protocol)

    • 사전에 정해 놓은 순서
    • 통신 프로토콜 : 컴퓨터가 서로 통신하기 위해 정한 규약
  • 발전 역사
    : 네트워크 서비스들이 처음 개발되었던 1900년대의 적은 컴퓨팅 자원과 매우 느린 네트워크 속도를 이용해 최대한 효율적으로 통신하는것이 목표로 구현되다 보니,대부분의 프로토콜이 문자가 아닌 2진수 비트 기반으로 만들어짐.
    : 최소한의 비트로 내용을 전송하기 위해 매우 치밀하게 서로 간의 약속을 정의
    : 애플리케이션 레벨의 프로토콜은 비트 기만이아닌 문자 기반 프로토콜들이 많이 사용
    (ex. HTTP, SMTP 등)
    : 최근에는 복잡하고 산재되어 있는 여러 가지 프로토콜 기술이 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있는 추세

  • 규정 요소
    : 물리적 측면 : 데이터 전송 매체,신호 규약, 회선 규격 등. 이더넷이 널리 쓰임
    : 논리적 측면 : 장치들끼리 통신하기 위한프토코몰 규격. TCP/IP가 널리 쓰임

💡 프로토콜 스택
: 별도 계층에서 동작하는 프로토콜이지만 함께 사용하는프로토콜 묶음
: 데이터 통신에 활용되는 프로토콜의 구조에 관한 개념으로 계층화된 구조로 모여 있는 프로토콜의 집합으로, 프토토콜 슈트(Protocol Suite) 또는 프로토콜 패밀리(Protocol Family)라 불리기도 한다.

1.3 OSI 7계층과 TCP/IP

1.3.1 OSI 7계층

  • OSI 7계층 모델
    • OSI(Open Systems Interconnection)라는 통신 규약을 만들 때 고안된 OSI 통신 기능을 7개의 계층으로 나눈 것
    • OSI 자체는 현재 사용되고 있지 않지만, 다양한 분야에서 공통적으로 잠조할 수 있는 '참조 모델'로 현재도 사용되고 있음
    • 참조 모델이 되면서 엔지니어가 서로 공용할 수 있는 공통 언어 역할도 함
    • 계층별로 표준화된 프르토콜 템플릿을 개발하는 대신 계층별로 프로토콜을 개발해 네트워크 구성 요소들을 모듈화하여 사용

1.3.2 TCP/IP 프로토콜 스택

[ TCP/IP 프로토콜 스택 구성 ]

1.4 OSI 7계층별 이해하기

1.4.1 1계층 (피지컬 계층)

  • 물리적 연결과 관련된 정보를 정의
  • 주로 전기 신호를 전달하는 데 초점
  • 주요 장비
    • 허브(Hub), 리피터(Repeater) : 네트워크 통신을 중재하는 네트워크 장비
    • 케이블(Cable), 커넥터(Connector) : 케이블
    • 트랜시버(Tranceiver) : 컴퓨터의 랜 카드와 케이블을 연결하는 장치
    • 탭(TAP) : 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복재하는 장치
  • 들어온 전기 신호를 그대로 잘 전달하는 것이 1계층의 목적
  • 전기 신호가 1계층 장비에 들어오면 이 신호를 재생성하여 내보냄
  • 1계층 장비는 주소 개념이 없으므로, 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호 전송

1.4.2 2계층 (데이터-링크 계층)

  • 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리

  • 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는데 초점

  • 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리 수행

  • 데이터에 대한 에러를 탐지하거나 고치는 역할 수행 가능

  • 이더넷 기반 네트워크의 2계층에서는 에러를 탐지하는역할만 수행

  • 플로 컨트롤 (Flow Control) : 주소 체계가 생겨나므로 여러 명과 통신할 수 있게 되는데, 무작정 데이터를 던지는 것이아니라, 받는 사람이 현재 데이터를 받을수 있는지 확인하는 작업

  • 2계층의 가장 주요한 특징은 'MAC 주소' 체계가 존재한다는 것

  • 구성 요소

    • 네트워크 인터페이스 카드
      : PC나 서버에서 네트워크를 연결해주는 카드나 인터페이스 지칭
      : 고유 MAC 주소를 가짐
      = 네트워크 인터페이스 컨트롤러 = NIC
      = 네트워크 카드
      = 랜 카드
      = 물리 네트워크 인터페이스
      = 이더넷 카드
      = 네트워크 어뎁터
    • 스위치(Switch) : MAC 주소를보고 통신해야 할 포트를 지정해 내보내는 능력
      : 스위치는 주소 습득(Address learning)과정을 통해 단말이 어떤 MAC주소인지, 연결포트는 무엇인지 알 수 있다.
      : 이 데이터를 기반으로 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩
      : 스위치의 필터링과 포워딩 기능으로 불필요한 처리가 감소하면서 이더넷 네트워크 효율성이 크게 향상되어 이더넷 기반 네트워크가 급증하는 계기가 됨.
    1. 입력되는 전기 신호를 데이터 형태로 변환.
    2. 데이터에서 도착지 MAC 주소 확인
    3. 네트워크 인터페이스 카드의 MAC 주소 확인
    4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 상위 계층에서 처리할 수 있도록 메모리에 적재, 주소가 틀릴 경우 데이터 폐기

1.4.3 3계층 (네트워크 계층)

  • IP주소와 같은 논리적인 주소가 정의 됨
  • 3계층을 이해하는 장비나 단말네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크를 가려면 어디로 가야 하는지 경로를 지정하는 능력이 있음
  • 구성 장비
    • 라우터(Router) : IP 주소를 이용해 최적의 경로를 찾아주고, 해당 경로로 패킷을 전송하는 역할

IP 주소

  • 사용자가 환경에 맞게 변경해 사용할 수 있는 주소
  • 네트워크 주소 부분과 호스트 주소 부분으로 구성됨
  • 구분점 3개로 주소가 나뉘어 짐

1.4.4 4계층 (트랜스포트 계층)

  • 실제로 데이터들이 정상적으로 잘 보내지도록 확인하는 역할
  • 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할 담당 by using 시퀀스번호, ACK번호
    • 시퀀스 번호 (Sequence Number) : 패킷 해더에 보내는 순서를 명시한 것
    • ACK 번호 (Acknowledgement Number) : 받는 순서를 나타낸 것
  • 포트 번호 (Port Number) 를 사용해 상위 애플리케이션 구분
  • 구성 장비
    • 로드 밸런서 : 포트번호, 시퀀스, ACK 번호를 이용해 부하 분산
    • 방화벽 : 보안 정책을 수립해 패킷을 통과, 차단하는 기능 수행

1.4.5 5계층 (세션 계층)

  • TCP/IP 세션을 만들고 없애는책임을 지는 역할
  • 에러로 중단되 통신에 대한 에러 복구와 재전송도 수행

1.4.6 6계층 (프레젠테이션 계층)

  • 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 톱기 위해 하나의 통일된 구문 형식으로 변환시키는 기능 수행
  • 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 줄임
  • MIME 인코딩이나 암호화, 압축, 코드 변환과 같은 동작 수행

1.4.1 7계층 (애플리케이션 계층)

  • 애플리케이션 프로세스를 정의하고, 애플리케이션 서비스를 수행
  • 네트워크 소프트웨어의 UI 부분이나 사용자 IO부분 정의
  • 대표적인 프로토콜로 PTP, SMTP, HTTP, TELNET이 존재

1.5 인캡슐레이션과 디캡슐레이션

패킷 기반 네트워크

  • 데이터를 패킷 단위로 쪼개 전달
  • 하나의 통신이 회선 전체를 점유하지 않고 동시에 여러 단말이 통신 하도록 기능

인캡슐레이션 (Encapsulation)

  • 상위 계층에서 하위 계층으로 데이터를 보내면서 물리 계층(f랜 카드)에서 전기 신호 형태로 네트워크를 통해 신호를 보내는 과정
  • 네트워크 상황을 고려해 적절한 크기로 데이터 분할하여 패킷 생성
  • 4계층, 3계층, 2계층에서 각각 자신이 필요한 정보를 비트 단위로 추가

디캡슐레이션 (Decapsulation)

  • 전기 신호를 받아 데이터화하여 하위계층에서 상위계층으로 전달하는 과정
  • 1계층에서 전기 신호를 데이터화 하여 2계층으로 전달
  • 2계층 헤더에 포하된 정보를 확인하여 목적지가 자신이 맞는지 확인
    : 맞을 경우, 2계층 해더 정보를 벗겨낸 뒤, 3계층으로 전달
    : 아닐 경우, 랜 카드가 데이터 폐기
  • 3계층의 헤더 정보 확인 후, 3계층 헤더를 벗겨낸 뒤 4계층 전달
    (반복하여 애플리케이션단까지 전달)

🚨헤더에 반드시 정의되어야 하는 사항🚨

  1. 현재 계층에서 정의하는 정보
    • 4계층 : 시퀀스 번호, ACK 번호
    • 3계층 : 출발지, 도착지 IP 주소 정보
    • 2계층 : 출발지, 도착지 MAC 주소
  2. 상위 프로토콜 지시자 정보
    • 프로토콜 스택은 상위 계층으로 올라갈수록 종류가 많아지는데, 헤더에 아무 정보가 없으면 디캡슐레이션시 어떤 상위 프로토콜로 전달해야할 지 결정할 수 없는 문제 발생
    • 4계층 : 포트 번호 (애플리케이션 계층의 프로토콜 종류 지정)
    • 3계층 : 프로토콜 번호
    • 2계층 : 이더 타입

profile
¡sin prisa pero sin pausa!

0개의 댓글

관련 채용 정보