[go: up one dir, main page]

0% found this document useful (0 votes)
26 views6 pages

CN Practical 1

Computer network Sem 5 engineering Mumbai university prwctical question answers and viva

Uploaded by

Aryan Shukla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views6 pages

CN Practical 1

Computer network Sem 5 engineering Mumbai university prwctical question answers and viva

Uploaded by

Aryan Shukla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Leaky Bucket Algorithm

import time

def leaky_bucket(input_packets, bucket_size, output_rate):

bucket_content = 0

for packet in input_packets:

print(f"\nPacket of size {packet} arrived.")

if packet + bucket_content > bucket_size:

print(f"Packet of size {packet} dropped. Bucket overflow!")

else:

bucket_content += packet

print(f"Packet of size {packet} added to bucket. Current bucket size: {bucket_content}")

time.sleep(1) # Simulate time between processing

sent = min(output_rate, bucket_content)

bucket_content -= sent

print(f"Sent {sent} packets. Remaining bucket size: {bucket_content}")

# Test with a list of incoming packets

leaky_bucket([10, 20, 5, 30, 15], bucket_size=50, output_rate=15)


Stop & Wait protocol
import random

import time

def stop_n_wait(frames):

for frame in frames:

print(f"Sending frames {frame}")

time.sleep(1)

if random.choice([True,False]):

print(f"Ack recived for frame : {frame}")

else:

print(f"Ack lost for frame : {frame}")

time.sleep(1)

print(f"Acknowledgment received for Frame: {frame}")

stop_n_wait([1,2,3,4])

Sliding Window Protocol


def sliding_window(frames,window_size):

sent = 0

while sent < len(frames):

window_end = min(sent + window_size,len(frames))

print(f"\nSending frames : {frames[sent:window_end]}")

for i in range (sent,window_end):

print(f"Ack recived for frames : {frames[i]}")

sent += window_size

sliding_window([1, 2, 3, 4, 5, 6], window_size=3)


Framing Method: Character Stuffing
def character_stuffing(data,flag='F',esc='E'):
stuffed = []
for char in data:
if char in [flag,esc]:
stuffed.append(esc)
stuffed.append(char)
return ''.join(stuffed)

data = 'FHELLOEFWORLD'
print(f"Original Data : {data}")

framed_data = character_stuffing(data)
print(f"Stuffed Data : {framed_data}")

Distance Vector routing


import os
def distance_vector_routing(nodes,distance_matrix):
print("Initial distance vectors")
for i,node in enumerate(nodes):
print(f"{node} : {distance_matrix[i]}")

for _ in range(len(nodes)-1):
for i in range(len(nodes)):
for j in range(len(nodes)):
for k in range(len(nodes)):
distance_matrix[i][j] = min(distance_matrix[i][j],distance_matrix[i][k] +
distance_matrix[k][j])
print("\nUpdated Distance Vectors")
for i,node in enumerate(nodes):
print(f"{node} : {distance_matrix[i]}")

nodes = ["A", "B", "C","D"]


distance_matrix = [[1, 2, 5,8], [2, 4, 3,1], [5, 3, 4,8],[4,3,8,9]]
distance_vector_routing(nodes, distance_matrix)
PING program
import os

def ping_host(host = '8.8.8.8'):


response = os.system(f"ping -c 4 {host}")
if response == 0:
print(f"{host} is reachable")
else:
print(f"{host} is not reachable")

ping_host()

IP address Configuration
import socket

def ip_config():
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
print(f"Hostname : {hostname}")
print(f"IP Address : {ip_address}")

ip_config()

TRACEROUTE Program
import socket

def trace_route(host="8.8.8.8"):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP)
s.connect((host, 1))
print(f"Tracing route to {host}...")
except socket.error as e:
print(f"Trace route failed: {e}")
finally:
s.close()

trace_route()
FTP PROTOCOL
Server.py
import socket

def ftp_server():
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(("localhost",12345))
server.listen(1)
print("Server Listening for connections .......")

conn,addr = server.accept()
with open ("received_file.txt",'rb') as f:
data = conn.recv(1034)
while data:
f.write(data)
data = conn.recv(1024)

print("File recived Successfully")


conn.close()

ftp_server()

Client.py
import socket

def ftp_client():
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(("localhost",12345))
print("Connecting to the server ...................")
with open("file_to_send.txt",'rb') as f :
data = f.read(1024)
while data:
client.send(data)
data = f.read(1024)
print("File Sent successfully")
client.close()
ftp_client()
nslookup program
import socket

def nslookup(hostname):
try:
ip = socket.gethostbyname(hostname)
print(f"Hostname: {hostname}\nIP Address: {ip}")
except socket.gaierror:
print(f"Failed to resolve {hostname}")

if __name__ == "__main__":
hostname = input("Enter a hostname: ")
nslookup(hostname)

You might also like