--- tags: Intro. to Computer Networks --- {%hackmd BkVfcTxlQ %} # Intro. to Computer Networks Midterm Note ## Intro. ### Network Cores Circuit switching : TKTK Packet switching : Not always reliable (e.g., loss, delay, ...) ### Delay Processing : TKTK Queueing : TKTK Transmission $d_t$ : $$\frac{L}{R}$$ : Packet of length $L$ bit : Link rate $R$ bps Propagation $d_p$ : $$\frac{d}{s}$$ : Physical distance $d$ : Physical speed $s$ (electric field velocity in the medium) ### Queueing Utilization \\[\frac{La}{R}\\], where $a$ is average packet arrivial rate. Also known as _trafic intensity_ (? ### Throughput Bit received rate at destination. (How fast data could be transferred and _processed_.) Usually determined by the bottleneck link, i.e., $\min\{R_s, \frac{R}{n}, R_c\}$. ### Bandwidth-Delay Product \\[R\cdot d_p\\], which is equivalent to $R\frac{d}{s}$, that is, the maximum number of bits in the link. ### Binomial Distro. \\[E(x)=np\\\sigma_x=\sqrt{np(1-p)}\\] \\[P(x\leq k)\approx\Phi(\frac{k-E(x)}{\sigma_x})\\], where $\Phi(z)$ is the cummulative distro. function of _standard normal distro._ ## Application Layer ### RTT _Round-Trip Time_, time of a packet traverse from client, to server and then back. To _GET_ a webpage, it takes a RTT to connect to server and another RTT to send the request. #### HTTP 1.0: Non-Persistant \\[2RTT+2RTT\times n\\] For each object it consumes 2 RTT, where one for creating connection each time while another one for sending request. #### HTTP 1.1: Persistant \\[2RTT+RTT\times n\\] Connects only once in a session. #### Parallelization Reduce $x\times n$ to $x\times\left\lceil\frac{n}{p}\right\rceil$, where $p$ denotes the number of parallelized connection. #### HTTP 2: Pipelining \\[2RTT+RTT\\] Sends all objects w/o waiting or delay. ### Proxy Cache hit rate, access link delay and local delay are denoted by $p$, $D$ and $d$ resp. Access Link Utilization $I'$ : $$(1-p)I$$ Avg. End-to-End Delay $d'$ : $$p\cdot d+(1-p)\cdot(D+2d)$$ ## Transport Layer ### UDP Checksum 1's complement sum of header splitted to 2-byte words (compute summation plus carry out) and then take 1's complement. > So that it works even if sender and receiver use different endian systems. ### Reliable Data Transfer 1.0 : Assume no bit error or loss 2.0 : Bit flips : ACK & NAK 2.1 : ACK or NAK might be corrupted : Marks packets as `0` or `1` 2.2 : NAK-free 3.0 : loss or delay packets : Add timeout - Utilization - $\frac{\frac{L}{R}}{\frac{L}{R}+RTT}$ is usually poor - Pipelined - Multiply $n$ time #### Go-Back-N Sender maintains a windows of size $N$ containing packets sent but not yet ACKed. Receiver only ACKs the last in-order packet. When receiving ACK~n~, sender slides the left of his window to n+1. #### Slective Repeat Receiver ACKs all packets, maintains out-of-order ones in buffer and slides his window if in-order. Sender adds timout for each packet to resend and slides the window when receiving base ACK in the window (the earlist packet not yet ACKed). {%hackmd @nevikw39/signature %}