Internet Protocol Version 4 (IPv4) - L3에 속하는 프로토콜로, 현재 버전 4(IPv4)와 버전 6(IPv6)가 공존해있는 상황이다. - L2로부터 전달받은 Frame을 라우팅 테이블을 참조하여, 현재 Host로 보내진 패킷이면 처리하여 L4로 올리고, 다른 호스트를 목적지로 하는 패킷이면, 적절한 인터페이스 주소와 NHA를 검색하여 패킷을 전달한다. - NHA는 논리 주소 형태이므로 ARP를 통해 물리 주소로 변환되어 전송된다. - 물리 네트워크로 전송되기 전, 전송할 패킷이 해당 물리네트워크의 수용 가능한 IP-Datagram의 최대 크기를 초과하면 Fragmentation을 진행한다. - IP 프로토콜의 보조 프로토콜로 IGMP와 ICMP가 존재한다. - IGMP : I..
Structure of Router 라우터의 설계 구조 - 라우터는 Input Port(입력 포트), Output Port(출력 포트), Routing Processor(라우팅 프로세서), Switching Fabric(스위칭 조직)과 같은 4가지 요소로 구성되어 있다. Input Port (입력 포트) - 수신된 전기 신호를 L1 프로세서가 Bit화 한다. - 생성된 Bit를 L2 프로세서가 Frame으로 만들어 입력 큐에 넣는다. - Decapsulation* 과정 중, 탐지된 오류는 적절한 방법으로 처리된다. * Decapsulation(역캡슐화) : TCP/IP 모델, OSI 모델에서 상위 계층의 메세지로 변환되는 것을 의미한다. * Encapsulation(캡슐화) : TCP/IP 모델, OSI..
Hierarchical Routing 계층적 라우팅 - Core Network(Backbone)의 라우터부터 Local Network의 라우터까지, 각 라우터마다의 라우팅 테이블에 계층적 구조를 적용한 모델을 말한다. - 각각의 라우터에서는 하위 계층 네트워크의 세부 사항을 고려하지 않음으로써, 라우팅 테이블의 엔트리 수를 줄여 처리 속도를 높인다. - Regional ISP에서 Small ISP의 Customer까지에 이르는 계층적 라우팅 형태를 도식화한 것이다. - Regional ISP는 120.14.64.0/18 주소(\(2^{14}\)개 주소)를 할당받아 4개의 Block으로 Subnetting한다. (4개의 Block으로 Subnetting했으므로, 네트워크 필드에 2Bit가 추가된다.) - ..
Multiplication 곱셈 하드웨어 레벨에서의 곱셈 연산 알고리즘 - 곱셈의 결과(Product)의 자릿수는 승수와 피승수의 자릿수의 합이다. - 매 Iteration마다 Multiplicand는 왼쪽으로 1회 Shift되어 Product의 자릿수로 맞춰진다. - 위 다이어그램의 32회의 순차적인 덧셈 과정은 Latency 측면에서 효율적이지 못하며, 병렬로 진행할 경우에 Latency가 대폭 개선될 여지가 있다. 이미지 출처 : 권건우 교수님 강의록
Forwarding 포워딩 - 패킷을 목적지로 보내기 위한 경로를 설정하는 것을 의미한다. - 즉, 라우팅 테이블을 어떻게 구성할 것인지에 대한 개념이다. - 포워딩은 목적지 주소에 기반하느냐, 레이블에 기반하느냐에 따라 목적지 주소 기반 포워딩, 레이블 기반 포워딩 두 가지 방법으로 나뉜다. Forwarding based on Destination Address (목적지 주소 기반 포워딩) - 목적지 주소 기반 포워딩에서 라우팅 테이블을 작게 만들어 처리 속도를 높이고 보안 문제를 해결하는 방법들로는 아래와 같은 방법들이 있다. 1. Next-Hop Method (다음 홉 방법) - 패킷 헤더의 목적지 IP주소를 라우팅 테이블과 비교하여 Next-Hop 경로를 결정하는 방식이다. - 전송 경로 상의, ..
IP Packet Delivery IP 패킷 전달 - 패킷이 Source에서 Destination까지 전달되는 과정에서 목적지에 직접 전달되느냐, 전달되는 과정의 중간 경로이냐에 따라 Delivery(전달)의 형태는 두 가지로 나뉜다. Direct Delivery (직접 전달) - 같은 Link(물리 네트워크)에 연결된 노드로부터 패킷을 직접 전달받는 형태를 Direct Delivery(직접 전달)라고 한다. - 이 때, 패킷을 전달한 노드를 Deliverer(전달자)라고 한다. - Link내 통신에서 전달자는 다른 호스트가 될 것이고, 외부 인터넷을 통해 유입된 패킷의 전달자는 해당 Link의 라우터가 될 것이다. - 이 때, 패킷이 갖고 있는 목적지 IP주소의 Network 필드와 전달자의 주소의 N..
NAT (Network Address Translation) 네트워크 주소 변환 - 한 네트워크에서 자신만의 독립적인 주소 체계를 사용하고자 할 때, 외부와 연결된 노드(라우터, 스위치 등)에서 NAT를 수행하게 된다. - NAT가 수행되는 경우는 아래와 같다: Site가 Private 주소 혹은 불법 주소*를 사용하는 경우 Site의 내부 네트워크 구성을 감추고자 하는 경우 Load Balancing을 수행하는 경우 인터넷 공유기를 사용하는 경우 * 불법 주소 : 주소 할당 체계를 무시한 주소를 의미한다. 1. Site가 Private 주소, 불법 주소를 사용하는 경우 - Site 내부에서는 Private 주소 체계를 사용하며, NAT를 수행하는 라우터 바깥에서는 200.24.5.8 주소 하나로 대표되..
Counting Sort 계수 정렬 - 정렬하고자 하는 원소들의 값이 \(O(n)\)을 넘지 않는 경우에 사용할 수 있는 알고리즘이다. (즉, 모든 입력값들이 입력의 개수를 넘지 않아야 한다.) - Time Complexity = \(\Theta(n)\) Mechanism (메커니즘) - 입력 배열 \(\texttt{A[1...n]}\)의 원소들을 차례대로 살펴보면서 \(1\)부터 \(k\)까지의 자연수가 각각 몇 번 나타나는지를 Counting한다. - 입력값들의 입력 빈도를 Counting함으로써 \(\texttt{A[]}\)의 각 원소가 몇 번째에 위치하는지를 계산할 수 있게 된다. Pseudo Code (의사 코드) countingSort(A[], B[], n) { // 입력 배열 A[1...n]..