[Network] Study 정리 ch03네트워크 통신하기

Cookie·2024년 7월 22일

[Network] Network 이론

목록 보기
4/7
post-thumbnail

3.1 UniCast, BroadCast, MultiCast, AnyCast


* UniCast

실사용하는 대부분의 통신 방식

출발지와 목적지가 명확히 하나로 정해져있는 1 : 1 통신 방식

💡 특징

  • 1 : 1통신
  • 출발지와 목적지가 명확함
  • 겉으로 보기에는 BroadCast 와 동작방식이 비슷함 [BUM의 중요성]

* BroadCast

로컬 네크워크 내에서 모든 호스트에 통신해야할 때 사용

주소체계에 따라 양하게 분류

💡 특징

  • 1 : ALL
  • 동일 네트워크에 존재하는 모든 호스트가 목적지
  • Unicast 통신 전, 목적지의 정확한 위치를 알기 위해 사용됨

* MultiCast

그룹주소를 이용해 해당 그룹에 속한 다수의 호스트와 통신하는 방식

동시에 다수에게 동일한 내용을 전달할 때 사용

💡 특징

  • 1 : Group
  • 하나의 출발지에서 다수의 목적지로 통신
  • 실시간 방송이 사용하는 방식

* AnyCast

anycast 주소가 같은 호스트 중에서 가장 가깝거나 효율적으로 서비스할 수 있는 호스트와 통신

DNS 서버를 찾을 때 사용

💡 특징

  • 1 : 1
    • 1 : 1 이지만 목적지 그룹내의 1개의 호스트와 통신
  • 다수의 동일 그룹 중 가장 가까운 호스트에서 응답
  • IPv4는 일부 IPv6는 모두 구현 가능
  • DNS 서버나 가까운 게이트웨이를 찾을 때 사용


* BUM 트래픽

BroadCast, Unknown Unicast, MultiCast

  • 네트워크 입장에서 네트워크 자원을 쓸데없이 사용하므로 불필요한 BUM 트래픽이 많아지면 성능이 저하될 수 있음

😮unknown unicast

처음 알게된 내용

유니캐스트이므로 목적지가 명확히 명시되어 있지만 통신하는 과정의 스위치가 목적지주소에 대한 학습이 되어있지 않은상태라면 스위치는 목적지주소를 알지 못하는 Unkown 상태가 되며 스위치는 목적지주소에 대한 학습을 하기 위해 브로드캐스트 통신을 진행하게 된다

  • 따라서
    출발지는 목적지주소를 정확히 명시했지만 통신과정에서 목적지 주소를 알지 못해 학습을 위한 브로드캐스트 동작을 하게되는 통신을 뜻함



3.2 Mdia Access Controll [MAC]

2계층 [데이터링크 계층] 통신을 위해 네트워크 인터페이스에 할당된
고유한 식별자
물리적인 주소


* 주소 할당 방법

  • 네트워크 장비에 할당되는 물리적인 주소

    • 제조업체가 생산시 주소를 할당함

      💡 MAC 주소 체계

      • OUI : IEEE가 제조사에 할당하는 부분
      • UAA : 각 제조사에서 네트워크 구성 요소에 할당하는 부분
  • BIA(Burned-In Address) 라고도 부름


다수의 MAC주소 할당

MAC 주소는 단말이 아닌 NIC에 종속됨

단말은 NIC을 여러개 가질 수 있으므로 MAC주소 또한 여러개를 가질 수 있음


MAC 주소 변경

MAC주소는 BIA 상태로 NIC에 할당되어 있는데, 일반적으로 ROM형태로 고정되어 출하됨

이렇게 고정된 MAC주소는 변경하기 어려움

  • 하지만 MAC도 메모리에 적재되어 구동되므로 변경된 MAC주소로 NIC을 동작시킬 수 있음
    변경하는 방법은 보안상의 이유로 막아둔 OS도 있음



* MAC 주소 동작

