what are 'components' of the internet?
billions of connected computing devices called hosts/ end systems which run network apps
what is the internet?
a network of networks
end systems access the internet using ISPs (Internet service providers) where each ISP is a network, ISPs are also interconnected to communicate
different networks for different purposes, eg. work or academic
how is the internet connected?
end systems are connected together by a network of communication links and packet switches
end systems can send data by segmenting it and adding byte headers, creating packets which are sent to the destination and reassembled
end systems, packet switches et.c run protocols
what are communication links?
the physical means that allow devices to communicate by transmitting data through packets
different links transfer data at different rates
what are examples of communication links?
fiber, copper, radio, satellite
what is bandwith?
transmission rate measures in bits per second
how are networks connected through data?
2 most common internet packet switches- routers and link layer switches via a route/ path in the network
forward packets to destination
routers = used in network core
link layer switches = used in access networks
device to device
what are the 2 internet standards?
RFC - request for comments IETF - internet engineering task force
what is RFC?
documents that describe the protocols to follow
what is IEFT?
organisation to develop and review protocols so we can know what to expect, world-wide communication
what complex components do networks contain?
hosts routers links of various media applications protocols hardware
software
what are the 2 main services of the internet?
an infrastructure that provides services to distributed applications (email, instant messaging, movie streaming)
provides programming interface to applications (for developers to create apps- socket interface provided by end systems)
what are distributed applications?
applications that involve multiple end systems and exchange data with each other.
what is a protocol?
defines the format, order of messages sent and received among 2 or more communicating network entities, and the actions taken on message transmission, receipt, or other event
protocols exist for both hardware and software activities
governs all of the internet
how are protocols organised?
organise protocols into layered architecture (protocol stack)
can be implemented in software or hardware
each layer implements a specific service (service model)
by conducting internal-layer actions
by relying on services provided by the previous layer
what are the pros and cons of protocol layering?
pros
easier to update system components
cons
can duplicate lower layer functionality
functionality at one layer may need info that is present in another which violates layer separation goal
what are the 2 protocol stacks?
internet protocol stack ISO/OSI reference model
what layers does the internet protocol stack contain?
application transport network link physical
what layers does the ISO/OSI reference model contain?
application presentation session transport network link physical
what does the application layer do?
support network applications and application layer protocols (FTP, SMTP, HTTP)
application protocol distributed over many end systems
uses services from the below layers
what does the transport layer do?
process application data and transports it between application endpoints
package the data into a packet using protocol: TCP, UDP
adds header information that the recipient needs to deliver to correctly
what does the network layer do?
find the destination of the packaged data
routes the datagrams from source to the destination host using IP and routing protocol
adds information to communicate with the network later on other side
what does the link layer do?
data transfer between neighbouring network links(Ethernet, 802.11 (WiFi), PPP)
what does the physical layer do?
defines the mechanical and electrical interface between systems - moves the individual bits on a wire
what does the presentation layer do?
allow applications to interpret meaning of data, e.g., encryption, compression
what does the session layer do?
synchronisation, checkpointing, recovery of data exchange
What is encapsulation?
combining data and code into a single object
encasing application data (M) into a segment and adding information. (H)
how is a message affected as it goes down the internet stack?
each layer adds the header information that is required for the job of that layer to be carried out. following layers don't read the data itself, but the header information that can aid in the layer functioning
how does the source host use the internet stack?
the application creates the data that we want to send uses the layers going down to encapsulate data
how does the destination host use the internet stack?
uses the layers going up the stack, unwrapping encapsulated data
do all components use access the full internet stack?
components access only layers that they need because the different components have different purposes, so can only run certain layers that match those purposes eg. router only runs network, link and physical
what is front end?
what the user sees
what is back end?
server application that operates on data given from the front end
what do network apps need to do?
run on different end systems communicate over a network
do we need to write apps for network-core devices (routers)?
no network-core devices can't run user applications
what do developers need to focus on when creating a network app?
the application layer and what it encompasses type of application being made as they will use different protocols (eg. web = http protocol, email client uses smtp protocol) need to know what services are needed from the transport layer
os deals with the rest
what are the 2 main application architectures?
client/server architecture peer to peer architecture
what is a client server architecture?
made up of a multiple client devices that sends requests to a server that sends responses
what is a server?
an always on host with a permanent IP address and data centres for scaling depending on the amount of clients and demand (eg. submissions just before an exam)
what is a client?
a device that can communicate with server. may have: intermittently connected, dynamic IP addresses, don't communicate directly
what is a peer to peer architecture?
a decentralized network of nodes that are all peers distribute the workload between peers, and all peers contribute and consume resources within the network without the need for a centralized server
what are the features of P2P architecture?
no always on server. arbitrary end systems directly communicate peer request services from other peers self scalability - new peers bring new service capability and new service demands peers intermittently connected with dynamic IP addresses causing complex management
what is software?
a program existing on the machine
what is a process?
a program executing on a host, consuming memory and resources
how do processes communicate if they are on the same host?
the OS manages communication by defining the inter-process communication
how do processes communicate if they are remote (on different hosts)?
exchanging messages through the network and following protocols (eg. missing this information, validating what has been sent)
what are process communication messages?
messages that contain meaning that help the processes communicate and understand each other
what are the 2 types of process communication messages?
request message response message
what are the process on a client/server architecture?
client process on clients server process on servers
what are the processes on a P2P architecure?
apps have both client and server processes
what is a client process?
process that initiates communication
what is a server process?
process that waits to be contacted
what is a socket made up of?
the combination of a source IP address and port number or a destination IP address and port number
how does an application use a socket?
process sends/receives messages to/from its socket (through the socket like a door)
where is the socket within the internet stack?
application → socket → transport layer
what does the socket rely on?
relies on transport infrastructure to deliver message to socket at receiving process
why are identifies needed for processes?
so that processes can receive messages
what do we need to form a process identifier?
ip address port number
what is an ip address?
host device has unique 32 bit address but many process can run on same host (not enough to identify process on its own
what is a port number?
number associated with a specific process on host some processes have fixed port numbers (eg. http sever: 80)
what are the 6 things defined by the application layer protocol?
types of messages exchanged message syntax message semantics rules for when & how processes send/respond to messages open protocol propriety protocols
what is message syntax?
what fields in a message how fields are defined
what is message semantics?
meaning of information in fields
what are open protocols?
protocols that are defined in RFCs allows for interoperability eg. protocols like HTTP and SMTP
What are proprietary protocols?
protocols developed by organizations who have control over their definition and operation eg. skype
what are transport services?
the services provided by the transport layer
do all applications need the same transport services?
different applications need different transport services developers need to know what the application needs
what are examples of transport services?
data integrity timing throughput securtiy
what is data integrity as a transport service?
some apps require 100% reliable data transfer (file transfer) whilst others can tolerate loss (audio)
what is timing as a transport service?
some real time apps require low delay to be effective (interactive games, online telephony)
non real time apps has no tight constraints on end to end delays
what throughput as a transport service?
throughput = rate at which sending process can deliver bits to receiving process
some bandwidth-sensitive apps require minimum amount of throughput to be effective (multimedia) whilst other elastic apps make use of whatever throughput they get
what is security as a transport service?
encryption, data integrity
what are the 2 main internet transfer protocols?
TCP service UDP service
What does TCP stand for?
Transmission Control Protocol
What does UDP stand for?
User Datagram Protocol
what is UDP?
similar to TCP however a connection with another computer isn't set up
sends the data randomly without considering order
could lead to missing pieces of data
what is an example of TCP in use?
if a website didn't use TCP then pictures wouldn't load, writing could be backwards due to the lack of order/missing data which has been sent
what is TCP?
A protocol which first establishes a session with another computer and guarantees that all the data is sent correctly in order.
what services does TCP provide?
reliable transport flow control congestion control connection setup required between client and server processes
what is flow control?
sender won't overwhelm reciever
what is congestion control?
throttles the sender when network overloads
what services does TCP not provide?
timing minimum throughput guarantee security
what services does UDP provide?
unreliable data transfer faster data transmission
what services does UDP not provide
reliability
flow control
congestion control
timing
throughput
guarantee
security
connection setup
SUMMARY: what do layers have?
specific protocols used on that layer services that the layer provides (as a result of following the protocols)
what encryption is applied to TCP & UDP by default?
no encryption any cleartext eg. passwords sent though socket enters the internet in cleartext too
What is TLS/SSL used for?
Encrypts TCP connection - aka. the data which is being sent from client to server end-point authentication and data integrity
what layer is SSL at?
application layer apps use SSL libraries that communicate with the TCP
what does API stand for?
Application Programming Interface
what does API do?
allows different apps and services to work together without getting very technical
how is the 'SSL socket' API used?
cleartext passwords sent though the socket get encrypted and then traverse internet encrypted