네트워크 11

[네트워크] Link Layer (3) - ARP : Address Resolution Protocol

ARP는 Address Resolution Protocol의 약자로, MAC 주소를 얻어오기 위한 프로토콜이며, IP의 DNS와 유사하다. 링크 계층은 IP주소를 물리적 네트워크 주소 MAC 주소로 캡슐화해주어야 하므로 매핑이 필요하며, 이를 위해 사용한다. ARP테이블은 IP주소, MAC주소, TTL을 저장하는 테이블로 노드가 개입하지 않고 생성되는 plug-and-play를 지원한다. 여기서 TTL은 Time To Live의 약자로 언제까지 이 정보를 테이블에 저장할지 나타내는 것으로 IP와 MAC 주소의 관계를 갱신해주기 위해 존재한다. ARP를 통해 MAC주소를 알아내는 과정을 살펴보자. Argon은 라우터 137을 찾기 위해 ARP Request를 전역에 뿌리는 broadcast를 하면, 일치하..

[네트워크] Link Layer (2) - MAC address

MAC주소는 한 인터페이스에서 다른 인터페이스로 프레임을 가져오기 위해 지역적으로 사용하는 주소이다. IEEE(Institute of Electrical and Electronics Engineers)에서 관리하며, 라우터에서 라우터까지만 사용되는, hop-by-hop 링크 주소이다. MAC주소는 48비트와 16진수 표기법을 사용하며, 만약 장치가 IPv6를 지원한다면 64비트를 사용한다. 1A-2F-BB-76-09-AD와 같은 표기법을 사용하며, 각 자리는 4비트로 8x6 = 48비트를 구성한다. LAN의 어댑터는 전역적으로 고유하다. 이렇게 각각의 MAC주소를 가지고 있어 데이터들이 목적지를 보고 이동할 수 있도록 한다. 그렇다면, 대표적 주소 체계 IP주소와 MAC주소는 어떻게 다를까? MAC주소는..

[네트워크] Link Layer (1) - Intro, Ethernet

링크 계층은 한 노드에서 인접한 다른 노드로 링크를 통해 데이터그램을 전송하는 링크이다. 라우터가 중간에 없는, 물리적으로 가까운 두 노드 간 데이터그램 전송을 보장한다. 용어 설명 Node : 호스트 또는 라우터. Link : 경로를 따라 인접한 두 노드를 연결하는 채널로 wired link와 wireless wireless link 두 가지가 존재한다. Frame : 캡슐화된 datagram으로, 링크 계층의 패킷이라고 이해하면 된다. 이렇게 사진을 보면 직접적으로 연결된 링크도 있고, 무선으로 연결된 링크도 존재한다. 유선은 이더넷, 무선은 와이파이가 대표적이다. 전파로 송수신하는 부분, 노드끼리 이어진 빨간 줄로 표시된 링크들이 링크 계층이 관할하는 부분이다. 실제 네트워크는 Wi-fi, Ethe..

[네트워크] Network Layer (6) - Router(Input/output port, Switching Fabric)

네트워크 계층의 라우터는 데이터가 이동할 경로를 설정하고 데이터를 올바른 경로로 보내는 역할을 한다. 라우팅 알고리즘 및 프로토콜은 RIP, OSPF, BGP 등이 있으며, 데이터그램을 전송한다. 라우터의 구조는 크게 두 가지가 있는데, 바로 control plane과 data plane이다. 이 두 단어는 라우터를 학습함에 있어 매우 중요하니 꼭 알아두도록 하자. control plane은 라우팅에 관련된 기능을 수행하는데, 라우터들이 협업하여 데이터의 시작 지점부터 목적 지점까지의 경로를 설정하는 라우팅 알고리즘을 통해 전체 경로를 지정해주는 네비게이션 같은 역할을 한다. data plane은 포워딩에 관련된 기능을 수행한다. 여기에는 후술할 라우터 입/출력, 고속 스위칭 패브릭과 같은 개념이 포함되..

[네트워크] Network Layer (5) - IPv6 (Tunneling)

IPv6 주소 체계는 IPv4의 32비트 주소 공간의 부족으로 인해 개발되었다. IPv6는 128비트 주소 체계를 사용하며, 2^128 (3.4 x 10^38 정도)의 주소를 갖는다. 여담으로, 지그에 존재하는 모든 모래에 주소를 할당해도 남을 정도의 엄청난 양이라고 한다. 현재 많이 사용되고 있는 IPv4의 경우 점으로 구분된 십진수 4개 그룹으로 구성되는데, IPv6는 콜론으로 구분된 4자리의 16진수 8개 그룹으로 구성된다. 이때 0이 반복되는 0000의 경우 :: 같은 식으로 0 4개를 생략할 수 있다. IPv4의 주소가 부족한 상태인데, 지금 당장 IPv6 주소 체계를 사용하지 않는 이유는, 네트워크에 수많은 개념들이 그러하듯 발전된 개념이 있어도, 네트워크 체계 자체가 물리적 인프라가 이미 깔..

[네트워크] Network Layer (4) - NAT : Network Address Translation

