es 101-02. module 4 transport layer protocols. last lecture(s) routing and ip addressing domain name...

Post on 28-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ES 101-02. Module 4Transport Layer Protocols

Last Lecture(s)

• Routing and IP Addressing• Domain Name System

This Lecture

• Transport Layer Services• User Datagram Protocol (UDP)• Transmission Control Protocol (TCP)

Transport Layer Operation

• The transport layer interfaces to applications• One application may have multiple simultaneous interfaces to

remote clients for a given application– Web servers, ftp servers, etc.

• The converse is also true, ie. the server may support multiple applications to one or more clients

• The application provides the transport layer with “Protocol Data Units” or PDUs

• These PDUs are then segmented and encapsulated in a transport layer “segment”

• The transport layer segment is then encapsulated in IP, and on, and on…

Transport Layer Applications

• In order to understand the operation of the transport layer, Layer 4, we must first examine the requirements of this layer, and then go through some common scenarios for the TCP/IP protocol stack– The foundation for the operation of the Internet

TCP/IP Architecture

HTTP

UDPTCP

Note: We have covered IP previously.

Transport Layer Services

• Type of Service Indicators

• Quality of Service Indicators

• Data Transfer

• Application Programing Interface (API)

• Connection Management

• Delivery Prioritization

• Status Reporting

• Security

• Multiplexing and demultiplexing

Transport Layer Services (cont’d)

• The performance of the transport layer must be discussed with respect to the underlying network layer– IP in the case of the Internet

• Two types of transport layer services are available:– Reliable, sequencing

• Transmission Control Protocol (TCP)

– Unreliable, ie. no sequencing mechanism• User Datagram Protocol (UDP)

Packet Switching Review

• Recall that the IP layer launches packets into the network, and “hopes for the best”

• This means that packets can arrive at the destination out of sequence, or get lost– Late packets that are OK upon arrival

– Packets that get destroyed in transit due to “collisions”

• How can this happen?– Different routes

– Packet “destruction”

Note: In the TCP/IP world, packets are referred to as “datagrams”

Out of Order Datagram

Lost Datagram

Corruption of Packets by Routers

Consequences of Out-of-Sequence Transmission

Techniques for Reliability

• Connection-oriented transmission of packets• Error Control

– Error detection, ie. are packets damaged?• Accomplished via Cyclic Redundancy Checking

• Header corruption

• Payload corruption

– Error recovery• NACK the bad or missing packets

• Retransmit the packet again

• This requires packet sequence numbers

Connection-Oriented Transmission

• A “session” is established between the client and server before data transmission is initiated– Connection Establishment

• During data transmission, packets are monitored for errors– This requires packet sequence numbers

• If data is lost, retransmission is requested

• At the conclusion of the session, the connection is closed– “Log off”

Error Control and Recovery

• Error control refers to the detection of errors in either the header, the payload, or both

• This is accomplished by a Cyclic Redundancy Check (CRC) algorithm– The CRC is calculated upon transmission and appended to the

packet– The CRC is then re-calculated upon receipt of the packet

• If the CRC calculation does not match that which was appended upon transmission, the packet is assumed to be damaged, and is not processed further

• Re-transmission of the damaged packet is then requested

Requirements for Transmission over anUnreliable Network

• As stated previously, additional requirements are placed on the transport protocol if the underlying network is unreliable, and reliable transmission of data is required– Ordered Delivery– Retransmission Strategy– Duplicate Detection– Flow Control

• Results from congestion

– Connection Establishment and Termination– Crash Recovery

• Layer 4 protocols may not implement all of these features

This Lecture

• Transport Layer Services• User Datagram Protocol (UDP)• Transmission Control Protocol (TCP)

User Datagram Protocol (UDP)

• Before we discuss TCP which is a connection-oriented, reliable, sequencing protocol, we will discuss UDP– Connectionless

• There is no connection establishment or termination

– Error detection• Header only, to prevent misrouted packets

• UDP is very efficient, and is widely used for applications that do not require reliability, but do require multiplexing– Identification of each communication link

• UDP is essentially IP with sockets• But first, we must understand sockets…

UDP Application Example

• The Simple Network Management Protocol (SNMP) utilizes UDP

• SNMP consists of two parts:– Management station– Management Information Base (MIB) in all networked devices

• The devices send a “health” message to the management station at 10 second intervals

• Device health is displayed graphically to a network administrator in the Network Operations Center (NOC)

• If a device shows that it has failed, the NOC operator takes a corrective action

Do we care if an update is lost or misordered?

UDP Overview

• Documented in RFC 768• Communication occurs via “ports” and “sockets”• Unreliable delivery, ie. operates over IP

– Connectionless service– Lost datagrams are possible– Out of sequence datagrams are possible

• Very efficient protocol– No connection establishment or closure– “Fire and forget” protocol

UDP Ports

• UDP essentially adds a port addressing capability to IP• Each packet is tagged with unique source and destination

identifiers known as a “ports”• The combination of a port number and a device IP address is

unique– This combination is known as a “socket”

• Different applications use different port values• UDP Client/Server operation

– Server listens passively– Client “knows” port numbers, and initiates (requests) information

transfer– Server responds to client request

UDP Header

Multiplexing

• UDP accomplishes multiplexing/demultiplexing by keeping track of sockets at each end of the link

