'

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Study28]About the big picture of Network
    FISA 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) → 라우터가 “혼잡했다”고 표시

    동작 개념:

    1. 송신자가 “ECN 쓸게요”(ECT)로 패킷을 보냄
    2. 라우터가 큐가 차기 시작하면 패킷을 버리지 않고 CE로 마킹
    3. 수신자가 이를 감지해 송신자에게 피드백(TCP면 ECE/CWR 같은 방식)
    4. 송신자는 혼잡 제어(윈도우 감소 등) 수행

    요약:

    • 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개

    1. 202.147.10.0/26
      • Network: 202.147.10.0
      • Usable: 202.147.10.1 ~ 202.147.10.62
      • Broadcast: 202.147.10.63
    2. 202.147.10.64/26
      • Usable: 65 ~ 126
      • Broadcast: 127
    3. 202.147.10.128/26
      • Usable: 129 ~ 190
      • Broadcast: 191
    4. 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가 하는 일

    • 호스트에게 자동으로:
      1. IP 주소
      2. 서브넷 마스크
      3. 디폴트 게이트웨이
      4. 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 ServicesVPC(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 연결부터 먼저 됨

    1. PC가 SSID 선택 → 공유기(ipTIME)의 AP에 연결
    2. (보안 사용 시) WPA2/WPA3 인증/키 교환
    3. 이제 PC는 같은 L2 브로드캐스트 도메인에 들어온 상태

    1) DHCP DORA (Discover → Offer → Request → ACK)

    1. 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
    2. 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
    3. DHCP Request (PC → 브로드캐스트)
      • “그 IP 쓰겠습니다”
    4. 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

    1. ARP Request (PC → 브로드캐스트)
      • “Who has 192.168.0.1? Tell 192.168.0.239”
    2. ARP Reply (ipTIME → PC 유니캐스트)
      • “192.168.0.1의 MAC은 AA:BB:CC:…”
    3. 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)

    1. Client → Server: SYN
    2. Server → Client: SYN-ACK
    3. Client → Server: ACK

    이때 패킷은 인터넷을 여러 홉(router) 거치지만,

    • TCP 상태는 양 끝단(host) 만 가지고 있습니다.

    I. (HTTPS) TLS handshake: 암호화 세션 만들기

    요즘 구글은 거의 무조건 HTTPS입니다.

    8) TLS handshake (중요)

    TCP 연결이 된 후:

    1. ClientHello (지원 암호, SNI=google.com 등)
    2. ServerHello + Certificate (서버 인증서)
    3. 키 교환 → 세션키 확정
    4. 이후부터는 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

    댓글

Designed by Tistory.
티스토리 친구하기