본문 바로가기

01. Network

Network-2 (Network, OSI 7 Layer, L1~L3 네트워크 장비, TCP/IP, 네트워크 통신)

728x90

1. Network

- 네트워크: 데이터/리소스를 공유하기 위해서 매체를 통해 연결된 시스템들의 집합

- 네트워크 확장을 위해 "네트워크 장비" 사용

- 서비스 제공에서 일종의 규칙/규약이 "Protocol"

- 통신 Protocol : OSI 7 Layer Model & TCP/IP Protocol

- 물리/논리적인 연결성을 보여주는 "Topology"

  Ex.1. Ethernet에서 Bus Topology (<- 네트워크 장비가 없을 때) 

  Ex.2. Star(Hub&Spoke) Topology (<- 네트워크 장비 사용)

  Ex.3. Tier-star Topology (<- 네트워크 장비 간의 연결성을 개선하기 위해)

- LAN ; 물리적 한계 안의 네트워크 -> 오늘날에는, 개인/기업의 소유(ServiceProvider로부터의 회선비용 측면) 의미

- WAN ; 물리적 한계 밖의 네트워크 -> SP의 네트워크 (<- Private의 개념이 포함;사설망)

  (df) Internet : 물리적 한계 밖의 네트워크들이 묶어져 있는 Public의 개념 -> 기업에서 인터넷에서의 보안 목적으로 VPN(Virtual Private Network) 구성함

    ※ 공유기 포트가 인터넷이 아닌 WAN이라고 되어있듯이, 특별하게 구분해야하는 상황이 아니면 인터넷과 WAN 같이 사용

- 현재 인터넷 망이 TCP/IP로 구현되어 있기에 TCP/IP Protocol 중요


2. OSI 7 Layer

+ L1 [Physical]

  - 물리적인 연결(~ 케이블)

+ L2 [Data Link]

  - *논리적인 연결 -> (논리적인 연결을 위한) 주소 필요 -> L2 주소(MAC주소): 물리적이며 평면적인 주소

    *논리적인 연결; "전송을 위한 데이터의 형식 결정 & 매체 접근 방식(MAC)의 제어" 의미

  - 네트워크 내에서 공유된 매체에 대해 매체 접근 방식(MAC)을 제어

    Ex. Ethernet의 CSMA/CD(Carrier-sense Multi Access) 방식

+ L3 [Network]

  - 로컬 네트워크와 Remote 네트워크가 연결 -> 논리적이고 계층적인 주소(IP주소) 

    ~ 어느 네트워크에 속하는지 있어야 주소사용 가능하여 연결 가능

  - 로컬 네트워크과 Remote 네트워크와의 연결에서 "경로결정"

+ L4 [Transport]

  - 양단간 연결(End-to-End Connections)

    -> 양단간 연결에서 서비스를 구분하기 위한 "포트 번호" 사용

  - 실제로 끝단에서 연결 -> 마치 직접 연결한 것 같은 환경(; Virtual Circuits/Connections)이 만들어짐

    -> 정보 흐름의 오류 확인 & 복구 -> 신뢰성 제공

+ L5 [Session]

  - 서비스 할 수 있도록 (상호 응용 프로그램 사이의) Session(연결 상황) 확립, 관리, 해제하는 부분

+ L6 [Presentation]

  - (L7을 위해) 데이터 형식(ex. 코드변환, 구문변환, 압축, 암호화, etc.)을 협의 

    -> (형식에 따른) 데이터 전송 방법 결정

+ L7 [Application]

  - (응용 프로그램을 위한) "네트워크 서비스"(~데이터/리소스 공유) 제공

    -> 사용자가 이용할 네트워크 서비스들을 정의

 

  2.1. Encapsulation: (Header, Trailer 등의) Control Information을 포함해서 (전송할) 데이터가 아래 계층으로 내려가는 작업

  2.2. De-encapsulation: Control Information을 제거하며 윗 계층으로 올라가는 작업


3. L1, L2, L3 장치의 기능

  3.(1). L1, L2, L3 장치의 기능에 대한 이해를 위해 LAN에서 발생하는 현상 확인

    매체 공유에서 Collision 발생 -> Collision Domain 개념 생성 -> 매체 접근 방식 CSMA/CD 사용

 

  3.1. L1(Ex. Hub) 장비의 기능 : Flooding

  3.2. L2 장비의 기능 : L2 정보(;MAC주소)를 기반으로 Data 전송 

    Ex. L2 Switch

    3.2.(1). 브릿지와 L2스위치의 차이 

      + Bridge : 소프트웨어적(; CPU에 의존적으로) 처리

      + L2 Switch : 하드웨어적(; 별도의 칩셋(ASIC)으로) 처리

      -> L2스위치는 시스템이 많이 늘어도 포트 별로 전용 대역폭을 제공

      -> 유니캐스트의 경우, 데이터가 많아지는 것을 L2스위치가 보완

        => L2스위치의 속도가 브릿지에 비해 1000배 가량 더 빠르다

      ※ 원래 브랜드 제품명이었던 ‘스위치’가 고유명사가 되었다.

    3.2.(2). L2스위치의 Collision 관리 

      - 스위치 내부에서 포트마다 (전기 신호를 디지털 신호로 또) Frame 형태로 Buffer memory에 저장

        -> L2스위치의 전체 포트들에 들어온 Data 전송을 순차적으로 처리

          -> 포트별 Collision Domain 형성

      => Collision 횟수 감소!

    3.2.(3). L2 Switch의 기능

      [1] 연결  

      [2] Collision 관리  

      [3] Unicast Traffic 관리

        ~ MAC Table을 기반으로 1:1 통신(Unicast) 가능하다

    3.2.1. L2 Switch 사용 시 발생 현상

      - Part 별 Collision Domain -> Collision Issue 감소!

      - Large Broadcast Domain -> Network System 성능 Issue 증가!

        -> Network Storm 발생 

          ~ L2스위치는 케이블(물리적 연결)과 같이 Unicast의 Network Storming을 해결하지 못 한다. 

      3.2.1.(1). Network Storm

        ; 2계층에서 브로드캐스트 데이터가 전달 될 수 있는 영역을 “브로드캐스트 도메인”이라고 묶으며,

        MAC Table은 데이터 전송에 따른 Source MAC Address(<- 유니캐스트 주소만 가능한 출발지 주소) 정보를 통해서 작성되기에

        (; MAC Table 작성이 Dynamic(동적으로) 작성되기 때문에; MAC Table Learning)

       ※ Destination(목적지) MAC Address에 (유니캐스트 주소가 아닌) 브로드캐스트 주소를 가진 브로드캐스트 데이터는 MAC Table을 바탕으로 스위치가 목적지를 알지 못한다

            -> 그래서 브로드캐스트 도메인(; 네트워크 전체)에 신호를 보내게 된다(-> Flooding)

              => Network Storm 발생 -> 네트워크 시스템 성능 저하

          Ex. 지하철 역 출발 시, 와이파이 끊김 현상 

          - 해결하기 위해서는, 별도의 3계층 장비 요구

 

※ FCS(Frame Check Sequence)

  + 신호가 전송되는 동안에 문제가 생기는 것을 체크하기 위해 사용

    - 통신 도중에는 에러를 고칠 수 없음

    - 에러가 있었던 프레임은 후에 파기 <- ?파기했다는 정보를 송신 측에 알릴 필요X?

 

3.3. L3 장비(Ex. Router & L3 Switch)의 기능

  1. Routing : (여러 네트워크끼리) 경로 결정(Optimal Path) <- Routing Table

  2. L3 Switching : L3 정보(IP -> “Routing Table”)를 기반으로 Data 전송

 

  3.3.(1). Router vs L3스위치

    - 라우터는 WAN과의 연결하는 부분에서 사용

    - L3스위치는 내부 VLAN에서의 네트워크끼리 연결부에서 사용(; Inter VLAN Routing 기능)

  3.3.(2). Router의 동작

    - 보안 상, Port Lock 기본 설정으로 되어있다(; Shutdown 상태)

  3.3.(3). Router의 기본 설정 순서

    (1) Port 열기 (2) 포트 IP 설정

  3.3.(4). Router 

    -> Port 별 CD 형성 & Port 별 BD 형성

      - 기본적으로 다른 네트워크에 브로드캐스트 데이터를 넘기지 않는다(; 유니캐스트 데이터만 전달한다)

      - 라우터가 브로드캐스트 데이터를 라우터를 넘어가는 경우 

        Ex. 해당 포트의 네트워크 대역이 아닌 다른 네트워크의 브로드캐스트(= 서브넷 브로드캐스트) 데이터 전송일 경우,

          해당 네트워크 대역의 포트에 전달로 “브로드캐스트 데이터가 라우터를 넘어가게 된다”


4. TCP/IP: TCP&UDP, ICMP, ARP, RARP

  4.1. TCP

    - 흐름 제어를 하여, TCP 3-way Handshake의 Virtual Circuit(Connection)으로 신뢰성 있는 전송; ACK를 전송해주는 통신(; 상태 확인이 가능한 전송)

      -> 상태 확인 절차로 인해, 데이터 전송이 느려지는 현상 발생

    - 양방향 통신 가능(; Full Duplex 가상회선)

    => OverHead(; 데이터 전송에 부가적인 정보(Control Information’s Header part)가 많아져서 데이터가 커진다)가 발생

  4.2. UDP

    ; 순서번호가 없다 -> 분할이 없다(;Fragmentation이 없다) <- 사이즈가 작다

 

  4.3. IP (Internet Protocol): 네트워크간의 데이터 전송이 주 목적 -> 그래서, 주소가 필요

    - Best-Effort Delivery(;신뢰성 보장 못함) -> 데이터 전달 시 문제로 Drop하면 ICMP 메시지가 발생해서 수습

    Ref. 0.0.0.0 주소의 2가지

      (1) NetworkMask가 0.0.0.0일 경우,

        인터넷 전체를 의미

      (2) NetworkMask가 255.255.255.255일 경우,

        Unspecified Network; 특정되지 않은 네트워크 주소 의미

    ※ supernetting = aggregation = summarization

 

  4.4. RARP -> 잘 안쓰고, DHCP로 사용

    - RARP는 서브넷마스크 or 네트워크 정보는 X, 오직 IP주소만 요청 

      -> 후에 ICMP로 서브넷마스크, 게이트웨이 등 정보를 받는다.

      Ref. RARP -> BootP -> DHCP

    ※ ARP, RARP는 IP Header가 없다. -> ARP Frame이라 칭하게 된다.(; Not Packet)

      => IP 정보가 없기에, 하나의 네트워크에서만 동작 

        -> IPv4의 공격은 ARP에서는 안 먹히지만, IPv6에서는 가능

    + ARP: Remote IP -> Remote MAC 자동 매핑

      df. RARP: Local MAC -> Local IP 매핑

 

  4.5. ICMP의 두가지 기능

    4.5.(1). 데이터가 Drop 될 시, 오류 보고로써 기능 ~Error Reporting 용도

      Ex. Destination Unreachable, Time exceeded 

    4.5.(2). 정보 제공용 ~Query 용도

      Ex. Ping(~ Echo request/reply)

더보기

    ※ tracert는 Time exceeded를 사용한 명령어


5. 네트워크 통신

5.1. Situation 1. [하나의(같은) 네트워크 내에서 통신]

  + A: 192.168.1.10/24

  + B: 192.168.1.20/24

 

  A : # ping 192.168.1.20

  FRAME :

  | L2T | Data | SI     | DI     | L2H’s SM | L2H’s DM |  

  | FCS| Data | 1.10 | 1.20  | A               | ?              |    

    ※ SI Source IP, DI Destination IP, SM Source MAC, DM Destination MAC

 

  L2H’s DM?

  ⇩

  1. ARP Cache check  # arp -a :arp table 확인 Command

  2. Network 비교

    (1) *같은 네트워크 일 경우, ARP 동작

      (1)-1. ARP Request Broadcast Frame (A to ALL) 전송

      (1)-2. ARP Reply Unicast Frame (B to A) 전송

      (1)-3. ARP Cache 저장

    *ARP의 경우 프레임 구조로 넘겨주기에 라우터(L3)에서는 읽을 수 없어서 다른 네트워크로 못 넘어간다 (~ARP를 이용한 공격은 라우터를 못 넘는다)

 

  5.2. Situation 2. [다른 Network 간 통신]

  + A : 192.168.1.10/24, D/GW : 192.168.1.1/24

  + Router

    Port1(Eth1-A) : 192.168.1.1/24

    Port2(Eth2-B) : 192.168.2.1/24

  + B : 192.168.2.1/24, D/GW : 192.168.2.10/24

 

  A : # ping 192.168.2.10

  ->> L2H’s DM? (; Situation 1과 같이)

  ⇩

  1. ARP Cache Check

  2. Network 비교

    다른 네트워크 일 경우, ARP 동작 X -> 데이터를 직접 전달 불가능을 인지 

  3. Default GW 확인

    -> Default GW의 MAC?

    (1) ARP Cache Check

      (1).1. ARP 테이블 O

      (1).2. Network 비교 (; Source IP vs Default GW’s IP)

      (1).3. ARP 동작! (<- D/GW는 같은 네트워크이기에)

  4. L2H’s DM = D/GW’s IP

  5. 라우터) Decryption으로 패킷에 DI가 D/GW(본인)이 아님을 인지

    -> DI(; Destination)로 보내주기 위해, Encryption 

      -> DI’s Mac Address(L2H’s DM)?

        -> (1) ARP Cache Check (2)...

 ~ 패킷의 내용은 변하지 않고 구간(네트워크)마다 Encrypt & Decrypt하면서 전송 

    ※ VoIP : 음성 데이터를 Frame형태로 전송

728x90