네트워크 장비 NIC [Network Interface Controller]에 도착한 데이터[패킷]을 통해 도착지 MAC주소를 확인

  • 본인의 MAC주소와 일치하지 않을 때
    패킷을 폐기함
  • 본인의 MAC주소와 일치하거나 broad, multi cast 와 같은 그룹주소일 때
    패킷을 받아 상위 계층으로 넘겨줌
  • BroadCast의 경우 NIC이 아닌 OS나 어플리케이션에서 처리해야함
    → 시스템에 부하 작용

무차별 모드(Promiscuous Mode)

다른 목적지를 가진 패킷을 분석하거나 수집해야하는 경우사용

자신의 MAC주소와 상관없는 패킷이 들어와도 메모리에 올려 처리함




3.3 Internet Protocol [IP]

3계층 [네트워크 계층] 통신을 위해 사용되는
논리적인 주소

💡 특징

  • 사용자가 변경 가능함
  • 주소에 따른 레벨이 존재함
  • 그룹을 의미하는 네트워크 주소와 호스트 주소로 나뉨

* IPv4

IP주소는 IPv4와 IPv6가 있으며 현재 주로사용하는 방식은 IPv4

💡 IPv4 특징

  • 32비트 주소
  • 4개의 옥텟[.]이라고 부르는 8비트 단위로 나뉨
  • 10진수로 표기됨 0~255
  • 네트워크 주소
    • 호스트들을 모은 네트워크를 지칭하는 주소
    • 로컬 네트워크 : 네트워크 주소가 동일한 네트워크들
  • 호스트 주소
    • 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소

Classful

💡 네트워크에서 사용가능한 호스트 개수 파악하기

  • 네트워크 주소 : 172.16.0.0
  • 브로드캐스트 주소 : 172.16.255.255
  • 유효 IP 범위 : 172.16.0.1 ~ 172.16.255.254
    • 호스트의 주소는 0.0 으로 2828=655362^8 * 2^8 = 65536 여기서 브로드캐스트 주소와 네트워크 주소를 2개를 제외한 65534개가 사용가능함

Classless

인터넷이 상용화 되며 폭발적으로 증가한 사용량에 따른 IP 주소 부족을 해결하기 위한 방법

네트워크와 호스트 주소를 나누는 구분자인 서브넷 마스크사용함

💡 서브넷마스크를 사용한 네트워크주소 구하기

  • 서브네팅
  • IP 주소 : 111.111.111.111111.111.111.111
    서브넷 : 255.255.254.0255.255.254.0 또는 /23/23
  • 네트워크 주소 : 111.111.110.0111.111.110.0

결과

  • 브로드캐스트 주소 : 111.111.111.255

  • 첫 번째 주소: 111.111.110.0

  • 마지막 주소 : 111.111.111.255

공인 IP와 사설 IP

IP는 인터넷에 접속하기 위한 전 세계에서 유일해야 하는 식별자
이를 공인 IP라고 칭함

  • 공인 IP : 로컬네트워크를 식별하기 위해 ISP(Internet Service Provider)가 제공하는 IP 주소
  • 사설 IP : 일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소
  공인 IP는.... 

일반적으로 통신사업자로 부터 IP주소를 할당 받거나 IP 할당 기관(한국의 경우 KISA)에서 인터넷 독립기관 주소를 할당 받은 후 독립 IP를 할당받아야 하므로 절차가 복잡함


Network Address Translation [NAT]

IP 패킷에 적힌 소켓 주소의 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술

  • NAT를 사용하면 사설 IP를 공인IP로 변경하여 인터넷에 접속할 수 있음
  • NAT장비의 대표적인 예 : 공유기

인터넷 표준

특별한 RFC(Request for Comments)와 그 집합

  • RFC 자체가 인터넷 표준 문서인 것은 아님
  • 인터넷 기술에 적용할 수 있는 제안, 조사결과, 아이디어, 표준 등을 적어 놓은 메모형식의 문서 모음

