Computer Networks

0.0(0)
studied byStudied by 0 people
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/62

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

63 Terms

1
New cards

Definition of a Computer Network

A large number of separate but interconnected computers working together to do a job

2
New cards

Definition of a Network Protocol

The definition of the format and order of messages send and received among network entities. Specifies the actions that must be taken on message transmission and receipt

3
New cards

Why is hardware and protocols necessary for networks?

Hardware is necessary for the physical work that is done with the data, protocols are necessary to ensure that data is shared correctly and efficiently for this work to get done.

4
New cards

How do modern day networks provide lots of access?

Data centers combine machines together to increase efficiency

5
New cards

Internet structure

  • Network edge: clients and servers (often in data centers for the latter)

  • Access networks: wired and wireless communication links

  • Network core: interconnected routers (the true network of networks)

The internet is an interconnected network of networks

6
New cards

Different types of physical media for transmission

Cables (coaxial, fiber glass, twisted pairs)

Wireless radio (terrestial microwave, WiFi, Satellite)

Physical wires are effective, but need physical connection

Wireless are more flexible, but have other environmental factors (reflection, interference)

7
New cards

Packet-switching and store and forward systems

Packet switching: hosts break application-layer messages into packets which are forwarded from one router to the next
Store and forward: entire packet must arrive at router before it can be transmitted on next link

Introduces delay

8
New cards

Two key functions of local forwarding and global routing

Local forwarding: move arriving packets from router’s input link to appropriate router output link
Global routing: determine source to destination paths taken by packet using a routing algorithm

9
New cards

Packet switching vs Circuit switching

Packet switching: Data is broken into packets and then sent across connections to routers. Allows for more users and is efficient, but risks packet loss

Circuit switching: Dedicated pathway for connection between specific server and client. Consistent and more guaranteed performance, but more likely to idle and be less efficient

10
New cards

How is the internet structured overall?

The internet is a network of networks. Internet service providers create connections to specific network edge clients and connect easily within their own network. If required to leave their own network, ISPs have connections such as IXPs and peering links to connect.

11
New cards

Sources of packet delay + loss

Packets enter a buffer at a router and possibly have to wait before they are sent if outgoing wire is less efficient than incoming packets. If arrival rate exceeds the output link capacity, packets are lost as they cannot be stored in the buffer

12
New cards

Packet throughput and propogation delay

Packet throughput: rate (bits/time) at which bits are being sent from sender to receiver (either tracked instantaneous or average)

Propogation delay: Delay due to length of physical link between networks

13
New cards

Bottleneck link

Link on end-end path that constrains end-end throughput

14
New cards

Why is layering necessary?

The internet is a very complex system and having explicit structure to systems eases some of that confusion. Modularization eases maintenance as changes only affect portions of the overall system

15
New cards

Interface between layers

The way 2 layers communicate with one another to get their job done

16
New cards

How is a protocol used between the same layers of sending and receiving?

A common protocol called the “layer n protocol” moves between 2 layers to talk to one another

17
New cards

Encapsulation and Layering

The addition of headers and trailers on each layer that allows for proper transmission and processing of data while still maintaining the original data

18
New cards

OSI Model Layers and their functionality

  1. Application: Provides application services

  2. Presentation: Encrypts, encodes, and compresses usable data

  3. Session: Establishes, manages, and ends session between end users

  4. Transport: Transmits data using TCP & UDP (and more)

  5. Network: Assigns global addresses and finds best routes between different networks

  6. Data Link: Assigns local addresses and interfaces + delivers data

  7. Physical: Encodes signals, cabling and connectors

19
New cards

TCP/IP Layers and their Functionality

  1. Link layer: Lowest layer, describes what links need to do to support internet layer

  2. Internet layer: Permits hosts to inject packets into any networks that travel independently. Defines packet format and internet protocol (IP)

  3. Transport layer: Uses 2 end-to-end transport protocols TCP and UDP

  4. Application layer: handles all higher level protocols

20
New cards

TCP/IP model vs OSI Model

