-
[Study28]About the big picture of NetworkFISA 2026. 2. 13. 12:25
최재혁 강사님이 오셔서 네트워크 한 과목에 걸쳐 알 수 있는 걸 ... 거의 이틀만에 알려주셨어요.
그래서 정리를 좀 해보려고 합니다.
0) In Network, We talk about Bandwidth rather than "speed"
[ KeyWord ]
Bandwidth / Throughput / Switch
What is Bandwidth?
: 이론적 maximum capacity of a link.
: 단위 is usually bps(bits per seconds). e.g., 1Gbps (Not 1 GBps)(대문자 ㄴㄴ)
Gbps = gigabits/sec
GB/s = gigabytes/sec ( 1GB = 8Gbps )
What is Throughput?
: the actual delivered rate you measure in real traffic.
: throughput is usually lower than bandwidth .
why?
1. protocol overhead
2. congestion / queueing
3. packet loss
4. CPU limits( router / firewall / NIC )
5. Wi-Fi medium contention
6. storage/app bottlenecks
Why "my network is slow?"
: slow network often means low throughput. not low bandwidth
Switch relation
: switch affects throughput
why?
1. witching capacity/backplane bandwidth
2. buffering & queueing (drops cause TCP retransmissions
3. duplex mode / link negotiation
4. broadcast storms, STP issues, etc.
1) Why we use that Protocol, PortNum?
[ KeyWord ]
Protocol / Port / IANA
Protocol?
: a standard rule set for communication
if_ without a shared protocol?
:message format / ordering / error handling differs
:interoperability breaks
examples...
ip - routing rules
tcp - reliable transport
HTTP - application -level request/response semantics
Port number?
: IP identifies the machine ; Port identifies the application
examples...
192.168.0.10:443 - HTTPS service on that host
192.168.0.10:22 - SSH on that host
IANA?
: manages global registries including well-known ports.
: Ports are commonly categorized:
0-1023 : well-known
1024-49151 : registered
49152-65535 : dynamic/private
- 이게 레지스트는, 돈을내긴하는데 협의가되면 돈을 안내도되는거래요
내가(사기업이) well Known 되고싶다 -> 사는거지... 우리가 걍 할땐 암거나 해도 돼요
we said, "port number can be bought" that means 공인 IP확보 맥락과 섞여 말하는 경우가 많고,
포트 자체는 구매라기보단 표준/등록의 영역
2) Accurately, define of TCP/UDP4
[ KeyWord ]
TCP / UDP / IP / Ethernet
IP( Network layer3 )
- Best-effort delivery (no reliability guarantee)
- Responsible for
1. addressing(IPv4, IPv6)
2. routing between networks( via routers )
Ethernet ( Data Link Layer 2 )
- Local link delivery using MAC addresses
- Frame-based, CRC(데이터 무결성 검증 실패) error detection( but end-to-end reliability is not guaranteed )
TCP ( Transport Layer 4 )
- Connection oriented, reliable transport
1. sequencing, ACKs
2. retransmission
3. flow control
4. congestion control ( network health )
UDP ( Transport Layer 4 )
- Connectionless, no built - in reliability
1. no ordering guarantee
2. no retransmission by protocol itself
Just used when low latency matter(Game,VolP) + app provides its own reliability(QUIC)
3) TCP Connect : 3-way handshake, SYN flood
[ KeyWord ]
3-way handshake , SYN, ACK, SYN flood
this topic covers how TCP provides reliable delivery using SYN-ACK 3-way handshaking
What is 3-way handshake process?
1. client-> server : SYN
2. Server -> Client : ACK+SYN
3. Client -> Server : ACK.
More...
SYN flood attack( DoS/DDoS )
- Attacker sends many SYN packets and does not complete the handshake.
- Server keeps many half-open connections -> consumes resources -> legitimate clients fail.
how to Mitigation?
1. SYN cookies
2. rate limiting
3. firewall/IPS
4. increasing backlog carefully
4) About Unicast, Multicast, Broadcast
Unicast( 1:1 )?
- Normal host-to-host communication
- Most internet traffic is unicast.
Multicast( 1:N )
- Only subscribed members receive traffic
- Efficient for one-to-many streaming within controlled networks
What's standard for "subscribed members?"
1. application request assign for group with socket option.
In IPv4 : IP_ADD_MEMBERSHIP ( based on IGMP )
In IPv6 : IPv6_Join_Group( based on MLD )
2. OS kernal sending IGMP Membership Report or MLD Report to Network
3. In Swtich / Router,
if Switch - IGMP Snooping-> 이포트에 가입자가 있다를 학습
if Router - 이 네트워크에 그룹 수신자가 있다를 학습하고 필요하면 상류로 멀티캐스트를 끄ㅡㄹ어옴.
* 멀티캐스트에선 반드시 TTL이라는 설정을 거쳐야함.
패킷을 얼마나 멀리 전달할 것인가를결정하는 주요소가 됨.
Broadcast( 1:All )
- Delivered to all devices in the same broadcast domain
- Common example: ARP request in IPv4
5) CSMA/CD vs CSMA/CA, and Duplex
CSMA/CD ( Ethernet legacy, collision detection)
- Used shared-medium wired networks( =hubs )( Bus type of Ethernet )
- In modern switched Ethernet:
- links are typically full-duplex
- collisions are essentially eliminated
- CSMA/CD becomes irerelevant
->스위치가 나오면서, 포트를 분리하게됨. -> 사실상 독립 포트가 됨.
-> 게다가 현대에는 거의 Full-duplex임. 동시에 양방향 송수신이 가능하므로 충돌이란 개념 자체가 성립하지 않음
-> 그래서 거의 동작할 일 없이 사라지게됨...
==> 공유 케이블에서 충돌을 감지하고, 재시도 하는 MAC방식. 스위치+풀듀플렉스가 나오면서 충돌이 사라져, 사실상 쓰이지 않게됨
CSMA/CA ( Wi-Fi, collision avoidance )
- Wireless cannot reliably detect collisions : - 무선은 충돌을 감지하기 어렵기 때문에, 사전대기 예약 ACK재전송으로 회피,복구함
- carrier sensing
- based on ACK
- random backoff
- optional RTS/CTS - 예약 신호로써 혼잡을 막지만, 단점으로 오버헤드가 발생해서거의 쓰이지 않음.
Duplex
-Simplex : one direction only Ex., Radio/GPS
-Half-duplex : both directions, but not simultaneously Ex.,무전기
-Full - duplex : simultaneous transmit/receive
6) PDU
- Protocol Data Unit.
데이터에 헤더 붙인걸 걍 PDU 라고함.
common PDUs:
L7-L5 : Data/Msg
L4 : TCP segment / UDP datagram
L3 : IP packet
L2 : Ethernet Frame
L1 : Bits
7) OSI 7Layer vs TCP/IP 4Layer
아 이거 개많이해서 걍 넘어갈게요
Application - Presentation - Session - Transport - Network - DataLink - Physical
Application - Transport - Internet - Link
8) QUIC , TLS
[ KeyWord ]
Version / IHL / TOS(DSCP/ECN) / Total Length / Identification / Flags / Fragment Offset / TTL / Protocol / HC
걍 신뢰성 얹은 UDP
TLS?
provides encryption + authentication = security
In QUIc, TLS is integrated by design
Http/3 runs over QUIc
9) IPv4
Traditional IPv4 Addressing
- 32bit respresented by 4 octets a..b..c..d
- IP is Logical addressing for routing
IPv4 header
1. version : 4
2. IHL : length of IP header
3. TOS / DSCP / ECN : Qos and congestion signals
4. Total Length : header + payload
5. Identificaiton / Flags / Fragment Offset : fragmentation support
6. TTL : time . decremented per hop;
7. Protocol : TCP , UDP , ICMP
8. Header CheckSum : header integrity
1) TOS / DSCP / ECN: QoS와 혼잡 신호
비트 할당(IPv4 헤더)
- 이 필드는 IPv4에서 역사적으로 **TOS(Type of Service, 8비트)**였고,
- 지금은 사실상 **DS field(8비트)**로 운영됩니다.
총 8비트 구성
- DSCP: 6비트
- ECN: 2비트
즉:
- DS field (8 bits) = DSCP(6) + ECN(2)
DSCP(6비트): “우선순위/처리정책” 태그
DSCP는 라우터/스위치가 패킷을 큐잉/스케줄링할 때 쓰는 Per-Hop Behavior(PHB) 를 지정하는 값입니다.
실무적으로 DSCP로 하는 일:
- 큐 분리(음성/영상/제어 트래픽을 별도 큐)
- 우선 처리(지연 민감 트래픽을 더 빨리)
- 드롭 정책 차등(혼잡 시 어떤 트래픽을 먼저 버릴지)
대표 DSCP 클래스(자주 보이는 것)
- EF(Expedited Forwarding): 보통 VoIP 같이 지연/지터 민감 트래픽
- AFxy(Assured Forwarding): x=클래스(1~4), y=드롭 우선순위(1~3)
→ “같은 클래스 안에서도 y가 높을수록 혼잡 시 더 먼저 버림” - CSx(Class Selector): 과거 IP precedence와 호환 개념으로 쓰이는 경우 많음
중요 포인트:
- DSCP는 “대역폭을 마법처럼 늘리는” 게 아니라, 혼잡 상황에서 ‘누구를 더 살려줄지’ 정책을 표현하는 겁니다.
- 또한 네트워크 경계에서 DSCP 마킹을 덮어쓰거나(remarking) 0으로 초기화하는 환경도 많습니다(정책/보안/운영 표준 때문에).
ECN(2비트): “버리기 전에 혼잡 표시”
ECN은 혼잡을 drop 대신 mark로 알리는 기능입니다. (단, 송·수신 호스트와 중간 장비가 ECN을 지원/허용해야 의미가 있습니다.)
ECN 2비트의 의미(대표적으로 이렇게 씁니다)
- 00: Not-ECT (ECN 사용 안 함)
- 10 또는 01: ECT(0)/ECT(1) (ECN 사용 가능 표시)
- 11: CE (Congestion Experienced) → 라우터가 “혼잡했다”고 표시
동작 개념:
- 송신자가 “ECN 쓸게요”(ECT)로 패킷을 보냄
- 라우터가 큐가 차기 시작하면 패킷을 버리지 않고 CE로 마킹
- 수신자가 이를 감지해 송신자에게 피드백(TCP면 ECE/CWR 같은 방식)
- 송신자는 혼잡 제어(윈도우 감소 등) 수행
요약:
- DSCP = 우선순위/큐잉 정책(QoS)
- ECN = 혼잡 알림(가능하면 drop 대신 mark)
2) Identification / Flags / Fragment Offset: 조각화(Fragmentation) 지원
비트 할당(IPv4 헤더)
- Identification: 16비트
- Flags: 3비트
- Fragment Offset: 13비트
즉, 조각화 관련 필드는 합쳐서 16 + 3 + 13 = 32비트 블록처럼 연달아 배치됩니다(물론 헤더 내 필드로는 분리).
왜 필요한가(조각화의 목적)
링크마다 MTU(Maximum Transmission Unit) 가 다르기 때문에,
IP 패킷이 어떤 링크의 MTU보다 크면 그 링크를 통과 못 합니다.IPv4는 그럴 때(DF가 아니면) 중간 라우터가 패킷을 쪼개서(fragmentation) 보내는 것이 가능합니다.
각 필드 역할
1) Identification (16비트)
- 원래 패킷(원본 datagram)을 구분하는 “ID”입니다.
- 조각으로 쪼개지면, 각 fragment는 동일한 Identification 값을 가져서
수신 측이 “이 조각들은 같은 원본이다”라고 재조립(reassembly) 할 수 있습니다.
2) Flags (3비트)
3비트는 보통 다음처럼 씁니다.
- 비트 0: Reserved(예약) → 0이어야 함
- 비트 1: DF (Don’t Fragment)
- 1이면: 조각화 금지
- 라우터가 MTU 때문에 통과 못 시키면 버리고 ICMP 오류(Fragmentation Needed) 를 보냄
- 이 메커니즘이 Path MTU Discovery(PMTUD) 의 핵심입니다.
- 비트 2: MF (More Fragments)
- 1이면: “뒤에 조각 더 있음”
- 0이면: “이 조각이 마지막 조각”
3) Fragment Offset (13비트)
- 이 조각(fragment)이 원본 데이터(payload)에서 어디 위치인지를 나타내는 값입니다.
- 단위가 중요한데, 8바이트(64비트) 단위로 표기합니다.
- 그래서 실제 바이트 오프셋 = Fragment Offset * 8
- 결과적으로 마지막 조각을 제외한 모든 조각의 payload 길이는 8바이트 배수로 맞춰지는 경우가 일반적입니다(오프셋 단위 때문).
조각화 동작 예시(감 잡기)
- 원본 IP 패킷이 크고, 중간 링크 MTU가 작다
- 라우터가 DF=0이면 분할:
- 모든 조각에 동일한 Identification
- 첫 조각 offset=0, MF=1
- 중간 조각 offset 증가, MF=1
- 마지막 조각 MF=0, offset은 마지막 시작 위치
10) Public IP, Router 등록, AS, IANA
Public IP ?
- Global routable address space
- Limited resource allocation follows hierarchy
IANA > RIR > ISP/organizations > end customer
: private 을 할 때 , NAT를 통해서 사설 IP 를 공인 IP로 바꿈.
AS?(Autonomous System) and BGP
- routing domain on the internet
- To advertise routes globally, large orgs/ISPs use BGP with an AS number.
- 일반 사용자는 ISP가 이미 AS/BGP를 운영하므로, 우리는 “서비스 형태”로 공인IP를 받는 구조가 일반적입니다.
하 아래부턴 너무 빡세서(글고영어로하니까 시간너무오래걸림)
한글복붙해와서 영ㅇ어로 정리해볼게요.
11) 클래스 ABCD, 서브넷 마스크가 생긴 이유
Classful Addressing (옛 방식)
IPv4 초창기엔 네트워크를 Class A/B/C로 나눠서 “기본 마스크”를 고정으로 썼습니다.
- Class A: 1.0.0.0 ~ 126.0.0.0, 기본 /8
- Class B: 128.0.0.0 ~ 191.255.0.0, 기본 /16
- Class C: 192.0.0.0 ~ 223.255.255.0, 기본 /24
- Class D: 224.0.0.0 ~ 239.255.255.255 (Multicast)
- Class E: 240.0.0.0 ~ 255.255.255.255 (Reserved)
Whats Problem?
조직이 필요로 하는 호스트 수는 다양한데
- Class B(/16)는 너무 큼(호스트 65534개)
- Class C(/24)는 너무 작음(호스트 254개)
주소 낭비가 심해졌고, 인터넷이 커지면서 더 촘촘한 분할이 필요해졌습니다.
Its more wasting address, and bigger Internet than before, we need more ChomChom splite. <xx
As address waste become servere and the Internet grew rapidly, we needed more subnetting and more efficient address allocation.
그래서 “서브넷 마스크” 등장
SO, SubnetMask is appeared< xx
That's why subnet masks were introduced.
- “한 네트워크(Class)”를 더 잘게 나누고 싶어서
- 네트워크 부분/호스트 부분을 구분하는 비트마스크가 필요 → 서브넷 마스크
12) “서브넷 마스크가 디폴트 게이트웨이를 적용한 것”은 오해
It's misconception that the SubnetMask applies the defaul gateway
- 서브넷 마스크: “내가 지금 보내려는 목적지 IP가 내 로컬 네트워크(내 서브넷) 안인가?”를 판단하는 기준
- 디폴트 게이트웨이: 목적지가 내 서브넷 밖이면 “일단 여기(라우터)로 보내”라는 출구
- 관계는 있지만 역할이 완전히 다름
- 마스크: “로컬인지/원격인지 판별”
- 게이트웨이: “원격이면 어디로 보낼지(다음 홉)”
13) 서브네팅 계산 핵심 공식
(1) 서브넷 수 / 호스트 수
- 호스트 비트 수 = hh
- 사용 가능 호스트 수 = 2h−22^{h} - 2
(네트워크 주소, 브로드캐스트 주소 2개 제외) - 네트워크 비트 수가 늘수록(/가 커질수록)
- 서브넷 수는 늘고
- 서브넷당 호스트 수는 줄어듭니다.
(2) 블록 사이즈(증가폭) 빠르게 구하기
- 마스크에서 “마지막으로 255가 아닌 옥텟”을 보고:
- Block size = 256 - 해당 옥텟 값
- 예) 255.255.255.192
- 마지막 옥텟 192 → 블록사이즈 256-192 = 64
- 네트워크가 0,64,128,192로 증가
14) 예시 (202.147.10.0 / 255.255.255.192) 정확 정리
- 마스크 255.255.255.192 = /26
- 블록사이즈 = 256 - 192 = 64
- 한 서브넷의 주소 개수 = 64개
- 호스트 비트 h=32−26=6h = 32 - 26 = 6
- 사용 가능 호스트 = 26−2=622^6 - 2 = 62
이 /24 안에서 /26 서브넷들은 이렇게 4개
- 202.147.10.0/26
- Network: 202.147.10.0
- Usable: 202.147.10.1 ~ 202.147.10.62
- Broadcast: 202.147.10.63
- 202.147.10.64/26
- Usable: 65 ~ 126
- Broadcast: 127
- 202.147.10.128/26
- Usable: 129 ~ 190
- Broadcast: 191
- 202.147.10.192/26
- Usable: 193 ~ 254
- Broadcast: 255
15) FLSM vs VLSM, CIDR
FLSM (Fixed Length Subnet Mask)
- 모든 서브넷을 같은 크기(같은 마스크) 로 나눔
- 계산/운영이 단순하지만, 요구 호스트 수가 제각각이면 낭비 발생
VLSM (Variable Length Subnet Mask)
- 서브넷마다 서로 다른 마스크 사용 가능
- 큰 부서/작은 부서/서버존 등 요구에 맞게 주소를 절약
- 대신 설계/문서화가 중요 (겹치면 사고)
CIDR (Classless Inter-Domain Routing)
- 클래스(A/B/C) 개념을 사실상 폐기하고
- /n으로 네트워크 길이를 표현 (예: 10.0.0.0/8, 203.0.113.0/24)
- 인터넷 라우팅에서 핵심은 Route aggregation(요약/집계)
→ 라우팅 테이블을 줄여 전 세계 라우팅을 가능하게 함
16) Public IP vs Private IP vs NAT (SNAT / DNAT / PAT)
Public IP
- 인터넷에서 전 세계 라우팅 가능한 주소
- 주소 할당 계층: IANA → RIR → ISP/조직 → 사용자
Private IP (RFC1918)
- 사설망 내부에서만 쓰는 주소(인터넷에서 라우팅 불가)
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
NAT
- Private ↔ Public 주소 변환
SNAT (Source NAT)
- “나갈 때” 출발지 IP를 공인 IP로 바꿈
- 내부 여러 기기가 인터넷으로 나갈 때 거의 항상 관여
DNAT (Destination NAT)
- “들어올 때” 목적지 IP/포트를 내부 서버로 매핑
- 외부에서 내부 서비스(웹서버 등)에 접근 가능하게 함
PAT (Port Address Translation, NAPT)
- 많은 내부 호스트가 공인 IP 1개를 공유하는 핵심 방식
- 출발지 포트를 바꿔서 연결을 구분함
(집 공유기 환경에서 “공인 IP 1개로 여러 기기 인터넷” 되는 이유)
17) DHCP, ISP, Wi-Fi, 공유기(ipTIME) 관점
DHCP가 하는 일
- 호스트에게 자동으로:
- IP 주소
- 서브넷 마스크
- 디폴트 게이트웨이
- DNS 서버
를 “임대(lease)”해줌
집에서 흔한 흐름
- 공유기(라우터)가 내부 LAN에 DHCP 서버 역할
- 단말(노트북/폰)은 Wi-Fi로 접속하면서 DHCP로 주소를 받음
- 공유기 WAN 쪽은 ISP로부터 공인 IP를 받거나(또는 ISP 장비 뒤에서 사설 IP 받을 수도 있음)
“DHCP는 호스트 PC의 와이파이냐?”
- 보통은 공유기(또는 상단 장비) 가 DHCP 서버입니다.
- VirtualBox 같은 가상화 환경에선:
- NAT 모드면 VirtualBox가 자체 DHCP/NAT을 제공할 수 있고
- Bridged 모드면 실제 공유기 DHCP를 그대로 받습니다.
18) ARP, ARP Table, Broadcast 폭증 문제
ARP (IPv4에서 IP→MAC 해석)
- 같은 L2(브로드캐스트 도메인)에서
- “이 IP 가진 애 누구야? MAC 주소 알려줘”를 브로드캐스트(FF:FF:FF:FF:FF:FF) 로 뿌림
- 해당 IP를 가진 호스트가 유니캐스트로 ARP Reply
ARP Table
- OS가 “IP ↔ MAC” 매핑을 캐시해둠(시간 지나면 만료)
- ARP 캐시가 없으면 매번 브로드캐스트 → 비효율
Broadcast 폭증(Storm)
- 브로드캐스트가 과도하면 스위치가 모든 포트로 퍼뜨려서 네트워크가 마비될 수 있음
- 원인 예:
- 루프(Spanning Tree 문제)
- 감염/오작동 장비가 ARP 요청 난사
- 대응:
- STP 정상화, 루프 제거
- VLAN 분리로 브로드캐스트 도메인 축소
- 스위치의 storm control, 보안 기능 활용
19) IP랑 MAC 둘 중 하나만 있어도 통신되는데 왜 둘 다 쓰나?
- MAC: “같은 링크(L2)에서 다음 장비로 전달”을 위한 로컬 식별자
- IP: “네트워크 간(L3) 라우팅”을 위한 전 세계적(논리적) 주소
둘이 맡는 범위가 다릅니다.
- MAC만 있으면: 다른 네트워크까지 라우팅이 어려움(브로드캐스트/플러딩 스케일 한계)
- IP만 있으면: 같은 링크에서 실제 프레임을 누구에게 줄지(L2 전달) 해결이 필요 → 결국 MAC 같은 L2 식별이 필요
20) 라우터에서도 MAC이 필요하다 / “다음 홉 MAC”
패킷이 라우터를 거칠 때 핵심:
- IP 헤더의 목적지 IP는 최종 목적지까지 유지(대체로 유지)
- 하지만 이더넷 프레임의 목적지 MAC은 매 홉마다 바뀜
예)
- 내 PC가 외부 사이트로 보낼 때:
- IP 목적지: 외부 서버 IP
- 프레임 목적지 MAC: “내 디폴트 게이트웨이(첫 라우터)의 MAC”
- 라우터는 다음 링크로 보낼 때:
- 새 프레임을 만들고
- “다음 홉 라우터/최종호스트”의 MAC을 ARP로 알아낸 뒤 넣어서 전송
즉, 라우팅(L3) + 실제 전달(L2) 이 동시에 굴러가려면 라우터도 MAC이 필요합니다.
21) 서브네팅이 많을수록 좋다? / 브로드캐스트 도메인은 적을수록 좋다?
무조건 “많을수록 좋다”는 아님
- 서브넷을 쪼개면 장점:
- 브로드캐스트 도메인 축소 → ARP/브로드캐스트 트래픽 감소
- 장애/보안 경계 분리(VLAN/ACL 설계 쉬움)
- 단점:
- 라우팅/정책/운영 복잡도 증가
- 방화벽/ACL 룰 늘어남, 트러블슈팅 난이도 상승
- 주소 계획 잘못하면 낭비/겹침 발생
결론:
- “브로드캐스트 도메인은 너무 크면 문제”가 맞지만,
- “쪼갤수록 무조건 좋다”가 아니라 규모/목적에 맞게 최소한으로 분리가 실무적입니다.
22) MTU, Jumbo Frame, NIC/ENI/VNIC/PNIC
MTU (Maximum Transmission Unit)
- 한 링크에서 “한 번에 실을 수 있는 최대 IP 패킷 크기” 기준
- Ethernet 기본 MTU는 보통 1500 bytes
- MTU보다 큰 패킷은:
- IPv4: (DF=0이면) fragmentation 가능, DF=1이면 드롭 + ICMP
- IPv6: 중간 라우터 fragmentation 금지(송신자 PMTUD 의존)
Jumbo Frame
- MTU를 9000 등으로 크게 쓰는 것(데이터센터에서 종종)
- 장점: 헤더/인터럽트 오버헤드 감소 → 고대역폭에서 효율 상승
- 단점: 경로 중 하나라도 미지원이면 문제(드롭/성능저하)
→ “엔드투엔드로 전부 지원”이 전제
NIC 관련 용어
- NIC: Network Interface Card(일반적으로 네트워크 인터페이스)
- PNIC: Physical NIC(물리 NIC)
- VNIC: Virtual NIC(가상 NIC, VM/컨테이너가 쓰는 논리 인터페이스)
- ENI: (클라우드에서) 인스턴스에 붙는 가상 네트워크 인터페이스 개념(Amazon Web Services에서 자주 등장)
23) AWS에서 VPC가 의미하는 것 (router/switch/firewall 등으로 매핑)
Amazon Web Services의 VPC(Virtual Private Cloud) 는 “내 전용 가상 네트워크”이고,
온프레미스의 여러 장비 역할을 관리형 구성요소로 쪼개 제공한다고 보면 이해가 쉽습니다.- VPC: 내 사설망의 큰 테두리(주소 공간, 라우팅 도메인)
- Subnet: L2 스위치처럼 “같은 네트워크 구간”을 나눈 것(실제론 L3 관점이 강함)
- Route Table: 라우터의 라우팅 테이블
- Internet Gateway (IGW): VPC가 인터넷과 통신하는 출구
- NAT Gateway/Instance: 사설 서브넷이 바깥으로 나갈 때 SNAT 제공
- Security Group: 상태 기반(stateful) 방화벽(인스턴스 단위)
- Network ACL: 무상태(stateless) 필터(서브넷 단위)
- VPC Peering / Transit Gateway: 네트워크 간 연결(사내 라우팅/백본 느낌)
- Elastic IP: 고정 공인 IP를 붙이는 기능(“내가 가진 공인 IP”처럼 보이게)
24) ifconfig 결과 해석(Translate)
(배포판마다 조금 다르지만, 보통 아래가 핵심입니다.)
- interface name: eth0, ens33, wlan0 등
- flags/UP/RUNNING: 인터페이스가 켜져 있고 링크가 살아있는지
- mtu 1500: MTU 값
- inet: IPv4 주소 (예: inet 192.168.0.10)
- netmask: 서브넷 마스크
- broadcast: 브로드캐스트 주소
- inet6: IPv6 주소
- ether: MAC 주소
- RX packets / TX packets: 수신/송신 패킷 수
- RX bytes / TX bytes: 수신/송신 바이트 수
- errors / dropped / overruns / frame:
- errors: 오류
- dropped: 드롭
- overruns: 버퍼 오버런(처리 못해 밀림)
- frame: 프레이밍/물리계층 관련 문제 힌트
- collisions: 충돌(요즘 스위치+풀듀플렉스면 보통 0이어야 정상)
- txqueuelen: 송신 큐 길이
아니 그러면...
내 로컬 컴퓨터에서 구글로 데이터를 보내고 받아올때면, IP부여받는거부터 시작했을 때,
0) (Wi-Fi인 경우) L2 연결부터 먼저 됨
- PC가 SSID 선택 → 공유기(ipTIME)의 AP에 연결
- (보안 사용 시) WPA2/WPA3 인증/키 교환
- 이제 PC는 같은 L2 브로드캐스트 도메인에 들어온 상태
1) DHCP DORA (Discover → Offer → Request → ACK)
- DHCP Discover (PC → 브로드캐스트)
- L2 dst MAC: FF:FF:FF:FF:FF:FF
- L3 src IP: 0.0.0.0 / dst IP: 255.255.255.255
- L4 UDP src port 68 → dst port 67
- DHCP Offer (ipTIME → PC)
- “너 192.168.0.239 줄게”
- 같이 주는 옵션들:
- Subnet Mask (예: 255.255.254.0)
- Default Gateway (예: 192.168.0.1)
- DNS server (예: 192.168.0.1 또는 ISP DNS/공용 DNS)
- Lease time
- DHCP Request (PC → 브로드캐스트)
- “그 IP 쓰겠습니다”
- DHCP ACK (ipTIME → PC)
- 임대 확정
2) PC가 얻는 결과(중요 4종 세트)
- 내 IP(Private IP): 192.168.0.239
- Subnet Mask: 255.255.254.0 (/23)
- Default Gateway: 192.168.0.1 (ipTIME)
- DNS Server: 보통 192.168.0.1(공유기) 또는 ISP DNS
- .168.0.1)의 MAC을 알아야 합니다.
D. ARP: “게이트웨이 MAC”을 알아내는 단계 (IPv4에서 필수)
4) ARP Request/Reply
- ARP Request (PC → 브로드캐스트)
- “Who has 192.168.0.1? Tell 192.168.0.239”
- ARP Reply (ipTIME → PC 유니캐스트)
- “192.168.0.1의 MAC은 AA:BB:CC:…”
- PC는 ARP 캐시에 저장
중요한 포인트
PC가 “구글 서버의 MAC”을 ARP로 구하지 않습니다.
항상 ‘다음 홉(게이트웨이)’의 MAC만 알아내면 됩니다.
E. 라우팅 판단: “로컬로 보낼지, 게이트웨이로 보낼지”
5) PC 내부 라우팅 결정
PC는 목적지 IP(예: 구글 IP)가
- 내 서브넷(192.168.0.0/23) 안이면 → 직접 L2로 보냄
- 내 서브넷 밖이면 → Default Gateway(192.168.0.1) 로 보냄
구글 IP는 당연히 밖이므로:
- 프레임의 목적지 MAC = ipTIME MAC
- 패킷의 목적지 IP = 구글 IP
F. NAT(PAT): “내 사설 IP가 인터넷에서 보이게” 바뀌는 단계
6) ipTIME에서 SNAT/PAT 발생
PC가 보낸 원래 패킷(집 내부에서는):
- src IP: 192.168.0.239
- dst IP: (구글 IP)
- src port: (임시 포트 예: 53124)
- dst port: 443 (HTTPS)
ipTIME이 WAN으로 내보낼 때:
- src IP를 공인 IP로 바꿈 (또는 통신사 CGNAT이면 한 번 더 바뀜)
- src port도 충돌 피하려고 바꿈(= PAT)
NAT 테이블에 매핑 생성:
- 192.168.0.239:53124 ↔ 공인IP:40001
H. TCP 연결 성립(HTTPS라면 443)
7) TCP 3-way handshake (Client ↔ Google server)
- Client → Server: SYN
- Server → Client: SYN-ACK
- Client → Server: ACK
이때 패킷은 인터넷을 여러 홉(router) 거치지만,
- TCP 상태는 양 끝단(host) 만 가지고 있습니다.
I. (HTTPS) TLS handshake: 암호화 세션 만들기
요즘 구글은 거의 무조건 HTTPS입니다.
8) TLS handshake (중요)
TCP 연결이 된 후:
- ClientHello (지원 암호, SNI=google.com 등)
- ServerHello + Certificate (서버 인증서)
- 키 교환 → 세션키 확정
- 이후부터는 HTTP 데이터가 TLS로 암호화되어 흐름
“HTTP 요청”은 TCP 직후가 아니라, TLS 이후에 갑니다(HTTPS 기준).
J. HTTP 요청/응답
9) HTTP request (실제로는 “HTTPS 안의 HTTP”)
- 브라우저가 GET / 같은 요청을 보냄
- 구글은 HTML만 주는 게 아니라:
- 리다이렉트,
- 추가 리소스(JS/CSS),
- 여러 도메인(google.com, gstatic 등)
로 트래픽이 연속적으로 더 발생합니다.
K. 응답이 내 PC로 돌아오는 과정 (역방향)
10) Server → Client 응답 패킷
- 구글 서버가 응답을 보내면
- 인터넷 라우터들이 라우팅 테이블로 전달
- 내 공유기(ipTIME)에 도착
11) ipTIME NAT 테이블로 “역변환”
- 목적지: 공인IP:40001 로 들어온 패킷을 보고
- NAT 테이블 매핑을 찾아서
- 192.168.0.239:53124 로 되돌려 PC에게 전달
12) PC는 소켓(브라우저 프로세스)에 전달
- 커널 TCP 스택이 세그먼트 재조립
- TLS 복호화
- 브라우저 렌더링
728x90'FISA' 카테고리의 다른 글
[Study30] MSL을 활용한 네트워크 연결 총정리 (0) 2026.02.24 [Study29]VLAN STP (0) 2026.02.23 [Study27] 금융권 IT시스템 알아보기 (0) 2026.02.06 [회고]6주차_우리FISA클라우드 엔지니어링 (0) 2026.02.06 [Study26]예제로 알아보는 큰 흐름 (0) 2026.02.06