<snapdata remixID="8904871"><project name="L18 TCPIP Student" app="Snap! 5.1, http://snap.berkeley.edu" version="1"><notes>This is a simulation of the Internet Protocol.  There are only two nodes on the network, and their "IP addresses" are "Alice" and "Bob." </notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="true" volume="100" pan="0" lines="round" ternary="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Bob" idx="2" x="197.00000000000023" y="-56.43795620437925" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="0,252.45,70.68600000000006,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="boy1-standing" center-x="35" center-y="80" image="data:image/png;base64,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" id="10"/></item></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables><variable name="incoming transmission"><list struct="atomic" id="14">abcd,efgh,ijkl,mnop,qrst,uvwx,yz</list></variable><variable name="outgoing transmission"><list struct="atomic" id="15"></list></variable><variable name="name"><l>Bob</l></variable><variable name="start resends"><bool>false</bool></variable></variables><scripts><script x="12" y="16.99999999999997"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doAsk"><l>What should I say?</l></block><custom-block s="internet transmit %s to %s"><block s="getLastAnswer"></block><l>Alice</l></custom-block></script><script x="291.33333333333337" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>incoming transmission</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>outgoing transmission</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>start resends</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>name</l><l>Bob</l></block><block s="doForever"><script><block s="doIf"><block var="start resends"/><script><custom-block s="Ask for Resends"></custom-block></script></block></script></block></script><script x="10" y="174.33333333333326"><block s="receiveMessage"><l><option>any message</option></l></block><block s="fork"><block s="reifyScript"><script><custom-block s="read internet data with %s"><block s="getLastMessage"></block></custom-block></script><list></list></block><list></list></block><block s="doIf"><block s="reportNot"><block var="start resends"/></block><script><block s="doSetVar"><l>start resends</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></scripts></sprite><sprite name="Alice" idx="1" x="-187.87591240875827" y="-4.956204379561768" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="79"><costumes><list id="80"><item><costume name="Bob" center-x="46.5" center-y="86" image="data:image/png;base64,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" id="81"/></item></list></costumes><sounds><list struct="atomic" id="82"></list></sounds><blocks></blocks><variables><variable name="incoming transmission"><list struct="atomic" id="85"></list></variable><variable name="outgoing transmission"><list id="86"><item><list struct="atomic" id="87">1,7,abcd</list></item><item><list struct="atomic" id="88">2,7,efgh</list></item><item><list struct="atomic" id="89">3,7,ijkl</list></item><item><list struct="atomic" id="90">4,7,mnop</list></item><item><list struct="atomic" id="91">5,7,qrst</list></item><item><list struct="atomic" id="92">6,7,uvwx</list></item><item><list struct="atomic" id="93">7,7,yz</list></item></list></variable><variable name="name"><l>Alice</l></variable></variables><scripts><script x="236.66666666666663" y="128.33333333333331"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doAsk"><l>What should I say?</l></block><custom-block s="internet transmit %s to %s"><block s="getLastAnswer"></block><l>Bob</l></custom-block></script><script x="12" y="127"><block s="receiveGo"></block><block s="doSetVar"><l>incoming transmission</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>outgoing transmission</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>name</l><l>Alice</l></block><block s="bubble"><l>Click on one of us to send a message.</l></block></script><script x="14.666666666666657" y="265"><block s="receiveMessage"><l><option>any message</option></l></block><block s="fork"><block s="reifyScript"><script><custom-block s="read internet data with %s"><block s="getLastMessage"></block></custom-block></script><list></list></block><list></list></block><block s="doUntil"><block s="reportNot"><block s="reportListContainsItem"><block var="incoming transmission"/><l>__</l></block></block><script><block s="doWait"><l>1</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListLength"><block var="incoming transmission"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="incoming transmission"/></block><l>__</l></block><script><custom-block s="Send IP packet %s to %s"><block s="reportNewList"><list><block var="i"/><l>RESEND</l></list></block><l>Bob</l></custom-block></script></block></script></block></script></block></script><script x="384.33333333333326" y="373.66666666666674"><custom-block s="data $arrowRight list of packets %s"><l>abcdefghijklmnopqrstuvwxyz</l></custom-block></script></scripts></sprite><watcher scope="Alice" var="name" style="normal" x="10" y="40.000001999999995" color="243,118,29" hidden="true"/><watcher scope="Bob" var="outgoing transmission" style="normal" x="10" y="70.000004" color="243,118,29" hidden="true"/><watcher scope="Bob" var="name" style="normal" x="10" y="100.00000599999998" color="243,118,29" hidden="true"/><watcher scope="Alice" var="incoming transmission" style="normal" x="15.558333333333394" y="146.4166758" color="243,118,29" extX="80" extY="70" hidden="true"/><watcher scope="Alice" var="outgoing transmission" style="normal" x="267" y="5" color="243,118,29" extX="186" extY="137"/><watcher scope="Bob" var="start resends" style="normal" x="18" y="30.00000799999998" color="243,118,29"/><watcher scope="Bob" var="incoming transmission" style="normal" x="98.5583333333334" y="96.66666895000014" color="243,118,29" extX="97" extY="217"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Send IP packet %&apos;packet&apos; to %&apos;sprite&apos;" type="command" category="sensing"><comment x="0" y="0" w="104" collapsed="false">Do not edit this block. It simulates the unreliable network.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"><options>Alice&#xD;Bob</options></input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doWait"><block s="reportSum"><l>.2</l><block s="reportQuotient"><block s="reportRandom"><l>1</l><l>20</l></block><l>10</l></block></block></block><custom-block s="send %s to %s"><block var="packet"/><block var="sprite"/></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="internet transmit %&apos;message&apos; to %&apos;sprite&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"><options>Alice&#xD;Bob</options></input></inputs><script><custom-block s="tell %s to %cs"><block var="sprite"/><script><block s="doSetVar"><l>incoming transmission</l><block s="reportNewList"><list></list></block></block></script></custom-block><block s="doSetVar"><l>outgoing transmission</l><custom-block s="data $arrowRight list of packets %s"><block var="message"/></custom-block></block><custom-block s="for each %upvar of %l %cs"><l>packet</l><block var="outgoing transmission"/><script><custom-block s="Send IP packet %s to %s"><block var="packet"/><block var="sprite"/><comment w="90" collapsed="false">Do not edit the SEND IP PACKET block. It simulates the unreliable network.</comment></custom-block></script></custom-block></script></block-definition><block-definition s="send %&apos;msg&apos; to %&apos;sprite&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s">sprite</input></inputs><script><block s="doBroadcast"><block s="reportNewList"><list><block var="msg"/><block var="sprite"/><block var="name"/></list></block></block></script><scripts><script x="36" y="115"><block s="doRun"><block s="reportJSFunction"><list><l>message</l><l>spriteName</l><l>process</l></list><l>  var stage = this.parentThatIsA(StageMorph),&#xD;    hats = [];&#xD;&#xD;  if (message !== &apos;&apos;) {&#xD;    stage.lastMessage = message;&#xD;    process.getObjectsNamed(spriteName, this, stage).forEach(function (morph) {&#xD;      hats = hats.concat(morph.allHatBlocksFor(message));&#xD;    });&#xD;    hats.forEach(function (block) {&#xD;      stage.threads.startProcess(block, stage.isThreadSafe);&#xD;    });&#xD;  }</l></block><list><block var="msg"/><block var="sprite"/></list></block></script></scripts></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="data $arrowRight list of packets %&apos;data&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>size of packet</l><l>list of packets</l><l>remaining data</l><l>packet total</l></list></block><block s="doSetVar"><l>size of packet</l><l>4</l></block><block s="doSetVar"><l>remaining data</l><block var="data"/></block><block s="doSetVar"><l>packet total</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportStringSize"><block var="remaining data"/></block><block var="size of packet"/></block></block></block><block s="doSetVar"><l>list of packets</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>packet number</l><l>1</l><block var="packet total"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="packet number"/><block var="packet total"/><custom-block s="report first %n characters of %s"><block var="size of packet"/><block var="remaining data"/></custom-block></list></block><block var="list of packets"/></block><block s="doSetVar"><l>remaining data</l><custom-block s="remove first %n characters from %s"><block var="size of packet"/><block var="remaining data"/></custom-block></block></script></block><block s="doReport"><block var="list of packets"/></block></script></block-definition><block-definition s="report first %&apos;number&apos; characters of %&apos;input&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><l></l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="number"/><script><block s="doSetVar"><l>output</l><block s="reportJoinWords"><list><block var="output"/><block s="reportLetter"><block var="i"/><block var="input"/></block></list></block></block></script></custom-block><block s="doReport"><block var="output"/></block></script></block-definition><block-definition s="remove first %&apos;number&apos; characters from %&apos;input&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block var="input"/></block><block var="number"/></block><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><l></l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><block s="reportSum"><block var="number"/><l>1</l></block><block s="reportStringSize"><block var="input"/></block><script><block s="doSetVar"><l>output</l><block s="reportJoinWords"><list><block var="output"/><block s="reportLetter"><block var="i"/><block var="input"/></block></list></block></block></script></custom-block><block s="doReport"><block var="output"/></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="read internet data with %&apos;message&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>packet</l><l>packet number</l><l>packet total</l><l>payload</l><l>sender</l></list></block><block s="doSetVar"><l>packet</l><block s="reportListItem"><l>1</l><block var="message"/></block></block><block s="doSetVar"><l>sender</l><block s="reportListItem"><l>3</l><block var="message"/></block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="sender"/><block var="name"/></block></block><script><block s="doSetVar"><l>packet number</l><custom-block s="packet number from packet %l"><block var="packet"/></custom-block></block><block s="doIfElse"><custom-block s="normal packet? %s"><block var="packet"/></custom-block><script><block s="doSetVar"><l>packet total</l><custom-block s="packet total from packet %l"><block var="packet"/></custom-block></block><block s="doSetVar"><l>payload</l><custom-block s="payload from packet %l"><block var="packet"/></custom-block></block><block s="doIf"><block s="reportListIsEmpty"><block var="incoming transmission"/></block><script><block s="doRepeat"><block var="packet total"/><script><block s="doAddToList"><l>__</l><block var="incoming transmission"/></block></script></block></script></block><block s="doReplaceInList"><block var="packet number"/><block var="incoming transmission"/><block var="payload"/></block></script><script><custom-block s="Send IP packet %s to %s"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="packet"/></block><block var="outgoing transmission"/></block><block var="sender"/></custom-block></script></block></script></block></script></block-definition><block-definition s="packet number from packet %&apos;packet&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="packet"/></block></block></script></block-definition><block-definition s="normal packet? %&apos;packet&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportListLength"><block var="packet"/></block><l>3</l></block></block></script></block-definition><block-definition s="packet total from packet %&apos;packet&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="packet"/></block></block></script></block-definition><block-definition s="payload from packet %&apos;packet&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="packet"/></block></block></script></block-definition><block-definition s="Ask for Resends" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWait"><l>1</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListLength"><block var="incoming transmission"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="incoming transmission"/></block><l>__</l></block><script><custom-block s="Send IP packet %s to %s"><block s="reportNewList"><list><block var="i"/><l>RESEND</l></list></block><l>Alice</l></custom-block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="incoming transmission"/><l>__</l></block></block><script><block s="doSetVar"><l>start resends</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition></blocks><variables></variables></project><media name="L18 TCPIP Student" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>