구버전/CS Study

[Careerthon] 네트워크 기초

고래강이 2023. 11. 13. 15:16

개요

  • 네트워크 기본개념
  • 네트워크 토폴로지
  • 네트워크 분류
  • OSI 7계층

컴퓨터 네트워크

컴퓨터 네트워크란 서로 데이터를 교환하고 리소스를 공유할 수 있는 디지털 전기통신망을 말한다.

네트워크 : 노드(Node)와 링크(Link)가 서로 연결되어 있거나 연결되지 않은 집합체

노드: 서버, 라우터, 스위치 등의 네트워크 장비

링크: 유선, 무선

처리량 : 링크를 통해 전달되는 단위시간당 데이터 양

지연시간: 요청이 처리되는 시간 (두 장치 사이를 어떠한 메시지가 왕복한는 데 걸리는 시간)

매체타입(유,무선), 패킷 크기, 라우터의 패킷처리 시간에 영향을 받음

패킷: 용량이 큰 데이터를 분할해서 전송할 때 사용하는 단위

분할 시 패킷별로 순서가 생성되고 순서에 상관없이 전송된 후 목적지에 정렬


네트워크 토폴로지

네트워크 토폴로지: 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결형태

병목현상을 찾을 때 중요한 기준이 될 수 있다

 

  • 망사형(Mesh Topology)
    • 모든 컴퓨터 장치에 연결되어있는 구조
    • 대규모 네트워크에 유리함 
    • 응답시간이 매우 빠르다
    • 트래픽 분산처리 가능
    • 노드 하나가 에러가 생겨도 장애가 전체로 퍼지지 않음
    • 노드추가가 어려우며 구축비용과 운영비용이 많이 듬
  • 스타형(Star Topology)
    • 모든 컴퓨터가 중앙허브에 1:1로 연결된 구조 
    • 중앙허브를 두고 하나씩 연결되어 유지 보수, 확장성이 좋음
    • Node 추가 및 에러탐지 쉬움
    • 패킷 충돌 가능성 낮음
    • 중앙허브에 에러가 생기면 모든 노드가 영향을 받음 (중앙허브에 대한 보안(안정성,신뢰성 확보)필요)
  • 트리형(Tree Topology)
    • 모든 컴퓨터가 계층적으로 연결되어 있는 구조
    • 분산처리시스템 구성방식 
    • Node 추가 및 삭제 쉬움
    • 특정 노드에 트래픽이 집중되면 하위 노드에 영향을 끼칠 수 있음
  • 링형(Ring Topology)
    • 인접한 컴퓨터 장치끼리 연결되어 있는 구조 
    • Node 수가 증가되어도 네트워크 상 손실 없음
    • 에러탐지 쉬움
    • 패킷 충돌 가능성 낮음
    • 네트워크 구성 변경이 어려움
    • 회선 하나에 장애가 발생하면 전체 네트워크에 영향을 끼침
  • 버스형(Bus Topology)
    • 하나의 통신 회선에 여러대의 컴퓨터가 연결되어 있는 구조 
    • LAN에서 사용함
    • 구조가 간단하고 설치가 쉽고 신뢰성이 우수함
    • 중앙 통신 회선에 Node추가, 삭제 쉬움
    • 스푸핑에 취약함

네트워크 분류

  • 근거리 통신망(LAN, Local Area Network)
    • 집, 사무실, 학교 등 수 킬로미터 내의 가까운 거리에 있는 컴퓨터 및 각종 기기를 통신 회선으로 연결한 통신 
    • 버스형, 링형, 스타형이 많이 사용됨
    • 전송속도가 빠르고 혼잡하지 않음
  • 도시 통신망(MAN, Metropolitan Area Network)
    • 도시규모의 거리에 있는 컴퓨터들을 통신 회선으로 연결한 통신망
    • 여러개의 LAN을 라우터로 상호연결 함
    • 전송속도 평균, LAN보다 혼잡
  • 광역 통신망(WAN, Wide Area Network)
    • 국가 또는 대륙과 같은 매우 넓은 지역을 대상으로 하는 통신망
    • 일반적으로 공중통신사업자가 제공하는 전용회선을 연결해서 사용
    • 전송속도 낮음고 MAN보다 혼잡

OSI 7계층 (Open System Intercon-nection)

네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것

계층별 기능과 통신과정을 정립하여 교육하기 위한 목적으로 사용

다른 시스템과의 상호연결 및 통신이 가능한 시스템에서 사용되는 네트워크 통신을 정의하는 논리적이고 개념적인 모델

