분류 전체보기 228

[컴퓨터망] Network Layer (7) - NAT

DHCP 이외에도 32비트 IP 주소체계의 수량 한정에 대한 문제를 해결하기 위한 방법이 또 있습니다. 그중 하나가 오늘 공부할 NAT(Network Address Translation)입니다. 이름 그대로 해석하자면 네트워크 주소 변환이라고 이해할 수 있습니다. NAT은 외부 네트워크와 내부 네트워크를 나누어 사용합니다. 외부 네트워크는 공인 네트워크로, 앞에서 공부했던 일반적인 IP 주소를 할당받아 사용하는 네트워크이고, 내부 네트워크는 사설 네트워크로써, 말 그대로 공인되지 않은 사적으로 만들어진 네트워크라는 뜻입니다. 즉, 할당받은 IP 주소 안에 사설 네트워크를 만들어 마치 밖에서 봤을 때는 하나의 호스트처럼 보이지만 실제로 안에는 여러 대의 호스트가 연결된 형태입니다. 이 방법을 통해 하나의 ..

[컴퓨터망] Network Layer (6) - DHCP

IP 주소를 그냥 기기 당 하나씩 할당을 해주게 되면 IP도 최대 2^32개까지만 할당할 수 있기 때문에 언젠가 고갈이 될 수 있습니다. 2^32개는 약 42억개 정도로 그렇게 많은 수가 아닙니다. 그래서 이를 극복하기 위해 여러가지 방법이 동원됩니다. 바로 앞 게시물에서 공부한 CIDR, 그리고 이번 글에서 공부할 DHCP, 그리고 그 뒤에 알아볼 NAT과 IPv6가 이러한 방법에 포함됩니다. 이번 글에선 이 방법들 중 동적으로 IP를 할당받는 방법에 대해 알아보겠습니다. IP의 동적할당을 위해 DHCP(Dynamic Host Configuration Protocol)라는 방법이 사용됩니다. DHCP에서는 호스트가 현재 속해있는 네트워크의 서버로부터 IP 주소를 할당받습니다. 해당 네트워크와 연결되어 ..

[컴퓨터망] Network Layer (5) - Subnet

IP 주소는 네트워크 계층에서 호스트를 찾기 위해 사용되는 32 비트로 구성된 식별자입니다. 컴퓨터나 라우터 등 네트워크와 연결된 모든 기기들은 이 IP 주소를 가지고 있어야만 합니다. 라우터는 여러 네트워크와 연결되어 있기 때문에 보통 여러 개의 IP 주소를 가집니다. 1. IP 주소의 클래스 (Class) IP 주소는 네트워크 주소와 호스트 주소로 이루어집니다. 한 네트워크 안에 속하는 모든 호스트들의 네트워크 주소는 동일해야 합니다. 송신자가 보낸 데이터는 우선 네트워크 주소를 이용해 목적지가 속한 네트워크를 찾은 뒤, 그 안에서 호스트 주소를 이용해 정확한 수신자를 찾아갑니다. 이 네트워크 주소와 호스트 주소의 길이, 그리고 목적에 따라 A부터 E까지의 클래스로 나누어집니다. 각 클래스들은 가장 ..

[컴퓨터망] Network Layer (4) - IP Datagram Format

네트워크 계층에서의 패킷 즉 데이터그램은 특정한 형식에 맞게 만들어져 있습니다. 이번 글에서는 데이터그램의 형식에 대해 공부해보도록 하겠습니다. 1. 데이터그램의 형식 데이터그램은 헤더 부분과 상위 계층으로부터 받아온 데이터 부분으로 나누어집니다. 데이터 부분은 상위 계층에서 내려보낸 그대로 사용하고, 헤더 부분만 네트워크 계층에서 만들어 데이터 부분과 합쳐줌으로써 데이터그램을 만들어냅니다. 헤더의 형식은 아래와 같습니다. 각 구성요소들에 대해 하나씩 살펴보도록 하겠습니다. 1. VER (Version): IP 프로토콜의 버전을 의미합니다. IP 프로토콜은 IPv4와 IPv6가 현재 사용되고 있으며, 4자리 비트로 이루어져 있기 때문에, IPv4의 경우 0100, IPv6의 경우에는 0110으로 표기됩니..

[컴퓨터망] Network Layer (3) - Buffer Management

라우터의 입력 포트와 출력 포트에는 모두 큐로 구현된 버퍼가 있어서, 패킷이 버퍼에 도착했을 때 먼저 도착한 패킷이 다음 단계로 넘어가지 못했다면, 버퍼에서 대기하며 자신의 차례를 기다려야 합니다. 이때 입/출력 포트들은 모두 버퍼에 대한 관리를 해 주어야 합니다. 1. 입/출력 포트에서의 버퍼 관리 입력 포트에서는 스위치를 통해 출력 포트로 패킷을 보내주는 과정이 모든 도착하는 패킷을 바로 전달해 줄 수 있을 정도로 빠르지 않기 때문에 관리가 필요합니다. 또한, 여러 입력 포트에서 하나의 출력 포트로 패킷을 보내려 한다면, 포트들은 한 번에 하나의 패킷만 받을 수 있기 때문에, 하나의 포트를 제외한 다른 포트들은 한 포트의 전송이 완료될 때까지 대기를 해야 합니다. 이렇게 버퍼의 가장 앞에 있는 패킷이..

