새소식

대학생활/컴퓨터네트워크

컴퓨터 네트워크 정리 -14주차- <링크 레이어/5.4 LANs - 5.7 종합 예시>

  • -

MAC address and ARP

-      IPv4 32bit ip address: L3 네트워크 레이어의 인터페이스

-      MAC (or LAN or physical or Ethernet) address: L2 링크 레이어의 인터페이스, 6byte.

  • NIC ROM을 통해 6byte의 고유 값을 갖게 된다.

ARP : address resolution protocol

-      ARP table

  • LAN 아래, 사용하고 있던 유저가 다른 LAN으로 옮겨가면, 해당 공유기에 IP는 남아있지만 MAC은 남지 않는다. 이 자리에 다른 유저가 들어오면, 그 유저는 같은 IP를 할당 받지만 MAC 주소는 바뀐다. => MAC 주소와 IP 주소를 매핑하는 테이블이 필요하다.
  • TTL (일반적으로 20) 이후에 매핑되어 있는 정보는 제거된다.

ARP protocol : same LAN – 시나리오01

-      AB에게 데이터그램을 전송하고 싶은데, B의 맥주소가 AARP 테이블에 없다.

-      AARP Query Packet를 브로드캐스트 한다.

-      ARP Packet을 받은 B는 자신의 MAC 주소를 담아 AMAC으로 전송한다. (Unicast)

-      AIP-MAC 주소 쌍을 ARP tableTTL 시간만큼 캐싱한다.

-      이 시나리오의 ARP‘plug-and-play’기에 시스템 관리자 없이 ARP table을 구축한다.

ARP protocol : routing to another LAN – 시나리오02

-      가정

  • IP Interfacedatagram, MACinterfaceframe
  • AB IP 주소를 알고 있다.
  • A는 첫 hop routerip 주소를 알고 잇다. R (how?)
  • AR의 맥주소를 알고 있다 (how?)

-      과정

  • 데이터그램을 A에서 다른 서브넷에 있는 호스트에 전달하기 위해선, first hop-routerIP 주소를 알아야한다. (DHCP를 통해 구할 수 있다.)
  • ARP를 통해 first-hop routerMAC 주소를 얻을 수 있다.
  • A는 목적지 IP가 기재된 데이터그램을 포함한 프레임을 라우터에 전송한다.
    (
    서브넷 마스크 사용)
  • 라우터는 라우터의 포워딩 테이블을 참고해, 데이터그램을 라우터 인터페이스 222.222.222.220을 통해 B로 전달한다.
    (
    라우터 내부에서 역 캡슐화->캡슐화 과정이 있고, IP 주소로 prefix 체크)

Ethernet: physical topology

-      Bus : 90년대 유행, 모든 노드가 같은 충돌 영역안에 있어 서로 충돌가능

-      Star : 중앙 switch를 활용, 각자가 분리된 이더넷 프로토콜을 사용할 수 있어, 충돌하지 않는다.
(hub vs switch :
스위치는 맥주소와 IP를 매핑하는 테이블을 가져 unicast , hub는 테이블을 못 가지기에 항상 broadcast )

 

 

Ethernet frame structure

-      이더넷 프레임의 6가지 필드

  • Preamble : 8바이트로 구성, 7바이트는 ‘10101010’, 마지막 1바이트는 ‘10101011’로 구성. => 각각은 수신 어댑터를 깨우고, 수신자의 clock과 송신자의 clock을 동기화한다.
  • 목적지, 출발지 주소 : 프레임을 LAN으로 전송 및 수신하는 어댑터의 MAC 주소
  • 타입 : data가 무엇을 의미하는지 구분, 도착한 프레임이 어떤 네트워크 계층 프로토콜로 데이터 필드의 내용을 전달할지 구분하는 용도다.
  • 데이터 : IP 데이터그램을 운반. 이더넷의 MTU(maximum transfer unit)1500바이트. 만약 초과하면 그냥 버린다.
  • 순환 중복검사(CRC) : 프레임에 오류가 있는지 검출한다.

이더넷의 특성

-      Connectionless : 핸드셰이크 과정이 없다.

-      Unreliable : ack, nak 따위 없다. 그저 CRC 확인하고 오류 있으면 버릴 뿐이다.

  • 버려진 데이터가 회복되는 경우는 오직, 최초 송신자가 TCP와 같은 상위 layerrdt를 사용할 경우다. 아닌 경우엔 오류 나면 버려

