Course: COMP416 Computer Networks, Koç University, Fall 2025
Author: Ahmet Taha Ekim
Student ID: 79234
Date: January 2, 2026
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.
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/
-
Firewall behavior: The default
tracerouteon macOS sends UDP packets, which can be blocked by firewalls at the destination. Switching to ICMP mode using the-Iflag 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 the10.0.0.0/8and172.16.0.0/12private 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
traceroutewith-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.
traceroute(macOS terminal)- Flags:
-I(ICMP mode),-q(probe count),-m(max TTL)
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.
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.
- 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.5with unique port numbers, confirming PAT operation. - Routing tables: The
show ip routecommand on branch routers shows directly connected networks (codeC) and OSPF-learned routes (codeO), including the default route for Internet traffic (O*E2).
| Configuration Process | CLI Command (auto-generated in Config tab) |
|---|---|
| Assign IP to LAN interface | interface GigabitEthernet0/0 → ip 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 |
| 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) |
- Install Cisco Packet Tracer (free with a Cisco Networking Academy account).
- Open
ekim_79234_part2.pktin Packet Tracer. - You can inspect the topology, click on routers/switches to see their configurations, and run ping/traceroute tests from any PC's command prompt.
- Unix.com, "macOS Man Page: traceroute(8)" — https://www.unix.com/man-page/osx/8/traceroute/
- Linux.die.net, "traceroute(8) - Linux man page" — https://linux.die.net/man/8/traceroute/