Networking Models and Designs By: Dan Sibbernsen Advisor: MikeyG.
-
Upload
lesley-lawson -
Category
Documents
-
view
222 -
download
3
Transcript of Networking Models and Designs By: Dan Sibbernsen Advisor: MikeyG.
Networking Models and Networking Models and DesignsDesigns
By: Dan SibbernsenBy: Dan Sibbernsen
Advisor: MikeyGAdvisor: MikeyG
Discussion GoalsDiscussion Goals
Brief look at Internet packets Brief look at Internet packets – Layers of abstractionLayers of abstraction
BLAST algorithmBLAST algorithm– UsesUses– AdvantagesAdvantages– DisadvantagesDisadvantages
My Implementation of BLASTMy Implementation of BLAST
Packet OverviewPacket Overview
In every networking model, data is sent across a In every networking model, data is sent across a physical line through abstractions of 0s and 1s called physical line through abstractions of 0s and 1s called packets.packets.
From FTP to HTTP, whatever you use the internet for, From FTP to HTTP, whatever you use the internet for, they all send information the same way, through the use they all send information the same way, through the use of packets.of packets.Each packet carries with it certain informationEach packet carries with it certain information– a sending addressa sending address– a receiving addressa receiving address– data to be transferreddata to be transferred
http://www.uic.eduhttp://www.uic.edu
TCP PacketTCP Packet
With more layers of abstraction, however, these required With more layers of abstraction, however, these required fields grow.fields grow.
http://www.oreillynet.comhttp://www.oreillynet.com
Packet AbstractionsPacket Abstractions
http://publib.boulder.ibm.comhttp://publib.boulder.ibm.com
Lower LayersLower Layers
This is a breakdown of the very basic This is a breakdown of the very basic levels of networking.levels of networking.
ProblemProblem
Suppose we want to send more data than Suppose we want to send more data than can fit in one packet across the network.can fit in one packet across the network.
GoalsGoals
To implement a basic packet-switching To implement a basic packet-switching network protocol on top of the Kaya network protocol on top of the Kaya Operating System.Operating System.
To analyze the Blast algorithm for packet To analyze the Blast algorithm for packet transfer.transfer.
BLASTBLAST
A networking algorithm that solves the problem A networking algorithm that solves the problem of having message sizes larger than the of having message sizes larger than the maximum data allowed in one packet.maximum data allowed in one packet.
BLAST-WhatBLAST-What
Receives a large message (i.e. 32MB).Receives a large message (i.e. 32MB).
Breaks up the message into much smaller Breaks up the message into much smaller packets, and transmits them immediately.packets, and transmits them immediately.
BLAST data PacketBLAST data Packet
The Key Components are as follows:The Key Components are as follows:– MIDMID
What message this packet is a part ofWhat message this packet is a part of
– TypeTypeEither DATA or SRREither DATA or SRR
– NumFragsNumFragsHow many packets are contained in this message.How many packets are contained in this message.
– FragMaskFragMaskWhat packet this is (0..n)What packet this is (0..n)
BLAST Sender SideBLAST Sender Side
FragMaskFragMask– a 32 bit representation of which packet this isa 32 bit representation of which packet this is
For instance, if this is the 5For instance, if this is the 5thth packet, then bit 5 is marked 1 packet, then bit 5 is marked 1 and the rest are 0s.and the rest are 0s.
NumFragsNumFrags– Represents how many packets the sender should Represents how many packets the sender should
expect.expect.If the Message is broken down into 12 packets, then this If the Message is broken down into 12 packets, then this number is 12.number is 12.
TypeType– For the sender, this will always be DATA.For the sender, this will always be DATA.
BLAST – SenderBLAST – Sender
TimersTimers– When the last packet is sent, a timer is When the last packet is sent, a timer is
started. started. – If an SRR hasn’t been received when this If an SRR hasn’t been received when this
timer expires, it resends all of the packets.timer expires, it resends all of the packets.– It does this x number of times before it quits.It does this x number of times before it quits.
BLAST Receiver SideBLAST Receiver Side
When the Receiver gets the first packet, it When the Receiver gets the first packet, it creates a data structure to accept the rest.creates a data structure to accept the rest.
The packets then begin arriving and are put into The packets then begin arriving and are put into the data structure according to what their the data structure according to what their FragMask says they are.FragMask says they are.
Internet ACKsInternet ACKs
An ACK (or acknowledgement) is a way for the receiver An ACK (or acknowledgement) is a way for the receiver to notify the sender that a packet has been received.to notify the sender that a packet has been received.
However, BLAST sends out all of its packets for a However, BLAST sends out all of its packets for a message without waiting for an ACK from the receiver.message without waiting for an ACK from the receiver.
BLAST needed a new way to perform an ACK so that it BLAST needed a new way to perform an ACK so that it could account for multiple packet loss.could account for multiple packet loss.
BLAST ACKBLAST ACK
Key Components of the BLAST ACKKey Components of the BLAST ACK
FragMaskFragMask– This represents which packets have not been This represents which packets have not been
received, so if packets 4 and 7 haven’t been received, received, so if packets 4 and 7 haven’t been received, bits 4 and 7 are set to 0, while the rest are 1s.bits 4 and 7 are set to 0, while the rest are 1s.
TypeType– For the Receiver, this will always be an SRR.For the Receiver, this will always be an SRR.
SRRs- WhenSRRs- When
An SRR is sent out when 1 of 2 events An SRR is sent out when 1 of 2 events occuroccur– The last packet arrivesThe last packet arrives– A timer finishesA timer finishes
This is to protect against the last packet being lost.This is to protect against the last packet being lost.
If this timer expires 3 times (with an SRR sent If this timer expires 3 times (with an SRR sent each time), the receiver quits and frees up all the each time), the receiver quits and frees up all the received packets.received packets.
BLAST-AdvantagesBLAST-Advantages
The BLAST algorithm is not heavily dependent upon the The BLAST algorithm is not heavily dependent upon the use of timers.use of timers.– The Timers protect against the worst-case scenario: the packets The Timers protect against the worst-case scenario: the packets
simply cannot get from the sender to the receiver.simply cannot get from the sender to the receiver.
BLAST-DrawbacksBLAST-Drawbacks
No guaranteed transmissionNo guaranteed transmission– Message is too smallMessage is too small
If only 1-2 packets are sent, neither might arrive.If only 1-2 packets are sent, neither might arrive.
If last packet gets in faster than the rest, SRR is sent, If last packet gets in faster than the rest, SRR is sent, resulting in more packets than necessary being resulting in more packets than necessary being redelivered.redelivered.
My ProjectMy Project
Implementation of the BLAST algorithm on Implementation of the BLAST algorithm on top of the Kaya Operating System.top of the Kaya Operating System.
Requirements:Requirements:– vde (Virtual Distributed Ethernet)vde (Virtual Distributed Ethernet)– uMPS (micro MPS simulator)uMPS (micro MPS simulator)– a working phases 1-3 of Kayaa working phases 1-3 of Kaya
HowHow
TransmitTransmit– Transmit would essentially take input of a Transmit would essentially take input of a
packet.packet.Source MAC addressSource MAC address
Destination MAC addressDestination MAC address
Data to be transferredData to be transferred
– Pass this information into a device in uMPS Pass this information into a device in uMPS for sending to the receiver.for sending to the receiver.
HowHow
ReceiveReceive– Interrupt would occur on receiving machineInterrupt would occur on receiving machine
Process the packetProcess the packet– Put it into a data structurePut it into a data structure– Await further packetsAwait further packets– When last packet arrives, send an SRRWhen last packet arrives, send an SRR
Future EndeavoursFuture Endeavours
Given time and the right motivationGiven time and the right motivation– Implement more layers upon BLAST, for instance, one that Implement more layers upon BLAST, for instance, one that
would guarantee packet delivery.would guarantee packet delivery.– Look into other possible Operating Systems this could be Look into other possible Operating Systems this could be
implemented on.implemented on.
SourcesSources
Peterson, Larry L. & Davie, Bruce S. Peterson, Larry L. & Davie, Bruce S. Computer Networks: A Systems Approach.Computer Networks: A Systems Approach. San San Francisco: Morgan Kaufmann, 1996.Francisco: Morgan Kaufmann, 1996.
Special ThanksSpecial Thanks
Michael Goldweber, for being my advisor, and also letting me use his Kaya Michael Goldweber, for being my advisor, and also letting me use his Kaya phases 1-3, as well as his contribution to the uMPS project.phases 1-3, as well as his contribution to the uMPS project.
Creators of uMPSCreators of uMPS– Renzo DavoliRenzo Davoli– Michael GoldweberMichael Goldweber
Creator of VDECreator of VDE– Renzo DavoliRenzo Davoli