Babu Ram Dawadi
TCP/IP is a set of protocols developed to allow cooperating computers to share resources across a network. TCP stands for “Transmission Control Protocol” IP stands for “Internet Protocol” They are Transport layer and Network layer protocols respectively of the protocol suite The most well known network that adopted TCP/IP is Internet – the biggest WAN in the world
A protocol is a collection of rules and procedures for two computers to exchange information Protocol also defines the format of data that is being exchanged
TCP/IP was developed very early Technologies were widely discussed and circulated in documents called “Request for Comments” (RFC) – free of charge Supported by UNIX operating system
Because TCP/IP was developed earlier than the OSI 7-layer mode, it does not have 7 layers but only 4 layers Application Transport Internet Host - Network
Application layer protocols define the rules when implementing specific network applications Rely on the underlying layers to provide accurate and efficient data delivery Typical protocols: FTP – File Transfer Protocol Telnet – Remote terminal protocol SMTP – Simple Mail Transfer Protocol HTTP – Hypertext Transfer Protocol
TCP/IP is built on “connectionless” technology, each datagram finds its own way to its destination Transport Layer protocols define the rules of Dividing a chunk of data into segments Reassemble segments into the original chunk Typical protocols: TCP – Transmission Control Protocol Provide further the functions such as reordering and data resend UDP – User Datagram Service Use when the message to be sent fit exactly into a datagram Use also when a more simplified data format is required
Network layer protocols define the rules of how to find the routes for a packet to the destination It only gives best effort delivery. Packets can be delayed, corrupted, lost, duplicated, out-of- order Typical protocols: IP – Internet Protocol Provide packet delivery ARP – Address Resolution Protocol Define the procedures of network address / MAC address translation ICMP – Internet Control Message Protocol Define the procedures of error message transfer
Application Transport Nework Host-to-Network
The underlying layers have guaranteed accurate data delivery We need to make a lot of agreements with the server in application layer before sending mail 1. Agree on how data is represented Binary or ASCII 2. Ensure the right recipient There may be 1000 users served by the server 3. Ensure the client has the right to send mail Some clients are not welcome 4. How to tell the server it is the end of the message All mail looks the same
The following mail is to be sent: Date: Fri, 18 Jan 09 13:26:31 EDT From: To: Subject: meeting Let’s get together Monday at 1pm.
Access Port No 25 of Server ClientServer 220 stad.edu SMTP Service at 20 Jan 09 05:17:18 EDT HELO ioe.edu.np 250 stad.edu – Hello, ioe.edu.np MAIL From: 250 MAIL accepted
Access Port No 25 of Server ClientServer 250 Recipient accepted RCPT to: 354 Start mail input; end with. Date: Fri, 18 Jan 09 13:26:31 EDT From: To: Subject: meeting Let’s get together Monday at 1pm. DATA
The agreement made in the SMTP protocol All messages use normal text All ASCII characters The responses all begin with numbers To indicate the status when receiving the command Some words are reserved words HELO, MAIL, RCPT… Mail ends with a line that contains only a period The information passed with the SMTP messages The recipient name The sender name The mail
Every computer has a network address e.g To access a computer, we need to specify its network address Human beings are weak in memorizing numbers We prefer computer name or domain name e.g. v6gate.ioe.edu.np Need a machine on the Internet to convert name to number
Example: v6gate.ioe.edu.np The domain within edu.np One of the educational institutions in NP Computer Name The domain within NP Note: edu.np is not the same as edu Root domain name other examples: com – commercial company org – general organization net – major network centre gov – government org. mil – militrary group edu – education org.
An organization needs to register its domain name e.g. ioe has registered its name to the domain of edu.np Once a domain name is assigned, the organization is free to assign other names belong to its domain e.g. we can have election.ioe.edu.np Fsu.ioe.edu.np mail.ioe.edu.np ----
Nevertheless, such a complicated procedure needs not perform in most cases Client computers usually remember the answers that it got before (DNS Cache) It reduces the loading to the root DNS To further reduce loading, there can be many root DNS on the Internet e.g. there are a few “com” root DNS
TCP - Transmission control protocol TCP is a connection-oriented protocol Does not mean it has a physical connection between sender and receiver TCP provides the function to allow a connection virtually exists – also called virtual circuit TCP provides the functions: Dividing a chunk of data into segments Reassembly segments into the original chunk Provide further the functions such as reordering and data resend Offering a reliable byte-stream delivery service
A Typical Procedure Sender TCP divides a message into segments Add sequence no. Send the segments in sequence and wait for acknowledgement If an acknowledgement for a segment is not received for a certain period of time, resend it until an acknowledgement is received Recipient When receiving segments, send the acknowledgement with correct number Reassembly the segments back to the message
A computer may perform a number of network applications at the same time FTP + SMTP + HTTP, etc. Each computer has only one network address, how can it serve so many applications at the same time? Port multiplexing.
Some port numbers are reserved for some purposes Port 21: FTP – file transfer Port 25: SMTP – mail transfer Port 23: TELNET – remote login Port 80: HTTP – Web access These port numbers are well known to all computers in the network E.g. whenever a client access port 25 of the server, it means the client needs SMTP service
30
An entity of a particular layer can only communicate with: 1. a peer layer entity using a common protocol (Peer Protocol) 2. adjacent layers to provide services and to receive services 31
A layer N+1 entity sees the lower layers only as a service provider 32 Service Provider N+1 Layer Entity N+1 Layer Peer Protocol Request Delivery Indicate Delivery
A service user accesses services of the service provider at Service Access Points (SAPs) A SAP has an address that uniquely identifies where the service can be accessed 33
The unit of data send between peer entities is called a Protocol Data Unit (PDU) For now, let us think of a PDU as a single packet Scenario: Layer-N at A sends a layer-N PDU to layer-N at B What actually happens: A’s layer-N passes the PDU to one the SAPs at layer-N-1 Layer-N-1 entity at A constructs its own (layer-N-1) PDU which it sends to the layer-N-1 entity at B PDU at layer-N-1 = layer-N-1 Header + layer –N PDU 34 AB
35 AB
36
37 Send HTTP Request to neon Establish a connection to at port 80 Open TCP connection to port 80 Send a datagram (which contains a connection request) to Send IP datagram to Send the datagram to Send Ethernet frame to 00:e0:f9:23:a8:20 Send Ethernet frame to 00:20:af:03:98:28 Send IP data-gram to Send the datagram to Frame is an IP datagram IP datagram is a TCP segment for port 80
Different Layers of the protocol stack have a different view of the network. This is HTTP’s and TCP’s view of the network. 38
39
Ethernet’s view of the network 40
IP (Version 4) Addresses are 32 bits long IP Addresses Assigned Statically or Dynamically (DHCP) IPv6 addresses are 128 bits long
4 8-bit numbers (Hierarchical) Specifies both network and host Number of bits allocated to specify network varies Three classes: 0 net host bits 110 net host bits 1 0 net host bits ABC network 32-bits host
IPv4 address: a 32-bit number, usually written in dotted decimal form, that uniquely identifies an interface of some computer Host Address: another term for IP address Network: a group of hosts, all of which have an identical beginning position of their ip addresses. Network Number: a 32-bit number that represent a network and it cant be assigned as ip address of a host Network address: another term for the network number. Broadcast address: a 32-bit number that is used to address all hosts in the network. It cant be assigned as an ip address of a host.
Subnet: a group of hosts, all of which have an identical portion of their ip addresses, a subnet differs from a network in that a subnet is a further subdivision of a network. Subnet number: a 32-bit number that represent a subnet. It cant be assigned as ip address of host. Subnet address: another term for the subnet number. Subnet broadcast address: a 32-bit number, that is used to address all hosts in the subnet. It cant be assigned into an host’s ip address.
Subnetting: the process of subdividing networks into smaller subnets. Subnet mask: A 32-bit combination used to describe which portion of an address refers to the subnet and which part refers to the host. Network mask: 32-bit number. The mask is used by computers to calculate the network number of a given IP address by performing a Boolean AND operation of the address and mask. Address mask: another term for a mask Interface: A network connection.
Class A: Class B: Class C: = = net id | host id netid = = 8 hostid = = Class A IP_Addr Class A Mask
Subnetting allows you to create multiple logical networks that exist within a single Class A, B, or C network When sub-netting, a third part of IP address appears in the middle of the address—namely, the subnet part of the address. The size of the network part never shrinks. Network (8)Subnet (24-x)Host (x)Class A Network (16)Subnet (16-x)Host (x)Class B Network (24)Subnet (8-x)Host (x)Class C
given a Class C network of which has a natural mask of , you can create subnets in this manner: |sub|---- With these three subnetbits, it is possible to create eight subnets
With the remaining five host ID bits, each subnet can have up to 32 host addresses: host address range 1 to 30 host address range 33 to 62 host address range 65 to 94 host address range 97 to 126 host address range 129 to 158 host address range 161 to 190 host address range 193 to 222 host address range 225 to 254
the mask of can also be denoted as /27 as there are 27 bits that are set in the mask This second method is used with CIDR For example, /27 denotes the network
Given the network number and a mask, how many subnets are there and how many hosts per subnet. Given an address and mask, what is the subnet number Given an address and mask, what is the subnet broadcast address and valid ip address on the subnet Subnet bits=32-(network bits+ hosts bits)
/ / / / /27 Mask Network bits Hosts bits Subnet bits88063 hosts per subnets2 16 No. of subnets Subnet number st valid IP addr Broadcast addr Last valid addr
Given the Class C network of /24, subnet the network in order to create the network in Figure 3 with the host requirements shown.Figure 3
netA: must support 14 hosts netB: must support 28 hosts netC: must support 2 hosts netD: must support 7 hosts netE: must support 28 host VLSM!!!
Determine what mask allows the required number of hosts. netA: requires a /28 ( ) mask to support 14 hosts netB: requires a /27 ( ) mask to support 28 hosts netC: requires a /30 ( ) mask to support 2 hosts netD*: requires a /28 ( ) mask to support 7 hosts netE: requires a /27 ( ) mask to support 28 hosts * a /29 ( ) would only allow 6 usable host addresses therefore netD requires a /28 mask.
VLSM!!! The easiest way to assign the subnets is to assign the largest first. For example, you can assign in this manner: netB: /27 host address range 1 to 30 netE: /27 host address range 33 to 62 netA: /28 host address range 65 to 78 netD: /28 host address range 81 to 94 netC: /30 host address range 97 to 98
Given network: /24, subnet the network in order to create the network in figure below with the host requirements shown. Net A: 13 Hosts Net B: 2 Hosts Net C: 6 Hosts Net D: 29 Hosts Net E: 14 Hosts Net F: 2 Hosts Net G: 24 Hosts Net G: 5 Hosts
Originally, 3 Classes A, B, C Problem Classes too rigid (C too small, B too big) Solution Subnetting Classless Interdomain Routing (CIDR)
Routers are not omniscient Next-Hop Hop-by-Hop Thus IP makes no guarantees except to try it’s best (”Best Effort”) packets may get there out of order, garbled, duplicated may not get there at all! Unreliable datagram service
How a Router Forwards Datagrams
/ /19 65/
/ / / / /24
/ / / / /24
Connection-Oriented Reliable Byte-Stream Flow Control (aka Congestion Control)
Establish Connection Data Transfer Terminate Connection
IPHdr IP Data TCPHdrTCP Data SrcportDst port Sequence # AckSequence # HLEN 4 RSVD 6 URGACK PSH RSTSYN FIN Flags Window Size ChecksumUrgPointer (TCP Options) TCP Data Src/dst port numbers and IP addresses uniquely identify socket
Connection Close/Teardown 2 x 2-way handshake (Active) Client (Passive) Server Fin (Data +)Ack Fin Ack
Connection-Oriented Reliable Byte-Stream Flow Control (aka Congestion Control)
Sequence numbers & Acknowledgements (ACKs) Receiver detects Corrupt, Lost, Duplicated, Out- of-order Tell sender which packets it has received correctly Sender can resend In Flight Window (Window Size) Sender only has N unacknowledged packets “in
Like TCP, in the Transport Layer Characteristics Connectionless, Datagram, Unreliable Adds only application multiplexing/demultiplexing and checksumming to IP Good for Streaming Media, Real-time Multiplayer Networked Games, VoIP
Data Link Layer: Service: Reliable transfer of frames over a link Media Access Control on a LAN Functions: Framing, media access control, error checking Network Layer: Service: Move packets from source host to destination host Functions: Routing, addressing Transport Layer: Service: Delivery of data between hosts Functions: Connection establishment/termination, error control, flow control Application Layer: Service: Application specific (delivery of , retrieval of HTML documents, reliable transfer of file) Functions: Application specific 79
IP is the basis of Internetworking TCP builds on top of IP adds reliable, congestion-controlled, connection-oriented byte-stream. UDP builds on top of IP allows access to IP functionality