Пример #1
0
def run_one_hop(pkt_num):
    pkt_size = T
    ff_order = 8

    input_data = ''
    for x in xrange(pkt_num):
        input_data = input_data + pkt_size * chr(random.randint(0, 255))

    # define network's source and destination
    src = Encoder(M, pkt_num, pkt_size, input_data)
    dst = Decoder(M, pkt_num, pkt_size)
    

    start = time.clock()    
    output_data, c1 = _run_one_hop(src, dst)
    end = time.clock()

    # print "output_data's length: ", len(output_data)

    for i in xrange(pkt_num * pkt_size):
        if input_data[i] != output_data[i]:
            print "#"*30 + " memory coding error " + "#"*30
            break

    return end - start, c1.num_sent, c1.num_received, dst.num_inact
Пример #2
0
def run_two_hop(pkt_num):

    pkt_size = T
    ff_order = 8

    input_data = ''
    for x in xrange(pkt_num):
        input_data = input_data + pkt_size * chr(random.randint(0, 255))

    # define network's source and destination
    src = Encoder(M, pkt_num, pkt_size, input_data)
    dst = Decoder(M, pkt_num, pkt_size)
    recoder = Recoder(M, pkt_size)

    start = time.clock()    
    output_data, c1, c2 = run_network(mode, src, dst, recoder)
    end = time.clock()

    #print "output_data's length: ", len(output_data)

    # for i in xrange(pkt_num * pkt_size):
    #     if input_data[i] != output_data[i]:
    #         print "#"*30 + " memory coding error " + "#"*30
    #         break

    return end - start, ((c1.num_sent, c1.num_received), (c2.num_sent, c2.num_received), dst.num_inact)
Пример #3
0
def test_bats_s(from_file, to_file):
	def a():
		print 'a()'
	loss_rate = 0.1
	r = 0
	e = Encoder.fromfile(from_file)
	d = Decoder.tofile(to_file, os.path.getsize(from_file), a, hashFile(from_file))

	while not d.complete():
		s = e.genPacket()
		if s:
			if random() >= loss_rate:
				d.receivePacket(s)
				r += 1
	print 'received:%d,decoded:%d'%(r, d.getDecoded())
Пример #4
0
def test_bats_s(from_file, to_file):
    def a():
        print 'a()'

    loss_rate = 0.1
    r = 0
    e = Encoder.fromfile(from_file)
    d = Decoder.tofile(to_file, os.path.getsize(from_file), a,
                       hashFile(from_file))

    while not d.complete():
        s = e.genPacket()
        if s:
            if random() >= loss_rate:
                d.receivePacket(s)
                r += 1
    print 'received:%d,decoded:%d' % (r, d.getDecoded())
Пример #5
0
def test_bats(from_file, to_file):
    def a():
        print 'a()'

    r = 0
    e = Encoder.fromfile(from_file)
    for i in xrange(10001):
        e.genPacket()
    #f = open("pp", "r+b")

    d = Decoder.tofile(to_file, os.path.getsize(from_file), a,
                       hashFile(from_file))
    j = ''
    ib = 0
    h = {}
    hm = 0
    hid = {}
    hidm = 0

    while not d.complete():
        s = e.genPacket()
        #s = f.read(1042)
        if s == '':
            continue
        if s not in h:
            h[s] = 1
            hm = 1 if 1 > hm else hm
        else:
            h[s] += 1
            hm = h[s] if h[s] > hm else hm
        i = (ord(s[0]) + ord(s[1]) * 256)
        if i not in hid:
            hid[i] = 1
            hidm = 1 if 1 > hidm else hidm
        else:
            hid[i] += 1
            hidm = hid[i] if hid[i] > hidm else hidm
        if s:
            j = base64.b64decode(json.loads(json.dumps(base64.b64encode(s))))

            d.receivePacket(j)
            r += 1
            ib = i if i > ib else ib
            print ib, i, hm, hidm
    print type(j)
    print 'received:%d,decoded:%d' % (r, d.getDecoded())
Пример #6
0
def test_bats(from_file, to_file):
	def a():
		print 'a()'
	r = 0
	e = Encoder.fromfile(from_file)
	for i in xrange(10001):
		e.genPacket()
	#f = open("pp", "r+b")

	d = Decoder.tofile(to_file, os.path.getsize(from_file), a, hashFile(from_file))
	j = ''
	ib = 0
	h = {}
	hm = 0
	hid = {}
	hidm = 0

	while not d.complete():
		s = e.genPacket()
		#s = f.read(1042)
		if s == '':
			continue
		if s not in h:
			h[s] = 1
			hm = 1 if 1>hm else hm
		else:
			h[s] += 1
			hm = h[s] if h[s]>hm else hm
		i =  (ord(s[0])+ord(s[1])*256)
		if i not in hid:
			hid[i] = 1
			hidm = 1 if 1>hidm else hidm
		else:
			hid[i] += 1
			hidm = hid[i] if hid[i]>hidm else hidm
		if s:
			j = base64.b64decode(json.loads(json.dumps(base64.b64encode(s))))
			
			d.receivePacket(j)
			r += 1
			ib = i if i>ib else ib
			print ib, i, hm, hidm
	print type(j)
	print 'received:%d,decoded:%d'%(r, d.getDecoded())
Пример #7
0
from bats import Encoder, Decoder, Recoder

PACKET_SIZE = bats.PACKET_SIZE

if __name__ == "__main__":
    import sys

    if len(sys.argv) == 1:
        input_file = 'input'
    else:
        input_file = sys.argv[1]

    enc = Encoder.fromfile(input_file)

    # Create decoder instance given destination filename and filesize.
    dec = Decoder.tofile('output', os.path.getsize(input_file))

    # Create recoder instance
    rec = Recoder(16, PACKET_SIZE)

    Rcnt = 1
    Scnt = 1

    # channel loss rate
    r = 0.05

    import time
    t0 = time.time()
    buf = []
    while not dec.complete():
        send = enc.genPacket()  # Generate a packet