Skip to main content Link Search Menu Expand Document (external link)

2.1 네트워크의 기초

  • 노드와 링크가 서로 연결되어 있거나 연결되어잇으며 리소스르 공유하는 집합
  • 노드란 서버, 라우터, 스위치 등의 네트워크 장치
  • 링크는 유선 또는 무선으로 연결된 상태

2.1.1 처리량과 지연 시간

  • 좋은 네트워크는 많은 처리량을 소화할 수 있으며 지연 시간이 짧고 장애 빈도가 적은 네트워크를 의미

처리량 (throughput)

  • 링크를 통해 전달되는 단위 시간당 데이터의 양
  • bits per second를 단위로 사용

지연 시간 (latency)

  • 요청이 처리되기까지의 소요 시간
  • 패킷의 크기, 라우터의 패킷 처리 시간에 영향

2.1.2 네트워크 토폴로지와 병목 현상

  • 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태
  • 트리 토폴로지
    • 계층형 토폴로지
    • 트리 형태로 구성
    • 노드의 추가, 삭제가 용이
    • 특정 노드에 트래픽이 집중될 때 하위노드에 영향을 끼칠 수 있음
  • 버스 토폴로지
    • 중앙 통신 회선 하나에 여러 개의 노드가 연결
    • 근거리 통신망(LAN)에서 사용
    • 설치 비용이 적고 신뢰성이 우수
    • 스푸핑이 가능

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

  • 스타 토폴로지
    • 중앙에 있는 노드에 다른 노드가 모두 연결된 구성
    • 노드 추가 용이
    • 에러 탐지 용이
    • 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영향 없음
    • 중앙 노드에 장애가 발생하면 네트워크 전체에 문제 발생
    • 패킷 충돌 발생 가능성 적음
  • 링형 토폴로지
    • 각각의 노드가 양 옆의 두 노드와 연결하여 하나의 고리처럼 구성
    • 노드 수가 증가되어도 네트워크 상의 손실이 거의 없음
    • 충돌 발생 가능성 적음
    • 노드의 고장을 쉽게 발견할 수 있음
    • 네트워크의 구성 변경이 어렵다.
  • 메시 토폴로지
    • 그물망처럼 연결
    • 링형 토폴로지의 확장 형태
    • 한 노드에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크 사용 가능
    • 트래픽 분산 가능
    • 노드의 추가가 어렵고 구축 및 운용 비용이 고가
  • 병목 현상
    • 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
    • 네트워크의 토폴로지를 파악해야 병목 현상을 올바르게 해결할 수 있음

2.1.3 네트워크 분류

  • 규모 기반의 분류
    • LAN (Local Area Network) : 사무실 또는 개인적으로 구축 가능한 수준
    • MAN (Metropolitan Area Network) : 도시 정도의 규모
    • WAN (Wide Area Network) : 세계 규모

2.1.4 네트워크 성능 분석 명령어

  • 어플리케이션의 코드 상 문제는 없으나 사용자가 서비스로부터 데이터를 가져오지 못하는 상황
  • 네트워크 병목 현상일 가능성 존재
  • 병목 현상의 주 원인
    • 네트워크 대역폭
    • 네트워크 토폴로지
    • 서버 CPU, 메모리 사용량
  • ping (Packt Internet Groper)
    • 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송
    • 대상 노드의 패킷 수신 상태와 도달하기 까지 시간 등을 알 수 있음
    • ICMP 프로토콜을 통해 동작
      • ICMP 프로토콜을 지원하지 않는 기기나 ICMP가 차단된 네트워크에서는 사용 불가
    • ping [IP address or domain]
  • netstat
    • 접속되어 잇는 서비스들의 네트워크 상태를 표시하는데 사용
    • 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트 출력
    • 주로 서비스의 포트가 열려 있는지 확인할 때 사용
  • nslookup
    • DNS에 관련된 내용을 확인하기 위해 사용
    • 특정 도메인에 맵핑된 IP를 확인
  • tracert
    • 목적지 노드까지 네트워크 경로를 확인할 때 사용
    • 어느 구간에서 응답 시간이 느려지는 확인 가능

2.1.5 네트워크 프로토콜 표준화

  • 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
  • IEEE 또는 IETF 같은 표준화 단체에서 정의

2.2 TCP/IP 4계층 모델

  • TCP/IP 4계층 모델 / OSI 7계층 모델

| 애플리케이션 계층 | 애플리케이션 계층 | | — | — | | | 프레젠테이션 계층 | | | 세션 계층 | | 전송 계층 | 전송 계층 | | 인터넷 계층 | 네트워크 계층 | | 링크 계층 | 데이터 링크 계층 | | | 물리 계층 |

  • 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계
  • TCP/IP 4계층 모델 위주로 설명

