1 / 38

CS 335 - Computer Networks

Learn how to design networks by using layers of abstractions and protocols. Understand the functions of each layer and how they communicate with each other.

wwoodcock
Download Presentation

CS 335 - Computer Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 335 - Computer Networks Dr. Randy L. Ribler 103 Hobbs ribler@lynchburg.edu

  2. Introduction Read Chapter 1 in Kurose and Ross

  3. How do we design networks? • Use layers of “abstractions” • Each layer provides a set of “services” • Lower layers provide more primitive functions • Upper layers implement their services in terms of lower layer services • Each layer treats the layer above it and the layer below it as abstractions

  4. Classroom Demonstration Protocol Layer Interface bool writeBit(int theBit); int readBit(); Instances of the layer exist on each of the machines that are communicating. Word Bit Transmission Bit Layer Bit Layer Machine 2 Machine 1

  5. Classroom Demonstration Protocol An upper layer will communicate with the Bit Layer through the interface we have defined. writeBit() readBit() writeBit() readBit() Bit Transmission Bit Layer Bit Layer Machine 2 Machine 1

  6. Classroom Demonstration Protocol The two Bit Layer peers communicate using a protocol*. writeBit() readBit() writeBit() readBit() Bit Transmission Bit Layer Bit Layer

  7. * A protocol defines the format and the order of messages exchanged between two or more communicating entities, as well as the actions taken on the transmission and/or receipt of a message or other event. - Kurose/Ross (page 7).

  8. Using index cards and cooperating with your neighbor design a protocol to implement the Bit Layer protocol. Your interface is: bool writeBit(int theBit); int readBit();

  9. Classroom Demonstration Protocol Letter Layer Interface bool writeChar(char c); char readChar(); Show how (provide pseudocode) to implement writeChar() and readChar() using the Bit Layer interface. Word Letter Layer Letter Layer chars Bit Layer Bit Layer Bits

  10. Classroom Demonstration Protocol Word Layer Interface bool writeWord(string s); string readWord(); strings Word Layer Word Layer chars Letter Layer Letter Layer bits Bit Layer Talk

  11. Message Layer Message Layer Word Layer Letter Layer Letter Layer Bit Layer Bit Layer • Classroom Demonstration Protocol Message Layer Interface bool writeMessage(string recipient, string message); string readMessage(string& recipent); messages strings Word Layer chars bits

  12. ISO OSI Reference Model • International Standards Organization • Open Systems Interconnection (OSI) • The ISO OSI contains 7 layers

  13. Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer OSI Reference Model

  14. Application Layer Application Layer Presentation Layer Presentation Layer Session Layer Session Layer Transport Layer Transport Layer Network Layer Network Layer Data Link Layer Data Link Layer Physical Layer Physical Layer Sending Process Receiving Process • Adapted from p34, Tanenbaum

  15. OSI Reference Model Terminology • Services - What the layer does • like public member functions in OOP • Interface - Parameters and results • like the parameter lists and return values in OOP • Protocols - the communication between peer levels • like the hidden implementation of class in OOP.

  16. Physical Layer • Transmission of “raw” bits • Hardware level concerns • voltages, pins • mechanical, electrical, and procedural interfaces • Communicates between a pair of nodes • Provided by modems and other point-to-point transmission hardware

  17. Data Link Layer • Imposes a structure on the bit stream • data frames (100’s or 1000’s of bytes long) • Acknowledge receipt of frames • Handle damaged, lost, or duplicate frames • Flow regulation • Don’t overflow buffers

  18. The Network Layer • Routing “packets” • Congestion Control • Accounting • Heterogeneous network interconnects

  19. The Transport Layer • Provides multiplexing/demultiplexing between network traffic and individual processes. • Establishes/deletes network connections • End-to-end flow control. • Not needed on routers (unless router is also a host). • Often provides a reliable bit stream. • Transport layer protocols handle “messages.”

  20. The Session Layer • Information about where to obtain service • Access Rights/permissions • establish “sessions” (login or ftp) • Traffic Control ( half/full duplex connections) • The Session Layer is generally under utilized

  21. Presentation Layer • General Purpose Application Utilities • Utilities that operate on data • Data word sizes • Encryption • Data Compression • Code conversions • e.g., ASCII <-> EBCDIC

  22. Application Layer • Application specific code • ftp • telnet • http • Anything not implemented elsewhere in the protocol stack.

  23. Internet Protocol (IP) • Internet protocol has been revised • IP version 4 (IPv4) is the most widely used. • IP version 6 (IPv6) will eventually replace it. • IPv4 uses 32-bit host addresses • IPv6 uses 128-bit host addresses

  24. Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer TCP/IP Reference Model OSI Model TCP/IP Model Application Layer Transport Layer TCP or UDP Internet Layer IP Host-to-network Layer

  25. Talk Talk ASCII-EBCDIC Authorize Talk Authorize Talk Break Message Apart Reassemble Message Route Message Route Message Manage Frames Manage Frames Receive Bit Stream Send Bit Stream You Your Friend Application Presentation Session Transport Network Data Link Physical

  26. Internet Protocol (IPv4) • 32-bit IP addresses • Store internally as a single word • Usually expressed to user’s using “dotted decimal notation” (e.g., 161.115.147.1) where each of the four numbers range from 0 to 255. • Usually aliased to host name of the system (e.g. mail.lynchburg.edu

  27. Domain Name System (DNS) • How can we map host names to IP addresses? • Domain Name Servers provide names in response to client requests. • A hierarchical representation provides name management at each level of domain name.

  28. Client/Server Models • Network interaction is based on an asymmetrical relationship • Server • provides services to authorized clients • typically handles many clients simultaneously • works passively, driven by client requests • Client • requests services • typically initiates

  29. Port Numbers • IP addresses identify host machines only. • Port numbers identify services on machines. • 16-bit port numbers provide values (0-65535) • “Well-known ports” (0-1023) • Registered ports (1024-49151) (49152 is 75% of available port numbers) • Dynamic or private ports • Internet Assigned Number Authority (IANA) • Determines (0-1023) • Registers (1024-49151) • Does not control (49151-65535)

  30. Some Well Known Port Numbers • 23 (telnet) • 21 (ftp) • 13 (daytime) • 25 (smtp (mail)) • 43 (whois) • 144 (news) • 80 (http web server)

  31. Telnet Client • telnet <hostname> <port number> • provides a general interface to request a service and return a text response.

  32. Ipconfig • Ipconfig • Ifconfig on linux • Shows host IP Address • Shows IP addresses of other Servers • DHCP Server • DNS Server • Gateway • Can release/renew IP address issued from DHCP server

  33. Ping • See if there is a connection between two machines • See if a particular host is running ping <hostname>

  34. Trace Route • traceroute <hostname> (unix) • tracert <hostname> (dos/windows)

  35. Internetworking • 150.123.23.1 • 128.100.230.156 • acavax.lynchburg.edu • 161.115.147.1 • 128.173.133.102 • 161.115.100.22 • 128.100.200.165 • 128.100.201.155 • 161.115.144.2 • 161.115 • lynchburg.edu • 128.100 • cns.vt.edu • 208.22.66.1 • 128.173 • cs.vt.edu • 161.115.100.27 • lasi-main • 208.22.66.145 • 128.100.200.123 • 128.100.200.145 • 128.173.133.44 • 161.115.100.29 • 128.173.133.155 • 208.22.66 • networkvirginia.net • GATEWAYS • 208.22.66.100 • 208.22.66.102 • 208.22.66.101

  36. Network Protocols Must Adopt One of the Two Byte Orders • Network Byte Order • The protocol byte order • Host Byte Order • The native machine byte order • Conversion Functions • htons : convert 16-bit value from host byte order to network byte order. (ntohs provides the inverse) • htonl: convert 32-bit value from host byte order to network byte order. (ntohl provides the inverse)

  37. Domain Name Management • Each level is responsible for assigning its own names • .edu is the top-level domain for educational institutions in the US. We need to get permission from the managers of the .edu domain before we can use lynchburg.edu • lynchburg.edu is the Lynchburg College domain name. We can name our computers anything we want, (e.g., acavax.lynchburg.edu). • If we wanted to we could create a cs.lynchburg.edu subdomain

  38. Lavender Army MagentaArmy MagentaArmy Distributed processing problem from Data Networks, by Dimitri Bertsekas and Robert Gallager

More Related