OSI model was designed poorly, had poor implementation, and was poorly timed with TCP/IP coming out.

TCP/IP model is not well distinguished or described, but was overall better than the OSI model

21
New cards

Key system calls for socket programming

socket() creates a socket for the process to connect to a port

bind() connects a socket to a port

listen() used by server program to listen for any clients

connect() used by client program to connect to listening server

send() and recv() are used to send data between through buffers

22
New cards

Client-server paradigm

Servers act as an always on host with a consistent IP address
Clients communicate with servers intermittently with dynamic IP addresses and do not directly communicate with one another

23
New cards

Peer-peer architecture

There are no consistent servers and instead arbitrary end systems communicate. There are no consistent IP addresses and it is self scaleable as new peers request new services while providing services

24
New cards

How do web applications work over HTTP protocol?

The hyper text transfer protocol is used by clients to request, receive, and display we objects. It is used by servers to send those objects when they are requested.

25
New cards

Non-persistent vs persistent HTTP

Non-persistent HTTP sends at most one object per TCP connection and requires multiple connections for multiple objects. Persistent HTTP sends multiple objects over a single TCP connection.

26
New cards

How is round trip time measured with HTTP

RTT is the time for a small packet of data to travel from a client to a server and back. Measured from time of sent to time of first receipt

27
New cards

How are cookies used?

Cookies allow for the usually “stateless” HTTP to have websites recall users. Cookies are identifiers of users which are sent in the HTTP requests that are stored in server backends to recall specifics for the user.

28
New cards

Use of proxy servers and web caching

Proxy servers are used to prevent as many requests to origin servers. Proxy servers hold web caches that can be used to return the object to the original requester without needing to request origin server. They act as a middleman and a both a client and a server.

29
New cards

Content Distribution Networks

Rather than a single mega server, multiple copies are stored across multiple geographically distributed sites. The prevent single points of failures and increases speed of response rate

30
New cards

Goals of HTTP/2 Deployment

Decrease delay in multi-object HTTP requests by mixing their packets in with each other to let smaller objects through

31
New cards

SMTP protocol

Simple mail transfer protocol, used by email to send messages. Built on the basis of TCP with direct transfer

32
New cards

Major components of E-mail

User agents, mail servers, SMTP protocol.

Mail servers contain mailboxes for messages and mail queues for outgoing messages. Mail servers act as both clients and servers

33
New cards

IMAP Protocol

Internet mail access protocol, used by final user to access email from the mail server and control the files that are stored on the server

34
New cards

Domain Name Server

A distributed network of that translates hostname to IP address. It is an application layer protocol. There are a mix of organization specific DNS’s as well as top-level domain servers that hold large things (.edu, .gov, etc)

35
New cards

Local domain name server

A server not a part of the DNS hierarchy, but most internet service providers use it as a proxy. Keeps a cache of recent name-to-address translation pairs to increase speed

36
New cards

Authoritative DNS server

Organization’s own DNS server providing IP mapping to their own hosts, could be ran locally or by provider

37
New cards

Resource Records

Stored in DNS distributed database
RR Format:

(name,  value, type, ttl)

38
New cards

Resource Record types

type=A, name is hostname & value is ip address

type=NS, name is domain & value is hostname of authoritative DNS

type=CNAME, name is alias name & value is canonical name

type=MX, value is name a mailserver associated with name

39
New cards

Why does DNS use UDP

UDP is faster and has less overhead compared to TCP. This is ideal for a service that needs to work as fast and as often as DNS

40
New cards

How does video streaming avoid client-side buffering?

Built in network-added delay to create consistency with video playing

41
New cards

Main challenges of video streaming

Server-to-client bandwidth varies over time leading to odd inconsistencies and pocket loss/delay can lead to either delayed play out or poor video quality

42
New cards

Scenario 1: Utopia/Unrestricted Simplex Protocol

Data transmission is one direction, no transmission errors, sender/receiver can process all data, data is constantly sent. Really great, but not realistic

43
New cards

Scenario 2: Simplex stop-and-wait protocol