이점

  • 이로써 통신이 일어나는 과정을 단계별로 파악할 수 있다.
  • 흐름을 한눈에 알아보기 쉽다
  • 7단계 중 특정한 곳에 생긴 이상으로 인해 빠르게 고칠 수 있다.

  • 1계층 - 물리계층 (Physical Layer)
    • 전기적 기계적 기능적 특성을 이용해서 통신 케이블로 데이터를 전송
    • 단지 데이터를 전송하는 기능만 하며 어떤 데이터인지 어떤 에러인지 신경쓰지 않음
    • 계층에서 사용되는 통신단위 : Bit 1과 0으로 이루어짐
    • 통신케이블, 리피터, 허브 등이 있음

  • 2계층 - 데이터 링크계층(DataLink Layer)
    • 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리, 안전한 정보의 전달을 도와주는 역할 수행
    • 통신에서의 오류 발견과 재전송을 함
    • 계층에서 전송되는 단위: 프레임
    • 맥 주소를 가지고 통신
    • 브리지, 스위치 (여기서 MAC adress 사)
  • 3계층 - 네트워크 계층(Network Layer)
    • 데이터를 목적지까지 가장 안전하고 빠르게 전달
    • Router를 통해 경로 선택, 주소(IP)를 정하고 경로(Route)에 따라 패킷을 전달
    • 계층에서 사용되는 단위 : 패킷(Packet)
    • 라우터
  • 4계층 - 전송계층(Transport Layer)
    • Port번호, 전송방식(TCP/UDP) 결정
      • TCP: 신뢰성, 연결지향적
      • UDP: 비신뢰성, 비연결성, 실시간
    • 두 지점간의 신뢰성 있는 데이터를 주고 받게 해줌 (Segment)
    • 신회를 분산하고 합치는 과정에서 에러와 경로를 제어
  • 5계층 - 세션계층(Session Layer)
    • 주 지점간의 프로세스 및 통신하는 호스트 간의 연결 유지
    • TCP/IP세션 체결, 포트번호를 기반으로 통신 세션 구성
    • 이후 과정에서는 Data가 전송 단위
    • API, Socket
  • 6계층 - 표현계층(Presentation Layer)
    • 전송하는 데이터의 표현방식을 결정(ex 데이터변환, 압축, 암호화 등)
    • 파일인코딩, 명령어를 포장, 압축, 암호화
    • JPEG, MPEG, GIF 등
  • 7계층 - 응용계층(Applocation Layer)
    • 최종 목적지, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행 (chrome, explore 등)
    • HTTP, FTP, POP3 등과 같은 프로토콜

TCP/IP 4계층

OSI 7계층보다 먼저 나온 규격이나 현재 더 많이 활용되는 계층

특정 컴퓨터를 인터넷에 연결하는 방법과 컴퓨터 간에 전송하는 방법을 결정하는 모델헤더의 크기가 OSI보다 크다 (20바이트 vs 5바이트)

 

  • 1계층 - 네트워크접근계층(Network Access Layer)
    • OSI의 물리계층 + 데이터링크계층
    • TCP/IP패킷을 네트워크 매체로 전달 + 네트워크 매체에서 TCP/IP패킷을 받아들이는 과정을 담당
    • 에러 검출 기능 + 패킷의 프레임화
    • 네트워크 접근 방법, 프레임 포맷, 매쳉 대해 독립적으로 등장하도록 설계
    • 물리적 주소로 MAC adress 사용
    • LAN, 패킷망 등에 사용
  • 2계층 - 인터넷계층(Internet Layer)
    • OSI의 네트워크 계층
    • 어드레싱, 패키징, 라우팅 기능을 담당
    • 네트워크 상 최종 목적지까지 정확하게 연결되도록 연결성을 제공
    • IP, ARP, RARP 
  • 3계층 - 전송계층(Transport Layer)
    • OSI의 전송 계층
    • IP와 Port를 이용하여 프로세스와 통신
    • 애플리케이션 계층의 세션과 데이터그램 통신서비스 제공(데이터가 전달될 때의 중계역할)
    • 통신 노드 간의 연결을 제어, 신뢰성 있는 데이터 전송을 담당
    • TCP, UDP
  • 4계층 - 응용계층(Application Layer)
    • OSI의 세션계층 + 표현계층 + 응용계층
    • 프로그램(브라우저)가 직접 인터렉트하는 레이어, 데이터를 처음 받는 곳
    • 다른 계층의 서비스에 접근 할 수 있게 애플리케이션 제공(서비스를 실질적으로 사람들에게 제공)
    • 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
    • HTTP, SMTP 등의 프로토콜
    • TCP/UDP기반의 응용 프로그램을 구현할 때 사용
    • FTP, HTTP, SSH

계층 간 데이터 송수신 과정

  1. 애플리케이션계층에서 전송계층으로 사용자가 보내는 요청값들이 캡슐화과정을 거쳐 전달
  2. 네트워크접근계층을 통해 해당 서버와 통신
  3. 해당 서버의 네트워크접근계픙으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송

캡슐화: 상위계층의 헤더와 데이터를 하위계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정

비캡슐화: 하위계층에서 상위계층으로 가며 각 계층의 헤더 부분을 제거하는 과정