-      이더넷 MAC protocol : unslotted CSMA/CD with binary backoff

 

 

이더넷 스위치 (L2 device)

-      기능

  • 이더넷 프레임을 저장하고 포워딩한다.
  • 들어오는 프레임의 MAC 주소를 확인하고, 선별적으로 프레임을 포워딩한다.

-      특징 (라우터와의 4가지 차이)

  • Transparent : 호스트는 스위치의 존재를 인식하지 못 한다. (투명성)
  • 라우터는 IP 주소가 있지만 링크 스위치는 주소가 없다.
  • Plug-and play : 네트워크 관리자의 작업이 필요치 않다.
  • 스위치 자체로 자가 학습한다.

스위치 : multiple simultaneous(동시) transmissions

-      스위치는 버퍼 패킷을 갖는다.

-       A-B, C-B로 진행하면, CSMA/CD가 작동하여 충돌 발생 (X), 그리고 full duplex.

-      스위칭 : A-A’, B-B’의 전송이 동시에 진행되어도 충돌이 없다. hub였다면 충돌한다.

스위치 : Self-learning

-      호스트간 프레임 전달 과정에서 어떤 호스트와 인터페이스를 통해 도달할 수 있는지를 자가학습해 스위치 테이블에 저장하는 법

-      과정 (A->A’)

  • A는 스위치로 프레임 전송
  • 스위치는 A에 대한 프레임 저장 (A, 1, ttl)
  • 스위치는 A’의 경로를 모르기에, 모든 링크로 브로드캐스트 (flooding)
  • A’이 프레임을 받으면 A에게 ACK 응답
  • 위 과정에서 A’에 대한 스위치 테이블 생성 (A’, 4, ttl)

 

 

스위치 VS 라우터

-      공통점

  • 둘 다 store-and-forward한다
  • 둘 다 forwarding table을 갖는다.

-      차이점

  • 라우터는 네트워크 레이어, 스위치는 링크 레이어 장치다.
  • 라우터는 routing algorithmIP 주소를 통해 테이블 형성을 하지만,
    스위치는 flooding, learningMAC 주소를 통해 테이블 형성을 한다.

VLANs (Virtual Local Area Network)

-      Port-based VLAN : 하나의 물리적 스위치에 여러 포트가 존재하는데 이 포트들을 그룹화해 논리적으로 가상의 LAN 그룹이 형성되도록 한다.

-      특징

  • Traffic isolation : 포트는 자신이 속한 그룹의 포트로만 프레임을 보낼 수 있다.
  • Dynamic membership : 포트는 유동적으로 VLAN을 옮길 수 있다.
  • Forwarding between VLANS : 그룹 사이로 트래픽을 보내려면 외부 라우터를 사용해 라우팅해야 한다.
  • Trunk port : 스위치마다 하나의 특수 포트가 2개의 물리적 스위치를 연결한다. 이 포트는 모든 VLAN에 속하며, VLAN에서 전송한 프레임들을 트렁크 링크를 통해 다른 스위치로 전달한다.

 

 

MPLS (Multiprotocol label switching) (2.5L에 포함)

-      목적 : IP 주소를 대신해, 고정 길이 라벨 (fixed length label)을 활용해 빠르게 포워딩하는 것을 목표로 한다.

  • MPLS의 목표는 고정길이 라벨과 가상회선을 기반으로 데이터그램을 전달하기 위해, 선택적으로 데이터그램을 라벨링해 라우터로 하여금, IP가 아닌 고정길이 라벨을 기반으로 데이터그램을 전달시키는 것 이다.

-      MPLS Header (4바이트)

  • Label : MPLS 라우터에서 패킷을 포워딩할 위치를 결정하는 정보가 포함된다.
  • Exp : exp 비트는 우선순위를 결정
  • S : MPLS 라우터에 여기가 마지막 라벨인지 체크
  • TTL : 패킷을 버리기 까지 진행 가능한 홉 횟수를 식별

-      MPLS 가능 라우터는 MPLS 레이블을 포워딩 테이블에서 찾아 적당한 출력 인터페이스로 데이터그램을 전달하여 MPLS 프레임을 전달하므로 종종 레이블 스위치 라우터라고 부른다.

MPLS VS IP paths

-      IP 라우팅 : 경로가 종착지 주소 하나에 의해 결정되어 단일 경로만 가짐