Receiver cannot process infinite data, thus we send then data one frame at a time and wait for an acknowledgement. Data transmission is one directional. Very slow, but shows the fundamentals

44
New cards

Scenario 3: Simplex protocol for a noisy channel

Data/ACKs can be lost in the channel and thus it is now necessary for a time out system to be included to resend data. A simple 1-bit system can be used since only 2 successive frames are concerned. More accurate to real life

45
New cards

Scenario 4: One bit sliding window protocol

Communication is two-way and ACKs are now numbered to prevent early time outs. It is a fully functional system and can recover from garbled frames/ACKs but is not best utilization

46
New cards

Scenario 5: Addition of pipelining

Increase ACK bit size to something like 3 bits, more data can be sent at a time which makes the system overall more efficient. Maximimum in-flight packets is 2n-1 where n=# of bits. More efficient than previous, but if there is an error a lot of frames can be dropped

47
New cards

Scenario 6: Divide window size between sender and receiver

The number of bits that can be accepted on receiver side is higher, safer from errors and losing data unnecessarily. There is a tradeoff between bandwith and data link layer buffer space.

Total windows <= 2n

48
New cards

Sliding window protocol

A method to track which data needs to be sent/received over a data transfer by labeling with bits and moving the “window” forward as data is properly received in order. Used in scenarios 4, 5, and 6

49
New cards

Calculation for expected channel usage

Total time utilizing the channel/(Total time utilizing the channel + idle time) * 100

50
New cards

General Issues of Transport Layer

  • User oriented: programmers communicate with it

  • Negotiation of quality and types of service

  • Guarantee service

  • Addressing (knowing what to talk to)

  • Storage capacity of subnet

  • Dynamic flow control

  • Congestion control

  • Connection establishment

51
New cards

UDP

User Datagram Protocol, a barebones method of connecting processes and ports which does not promise anything and has little overhead. It uses IP to help connect to other programs across the internet by handling the addressing

52
New cards

TCP

Transmission Control Protocol promises a lot of features, such as point-to-point communication, a reliable in-order byte stream, and other important connections. It uses IP to help connect to other programs across the internet by handling the addressing

53
New cards

How are ports used in UDP and TCP

Ports are used as consistent points of access into machines that processes can request to without having to worry about PID or other identifiers. They are like the mailboxes of computers

54
New cards

Sliding window protocol with TCP

TCP communicates with cumulative ACKs to show byte it is expecting next as well as a changing window size to show how much data it is able to take in on the next communication between machines.

55
New cards

TCP Header Fields

  • Source port number

  • Destination port number

  • Sequence number

  • Acknowledgement number

  • Application data (variable length)

  • Internet checksum

  • TCP options (variable length)

  • receive window (for flow control)

56
New cards

Connection set-up and termination for TCP

TCP uses a 2 handshake method to guarantee congestion control and and security authentication. There are 2 kinds of terminations, either graceful with a 4 part end to the product or an abrupt disconnection which only 1 message

57
New cards

Retransmission timers for TCP

Retransmission timers are used to predict the RTT of a connection to most efficiently calculate the timeout timer for a product.

58
New cards

Congestion window

A window used by a sender over TCP to track appropriate send window

59
New cards

Flow control window

A window used by the receiver to state how much data they can take in, senders over TCP cannot send more data then this window

60
New cards

slow-start

TCP sends very little data at first, but exponentially increases as it can send more and more data. Eventually, this changes to an additive growth

61
New cards

AIMD

Additive increase, multiplicative decrease. Sending size is increased by 1 segment size until loss is detected, then once loss is detected, it cuts the sending rate in half. This creates a saw tooth-like pattern. This system increases stability

62
New cards

Motivation to develop QUIC

Speed as compared to HTTP, it is built on top of UDP and tries to promise a lot of similarities to HTTP while being much faster

63
New cards

QUIC vs HTTP

Both are application layer protocols, QUIC is on UDP while HTTP is on TCP. QUIC adopts many similar rules to HTTP and TCP (congestion control, connection establishment, etc.) but tries to innovate and be faster