電網期中考 === < Contributor `25077667` > ## 2020 1. What is packet switching? What is circuit switching? Please use a table to list the advantages and disadvantages of these two mechanisms. packet swithcing : To send a message from a source end-system to a destination end-system, the source break long message into chunk of data known as packet. most the packet switching use store and forward transmission. circuit withcing : Dedicated route is establish between the source end-system and the destination end-system then the entire message transfer through it( no share ). | switching | Packet | Circuit | | --------------------- | -------------- | --------------- | | Fixability | High | Low | | Performance | Low | High | | Buffering | True | False | | Implementation | Software | Hardware | | transmission capacity | Bigger | Smaller | | Costs | Simple, cheap | Complex, costly | | Timing | Variable delay | Constant delay | ![](https://i.imgur.com/PqHgqvP.jpg) [AVI glossary packet-switching](https://avinetworks.com/glossary/packet-switching/) ------- 2. There are four main sources of packet delay. Please draw a picture to explain them in order. $D_{proccessing}$+$D_{queueing}$+$D_{transmission}$+$D_{propagation}$ ![](https://i.imgur.com/zgkkUjU.jpg) ![](https://i.imgur.com/WuKbq1W.jpg) - transmission delay - time required to push all of the packet’s bits into the link - propagation delay - time required to propagate from the beginning of the link to the end of the link ![](https://i.imgur.com/f57YPcE.png) ------- 3. Internet protocol stack consists of five layers. Please explain the functions of each layer, respectively. | Layer | Function | | ----------- | ---------------------------- | | Application | Data generated by and usable by software applications | | Transport | Provides the means for transmitting data between the two connected parties, as well as controlling the quality of service | | Network | Handles the routing and sending of data between different networks | | Data Link | Handles communications between devices on the same network | | Physical | Packets are converted into electrical, radio, or optical pulses and transmitted as bits over wires, radio waves, or cables | > Ref: [cloudflare](https://www.cloudflare.com/learning/network-layer/what-is-the-network-layer/) ------- 4. Encapsulation is a common approach adopted by networking engineers. Please list three examples of applying encapsulation in networking. * 各層只看得懂各自層的檔頭 包個檔頭,使下層知道要幫你做什麼事 1. HTTP server encapsulates the object in the response message. 2. SMTP sending server encodes the mail content in ASCII then encapsulates it in the message before transmisison. 3. Transport layer protocol segments the message into chunks and adds header to each of them. So only end systems need to implement the transport layer and above. ------- 5. It is said that client-server architecture is not as scalable as peer-to-peer architecture. Please draw pictures and use simple mathematical equations to support this argument. Suppose the network have abundant bandwidth, the server upload capacity is $U_s$, the file size is $F$, and the client's download capacity is $D_c$. There are $N$ clients want to get the file from server. Then, the client-server architecture's delay time: $$D_{c-s}\ge max{\{\frac{NF}{U_s}, \frac{F}{D_c}\}} $$ The P2P architecture's delay time: $$D_{p2p} \ge max{\{\frac{F}{U_s}, \frac{F}{D_c}, \frac{NF}{\Sigma_{\forall i}{U_i}}\}}$$ - ![](https://i.imgur.com/K20OCo9.jpg) ------- 6. App-layer protocol defines types, syntax, semantics, and rules of messages. Please describe them by your understanding. ``` App-layer can be seperated by session, presentation and application layers in OSI model. And the types, syntax, semantics, and rules of messages are the reponsibitity of the presentation layer. ``` -> how about this The **types** of message exchanged for example request message and receive message. The **syntax** of the various message types, such as the field in the message and how the fields are delineated. The **semantics** of the fields, that is, the meaning of the information in the fields. **Rules of message** for determining when and how a process sends message and responds to messages. > [name=楊志璿] 其實我覺得這頗細@@ 他想怎麼詮釋 Types, Syntax, Sematics 網路也管不著 >> 我 Tag 不到你 > For example: ```javascript= let val = '1234' // The typeof val === 'string' ``` So, what is the type? What is the syntax? What is the sematics? > [name=SCC] I would say this is a text. > Text is also a part of data(anything). ------- 7. Please use a table to compare TCP and UDP, two Internet transport-protocol services, to the point. | Fearures | TCP | UDP | | ------------------ | ---- | ----- | | Reliable | True | False | | Flow control | True | False | | Congestion control | True | False | ------- 8. Please demonstrate how the hot ratio (the data found within the cache) affects the performance of web caches (proxy servers). * 通常而言,當流量強度小於 0.8 時,對應的排隊延遲較小,約為十幾毫秒,假設為 0.01s * 假設從客戶端不經手代理人伺服器,直接連接到目的伺服器的固有網路延遲為 2s (不包含 queueing 時間) * 考慮以下情況 : * 假設 hot ratio 為0.4,代表有 40% 的 request 將幾乎立即被代理人伺服器的 cache 響應,只有 60% 的 request 仍需要由 origin server 提供,則平均延遲為 0.4 * (0.01s) + 0.6 * (2.01s) = 1.21s ------- 9. DNS is a distributed and hierarchical database. Please use the following picture to explain the operations of DNS and how it defenses against DDoS attacks. ![](https://i.imgur.com/Z31o5F3.png) Iterated query: ```sequence Client - LDNS: whois www.amazon.com LDNS - root: Ask root once root - LDNS: NS com LDNS - com: NS www.amazon.com com - LDNS: NS dns.amazon.com(A.B.C.D) LDNS - A.B.C.D: A www.amazon.com A.B.C.D - LDNS: www.amazon.com A E.F.G.H LDNS - Client: www.amazon.com A E.F.G.H ``` > [name=楊志璿] 這樣嗎? for example,client wants for www.amazon.com * client queries local DNS server to find www.amazon.com * local DNS queries root server to find "com" DNS server(then root server return "com" DNS IP address) * local DNS queries ".com" DNS server to get amazon.com DNS server * local DNS queries amazon.com DNS server to get IP address for www.amazon.com * local DNS return the IP address of www.amazon.com to client * how to against DDoS attacks? * DNS root servers were protected by packet filters, configured to always block all ICMP ping messages directed at the root servers. Further more, most local DNS servers cache the IP address of top-level-domain servers, allowing the query process to often bypass the DNS root server. (參考自課本p.167) > [name=SCC] ![](https://i.imgur.com/oGLqgYI.png) > 根據我測試,只有 **g**.root-servers.net, **k**.root-servers.net 會擋 ping > 所以是:有些 root dns 有擋,有些沒有。全世界共 13 個 root dns. ------- 10. There are four types of DNS, which are type A, NS, CNAME, and MX. Assume www.yahoo.com's "canonical" name is www.server1.yahoo.com whose IP address is A.B.C.D. Then, please use the above picture to perform DNS operation for www.yahoo.com by using the first three types. > Assume you have a Local DNS which is called LDNS, and there is a TLD_DNS which have the resource record (RR) of www.yahoo.com. ```sequence Client - LDNS: whois www.yahoo.com LDNS - TLD_DNS: www.yahoo.com NS TLD_DNS TLD_DNS - TLD_DNS: www.yahoo.com CNAME www.server1.yahoo.com TLD_DNS - TLD_DNS: www.server1.yahoo.com A A.B.C.D TLD_DNS - LDNS: www.yahoo.com A A.B.C.D LDNS - Client: www.yahoo.com A A.B.C.D ``` ::: warning > [name=Ernie] TLD servers usually only have RRs for authoritative server. So the solution should look like this * TLD's RRs * (yahoo.com, dns.yahoo.com, NS) * (dns.yahoo.com, A.B.C.X, A) * dns.yahoo.com's RRs * (www.yahoo.com, www.server1.yahoo.com, CNAME) * (www.server1.yahoo.com, A.B.C.D, A) ::: @Ernie 所以...他是怎麼去問? > [name=Ernie] > 研究中, try this > ```sh > dig www.nsysu.edu.tw +trace > ``` > 除了最後對 dns.nsysu.edu.tw 的 query 是 type A 外,其餘皆是 NS queries? >> [name=楊志璿] Not sure. The `dig` command is doing the "REAL" DNS query. >> However, this question ask us do some ... "query simulating(?)". I have no idea about this. ------- 11. In video coding. How to save coding rates for video images by spatial coding and temporal coding. * Spatial coding: picture size. * Temporal coding: frame rate ------- 12. Please explain the operations of the client-side and server-side of Dynamic, Adaptive Streaming over HTTP (DASH). Please include why we can watch videos of different qualities at the client's sides by adapting to network conditions. ![](https://i.imgur.com/WTZXWi2.jpg) ------- 13. Please draw a picture to explain the operations of content distribution networks(CDNs). * ![12](https://i.imgur.com/9Lo5uVV.jpg) * 範例中假設了內容供應商NetCinema雇用第三方CDN公司KingCDN來向客戶發送影片 * (1)客戶訪問位於NetCinema的Web網頁 * (2)當客戶點擊某影片連結時(eg. http://video.netcinema.com/6Y7B23V),該主機向LDNS發出一個對video.netcinema.com的請求 * (3)LDNS將該DNS請求移交到一台用於NetCinema的authoritative DNS,為了將該DNS請求移交給KingCDN,NetCinema的authoritative DNS並不是返回一個IP address,而是返回一個KingCDN域的主機名 * (4)此時,LDNS向KingCDN的DNS發出請求,隨後該KingCDN的DNS指定了某個內容分發伺服器的IP address傳回給LDNS * (5)LDNS向客戶主機轉發該內容伺服器節點的IP address * (6)客戶端收到KingCDN的IP address,隨後向該IP的伺服器建立一條TCP連結,並發出該影片的HTTP GET request ------- 14. Please write a pseudo-code of UDP socket programming for simple client-server interactions. * 下列舉例 : 在python3中建立一個客戶端socket、一個伺服端socket,客戶端會傳送一個字串到伺服端,伺服端將字串全部變成大寫後再回傳給客戶端(使用UDP socket) * client端 ```python= from socket import * serverName = 'hostname' serverPort = 12000 clientSocket = socket(AF_INET, SOCK_DGRAM) message = raw_input('Input lowercase sentence:') clientSocket.sendto(message.encode(), (serverName,serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print(modifiedMessage.decode()) clientSocket.close() ``` * server端 ```python= from socket import * serverPort = 12000 serverSocket = socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('', serverPort)) print("The server is ready to receive") while True: message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.decode().upper() serverSocket.sendto(modifiedMessage.encode(), clientAddress) ``` ------- 15. Both TCP and UDP support multiplexing and de-multiplexing. Please draw pictures to show their difference. * UDP : 當兩個UDP segments具有不同的source IP或source port,卻具有相同destination IP和destination port時,則兩個segments將通過相同的socket抵達相同的process * TCP : 當兩個TCP segments具有不同的source IP或source port,卻具有相同destination IP和destination port時,則兩個segments將被指派到兩個不同的sockets,隨後才抵達相同的process ------- 16. Please fill in the missing parts of Fig. 1 (rdt 3.0) Fig. 1 and filled: ![](https://i.imgur.com/bEGi4CA.png) ![](https://i.imgur.com/3LfimP6.png) ------- 17. Please explain the GBN FSM of Fig. 2 with your words. The ranges should be included in your explanation. Fig. 2: ![](https://i.imgur.com/ASsI1NE.png) ------- 18. Briefly explain the operations of TCP congestion control by drawing a graph of congestion window size versus transmission round. Your explanation must include the slow start phase, the congestion avoidance phase, and the condition of experiencing losses. ------- 19. RFC 1122 and RFC 2581 are about TCP ACKs. For various events at receivers, different receiver actions are taken. Please explain when ACKs are sent immediately and when delayed ACKs are triggered. TCP ACK generation 3-70 in textbook event at receiver -> TCP receiver action 1) Arrival of in-order segement with expected seq#. All of the data up to expected seq# <font color='red'> already ACKed </font>. * Delayed ACK, wait up to 500ms for next segement. if no next segement send ACK. 2) Arrival of in-order segement with expected seq#. one of the data has <font color='red'>pending</font>. * immediately send cumulative ACK, ACKing both in-order segement. 3) Arrival of out-of-order segement higher-than-expected seq <font color='red'>gap detected </font> * immediately send **duplicate ACK**, indicating seq#. of next expected byte. 4) Arrival of segement that partially or completely <font color='red'>fills gap </font> * immediately send ACK, provided that segement start at lower end of gap. ------- 20. Please explain Fig. 3 in detail. Your explanation should include the design methodology behind it by your understanding. Fig. 3: ![](https://i.imgur.com/511EH4Y.png) please introduce for slow start, congestion avoidance and fast recovery. **Slow start** Initially, `cwnd=1`. And `cwnd++` upon receiving **1 ACK**. This results in a **exponential** growth. The below example assume no sequence is lost. (無極生太極,太極生兩儀,兩儀生四象,四象生八卦,八卦演萬物) | cwnd (sent) | ACK | Increment (= 1*ACK) | |-------------|-----|-------------------| | 1 | 1 | 1 | | 2 (1+1) | 2 | 2 | | 4 (2+2) | 4 | 4 | | 8 | 8 | 8 | | 16 | 16 | 16 | Until... - No loss - When `cwnd` reaches `ssth`, enter the **congestion avoidance** state. - Sequence lost - If **triple duplicate ACKs** (because of the lost sequence) are received, enter the **fast retransmit** state - If no ACK is received before **timeout**, enter the **retransmission timeout** state and reset `cwnd=1` **Congestion avoidance** `cwnd = cwnd + 1/cwnd` upon receiving **1 ACK**. This results in a **linear** growth. | cwnd (sent) | ACK | Increment (= (1/cwnd)*ACK) | |-------------|-----|----------------------------| | 16 | 16 | 1/16*16 = 1 | | 17 (16+1) | 17 | 1/17*17 = 1 | | 18 | 18 | 1 | | 19 | 19 | 1 | Until sequence lost and same as **slow start** state... - **triple duplicate ACKs**: enter the **fast retransmit** state - **timeout**: enter the **retransmission timeout** state and reset `cwnd=1` **Fast retransmit** Fast retransmit aims at sending the lost packet **immediately** without waiting for the timeout - Duplicate ACKs may be caused by 1. A lost packet 1. An out-of-order packet - The sender assumes that packet loss occurs upon receiving 3 or more duplicate ACKs - After successfully retransmitting the lost packet, set `ssth=cwnd/2` and reset `cwnd=1` then go back to **slow start** state. **Retransmission timeout** If a timeout occurs, the sender sets `ssth=cwnd/2` and return to the slow start state. --- ## 2019 1. What is package switching? What is circuit switching? Please describe and compare them by your understanding. Please draw a picture to show your understanding of the internet structure. ------- 2. Internet structure consists of many tiers and can be considered as a network of networks. Please draw a typical internet structure with multiple tiers and explain its operations by your understanding. ------- 3. Queueing delay grows exponentially while the traffic intensity is close to 1 (the input rate is close to the output rate). Please draw a picture of averaging queueing delay vs. traffic density and explain its relationship by your understanding. * ![](https://i.imgur.com/vD0Qnoi.jpg) !!! the answer is ? Is this ok or not ? * 假設queue容量無限大的情況,當 La/R(流量強度) > 1 時,代表bit到達queue的平均速率大於該queue傳輸出去的速率,在這種情況下,該queue將趨近於無限增長,排隊造成的延遲也會隨著趨近於無限大 * 當流量強度趨近於0時,代表幾乎沒有packet抵達且抵達的間隔很大,則抵達的packet不可能在queue中發現其他packet,因此平均排隊延遲趨近0 * 總結,當到達速率小於傳輸能力時,queue的長度將縮短,但無論如何,隨著流量強度逐漸趨近於1時,平均排隊長度將會變得愈來愈長,排隊延遲也會隨之變動 :::warning > [name=Ernie] The traffic intensity never goes to $1$ because $a$ is an average rate. The packet is thus allowed to arrive in **bursts**. For example, suppose $N$ packets arrive simultaneously every ${L\over R}N$ seconds (i.e. $a = R/L$, $La/R = 1$). 1. The first packet has no queuing delay 1. The second packet has a queuing delay of $L/R$ seconds 1. The $n$th packet has a queuing delay of $(n-1)L/R$ seconds This ultimately leads to a significant average queuing delay! ::: >> [name=楊志璿] :thumbsup: ------- 4. There are four sources of packet delay. Please draw a picture to explain them according to the order a packet encounters while it enters into a node such as a router. ------- 5. What are the seven layers of the ISO/OSI model? Please explain the functions of each layer and describe the reason behind layering. Please use a table to list the advantages and disadvantages of layering. | Layer | explain | | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | | Application | Define the agreement between the program and the remote program | | Presentation | Provide transcoding function of communication application | | Session | Establish the interface between the user and the transport layer, and provide the standard and synchronization of data exchange | | Transport | Establish a message service that tranfers application layer between applications point-to-point | | Network | Also known as the IP layer, it is responsible for sending packets at the network layer from the host at the transmitting end to anotehr host | | Data Link | Responsible for data transfer between nodes | | Physical | Define the medium of hardware transmission| * advantage : There is a set of clear definitions that can be followed during system development, and during network maintenace, only the update of this layer needs to be considered, and other layers do not need to be changed. * Disadvantages : The functions provided by some levels may be similar (overlap) to other levels, and cross-level issues cannot be considered. ------- 6. Encapsulation is an important methodology for networking. Please give three examples to demonstrate the usage of encapsulation. ------- 7. What are the advantages of client-server architecture? What are the advantages of peer-to-peer architecture? How are they adopted in today's network system? ------- 8. Why is there a UDP in addition to TCP? What services requirements can a TCP connection guarantee and what can not a TCP connection guarantee? Please explain your answers. ------- 9. Please use an example to explain the advantages of adopting web caches (proxy servers) in reducing transmission delays. ------- 10. There are four types of DNS, which are types A, NS, CNAME, MX. Please give an example to apply these four types and show the needs of the four types. ------- 11. In video coding, how to save coding rates for video images by spatial coding and temporal coding? Please explain the operations of client side and server side of Dynamic, Adaptive Streaming over HTTP (DASH). Please include why we can watch videos of different qualities at the client sides by adapting to network conditions. ------- 12. Please draw a picture to explain the operations of content distribution network (CDN) provider. ------- 13. Please write a pseudo code of TCP socket programming for simple client-server interactions. * 下列舉例 : 在python3中建立一個客戶端socket、一個伺服端socket,客戶端會傳送一個字串到伺服端,伺服端將字串全部變成大寫後再回傳給客戶端(使用TCP socket) * in python3 * client端 ```python= from socket import * serverName = 'localhost' serverPort = 12000 clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((serverName, serverPort)) message = 'foooo' clientSocket.send(message.encode()) # b'foooo' modifiedMessage, serverAddress = clientSocket.recvfrom(1024) print(modifiedMessage.decode()) #'FOOOO' clientSocket.close() ``` * server端 ```python= from socket import * serverPort = 12000 serverSocket = socket(AF_INET, SOCK_STREAM) serverSocket.bind(('', serverPort)) serverSocket.listen(1) print("The server is ready to receive") while True: connectionSocket, addr = serverSocket.accept() sentence = connectionSocket.recv(1024).decode() # 'foooo' capitalizedSentence = sentence.upper() # 'FOOOO' serverSocket.send(capitalizedSentence.encode()) connectionSocket.close() ``` ------- 14. Both TCP and UDP can support multiplexing. Please draw pictures to show their differences. ------- 15. Please use an example to show how UDP checksum can help find transmission errors. ------- 16. Please fill in the missing parts of Fig. 1(rdt 3.0) Filled: ![](https://i.imgur.com/bEGi4CA.png) ------- 17. Please explain Fig. 2 with your words. The ranges should be included in your explanation. ![](https://i.imgur.com/lCGNbBC.png) ------- 18. The 2-way handshake may result in failure scenarios. Please draw pictures to show and also explain failure scenarios. ------- 19. RFC 1122 and RFC 2581 are about TCP ACKs. For various events at receivers, different receiver actions are taken. Please explain when ACKs are sent immediately and when delayed ACKs are triggered. ==Same as 2020 19== ------- 20. Please explain Fig. 3 in detail. Your explanation should include the design methodology behind it by your understanding. ![](https://i.imgur.com/511EH4Y.png) --- ## 2018 1. Please use a table to compare the advantages and disadvantages of packet switching and circuit switching. ------- 2. Please draw a picture to show your understanding of internet structure. Professor doesn't help my question about this problem. 18 ------- 3. There are four sources of packet delay. Please explain them according to the order a packet encounters while it enters into a node such as a router. ![](https://i.imgur.com/f57YPcE.png) | Num | kind of delay | content | | -------- | -------- | -------- | | 1 | Nodal-processing | When sending a packet to a router, the router checks the packet header to determine where to send the packet. | | 2 | Queue-processing | The packet is temporarily stayed in the buffer zone, the queue, and then transmitted after waiting. | | 3 | Transmission | Time when ROUTER sends the packet to LINK | | 4 | Propagation | The time when the packet is uploaded on LINK to the next ROUTER | ------- 4. As the figure below, please depict why does the average queueing delay grows exponentially when the traffic load (the x axis) is larger than 0.9? Please also explain the trend of the average queueing delay versus the traffic load from low to high. ![](https://i.imgur.com/3AzzW7k.png) ------- 5. Please explain Internet protocol stack and describe the reason behind layering. ------- 6. Encapsulation is an important methodology for networking. Please give three examples to demonstrate the usage of encapsulation. * DHCP, Tunneling, mobile.IP? ------- 7. Why is there a UDP in addition to TCP? What service requirements can a TCP connection guarantee and what can not a TCP connection guarantee? Please explain your answers. ------- 8. There are four types of DNS, which are types A, NS, CNAME, and MX. Please depict the needs to have four types and how to apply each of them for DNS. * RR format (name, value, type, TTL ) | TYPE | NAME | VALUE | CONTENT | |:-----:| ---------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------- | | A | host name | IP address | provides the standard hostname-to-IP address mapping | | NS | domain | host name of authoritutive name server for this domain | Be used to route DNS queries further along in the query chain | | CNAME | alias name of canoncial name | Canoncial name | provide querying hosts the canoncial name of a host-name | | MX | name of mailerver which associates with "name" | allow the hostnames of mail servers to have simple aliases. | allow the hostnames of mail servers to name simple aliases. | * (name, mailservername, MX, TTL) * (mailservername, IP value, A, TTL) * (name,TW.IBM, CNAME. TTL) * (TW.IBM IP value, A TTL) * 我可以給點簡體大法 ![](https://i.imgur.com/ImWJqhR.jpg) ------- 9. In video coding, how to save coding rates for video images? Please explain the client's side and server side of Dynamic, Adaptive Streaming over HTTP (DASH). Please include why we can watch videos of different qualities at the client sides by adapting to network conditions. > * 時間性 : When the data in T seconds is the same as the data in T+1 seconds, no data is transmitted for update. > * 空間性 : If the data is same in consecutive blocks, only the color and the position of consecutive blocks will be records > * DASH : THe client side and the server side consider the bandwidth of each purpose to adjust streaming qualities. > * Two affected coding textbooks are mentioned, one is CBR: complete transmission of image contents, and the other is VBR: the coding rage will be dynamically adjusted based on network status, bandwidth. and other information. ------- 10. Please explain the advantages and disadvantages of the protocol maintaining "state" or adopting "stateless". Please also use mail access protocols such as POP and IMAP to explain their differences. ------- 11. Please use Fig. 2 to show how DNS query and reply are performed using some of the four types of DNS records. How to use different types of records should be included in your answer. If there may have more than one possible solution, you just need to explain one kind. ![](https://i.imgur.com/cqQrFBA.png) > 1. CNAME uses alias to ask DNS (get REAL NAME) || CNAME 使用別名向DNS 問(得到 REAL NAME ) > 2. Use NS to find the host name || 使用NS尋找主機名稱 > 3. Use NS to find the host name || 使用NS尋找主機名稱 > 4. Use NS to find the host name || 使用NS尋找主機名稱 > 5-8. Use A to reply to the host ip address || 使用A回復主機ip地址 ------- 12. Please explain why a client-server model is not as scalable as a P2P model. You can explain this by drawing pictures or by simple equations. Why is most of today's company selecting client-server architecture or a combination of two to provide services? Please use a table to list the advantages and disadvantages of client-server architecture and peer to peer (P2P) architecture. ------- 13. RFC 1122 and RFC 2581 are about TCP ACKs. For various events at receivers, different receiver actions are taken. Please explain when ACKs are sent immediately and when delayed ACKs are triggered. ==Same as 2020 19== ------- 14. The multiplexing/de-multiplexing of TCP and UDP are different. Please explain what their differences are. And why do these differences affect the implementation of forking processing in TCP or UDP? http://www.tsnien.idv.tw/Internet_WebBook/chap8/8-8%20Socket%20%E5%A4%9A%E5%B7%A5%E6%96%B9%E5%BC%8F.html ------- 15. How can we have reliable data transfer under an unreliable channel? What functions must be included in order to achieve reliable data transfer under an unreliable channel? Please list them and explain them briefly. ------- 16. The Fig. 3 below shows the advantage of pipelining. In the demominator, it is "RTT+L/R"? Is it correct? Why is not "RTT+2L/R" or "RTT+3L/R" or others? Please explain it by drawing pictures. ![](https://i.imgur.com/J6z7NEX.png) ------- 17. Briefly explain the operations of TCP congestion control, Your explanation must include slow star phase, congestion avoidance phase, and the condition of experiencing losses. - (The same as 2020 question 18.) ------- 18. Please write a pseudo code for client side and server side of Selective Repeat protocol. ![](https://i.imgur.com/P7eMvbi.png) ------- 19. Some states are omitted in Fig. 4 Please fill the missing parts and also explain the operation of Fig. 4. ![](https://i.imgur.com/24fgoA3.png) ------- 20. Please describe the operation of Fast Retransmit and explain the design methodology behind it.