01_NF_CH04_OSITransportLayer

Download Report

Transcript 01_NF_CH04_OSITransportLayer

01_NF_Ch04 –
OSI Transport Layer (傳輸層)
Source:
CCNA Exploration
Transport Layer




Roles of Transport Layer
The TCP Protocol – Communicating with
Reliability (可靠性)
Managing TCP Sessions (交談)
The UDP Protocol – Communicating with
Low Overhead
2
Roles of Transport Layer






Purpose of the Transport Layer
Controlling the conversations
Support Reliable Communication
TCP and UDP
Port Addressing
Segmentation (分割) and Reassembly (重組)
3
Purpose of the Transport Layer




Tracking the individual communication between applications on
the source and destination hosts
Segmenting data and managing each piece
Reassembling the segments into streams of application data
Identifying the different applications
4
Purpose of the Transport Layer


Data Requirements Vary Different applications
 Segmentation of the data, in
accordance with Transport
layer protocols, provides the
means to both send and
receive data when running
multiple applications
concurrently on a computer.
 Without segmentation, only
one application, the
streaming video for example,
would be able to receive
data.
Separating Multiple
Communications
5
Controlling the conversations



Segmentation and Reassembly
Conversation Multiplexing (多工)
Plus :




Connection-oriented (連接導向) conversations
Reliable delivery
Ordered data reconstruction
Flow control (流量控制)
6
Controlling the conversations




Establishing a Session - The Transport layer can provide
this connection orientation by creating a sessions
between the applications. These connections prepare
the applications to communicate with each other before
any data is transmitted.
Reliable Delivery - The Transport layer can ensure that
all pieces reach their destination by having the source
device to retransmit any data that is lost.
Same Order Delivery - By numbering and sequencing
the segments, the Transport layer can ensure that these
segments are reassembled into the proper order.
Flow Control - Flow control can prevent the loss of
segments on the network and avoid the need for
retransmission.
7
Support Reliable Communication

Three basic operations of reliability are






tracking transmitted data
acknowledging received data
retransmitting any unacknowledged data
Required additional overhead on the network
resources
Determine the need for reliability
(IP telephony and streaming video Vs
SMTP/POP3 and HTTP)
8
Transport Layer Protocols


The two most common Transport layer protocols of TCP/IP
protocol suite are Transmission Control Protocol (TCP) and User
Datagram Protocol (UDP). Both protocols manage the
communication of multiple applications. The differences between
the two are the specific functions that each protocol implements.
http://www.pcnet.idv.tw/pcnet/network/network_ip_tcp.htm
9
User Datagram Protocol





UDP is a simple, connectionless (無連接傳輸)
protocol, described in RFC 768.
It has the advantage of providing for low
overhead data delivery.
The pieces of communication in UDP are
called datagrams.
These datagrams are sent as "best effort" by
this Transport layer protocol.
8 bytes overhead
10
User Datagram Protocol

Applications that use UDP include:



Domain Name System (DNS)
Video Streaming
Voice over IP (VoIP)
11
Transmission Control Protocol





TCP is a connection-oriented protocol,
described in RFC 793.
Each TCP segment has 20 bytes of overhead
in the header encapsulating the Application
layer data.
Same order delivery
Reliable delivery
Flow control.
12
Transmission Control Protocol

Applications that use TCP are:



Web Browsers
E-mail
File Transfers
13
Port addressing




Port numbers – unique application identifiers
Port numbers are assigned in various ways,
depending on whether the message is a request or
a response. While server processes have static port
numbers assigned to them, clients dynamically
choose a port number for each conversation.
When a client application sends a request to a
server application, the destination port contained in
the header is the port number that is assigned to the
service daemon running on the remote host.
Example – web page access
14
Port addressing
15
Knowing the ports




The client software must know what port number is
associated with the server process on the remote
host.
The source port in a segment or datagram header of
a client request is randomly generated from port
numbers greater than 1023.This port number acts
like a return address for the requesting application.
The Transport layer keeps track of this port and the
application that initiated the request so that when a
response is returned, it can be forwarded to the
correct application.
Socket = ?
16
Port numbers





Well known ports (Numbers 0 to 1023)
Registered Ports (Numbers 1024 to 49151)
Dynamic or Private Ports (Numbers 49152 to
65535)
The Internet Assigned Numbers Authority
(IANA) assigns port numbers.
Netstat