공식으로 표준화된 RFC문서
인터넷 표준화 기구의 RFC 문서




3.4 Transmission Control Protocol & User Data Protocol

목적지 단말 안에서 동작하는 여러 애플리케이션 프로세스 중 통신해야할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 조합하여 원래의 데이터를 만들어 내기 위한 4계층 프로토콜

UDP 데이터그램 헤더 포멧


TCP 세그먼트 헤더 포멧

  • TCP/IP 프로토콜 스택에서 4계층의 상위 프로토콜 지시자는 포트번호
    - 출발지와 목적지를 구분하여 처리

WellKnown Port

TCP

공용망에서도 정보유실이 없는 통신을 보장하기 위해 세션을 안전하게 연결하고, 데이터를 분할하고, 분할된 패킷이 잘 전송되었는지 확인할 수 있음

  • 패킷 번호 부여
  • 전송 응답번호
  • 데이터의 전송크기

3 way handshake

시퀀스 번호, ACK 번호도 양방향으로 함께 동작함

  1. 출발지에서 시퀀스 번호를 0으로 보냄
  2. 수신 측에서 0번 패킷을 잘 받았다는 표시로 ACK 1을 적어 응답. 이때 수신 측에서는 자신이 처음 보내는 패킷이므로 자신의 패킷의 시퀀스번호는 0
  3. 패킷을 받은 송신 측은 시퀀스 번호를 1로 , ACK 번호는 상대방의 0번 시퀀스를 잘 받았다는 표시로 시퀀스번호에 1을 부여하여 다시 송신

윈도 사이즈와 슬라이딩 윈도

송신량 즉, 한번에 데이터를 받을 있는 데이터 크기를 윈도우사이즈, 네트워크 상황에 따라서 윈도우사이즈를 조절하는 것을 슬라이딩윈도우라 함

  • 윈도우 사이즈 : 확인 응답을 기다리지 않고 송신할 수 있는 데이터의 크기
  • 슬라이딩 윈도우 : 윈도우의 크기를 동적으로 조절하면서 효율적인 패킷 전송을 가능하게 하는 기법



3.5 Address Resolution Protocol [ARP]

ARP (Address Resolution Protocol)는 3계층의 IP 주소를 2계층의 MAC 주소로 변환하는 프로토콜
ARP는 네트워크에서 호스트 간의 통신을 가능하게 하기 위해 사용됨


ARP의 동작**

  1. ARP 요청
    : 출발지 호스트가 목적지 IP 주소를 가지고 있을 때, 해당 IP 주소의 MAC 주소를 알아야 함
  • 이를 위해 ARP 요청 패킷을 네트워크에 브로드캐스트함
    • 출발지 MAC 주소: 자신의 MAC 주소
    • 출발지 IP 주소: 자신의 IP 주소
    • 목적지 MAC 주소: 00-00-00-00-00-00 (알려지지 않음)
    • 목적지 IP 주소: 대상 IP 주소
    • 브로드캐스트 주소: FF-FF-FF-FF-FF-FF
  1. ARP 응답
    : ARP 요청을 받은 목적지 호스트는 자신의 MAC 주소를 포함한 ARP 응답 패킷을 출발지 호스트에게 유니캐스트로 전송함

    • 출발지 MAC 주소: 목적지 호스트의 MAC 주소
    • 출발지 IP 주소: 목적지 호스트의 IP 주소
    • 목적지 MAC 주소: 출발지 호스트의 MAC 주소
    • 목적지 IP 주소: 출발지 호스트의 IP 주소
  2. ARP 캐시: 출발지 호스트는 응답을 수신하면 ARP 테이블에 MAC 주소를 저장하여 향후 통신 시 재사용합니다. 이 테이블은 일정 시간이 지나면 갱신되거나 삭제될 수 있습니다.


ARP 테이블의 유형

  • 동적
    : 자동으로 생성되고 일정 시간 후에 만료됨
  • 정적
    : 수동으로 설정된 항목으로, 시스템 재부팅 시에도 유지됨

