Computer Networking (NWC204)
Course Implementation Plan
Session 1: Networking Today
Session 2: Basic Switch and End Device Configuration
Lab 1:
Navigate the IOS by Using Tera Term for Console Connectivity
Basic Switch and End Device Configuration
Session 3: Protocols and Models
Lab 2:
Design a Communications System
Research Networking Standards
Install Wireshark
Session 4: Physical Layer
Lab 3: View Wired and Wireless NIC Information
Session 5: Data Link Layer
Session 6: Ethernet Switching
Lab 4:
- Use Wireshark to Examine Ethernet Frames
- View Network Device MAC Addresses
- View the Switch MAC Address Table
Session 7: Network Layer
Session 8: Address Resolution
Session 9: Basic Router
Lab 5: Build a Switch and Router Network
Session 10: IPv4 Addressing
Lab 6:
- Calculate IPv4 Subnets
- Design and Implement a VLSM Addressing Scheme
Session 11: IPv6 Addressing
Session 12: ICMP
Lab 7: Use Ping and Traceroute to Test Network Connectivity
Session 13: Transport Layer
Session 14: Application Layer
Lab 8: Observe DNS Resolution
Session 15: Network Security Fundamentals
Lab 9:
- Research Network Security Threats
- Configure Network Devices with SSH
- Secure Network Devices
Session 16: Build a Small Network
Lab 10:
- Test Network Latency with Ping and Traceroute
- Troubleshoot Connectivity Issues
- Design and Build a Small Network
LAB
- 1.0.5. Packet Tracer - Logical and Physical Mode Exploration
- 1.5.5. Packet Tracer - Network Representation
- 2.3.8. Lab - Navigate the IOS by Using Tera Term for Console Connectivity
- 2.5.5. Packet Tracer - Configure Initial Switch Settings
- 2.7.6. Packet Tracer - Implement Basic Connectivity
- 3.4.4. Lab - Research Networking Standards
- 3.5.5. Packet Tracer - Investigate the TCP/IP and OSI Models in Action
- 3.7.9. Lab - Install Wireshark
- 3.7.10. Lab - Use Wireshark to View Network Traffic
- 4.6.5. Packet Tracer - Connect a Wired and Wireless LAN
- 4.6.6. Lab - View Wired and Wireless NIC Information
- 7.1.6. Lab - Use Wireshark to Examine Ethernet Frames
- 7.2.7. Lab - View Network Device MAC Addresses
- 7.3.7. Lab - View the Switch MAC Address Table
- 8.2.3. Video - Sample IPv4 Headers in Wireshark
- 8.3.5. Video - Sample IPv6 Headers in Wireshark
- 9.1.3. Packet Tracer - Identify MAC and IP Addresses
- 10.1.4. Packet Tracer - Configure Initial Router Settings
- 10.3.5. Packet Tracer - Troubleshoot Default Gateway Issues
- 11.5.5. Packet Tracer - Subnet an IPv4 Network
- 11.6.6. Lab - Calculate IPv4 Subnets
- 11.7.5. Packet Tracer - Subnetting Scenario
- 11.9.3. Packet Tracer - VLSM Design and Implementation Practice
- 12.6.6. Packet Tracer - Configure IPv6 Addressing
- 12.7.4. Lab - Identify IPv6 Addresses
- 12.9.1. Packet Tracer - Implement a Subnetted IPv6 Addressing Scheme
- 12.9.2. Lab - Configure IPv6 Addresses on Network Devices
- 14.8.1. Packet Tracer - TCP and UDP Communications
- 15.4.8. Lab - Observe DNS Resolution
- 16.2.6. Lab - Research Network Security Threats
- 16.4.6. Packet Tracer - Configure Secure Passwords and SSH
- 16.4.7. Lab - Configure Network Devices with SSH
- 17.4.6. Lab - Test Network Latency with Ping and Traceroute
- 17.5.9. Packet Tracer - Interpret show Command Output
- 17.7.6. Packet Tracer - Troubleshoot Connectivity Issues
- 17.7.7. Lab - Troubleshoot Connectivity Issues
Constructive questions
- CQ1.1 What is the Internet?
- CQ1.2 How can computers in network talk together?
- CQ1.3 Why do we need a reliable networks?
- CQ1.4 What is the Cisco IOS?
- CQ2.1 How to write the correct command in Cisco IOS?
- CQ2.2 What should we do when implement basic network with switches and end devices?
- CQ3.1 Explain why protocols are necessary in network communication.
- CQ3.2 Explain how the TCP/IP model and the OSI model are used to facilitate standardization in the communication process.
- CQ4.1 What are the purpose and functions of the physical layer in the network?
- CQ4.2 Constrast and compare between copper and fiber optic capling
- CQ4.3 While trying to solve a network issue, a technician made multiple changes to the current router configuration file. The changes did not solve the problem and were not saved. What action can the technician take to discard the changes and work with the file in NVRAM?
- CQ5.1 How does UTP cable used in Ethernet networks?
- CQ5.2 How to connect devices using wired and wireless media
- CQ6.1 How does MAC protocol in the data link layer supports communication across networks?
- CQ6.2 Compare and constrast the characteristics of media access control methods on WAN and LAN technologies
- CQ7.1 What is the Frame?
- CQ7.2 How to detect and fix when receive an error frame on transmission?
- CQ7.3 How does Ethernet works in a switched network?
- CQ8.1 Why do we need use IP protocol for reliable communications?
- CQ8.2 How does the network devices use routing tables to direct packets to a destination networks?
- CQ9.1 How can ARP enable communication on a network?
- CQ9.2 How does Neighbor Discovery operate on a network?
- CQ9.3 Compare the roles of the ARP address and the IP address
- CQ10.1 How do two computers connect over the outside network?
- CQ10.2 How does the way of the router device forward packets?
- CQ11.1 Progress Test 2
- CQ11.2 Compare and constrast the characteristics and uses of the unicast, broadcast and multicast IPv4 address
- CQ11.3 how many are there type of the IPv4 address? How to use it?
- CQ12.1 What is the structure of an IPv4 address?
- CQ12.2 A company has plan to deploy a network with more departments. How can we calculate IPv4 address to optimize in this case?
- CQ13.1 What happens do we use IPv4 in nowadays?
- CQ13.2 Compare types of IPv6 network addresses
- CQ13.3 How to configure IPv6 address on Cisco devices?
- CQ14.1 What is ICMP?
- CQ14.2 How to test network connectivity using ICMP?
- CQ14.3 Which other tools can we use to test network connectivity? How does it works(Do lab 7)?
- CQ15.1 What characteristics are there in the Transport Layer?
- CQ15.2 Compare between TCP and UDP? Which protocol do you like to implement?
- CQ15.3 How does TCP session establishment and termination processes facilitate reliable communication?
- CQ16.1 What is the functions of the Application Layer to provide network services to end users?
- CQ16.2 How does end-user application operate in a peer-to-peer network?
- CQ16.3 List of services operate in Application Layer? How does it works? Do lab 8
- CQ17.1 Why basic security measure are necessary on network devices?
- CQ17.2 How to detect vulnerabilities on the network and technical mitigation?
- CQ17.3 Why do we need to mitigate security threats on a network devices?
- CQ18.1 What is one of the most effective security tools available for protecting users from external threats?
- CQ18.2 What type of attack may involve the use of tools such as nslookup and fping?
- CQ18.3 Which component is designed to protect against unauthorized communications to and from a computer?
- CQ19.1 Which type of network threat is intended to prevent authorized users from accessing resources?
- CQ19.2 Which element of scaling a network involves identifying the physical and logical topologies?
- CQ20.1 A small company has only one router as the exit point to its ISP. Which solution could be adopted to maintain connectivity if the router itself, or its connection to the ISP, fails?
- CQ20.2 What mechanism can be implemented in a small network to help minimize network latency for real-time streaming applications?
Labs
LAB 01 – Tổng quan mạng (Client–Server)
1
2
3
4
5
6
7
8
9
client_request = "GET /index.html HTTP/1.1"
print("Client gửi yêu cầu:")
print(client_request)
print("-" * 40)
server_response = "HTTP/1.1 200 OK\n<html><body>Hello World</body></html>"
print("Server phản hồi:")
print(server_response)
LAB 02 – OSI & TCP/IP (Encapsulation / De-encapsulation)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Encapsulation
app_data = "USER=alice; ACTION=login"
l4_tcp_header = "[TCP src_port=49152 dst_port=443]"
l3_ip_header = "[IP src=10.0.0.10 dst=203.0.113.20]"
l2_eth_header = "[ETH src=AA:BB:CC:DD:EE:01 dst=AA:BB:CC:DD:EE:FF]"
l2_eth_trailer = "[FCS=OK]"
segment = l4_tcp_header + app_data
packet = l3_ip_header + segment
frame = l2_eth_header + packet + l2_eth_trailer
print("=== Application Data ===")
print(app_data)
print("\n=== After L4 (TCP Segment) ===")
print(segment)
print("\n=== After L3 (IP Packet) ===")
print(packet)
print("\n=== After L2 (Ethernet Frame) ===")
print(frame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# De-encapsulation
received_frame = frame
def strip_prefix(s, prefix):
return s[len(prefix):] if s.startswith(prefix) else s
def strip_suffix(s, suffix):
return s[:-len(suffix)] if s.endswith(suffix) else s
x = received_frame
x = strip_prefix(x, l2_eth_header)
x = strip_suffix(x, l2_eth_trailer)
print("\nAfter removing L2 header/trailer:")
print(x)
x = strip_prefix(x, l3_ip_header)
print("\nAfter removing L3 header:")
print(x)
x = strip_prefix(x, l4_tcp_header)
print("\nAfter removing L4 header:")
print(x)
LAB 03 – Physical Layer & Performance
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
data_size_mb = 50 # MB
bandwidth_mbps = 100 # Mbps
distance_km = 5000 # km
speed_km_per_s = 200000 # km/s (xấp xỉ trong cáp quang)
transmission_time = (data_size_mb * 8) / bandwidth_mbps
propagation_time = distance_km / speed_km_per_s
total_delay = transmission_time + propagation_time
throughput = (data_size_mb * 8) / total_delay
print("Transmission delay (s):", transmission_time)
print("Propagation delay (s):", propagation_time)
print("Total delay (s):", total_delay)
print("Estimated throughput (Mbps):", throughput)
LAB 04 – Number Systems & Address Representation
1
2
3
4
5
6
7
8
9
10
11
decimal_value = 192
print("Decimal:", decimal_value)
print("Binary :", bin(decimal_value))
print("Hex :", hex(decimal_value))
binary_value = "11001010"
print("\nBinary to Decimal:", int(binary_value, 2))
hex_value = "AF"
print("Hex to Binary:", bin(int(hex_value, 16)))
LAB 05 – Data Link Layer & Ethernet (MAC Learning)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mac_table = {}
def process_frame(src_mac, dst_mac, in_port):
mac_table[src_mac] = in_port
if dst_mac in mac_table:
out_port = mac_table[dst_mac]
action = f"Forward to port {out_port}"
else:
action = "Flood to all ports except incoming port"
return action
frames = [
("11:22:33:44:55:66", "AA:BB:CC:DD:EE:FF", 1),
("AA:BB:CC:DD:EE:FF", "11:22:33:44:55:66", 2),
]
for src, dst, port in frames:
result = process_frame(src, dst, port)
print(f"Frame from {src} to {dst} on port {port} -> {result}")
print("\nMAC Table:", mac_table)
LAB 06 – Network Layer & Routing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
routing_table = [
("10.0.0.0/24", "eth0"),
("172.16.0.0/16", "eth1"),
("0.0.0.0/0", "eth2")
]
destination_ip = "172.16.5.20"
def route_lookup(ip):
if ip.startswith("10.0.0."):
return "eth0"
elif ip.startswith("172.16."):
return "eth1"
else:
return "eth2"
out_interface = route_lookup(destination_ip)
print("Destination IP:", destination_ip)
print("Forward out via interface:", out_interface)
LAB 07 – ARP, DNS, DHCP
1
2
3
4
5
6
7
8
9
10
11
# ARP Table
arp_table = {}
def arp_request(ip, mac):
arp_table[ip] = mac
arp_request("192.168.1.20", "AA:BB:CC:DD:EE:FF")
print("ARP Table:")
for ip, mac in arp_table.items():
print(ip, "->", mac)
1
2
3
4
5
6
7
8
# DNS Resolution
import socket
hostname = "www.example.com"
ip_address = socket.gethostbyname(hostname)
print("Hostname:", hostname)
print("Resolved IP:", ip_address)
1
2
3
4
5
6
7
8
9
10
# DHCP Process
dhcp_process = [
"DHCP Discover",
"DHCP Offer",
"DHCP Request",
"DHCP Acknowledge"
]
for step in dhcp_process:
print(step)
LAB 08 – IPv4 & IPv6 Addressing
1
2
3
4
5
6
7
8
9
10
11
12
# IPv4 Subnetting
import ipaddress
network = ipaddress.IPv4Network("192.168.10.0/24")
print("Network:", network.network_address)
print("Broadcast:", network.broadcast_address)
print("Total hosts:", network.num_addresses - 2)
print("\nSubnets (/26):")
for subnet in network.subnets(new_prefix=26):
print(subnet)
1
2
3
4
5
6
# IPv6 Address
import ipaddress
ipv6 = ipaddress.IPv6Address("2001:0db8:abcd:0012:0000:0000:0000:0001")
print("IPv6:", ipv6.compressed)
print("Is Global:", ipv6.is_global)
LAB 09 – ICMP, TCP, UDP
1
2
3
4
5
6
7
# ICMP (Ping Logic)
icmp_request = "ICMP Echo Request"
icmp_reply = "ICMP Echo Reply"
print("Send:", icmp_request)
print("Receive:", icmp_reply)
print("Round-trip time: simulated")
1
2
3
4
5
# TCP Handshake
steps = ["SYN", "SYN-ACK", "ACK"]
for step in steps:
print(step)
1
2
3
# UDP Send
udp_message = "Video frame data"
print("Send UDP datagram:", udp_message)
LAB 10 – Network Security Fundamentals
1
2
3
4
5
6
7
8
9
10
defense_layers = [
"Firewall",
"IDS/IPS",
"Access Control",
"Application Validation",
"Monitoring & Logging"
]
for layer in defense_layers:
print("Defense layer:", layer)
Learning Materials
- [PDF] Ngô Hải Anh. Lý thuyết mạng máy tính (Computer Networks handbook), 2025
- [PDF] Ngô Hải Anh. Thực hành mạng máy tính (Computer Networks Labs), 2026
- Cisco CCNA, Introduction to Networks, 2023.
- James Kurose, Keith Ross. Computer Networking: A Top-Down Approach, 8th Edition, 2020.