Refer to online curriculum 4.1.5
17
TCP Ports
18
UDP Ports
19
TCP+UDP Ports
20
Segmentation and reassembly


Dividing application
data into pieces both
ensures that data is
transmitted within the
limits of the media and
that data from different
applications can be
multiplexed on to the
media.
TCP and UDP Handle
Segmentation
Differently.
 Sequence number
 The key distinction
between TCP and
UDP is reliability.
21
TCP Protocol – Communicating with
Reliability





Making Conversations Reliable
TCP Server Processes
Connection establishment
3 Way Handshake
TCP Session Termination
22
Making Conversations Reliable
- TCP Header
23
TCP Server Processes



Each application process running on the server is configured to use a
port number, either by default or manually by a system administrator.
An individual server cannot have two services assigned to the same
port number within the same Transport layer services.
Security measure – block ports
24
Connection establishment


When two hosts communicate using TCP, a
connection is established before data can be
exchanged.
To establish the connection, the hosts perform a
three-way handshake. Control bits in the TCP
header indicate the progress and status of the
connection. (flags)






URG - Urgent pointer field significant
ACK - Acknowledgement field significant
PSH - Push function
RST - Reset the connection
SYN - Synchronize sequence numbers
FIN - No more data from sender
25
3 Way Handshake
26
3 Way Handshake – Role

The 3-way handshake (三向交握) :



Establishes that the destination device is present
on the network
Verifies that the destination device has an active
service and is accepting requests on the
destination port number
Informs the destination device that the source
client intends to establish a communication
session on that port number
27
TCP Session Termination
28
Managing TCP Sessions




TCP Segment Reassembly
Acknowledgement
TCP Retransmission
Flow control
29
TCP Segment Reassembly


During session setup, an initial sequence
number (ISN) is set. This initial sequence
number represents the starting value for the
bytes for this session that will be transmitted
to the receiving application
Segment sequence numbers enable reliability
by indicating how to reassemble and reorder
received segments,
30
Acknowledgement

The sending host is expected to send a segment that
uses a sequence number that is equal to the
acknowledgement number.
31
TCP Retransmission




The amount of data that a source can transmit
before an acknowledgement must be received is
called the window size.
Window Size is a field in the TCP header that
enables the management of lost data and flow
control.
When TCP at the source host has not received an
acknowledgement after a predetermined amount of
time, it will go back to the last acknowledgement
number that it received and retransmit data from that
point forward. (example ACK 300 – 500, 800 -1000)
Selective ACKs (online curriculum 4.3.3)
32
Flow control



The initial window size is determined during
the session startup via the three-way
handshake.
TCP feedback mechanism adjusts the
effective rate of data transmission to the
maximum flow that the network and
destination device can support without loss.
The slowdown in data rate helps reduce the
resource contention. Another way to control
the data flow is to use dynamic window sizes.
33
Flow control – reducing window size
34
UDP




UDP – Low Overhead vs. Reliability
UDP Datagram Reassembly
UDP Server Processes and Requests
UDP Client Processes
35
UDP – Low Overhead vs. Reliability


UDP is a simple protocol that provides the
basic Transport layer functions.
Application layer protocols that use UDP
include:






Domain Name System (DNS)
Simple Network Management Protocol (SNMP)
Dynamic Host Configuration Protocol (DHCP)
Routing Information Protocol (RIP)
Trivial File Transfer Protocol (TFTP)
Online games
36
UDP Datagram Reassembly


The UDP PDU is referred to as a datagram
Because there is no session to be created with UDP,
as soon as the data is ready to be sent and the
ports identified, UDP can form the datagram and
pass it to the Network layer to be addressed and
sent on the network.
37
UDP Datagram Reassembly



Because UDP is connectionless, sessions are not established
before communication takes place as they are with TCP
UDP does not keep track of sequence numbers
UDP has no way to reorder the datagrams into their transmission
order
38
UDP Server Processes and Requests

Like TCP-based applications, UDP-based
server applications are assigned Well Known
or Registered port numbers.
39
UDP Client Processes



The UDP client process randomly selects a port
number from the dynamic range of port numbers
and uses this as the source port for the conversation.
(Security)
once a client has chosen the source and destination
ports, the same pair of ports is used in the header of
all datagrams used in the transaction.
For the data returning to the client from the server,
the source and destination port numbers in the
datagram header are reversed.
40