> For the complete documentation index, see [llms.txt](https://2ood.gitbook.io/2ood-knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://2ood.gitbook.io/2ood-knowledge-base/lecture-notes/networks/2023-11-07.md).

# 2023-11-07

> **Summary**

> **keywords**

> **TODO**

> **HW**

> **Exercise**\*

> **Next time**

***

## Router Architecture

### Input port function

* line termination(Physical layer)
  * bit level reception
* link layer protocol recieving
  * Ethernet
* lookup, forwarding table, queueing
  * queueing happens at every port.
  * decentralized switching
    * Destination-based forwarding
    * SDN (more fields to compare)
  * goal is to process at line speed. so, the calculations are excecuted at hardware level.

### Longest Prefix Matching

### Switching fabric

Switching rate should be $NR$, where $R$ is the speed of each line.\
fabric designs are 3 types.

* memory, bus, interconnection network.

### Switching fabric #1. Memory

> past generation.

* memory is the middle point.
* speed is limited by memory bandwidth.
* need two buses(input bus, output bus)
* read\&write is needed.

### Switching fabric #2. Bus

> Bus (64bits of data can flow at a singular clock cycle)

* Popular, but very expensive.
* speed is limited by bus bandwidth (bus contentation)
* cutting-edge buses are 32 Gbps
* bus contentation depends on how many/busy input ports are.

### Switching fabric #3. Interconnection network

> grid, and each pathways can be open or closed.

* Crossbar methods.
* Initially developed for processor connection methods.
* If bus speed is R, and there are NR capacity (at most, by some sort of parallelism)
* thus can meet the efficiency of bus method.
* Even if we have less bandwidth, NR switching rate can be made because parallel switching is possible.
* up to 60 Gbps.
* limitation : when one pathway blocks other needed pathways.
* Buffer management, scheduling algorithm should be implemented.

### Output port contention

**HOL Blocking** occurs. - when two packet destined to the same output port.\
The other packet data should wait until one collection of data is passed.

**Output buffer** comes in.\
When arrival rate exceeds output line speed.\
but queueing delay and loss due to output port buffer overflow can happen.

### Buffer management is required.

3 tasks on buffer management

1. what should be the buffering size
2. drop policy (which to drop?)
3. scheduling discipline giving priority on each packets

### How much buffering?

```
${RTT*c}/{\sqrt{N}}$
```

Round Trip time is used.\
\#todo : write about TCP flow and buffer.

If you have too much buffer?

### Buffer management

**Drop policy**

**priority**

**round robin**

\#todo : fill out.

### Network priority

\#todo : fill out

### Network Neutrality

* technical, social, economic, legal

Three rules made in US, 2015

* No blocking
* No throttling
* no paid prioritization

***

## Network Layer Protocol

* IP protocol
* ICMP protocol (used in ping service)

## IP datagram format

\#todo : paste format image.

* source IP address
* destination IP address
* TTL : max hops, thus looping packets are prevented.
* upper layer protocol (TCP, UDP..)
* header checksum (calculation to validate the data is intact). for some reliability
  * header checksum is only for header parts.
* 16bit identifier, flags, fragment offset
  * router also does fragmentation. (actually a link layer process, but since they do not have processing power, network layer does it.)
  *
*
