This article is continuation.... For Application layer to session layer click here
Transport
layer:
I know you have start guessing what this layer will be like! Since
any thing transport involves movement of “something” from one
form to another. Transport layer ensures data is been transported
successfully between source and the destination. To complete it task
it needs to check errors, data dropping etc.
Transport
layer uses TCP (transmission control protocol) and UDP (user datagram
protocol). The
first is connection oriented and the later is connectionless.
TCP/IP
(connection oriented): This makes sure data reached to its final
destination without dropping. It uses flow control, connection
oriented communication windowing and acknowledgment to make sure
communication is successful.
Flow
control: This
is process
of controlling the flow of data between the sending end and the
receiving end. It prevents the sender to send too much data that the
receiver cannot handle. For example, compare rain and tap water, when
you want to get water from the tap you can off it when your bucket is
full thus no water will drop to the ground due to overload. What of
the rain, when you cant control the water flow from the rain thus
making must of the water goes down after your bucket is full! You can
agree with me the amount of water coming from the sky is just too
much but large percentage of gone! Imagine flow control exist there
wow!!! no water scarcity forever!!! but we cant collect the water all
because it just come down in its full force. Tap water is limited but
we can utilize it using flow control, thus reducing the water lose to
its minimal. To
make connection oriented communication successful data are broken
down into segments(smaller pieces) to ease transportation. One
of the main purpose of flaw control is to control how the receiver
receives data without overloading.
The below rules are applied for successful data communication:
- The receiver sends an acknowledgment upon the receiving of data.
- If the sender didn't receive acknowledgment of a packet it resend that segments.
- Upon arrival at the receiving end, all segments are regrouped accordingly.
- A reasonable data flow is maintained to avoid overloading which will leads to data type.
Connection
oriented communication: A
device that wants to transmit data setup a connection with the
receiving end by creating a session. It
established a peer system called three way handshake. After
transmission is successful the session is then tear down.
Three
way handshake.
Sender
synchronize
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sender
and the receiver negotiates connection
<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>
receiver synchronize
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|connection
established|
Data
transfer begins
<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>
In the three way handshake, example you want to call your sweetheart on phone. The phone is ringing dindindin (sender synchronize), when he or she pick the call(sender and receiver negotiates connection), He or She will say in a lovely voice ”hello darling” (receiver synchronize) and (connection is already established) then data transfer begins “....My love I couldn’t sleep because I'm missing U.... blablabla” lol! It seems flawless right? Problems do arise sometimes, a machine can receives many connections at the same time. What it does it keep other requests in a buffer while handling the other(so nice). What will happen if the buffer is full? (no place keep it request? I guess it will drop the excess) if that is it, then what is the essence of calling it reliable connection? Big grin! A system exist that will handle such conditions, tongue out. Its called flood control system. This system sends out not ready signal the sender when the buffer is full! Thus the sender has to be on red light, it will only send data after it sees the green light. Interesting........
Characteristics of connection
oriented service
- Virtual circuit eg. Three way handshake
- Sequencing
- Acknowledgment
- Flow control
Windowing: This
sound simple and clear. So in TCP/IP window exist? Windowing
is act of creating window! As simple as that! Laughing in my native
language! Is not true!
Windowing means contrary to what you think! Free
your mind! Data movement Rx and Tx (Reception and transmission)
happens too fast! But don't forget connection oriented(reliable
connection) must receive acknowledgment before sending another
segment, as you can see there is an existing idle time, which the
system has to wait for between acknowledgment! With windowing the
system will send data between that waiting time! The amount of
data(measured in byte)
that the sending machine is
allowed to send in that
waiting time without waiting
for acknowledgment is known
as window! Look
alike with what you thought? NO!!! tongue
out!!!
window
size: this defines the amount of data the transmission machine is
allowed to send without waiting for acknowledgment! If for example
you configure window size of 3, the transmission machine can send
3bytes of data without waiting for acknowledgment, after that it has
to receive acknowledgment before it can send again.
Sending
(transmission) Machine Receiving (reception) Machine
window
size one
send
1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
receive 1
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Acknowledge
2
send
2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Receive
2
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Acknowledge
Window
size 3
send 1
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Send 2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Send 3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Acknowledge 4
send 4
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Send 5
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Send 6
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Acknowledge 7
As you can if the window size
is one, it send one segment of data and wait for acknowledgment
before resending, if the size is three it send three segments of data
and wait for acknowledgment before resending. So its not act of
creating window! Its rather act of creating a means of sending
segment of data when the receiving machine is processing
acknowledgment, in other to maximize speed and save time.
Acknowledgment: This
is the positive
response a system gets when
transmitting data segments. When connection is established and data
flow is going on, the transmission machine creates a timer in which
it will receive acknowledgment from the receiving end, if the timer
expires without acknowledgment, that means the transmission wasn't
successful, the same segment of data is resend. If it receives
acknowledgment the next segment (not the sent one) is transmitted.
This really help successful data transmission.
Join Us on Facebook: ICTmagazine
BBM channel: ICTmagazine
Next
is network layer.. to be continued....
Comments
Post a Comment