-      MPLS 라우팅 : 시작과 종착점을 통해 경로가 결정됨으로, 다양한 경로가 생김

  • 로드밸런싱과 트래픽 엔지니어링 관점으로 우수해짐
  • 또한 Link Failure에 대한 ‘Fast Reroute’가 가능한 백업 경로가 있는 거임

MPLS forwarding tables

1.     R1은 자신이 MPLS 라벨 6을 포함하는 프레임을 목적지 A까지 전달할 수 있음을
R2, R3
에게 광고한다.

2.     R3은 자신이 입력라벨 10,12을 포함하는 프레임을 각각 AD로 라우팅할 수 있음을
라우터 R4에게 광고한다.

3.     R2는 자신이 입력라벨 8을 포함하는 수신 프레임을 A로 라우팅할 수 있음을 R4에게 광고한다.

4.     R43개의 테이블 요소를 갖게 된다.

이들은 link-state flooding protocol을 사용해 모두 전달받은 것임을 기억하자.

 

 

데이터 센터 네트워킹

-      구성요소

  • 작업 수행자 : 호스트 = 블레이드 (CPU, memory, 디스크 저장장치를 갖는다.)
  • : 20~40대의 블레이드를 적재하는 공간
  • TOR 스위치 : 랙 최상단에 위치하며, 랙에 있는 호스트들을 연결해 다른 데이터 센터의 스위치와 연결된다.
  • 로드 밸런서 : 부하 균등장치로, 요청을 호스트의 부하상태에 따라 균등 분배한다.

총정리

1) A가 랩탑 부팅->이더넷 케이블에 연결->IP 주소가없음->DHCP 서버로부터 IP 취득을 위한
DHCP
프로토콜 실행

2) 랩탑 OS에서 DHCP 요청 메시지 생성
-> UDP
세그먼트(목적지:DHCP 서버, 출발지:랩탑)에 캡슐화
->
목적지 IP주소와 출발지 IP 주소를 갖는 데이터그램에 해당 UDP 세그먼트 캡슐화

3) DHCP 요청 메시지를 포함한 IP 데이터그램은 이더넷 프레임에 캡슐화,
해당 프레임의 목적지 MAC 주소=FF X 6, 출발지=랩탑 Mac주소 => 스위치에 브로드캐스트

4) 해당 이더넷 프레임은 테이블에 없는 정보->스위치는자가학습을 위해 모든 출력 포트로 광고

5)라우터는 목적지의 MAC 주소로 향하는 인터페이스로 DHCP 요청 메시지가 포함된 브로드캐스트 이더넷 프레임을 수신하고, 이더넷 프레임으로부터 IP 데이터그램을 추출한다.

데이터그램의 브로드캐스트 IP 목적지 주소는 이 IP 데이터그램이 노드의 상위 계층 프로토콜에 의해 처리되어야 함을 의미한다. 따라서 데이터그램의 payload UDP로 역다중화되고, UDP 세그먼트로부터 DHCP 요청 메시지가 추출될 수 있다.

이제 DHCP 서버는 DHCP 요청 메시지를 갖게 된다.

6) 이제 DHCP 서버는 suhwan laptop주소, DHCP 자체의 IP 주소, 디폴트 게이트웨이 라우터(first-hop) IP 주소, 서브넷 블록(네트워크 마스크)을 포함하는 DHCP ACK 메시지를 만든다.

DHCP ACK 메시지는 UDP 세그먼트에 들어가고, UDP 세그먼트는 IP 데이터그램에 들어가며, IP 데이터그램은 이더넷 프레임에 들어간다.(메시지 -> UDP segment -> ip datagram -> ethernet frame 순서)

따라서 이더넷 프레임은 이제 출발지 MAC 주소, 라우터 인터페이스의 MAC 주소, 목적지 MAC주소를 갖는다.

7) DHCP ACK 메시지를 포함한 이더넷 프레임은 라우터에 의해서 스위치로 전송되고,

스위치는 자가학습을 통해서 출발지 -> 목적지 사이 전달되는 포트를 알게된다.

8) suhwan laptop DHCP ACK를 포함하는 이더넷 프레임을 수신한 후 IP 포워딩 테이블에 디폴트 게이트웨이의 주소를 저장한다.

이제 suhwan laptop은 자신의 네트워킹 구성요소를 초기화하고, 웹 페이지를 가져올 준비를 한다.

지금까지의 과정이 suhwan laptop이 네트워크에 연결되기까지의 과정이다.

이제 suhwan은 웹 브라우저에 URL www.google.com 을 입력하면 웹 웹 브라우저에 구글 홈페이지가 출력되도록 하는 긴 이벤트들이 시작된다.

