Perform the displacement of a Mptcp packet inside the reception network.
[nets,rp,swi,rti,probroute]=NARVAL_I_MptcpIntra(i,p,nets,probroute,closs,cack,n,rp,t,swi,rti,rtmax)
node index.
MPTCP packet.
emission network matrix.
route manager.
modification factor of the route manager after a packet loss.
modification factor of the route manager after a packet acknowledgement.
network size.
packet manager.
current time.
sliding window of each network node.
retransmission time of each network node.
maximum value of the retransmission time parameter.
NARVAL_I_MptcpIntra perform the displacement of the MPTCP packet p already located inside the buffer of the node i inside the reception network matrix nets. swi gathers the sliding window of each network node. rti provides the retransmission time of each network node. rtmax corresponds to the maximal retransmission time value. The network topology is composed by n nodes. rp corresponds to the packet manager. t is the current time. probroute represents the route manager. If a packet loss (respectivelly a packet acknowledgement) occurs on a path, the probability to take it is reduced (respectivelly increased) in respect with closs (respectivelly cack).
[path]=NARVAL_F_NARVALPath();//path to NARVAL module path=path+'/demos/';//folder path load(path+'RoutingTables_topo_100.dat','pt','rt1','rt2','rt3','rt4','rt5');//loading of the network routing tables load(path+'topo_100.graph','g');//loading of the network graph n=100;//network size bs=15;//constant buffer size [nd,nf]=NARVAL_F_Random_i_j(n);//generation of connection extreme nodes L=1000;//network square area side t=1;//current time [probroute]=NARVAL_I_StartRouteProb(rt1,rt2,rt3,rt4,rt5,pt,n,L);//initialization of the route manager network=NARVAL_I_EmptyBufferNet(n,bs);//initialization of the reception network matrix networks=NARVAL_I_EmptyBufferNet(n,bs);//initialization of the emission network matrix tpmax=n*bs;//maximal quantity of packets simultaneously supported by each network matrix rp=NARVAL_I_EmptyPacketMan(tpmax);//initialization of the packet manager cpmax=5;//maximal quantity of packets per connection ct=2;//connection type selection index: creation of MPTCP connections swmin=1; rtmin=1; rtmax=50; p=0.90; cack=0.8; closs=0.8; [swi,rti]=NARVAL_I_TcpStartPar(n,swmin,rtmin);//initialization of the TCP parameters for each node [networks,rp]=NARVAL_I_ConManagerNodes(nd,n,bs,cpmax,networks,rp,ct,p);//generation of new connections [swi,rti,network,networks,rp]=NARVAL_I_E2R(swi,rti,rtmax,network,networks,n,bs,rp,t,probroute);//emission of packets on the reception network ind=find(network(:,$) lt gt 0);//MPTCP packets present on the network i=ind(1);//selection of the first node where a MPTCP packet is stored p=network(i,1);//MPTCP packet index r=rp(p,$);//route taken by the MPTCP packet path=NARVAL_R_PathERT(evstr('rt'+string(r)),rp(p,2),rp(p,3),n);//route followed by this packet i//initial values p//packet index path//path network(i,:)//buffer of the node i [j,ack]=NARVAL_I_NextNode(i,path);//calculation of the next node j where the MPTCP packet should be transmitted j [network,rp,swi,rti,probroute]=NARVAL_I_MptcpIntra(j,p,network,probroute,closs,cack,n,rp,t,swi,rti,rtmax);//application of NARVAL_I_MptcpIntra network(j,:)//buffer of the node j | ![]() | ![]() |