NAT, Network Address Translation은 네트워크 주소를 변환해주는 장치로 공유기, 라우터 드의 라우팅 장치를 통과하는 IP 패킷 헤더의 IP주소 정보를 변환한다. 로컬 네트워크 (서브넷)에는 하나의 외부 IP주소만 사용하며, 로컬 내부에서는 NAT이 부여한 private IP주소를 사용한다. 즉, 하나의 public IP주소를 이용해 로컬 네트워크 내부에 여러 장치들을 사용할 수 있는 것이다. (private IP주소를 사용) 1) 10.0.0.1의 주소를 가진 호스트가 128.119.40.186, 80으로 데이터그램을 보내고자 한다. 2) NAT 라우터가 데이터그램 전송 주소 10.0.0.1, 3345를 138.76.29.7, 5001로 바꾸고, NAT translation tab..

[네트워크] Network Layer (3) - DHCP : Dynamic Host Configuration

DHCP는 Dynamic Host Configuration의 약자로 컴퓨터가 네트워크에 접속하면 DHCP 서버가 자동으로 (동적으로) IP 주소를 할당해주는 역할을 한다. 사용 중인 주소를 연장하거나 연결된 상태에서 주소를 재사용 할 수 있다, 서버와 클라이언트로 나뉘어 동작하는데, 클라이언트는 접속하려는 PC와 같다고 생각하면 된다. DHCP 서버는 공식적인 IP주소를 보유하며, IP주소를 클라이언트에게 자동으로 할당해준다. DHCP 클라이언트는 DHCP 서버에게 서비스 받는 호스트로, 부팅하면 DHCP 서버에게 IP주소를 요청 받고, lease time이라고 불리는 일정 기간 동안 IP주소를 부여받고 사용한다. 호스트가 DHCP를 통해 IP 주소를 얻는 과정은 discover, offer, reque..

[네트워크] Network Layer (2) - IP Addressing (Subnet, CIDR)

인터페이스란 호스트 또는 라우터와 물리적 링크 간의 연결을 의미하는 것으로, 호스트는 유선 이더넷, 무선 랜 등 일반적으로 몇 개의 인터페이스를 가지고, 라우터는 일반적으로 다중 인터페이스를 보유한다. 인터페이스는 고유 IP 주소를 가지고 있다. 우리가 흔히 사용하고 있는 32비트 IP 주소는 호스트/라우터 인터페이스의 32bit 식별자로 서브넷 ID와 호스트 ID를 포함하고 있으며, 이것이 무엇인지에 대해서는 이 게시물 아래에서 소개합니다. 이 방식을 IPv4라고 하는데, 32비트 체계이므로 약 42억 개의 IP 주소를 표현할 수 있습니다. 8비트가 4개로 점을 이용해 구분하며, 십진수 표기이기 때문에 한 자리에 올 수 있는 최대 수는 255입니다. Subnets 서브넷은 대규모 네트워크를 구성하는 개..

[네트워크] Network Layer (1) - Intro

네트워크 계층은 통신 계층으로부터 세그먼트를 받아 데이터그램으로 처리한 후에 다시 통신 계층으로 전송해주는 계층이다. Sender, 즉 송신 측에서는 세그먼트를 데이터그램화 해주는데, 이 과정을 헤더로 감싸준다고 해서 encapsulation, 캡슐화라고 한다. 인접 라우터로 데이터그램을 전송하는데, 입력 링크에서 출력 링크로 데이터그램을 전달해준다. Receiver, 수신 측에서는 링크 계층(네트워크 계층의 하위 계층)으로부터 받은 데이터그램에서 세그먼트를 추출하여 이를 통신 계층으로 전송한다. 이 과정은 모든 호스트와 라우커에서 동작해야 한다. Routing / Forwarding 네트워크 계층에서는 라우팅과 포워딩의 두 과정이 있습니다. 라우팅은 목적지까지 최적의 경로를 찾아주는 것으로 일종의 네비..

[네트워크] Application Layer (2) - HTTP

HTTP는 응용 계층 프로토콜로 클라이언트와 서버로 나누어져 동작하는데, 클라이언트는 사용자, 웹 브라우저 쪽으로 웹에서 필요한 것들을 서버에 요청/수신/표시한다. 서버는 클라이언트의 요청에 대한 응답으로 클라이언트가 필요한 객체를 보내준다 HTTP는 안정적인 전송이 가능한 TCP를 사용하는데, 이 TCP로 클라이언트와 연결을 맺는다. 클라이언트가 80번 포트(HTTP는 80번 포트 사용)를 통한 TCP 연결을 생성하고 서버가 이 연결을 승인하면, 브라우저와 웹 서버, 즉 클라이언트와 서버가 필요한 HTTP 메시지를 교환하고, 교환이 완료되면 연결을 종료하는 과정으로 통신이 이루어진다. 이때, 서버의 부담을 줄이기 위하여, 서버는 과거에 있었던 요청에 대한 정보를 유지 및 관리하지 않고, 사용자에 대한 ..

728x90