def l4_sendto(node, dest_nid, data): # get port table for this node and set values for destination target PortTable = node.GetPortTable() for link in PortTable: info = PortTable[link] if info[0] == dest_nid: dest_port = info[2] # get md5 hash of data for checksum m = hashlib.md5() m.update(data) checksum = m.hexdigest() # build datagram frame = {} frame['source_nid'] = node.GetNID() frame['source_port'] = node.GetPort() frame['destination_nid'] = dest_nid frame['destination_port'] = dest_port frame['sequence_number'] = 1 frame['ack_number'] = 1 frame['window_size'] = 15 frame['checksum'] = checksum frame['data'] = data # encode payload payload = json.dumps(frame) Network.l3_sendto(node, dest_nid, payload)
def l4_sendto(node, dest_nid, data): segment = data Network.l3_sendto(node, dest_nid, segment)