Skip to content

tahaekim/COMP416-Project-3

Repository files navigation

COMP416 Project 3 – Network Layer Concepts Practice and Simulations

Course: COMP416 Computer Networks, Koç University, Fall 2025
Author: Ahmet Taha Ekim
Student ID: 79234
Date: January 2, 2026


Overview

This project explores core concepts of the Network Layer in the TCP/IP protocol stack. It is split into two main parts: the first focuses on analyzing real network paths using ICMP-based tools, and the second involves designing and configuring a multi-branch enterprise network inside Cisco Packet Tracer. The goal is to bridge the gap between theoretical networking knowledge and hands-on practice with actual tools and simulation environments.


Part 1 – Network Layer Analysis through ICMP

What This Part Covers

The first part of the project revolves around the traceroute command-line utility. The idea is to trace the path that packets take from your local machine to a remote server and observe how the Internet actually routes traffic hop by hop.

Each student was assigned a unique URL to trace. The URL assigned to me (ID 79234) was:

https://www.qu.edu.qa/sites/

Key Findings

  • Firewall behavior: The default traceroute on macOS sends UDP packets, which can be blocked by firewalls at the destination. Switching to ICMP mode using the -I flag resolved this issue and allowed the trace to complete successfully.

  • Minimum TTL: The destination host (20.157.207.15) was reached at hop 27. Any TTL value below 27 was not enough for the packets to make it to the target.

  • Local site hops: Analyzing the IP addresses at each hop, it takes about 12-13 hops to leave the local network. The first hop is the local gateway at 192.168.1.1, followed by hops in the 10.0.0.0/8 and 172.16.0.0/12 private ranges (ISP internal infrastructure). The first public IP (104.44.37.217) appears at hop 13.

  • Probe count effects: The default number of probes per hop is 3. Running traceroute with -q 5 (5 probes per hop) improved path resolution — routers that previously showed timeouts (like hop 7) started responding to at least one of the extra probes. This is mainly because many routers implement ICMP rate limiting.

  • Tracing to unassigned addresses: If the network portion is unassigned, intermediate routers won't find a matching route and will drop the packet (typically returning an ICMP Destination Network Unreachable message). If the host portion is unassigned within a valid network, the packet makes it all the way to the destination network's gateway, which then fails to find the host on its local link and returns an ICMP Destination Host Unreachable message.

Tools Used

  • traceroute (macOS terminal)
  • Flags: -I (ICMP mode), -q (probe count), -m (max TTL)

Part 2 – Network Design and Simulation with Cisco Packet Tracer

Scenario

A medium-sized logistics company has three regional branches — North, South, and Central — each needing its own LAN. All branches must communicate over a private WAN, and every device needs Internet access through a single public IP via NAT.

Network Design Decisions

IP Addressing:

The company was given the 172.16.0.0/16 private address block. Each branch needs to support up to 300 devices, so a /24 subnet (254 usable addresses) wouldn't cut it. I went with /23 subnets instead, which give 510 usable host addresses per branch — more than enough headroom.

Branch Network Address Subnet Mask Usable IP Range Default Gateway Broadcast
North 172.16.0.0/23 255.255.254.0 172.16.0.1 – 172.16.1.254 172.16.0.1 172.16.1.255
South 172.16.2.0/23 255.255.254.0 172.16.2.1 – 172.16.3.254 172.16.2.1 172.16.3.255
Central 172.16.4.0/23 255.255.254.0 172.16.4.1 – 172.16.5.254 172.16.4.1 172.16.5.255

WAN Links:

Router-to-router connections use /30 point-to-point subnets (originally tried /31 as the assignment suggested, but several router models in Packet Tracer — ISR4331, 2911, and Generic Router — all threw "Bad Mask" errors, so I fell back to /30).

Routing:

  • One router uses static routing as required.
  • The remaining routers run OSPF (Open Shortest Path First), chosen over RIP because of its link-state algorithm (Dijkstra's SPF) and cost-based metrics rather than simple hop count.

NAT Configuration:

NAT is configured on the centralized Edge Router using the ISP-assigned public IP 45.77.100.5. The configuration uses PAT (Port Address Translation), also called NAT Overload, which maps multiple internal hosts to a single public IP by distinguishing sessions via Layer 4 port numbers.

Verification and Testing

  • Intra-branch connectivity: All devices within the same branch can ping each other without issues.
  • Inter-branch connectivity: Devices from different branches communicate successfully. The first ping packet typically times out (ARP resolution delay), but subsequent packets go through fine.
  • Internet access: All branches can reach the Internet through the Edge Router's NAT. The NAT translation table on the Edge Router shows multiple internal IPs mapped to 45.77.100.5 with unique port numbers, confirming PAT operation.
  • Routing tables: The show ip route command on branch routers shows directly connected networks (code C) and OSPF-learned routes (code O), including the default route for Internet traffic (O*E2).

Router CLI Commands Reference

Configuration Process CLI Command (auto-generated in Config tab)
Assign IP to LAN interface interface GigabitEthernet0/0ip address ...
Disable/enable a port shutdown / no shutdown
Add a static route ip route <network> <mask> <next-hop>
Display routing table show ip route
Display NAT translations show ip nat translations

Project Files

File Description
ekim_79234.pdf Project report (PDF) with all answers, screenshots, and explanations
ekim_79234_part2.pkt Cisco Packet Tracer simulation file for Part 2
project3_79234.docx Project report (Word document version)

How to Open the Simulation

  1. Install Cisco Packet Tracer (free with a Cisco Networking Academy account).
  2. Open ekim_79234_part2.pkt in Packet Tracer.
  3. You can inspect the topology, click on routers/switches to see their configurations, and run ping/traceroute tests from any PC's command prompt.

References

  1. Unix.com, "macOS Man Page: traceroute(8)" — https://www.unix.com/man-page/osx/8/traceroute/
  2. Linux.die.net, "traceroute(8) - Linux man page" — https://linux.die.net/man/8/traceroute/

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors