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형태로 전송