ARP 브로드캐스트와 캐시

  • ARP 브로드캐스트
    : 네트워크 내 모든 장비에 ARP 요청을 전달함
  • 캐시
    : ARP 테이블에 저장된 MAC 주소 정보를 활용하여 성능을 향상시키고 네트워크 부하를 줄여줌

GARP (Gratuitous ARP)

  • 목적
    : 자신의 IP 및 MAC 주소를 네트워크에 알리는 데 사용
    • IP 주소 충돌 감지: 동일 IP를 가진 장비가 있는지 확인
    • ARP 테이블 갱신: 네트워크 내 다른 장비의 ARP 테이블을 갱신
    • 클러스터링/VRRP/HSRP: 고가용성 및 클러스터링 환경에서 가상 MAC 주소를 사용하는 장비 간의 ARP 테이블을 갱신

RARP (Reverse ARP)

  • 목적: 자신의 MAC 주소로 IP 주소를 요청하는 데 사용
    현재는 BOOTP 및 DHCP로 대체됨



3.6 Subnet / Gateway

서브넷게이트웨이는 네트워크 설계 및 데이터 전송에서 중요한 역할을 합니다.


서브넷 (Subnet)

  • 정의
    : IP 주소를 서브넷 마스크를 사용하여 더 작은 네트워크로 나누는 기술
    • 이를 통해 네트워크의 효율성과 보안을 높일 수 있음
  • 서브넷 마스크
    : IP 주소와 서브넷 마스크를 AND 연산하여 네트워크 주소를 구함
    • 예시: IP 주소 192.168.1.10, 서브넷 마스크 255.255.255.0에서 네트워크 주소는 192.168.1.0입니다.



기본 게이트웨이 (Default Gateway)

  • 정의
    : 로컬 네트워크와 다른 네트워크 간의 데이터 전송을 위한 경로를 제공하는 장비
    • 주로 라우터가 이 역할을 수행
  • 기능
    : 네트워크 내의 장비가 다른 네트워크와 통신할 때, 패킷을 적절한 경로로 전달
  • 설정
    : 네트워크 장비나 PC에서 기본 게이트웨이를 설정하여 외부 네트워크와의 연결을 관리

2계층 vs 3계층 통신

  • 2계층 통신
    : 동일 네트워크 내에서 MAC 주소를 사용하여 직접 통신
  • 3계층 통신
    : 원격 네트워크와의 통신에 IP 주소를 사용하고, 기본 게이트웨이를 통해 패킷을 전달

서브넷 마스크와 IP 주소

  • 서브넷 마스크
    : IP 주소와 함께 네트워크 주소를 구분하며, 네트워크 내 호스트와 네트워크 간의 통신을 관리
  • 기본 게이트웨이
    : 서브넷을 넘어 다른 네트워크와의 통신을 관리



📖느낀점 및 어려웠던 점

  1. unknown unicast, GARP, 클러스터링 처럼 처음알게 된 이론이나 겉핥기로만 알았던 지식들에 대해 좀더 자세하고 이해하기 쉽게 공부할 수 있어서 좋았음 특히 매번 글로는 이해해도 바로바로 떠오르지 못하고 머리에 들어오지 않았던 Class 주소 개념도 다시 읽을 수 있어서 좋았음

  2. 어려웠던 점은 여전히 IP 주소 체계의 왜 이렇게 동작하는지, 어떻게 동작하는지 이론이 이해가 되지만 어떤 방식으로 작동하는지 글을 읽으면 알고있지만 복잡한 체계를 갖고 있어 통신적인 흐름이 머릿속에서 구상하기 어려워 완전한 내 지식으로 만드는건 아직 어려운거 같다. 또한 10진법으로 표현한 주소를 2진법으로 표기했을 때 바로바로 머리속에 들어오지 않는게 참 힘든것 같음

profile
지식을 쌓기 위한 기록 저장소

0개의 댓글