2.2.1 계층 구조

  • 애플리케이션 계층
    • FTP, HTTP, SSH, SMTP, DNS
    • 응용 프로그램이 사용되는 프로토콜 계층
    • 웹 서비스, 이메일 등 서비스를 실질적으로 사용자에게 제공하는 계층
  • 전송 계층
    • TCP, UDP
    • 송신자와 수신자를 연결하는 통신 서비스를 제공
    • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
    • 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할
    • 가상 회선 패킷 교환 방식
      • 각 패킷에 가상회선 식별자가 포함
      • 모든 패킷을 전송하면 가상회선이 해제
      • 패킷들은 전송된 순서대로 도착
    • 데이터그램 패킷 교환 방식
      • 패킷이 독립적으로 이동하며 최적의 경로를 선택
      • 각 패킷은 도착한 순서가 다를 수 있음
    • TCP 연결 성립 과정
      • 연결 신뢰성 확보를 위해 3-way handshake 작업 수행
        1. SYN 단계
        • 클라이언트는 서버에 ISN을 담아 SYN을 전송
        • ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호 2. SYN + ACK 단계
        • 서버는 SYN을 수신하고 서버의 ISN을 클라이언트로 전송
        • 승인번호로 클라이언트의 ISN + 1을 전송 3. ACK 단계
        • 클라이언트는 서버의 ISN + 1 값인 승인번호를 담아 ACK를 전송
    • TCP 연결 해제 과정
      • 연결 해제는 4-way handshake 과정을 수행
        1. FIN from client
        • FIN으로 설정된 세그먼트 전송
        • 클라이언트는 FIN_WAIT_1 상태에서 서버의 응답 대기 2. ACK
        • 서버는 클라이언트로 ACK라는 승인 세그먼트를 전송
        • CLOSE_WAIT 상태
        • 클라이언트는 ACK를 받으면 FIN_WAIT_2 상태 3. FIN from server
        • 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN 세그먼트 전송 4. ACK from client
        • 클라이언트는 TIME_WAIT 상태
        • 다시 서버로 ACK를 전송
        • 서버는 CLOSED 상태
        • 이후 클라이언트는 일정 시간 대기후 연결이 닫히고 모든 자원의 연결 해제
      • 왜 클라이언트는 TIME_WAIT 상태에서 일정 시간 후에 연결을 해제할까?
        • 지연 패킷이 발생할 경우를 대비
        • 두 장치가 연결이 닫혔는지 확인하기 위함
  • 인터넷 계층
    • 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송
    • 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결적 특징
  • 링크 계층
    • 실질적으로 데이터를 전달하는 장치 간에 신호를 주고 받는 규칙을 정하는 계층
    • 물리 계층과 데이터 링크 계층으로 나누기도 함
  • 유선 LAN (IEEE802.3)
    • 전이중화 통신
      • 양쪽 장치가 동시에 송수신할 수 있는 방식
      • 송신로와 수신로로 나눠서 데이터를 송수신
    • TP 케이블
      • twisted pair cable
      • 8개의 구리선을 두개씩 꼬아서 묶은 케이블
      • 구리선을 실드처리하지 않고 덮은 UTP, 실드 처리한 STP
      • 흔히 말하는 LAN 케이블은 UTP 케이블
      • LAN 케이블을 꽂을 수 있는 커넥터를 RJ-45
    • 광섬유 케이블
      • 레이저를 이용해서 통신하므로 고속 통신이 가능
  • 무선 LAN (IEEE802.11)
    • 송수신이 같은 채널을 사용하기 때문에 반이중화 통신 사용
    • 반 이중화 통신
      • 양쪽 장치가 동시에 통신할 수 없음
    • CSMA/CD
      • 데이터를 보내기 전에 캐리어 감지 등으로 충돌 방지
        1. 데이터를 송신하기 전에 무선 매체를 탐지
        2. 캐리어 감지 : 회선이 비어 있는지 판단
        3. IFS(Inter FrameSapce) : 랜덤 값을 기반으로 정해진 시간만큼 대기, 채널이 사용 중이면 점차 그 시간을 증가하며 대기
        4. 이후에 데이터를 송신
    • 무선 LAN을 이루는 주파수
      • 2.4GHz 또는 5GHz
    • 와이파이
      • 대표적인 무선 LAN 기술
      • 무선 접속 장치 (Access Point)가 필요, 흔히 공유기
    • BSS (Basic Service Set)
      • 기본 서비스 집합
      • 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조
    • ESS (Extended Service Set)
      • ESS는 여러 무선 네트워크의 연결을 의미
      • 다른 BSS에서 또다른 BSS로 이동 가능
    • 이더넷 프레임
      • Preamble : 이더넷 프레임의 시작을 알림
      • SFD (Start Frame Delimiter) : 다음 바이트부터 MAC 주소 필드가 시작
      • DMAC SMAC : 수신 송신 MAC 주소
      • EtherType : 데이터 계층 위의 IP 프로토콜을 정의
      • Payload : 전달 받은 데이터
      • CRC : 에러 확인 비트
  • 계층 간 데이터 송수신 과정
    • 캡슐화 과정
      • 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함하고 해당 계층의 헤더를 삽입하는 과정
    • 비캡슐화 과정
      • 하위 계층에서 상위 계층으로 가며 헤더 부분을 제거하는 과정

2.2.2 PDU

  • PDU (Protocal Data Unit)
  • 계층에서 계층으로 데이터가 전달될 때 한 단위를 PDU라고 함
  • 제어 관련 정보들이 포함된 헤더, 데이터를 의미하는 페이로드로 구성
  • 각 계층마다 부르는 명칭이 다름
    • 애플리케이션 계층 : 메시지
    • 전송 계층 : 세그먼트, 데이터그램
    • 인터넷 계층 : 패킷
    • 링크 계층 : 프레임, 비트