• Each connection is therefore uniquely identified• This technique supports many concurrent

connections– Interleaving of PDUs, ie. multiplexing

Multiplexing of Concurrent Applications

UDP Process Identification

Well Known UDP Ports

Socket Schematic

Checksum

• 16-bit “ones complement”– Includes information from the IP header, UDP header, data, and

padding octets• Must end up with an even number of octets

• A “pseudo-header” is pre-pended to the UDP header to calculate the checksum only for the UDP header– Avoids misrouting to the wrong process

• This information protects against misrouted datagrams– Header/address corruption

UDP Header

This Lecture

• Transport Layer Services• User Datagram Protocol (UDP)• Transmission Control Protocol (TCP)

Transmission Control Protocol Overview

• Documented in RFC 793• Why is TCP necessary?

– UDP adds little reliability to the IP connectionless service

• TCP provides additional reliability over UDP– Error free– Assured delivery– In sequence packets, or segments– No duplication of segments

So, what services does TCP provide?

TCP Services

• Multiplexing

• Connection-oriented– Connection establishment

– Crash recovery

– Connection termination

• Reliable– Sequence numbers provided

– Mechanisms for error detection/recovery at the byte level

• Flow Control

Multiplexing

• TCP accomplishes multiplexing/demultiplexing by keeping track of ports and sockets at each end of the link

• This process is identical to the technique for UDP with the exception that many concurrent data “streams” must be supported

TCP Header

TCP Connections

TCP Connections (cont’d)

Well Known TCP Ports

Connection Establishment

• TCP clients must have a reliable way to “connect” to servers– This is done using a three-way handshake

• The server passively “listens” on a well known port• A connection request is made when the client issues a

“SYN” packet to the appropriate port number• The server “connects” and then assigns a different port

number for the session– There can be up to 216 concurrent sessions– This port is “open” until session termination, after which it can be

reassigned

Connection Establishment (cont’d)

• TCP utilizes a three-way handshake

• To initiate a connection, the originator sets the SYN and Sequence Number (SN) fields in the TCP header– SN is set to the initial number of the first octet in the segment, SN = X

• The destination then responds with a TCP message (header) with the SYN and ACK bits set, SN = Y, and the Acknowledgement Number (AN) set equal to AN = X + 1– This acknowledges the first SYN packet, and acknowledges that the

next octet to be received is X+1

Connection Establishment (cont’d)

• The originator then responds with a message with the acknowledgement number set: – AN = Y + 1

– This is the last packet in the three way handshake

– The connection is then established

Passive/Active Connection RequestThree Way Handshake

Data Transfer

• After connection establishment, TCP transfers application data by packaging it in a TCP “segment”, or data packet

• Sequence numbers are indirectly provided for every octet (byte) in the segment

• When packets arrive at the destination, they are reassembled in the correct order– Missing and duplicate information is detected and corrected

• Sequence numbers are independent of each “flow”

TCP Header

Data Byte Numbering

Acknowledgement

Error Recovery

Data Sequence Numbers

• The TCP technique of providing sequence numbers that represent each octet in the segment allows detection of missed octets, assuming the CRC check is OK– Number of octets in a TCP message can be 232

– Each TCP header contains the sequence number of the first octet in the segment

• This sequence number cannot be repeated during the lifetime of the session transmission– Recall that each session can have different sequence numbers,

since this is a connection-oriented approach• 216 concurrent sessions

Checksum - TCP

• Operates in the same fashion as UDP– Header Only

– Avoids misrouting to the wrong process

• However, when used in conjunction with the payload octet sequence numbering and error recovery, reliability of transmission is assured

Checksum – TCP

Flow Control

• Flow control is accomplished by using a credit allocation scheme

• The credit is equal to the number of octets in the “send window”– This is the total number of octets that can be outstanding

(unacknowledged) before requiring an acknowledgement

• The credit allocation approach allows the destination device to adjust the origin transmission window– This essentially controls the “flow” in bytes/second that the sender

can launch into the network

Why is flow control necessary?

Buffer Overflows

• If a router or switch on the network receives more information than it can process per unit of time, it buffers the information until it can get to it

• If the network gets congested, the offered load is greater than the routers can buffer

• When this happens, the routers overwrite their buffers, causing the loss of data (packets)

• So, it is necessary for devices attached to the network to be able to “slow down” the transmission process

Flow Control Schematic

Crash Recovery

• Sometimes, the a device “stalls” or fails– This could be either the server, client, or the network

• When this happens, the other “party” to the conversation does not know what is going on– The receiver may be waiting forever to get the next chunk of

information

• There must therefore be a mechanism to force the transmitter to respond– Are you still there?

How is this done?

Push and Reset Flags

• This is accomplished via the Push and RST flags in the TCP header

• The push and reset flags are used to allow the originator to force data accumulated in the buffer to be sent– Allows use as an “end of block” flag

• If a segment is misrouted, the receiver sends a TCP header back with the RST flag set– Example: Delayed or duplicate SYNs

TCP Header

SN

AN

ACK SYN

Closing the Connection

• When all data has been transmitted, it is necessary to close the connection

• Otherwise, all of the ports would eventually be used up– No further sessions could be established

Closing the Connection

Next Lecture(s)

• HTTP and URLs• HTML Overview• HTML Editors

top related