suhwan의 웹 브라우저는 구글로 HTTP 요청 메시지를 보내기 위해 TCP 소켓을 생성하는 절차를 시작한다.

그러기 위해서는 구글의 IP 주소를 알아야하고, 우린 앞서 DNS 프로토콜이 이름을 IP 주소로 변환해 주는 서비스를 제공하는 데 사용된다는 것을 배웠다.

9) suhwan laptop 운영체제는 DNS 질의 메시지를 생성하고, 이 메시지의 질문 부분에 구글 url을 넣는다.

이후 메시지는 UDP 세그먼트에 들어가고, UDP 세그먼트는 목적지 IP 주소와 출발지 IP 주소 (아까 DHCP ACK 메시지에 들어있던 DNS 서버 주소) IP 데이터그램에 들어간다.

10) suhwan laptop DNS 질의 메시지가 포함된 데이터그램을 이더넷 프레임에 넣는다.

이 프레임은 게이트웨이 라우터로 보내지지만, 게이트웨이 라우터의 MAC 주소는 알 수 없다.

따라서 suhwan laptop ARP 프로토콜을 사용하여 게이트웨이 라우터의 MAC 주소를 알게된다.

11) suhwan laptop은 목표 IP 주소를 포함한 ARP 질의 메시지를 생성하고,

ARP 메시지는 브로드캐스트 목적지 주소(FF x 6)를 같은 이더넷 프레임에 포함되어 스위치로 전송된다.

스위치는 flooding을 통해 프레임을 전달한다.

12) 게이트웨이 라우터는 학교 네트워크로의 인터페이스를 통해 ARP 질의 메시지를 포함하고 있는 프레임을 수신하고,

ARP 메시지로부터 목표 IP 주소를 찾아 자신의 인터페이스 IP 주소와 비교해 일치 여부를 검사한다.

이후 게이트웨이 라우터는 IP 주소에 대응하는 MAC 주소를 포함해 ARP 응답 메시지를 suhwan laptop에 전달한다.

13) suhwan laptop ARP 질의 메시지가 포함된 프레임을 수신해서 게이트웨이 라우터의 MAC 주소를 추출한다.

14) 이제 suhwan laptop은 게이트웨이 라우터의 MAC 주소로 DNS 질의 메시지가 포함된 이더넷 프레임을 보낼 수 있다!!

suhwan laptop은 프레임을 스위치로, 스위치는 프레임을 게이트웨이 라우터로 전달하게 된다.

15) 게이트웨이 라우터는 프레임을 받아 DNS 질의가 포함된 IP 데이터그램을 추출한다.

이후 데이터그램의 목적지 주소를 포워딩 테이블에서 찾아 프레임을 해당 링크로 전송한다.

16) intra-domain 라우팅 프로토콜에 의해 데이터그램을 DNS 서버로 전달할 출력 인터페이스를 결정한다.

17) DNS 질의가 포함된 IP 데이터그램이 DNS 서버에 도착한다.

DNS 서버는 구글 DNS 데이터페이스에서 구글 URL을 찾아 해당하는 IP 주소를 찾고 돌려준다.

18) 마침내 suhwan laptop DNS 메시지로부터 구글 url IP 주소를 추출한다.

이제 suhwan은 구글 서버에 접속할 준비가 되었다.

19) 이제 suhwan laptop은 구글 url로 보내는데 사용할 TCP 소켓을 생성할 수 있다.

먼저 suhwan laptop TCP는 구글 url에 있는 TCP 3-way handshake를 수행해야 한다.

따라서 suhwan laptop TCP SYN 세그먼트를 생성 -> IP 데이터그램에 넣고 ->

해당 MAC주소의 프레임에 넣어 스위치로 전송한다.

20) 학교 -> 구글 까지 가는 과정에 속한 네트워크에 있는 라우터들은 TCP SYN 세그먼트를 포함하고 있는 데이터그램을 각 라우터의 포워딩 테이블을 사용하여 구글 url로 전달한다.

이때 BGP 프로토콜을 사용하여 라우터의 포워딩 테이블 엔트리를 결정한다.

21) 마침내 TCP SYN 세그먼트를 포함하고 있는 데이터그램이 구글 url에 도착한다.

이후에는 3 way handshake 과정이 정상적으로 되면서, suhwan laptop은 구글 url에게 소켓을 보낼 수 있게 된다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.