G54ACC - Advanced Computer Communications

If you have any questions or errata for my parts of the course, or for these web pages, please mail me.

Admin

Lectures

Lecture notes made available here for teaching purposes only.

Lecture 1 Introduction

  • The IP hourglass
  • Administrative details
  • Resources and constraints
  • Classes of network
  • Why IP?
  • Layering and encapsulation


Lecture 2 Internet Protocol

  • IP over Ethernet
  • ARP
  • Alternatives
  • Fragmentation
  • Reassembly
  • Loss


Impact of offload (cached), IPv6 transition (cached) Google’s IPv6 transition

Lecture 3 Addressing & Routing

  • Addressing
  • Address management
  • Routing vs. forwarding
  • Longest prefix match
  • Link state routing
  • Distance vector routing


OpenFlow, OpenVSwitch, NoX, PyRT, McQuillan et al, An overview of the new routing algorithm for the ARPANET (cached)

Lecture 4 Multiplexing

  • Simplex vs. duplex
  • SDM, WDM, TDM
  • STM, PTM, ATM
  • A simple stochastic process
  • CDMA
  • Direct sequence


Lecture 5 Physical

  • Modulation & detection
  • QAM constellations
  • Scramblers
  • Block codes
  • Error detection
  • CRCs


Lecture 6 Optical

  • Optical fibres
  • Impact
  • Multimode vs. single-mode
  • Attenuation
  • WDM
  • Regeneration & Amplification


Lecture 7 Switching

  • Types of switching element
  • First/Second/Third generations
  • Crossbars
  • Multistage switches
  • Buffering
  • Blocking


Lecture 8 Ethernet

  • Pure and slotted Aloha
  • Efficiency
  • Bridges vs. hubs vs. switches
  • Spanning Tree Protocol
  • Buffering
  • Extensions


Tutorial on Bridges, Routers, Switches, Oh My! (cached)

Lecture 9 ATM

  • B-ISDN
  • Small, fixed-size cells
  • Virtual circuits
  • Quality-of-Service
  • ATM vs. IP
  • ADSL


Lecture 10 Transport

  • Transport layer
  • Port numbers
  • UDP, header & pseudo-header
  • TCP setup & teardown
  • TCP state machine
  • Priority & precedence
  • Reliability


Scalable Stream Transport (cached)

Lecture 11 Reliability

  • Achieving reliability
  • Stop ‘n’ Wait
  • ARQ
  • Congestion collapse
  • Congestion control
  • TCP variants
  • ECN
  • TCP friendliness


TCP congestion control survey (cached) TCP visualization TCP/IP protocol sequence diagrams TCP Flow Control Tutorial (cached)

Lecture 12 Connecting

  • IP Quality of Service
  • ToS, DiffServe, IntServ
  • NAT: why & how
  • Full & Restricted Cone NAT
  • Symmetric NAT
  • End-to-End & Middleboxes
  • Extending TCP


End-to-end argument (cached)

Lecture 13 Naming

  • DNS components
  • DNS hierarchy
  • DNS protocol
  • Resource records
  • Recursion vs. iteration
  • Label compression
  • Load balancing
  • DNSSEC outline


Lecture 14 Internetworking

  • Inter-domain Routing
  • BGPv4
  • Autonomous Systems
  • Sessions & Updates
  • Path Attributes
  • Consistency
  • Scaling


Level3 vs. Cogent depeering

YouTube hijacking: Case study (video)

Peering DB

Lecture 15 Applications

  • Session, Presentation Layers
  • Client/Server, Peer-to-Peer
  • HTTP
  • Handling State
  • Pipelining
  • TLS
  • XMPP
  • BOSH


Lecture 16 Programming

  • Berkeley Sockets
  • Endianness
  • Web RPC
  • RESTful Web Services
  • Cloud Computing Flavours


Lab Exercises

Note that these are not assessed, but are intended for your education only. As a result, I place no constraint on which programming language you select for any of the programming exercises. Go wild!

Books

These books are good general background textbooks on computer communications. They all cover material from the course, much of which will be in more detail or with more examples than we have time to go into during lectures.

External Links

Note that these take you away from University of Nottingham pages. I am not responsible for any of the content linked. They contain a range of material generally relevant to the topics covered.