[컴퓨터망] Network Layer (2) - Switching Fabric

라우터에는 여러 개의 입력 포트와 출력 포트가 존재합니다. 그래서 입력 포트로 들어온 패킷을 포워딩 테이블에 따라 적절한 출력 포트로 보내주어야 합니다. 그래서 정확하게 출력 포트에 패킷을 보내주기 위해 여러 개의 입/출력 포트들이 복잡하게 연결되어 있습니다. 이렇게 입/출력 포트들끼리 얼기설기 엮여 연결되어 있는 모습이 섬유처럼 생겼다고 해서 패킷을 입력 포트에서 출력 포트로 전달해주는 과정을 스위칭 패브릭(Switching Fabric)이라고 부릅니다. 각각의 입/출력 포트에는 큐가 존재하여 먼저 도착한 패킷이 아직 출력되지 못했다면, 큐에서 대기하며 자신의 차례를 기다립니다. 스위칭 패브릭에는 크게 3가지 종류가 존재합니다. 이 방법들을 하나씩 살펴보도록 하겠습니다. 1. 메모리를 이용한 스위칭 (..

[컴퓨터망] Network Layer (1) - Routing & Forwarding

네트워크 계층(Network Layer, NL)은 TCP/IP 5 계층에서 데이터 링크 계층(Link Layer)과 전송 계층(Transport Layer) 사이에 위치하는 계층입니다. 이번 글에서부터는 네트워크 계층에 대해 공부해보려고 합니다. 1. 네트워크 계층이란? 네트워크 계층은 상위 계층인 전송 계층으로부터 세그먼트(Segment)를 전달받아 패킷(Packet)으로 만들어 데이터 링크 계층으로 내려보내 주거나 (송신 측), 데이터 링크 계층으로부터 패킷을 받아 세그먼트로 만들어 전송 계층으로 올려 보내 주는 역할을 합니다 (수신 측). 여기서 패킷은 데이터그램(Datagram)과 같은 의미로 혼용하여 사용합니다. 네트워크 계층에서는 라우터(Router)를 이용해 패킷을 목적지까지 운반합니다. 라..

[컴퓨터망] Link Layer (5) - Ethernet Switch

현재의 이더넷은 스타형 토폴로지를 사용하기 때문에 스위치나 허브의 도움이 필요합니다. 여기서 스위치와 허브의 차이점을 잠깐 짚고 넘어가자면, 허브는 각 노드들이 어디에 위치하고 있는지 MAC 주소에 대한 정보를 저장하지 않기 때문에, 허브가 수신자로부터 데이터를 받으면 자신에게 연결된 모든 노드에 데이터를 뿌려줍니다. 목적지 주소와 맞는 노드만 해당 데이터를 사용하는 방식입니다. 반면에 스위치는 스위치 테이블을 가지고 있어서 목적지 노드에만 데이터를 보내줍니다. 이번 글에서는 이 스위치 테이블에 대해 공부해보도록 하겠습니다. 1. Switch Forwarding Table 포워딩(Forwarding)이란 목적지에 맞게 데이터를 전달해주는 것을 뜻합니다. 즉 스위치 포워딩 테이블은 스위치가 데이터를 어디로..

[컴퓨터망] Link Layer (4) - Ethernet

이더넷은 현재 가장 많이 사용되는 유선 네트워크 기술로, 앞에서 잠깐 공부했던 CSMA/CD 프로토콜을 이용해 통신을 합니다. 물론 이더넷 말고도 토큰 링, FDDI 등의 네트워크 기술들이 존재하지만, 이더넷이 압도적으로 많이 사용되고 있습니다. 이더넷은 LAN(Local Area Network)를 위해 개발된 네트워크 기술로, 현재는 IEEE 802.3 규약으로 표준화되어 있습니다. 이번 글에서는 이 이더넷에 대해 알아보도록 하겠습니다. 1. 물리적 배치 (Physical Topology) 토폴로지란 컴퓨터 네트워크의 요소들을 물리적으로 연결해 놓은 방식을 뜻합니다. 가장 대표적인 3가지 방법에 대해 알아보겠습니다. 1. 버스(Bus) 형 버스 형은 1990년대 중반에 가장 많이 쓰이던 방식으로, 하나..

[컴퓨터망] Link Layer (3) - MAC Address and ARP

이번 글에서는 데이터 링크 계층에서 과연 어떻게 자신이 데이터를 전달해야 할 노드를 찾는지에 대한 공부를 해보겠습니다. 1. Mac 주소 Mac은 Media Access Control의 약자이며, Mac 주소란 네트워크 카드 하드웨어에 부여되어 있는 고유한 물리적인 주소입니다. 네트워크 상에서 통신을 할 때 서로를 구분하기 위한 주소로써, IP 주소만 가지고는 무슨 기기에 해당 IP 주소가 할당되어 있는지 알 수 없기 때문에 IP 주소를 MAC 주소로 변환해주는 과정이 필요합니다. 이 과정을 바로 ARP (Address Resolution Protocol)라고 합니다. 자신의 컴퓨터의 Mac 주소를 알고 싶다면 cmd 창에 ipconfig -all을 실행하면 물리적 주소라는 이름으로 확인할 수 있습니다...