CS206 — Final Term Summary (Lectures 23–192)
📘 Lecture 23 — Learning Ethernet addresses
📖 Overview: This lecture explains how Ethernet switches dynamically learn MAC addresses to build their forwarding tables. It covers the fundamental processes of learning, flooding, and filtering that allow switches to intelligently forward frames without manual configuration.
🗂️ Topics Covered
The lecture covers how switches dynamically learn MAC addresses by examining source addresses in incoming frames, the mechanism of flooding for unknown destinations, the difference between forwarding and filtering decisions, the concept of broadcast addresses, and how switches handle broadcast frames by flooding them to all ports.
📝 Lecture Summary
Learning Ethernet addresses
A switch maintains a switching table or Media Access Control (MAC) address table to make forwarding decisions. When a switch first powers up, the MAC address table is empty. Switches dynamically learn MAC addresses and corresponding ports through a process called learning. Whenever a NIC sends an Ethernet frame, the NIC places its own MAC address as the source MAC address, and the switch learns the sender's MAC address by examining this source address.
🔑 Definition — Learning: The process by which a switch dynamically discovers MAC addresses and their associated ports by examining the source MAC address of incoming Ethernet frames.
Forwarding, Filtering, and Flooding
When a switch receives a frame, it makes a forwarding decision by comparing the destination MAC address with the MAC address table, sending the frame out on one port. Conversely, by not sending the frame out on other ports, the switch makes a filtering decision, preventing the frame from exiting those ports. For frames sent before the switch has learned the MAC address table, the switch performs flooding.
🔑 Definition — Flooding: When a switch receives a frame whose destination address is not in the MAC address table, the switch forwards the frame out on all ports except the one over which the frame was received.
📌 Example: In Figure 23.1, when a switch receives a frame with an unknown destination, it floods the frame to all ports (except the incoming port). Barney, Wilma, and Betty all receive a copy. When Barney replies, the switch enters Barney's MAC address in the table, so future frames sent to Barney will be forwarded correctly.
💡 Why this matters: Flooding ensures that frames reach their destination even when the switch has not yet learned the destination's MAC address. This is essential for initial network communication.
Broadcast Addresses
An Ethernet or MAC address represents an individual NIC attached to a LAN, known as unicast MAC addresses. When a computer wants to forward a frame to all devices on the LAN, Ethernet defines a special MAC address called the broadcast address. The value is FFFF.FFFF.FFFF.
🔑 Definition — Broadcast address: A special Ethernet MAC address (FFFF.FFFF.FFFF) used to send frames to all devices on a local area network.
📌 Example: In Figure 23.2, when a computer sends a frame with the broadcast address FFFF.FFFF.FFFF, the switch floods the broadcast frame to all ports, ensuring every device on the LAN receives the frame.
⭐ Key Takeaways
The switch learns MAC addresses dynamically by examining the source MAC address of each incoming frame. When a destination MAC address is unknown, the switch uses flooding to send the frame out on all ports except the receiving port. This flooding mechanism allows the switch to learn the correct port when the destination device responds. The broadcast address (FFFF.FFFF.FFFF) is used to send frames to all devices on the LAN, and switches always flood broadcast frames. The combination of learning, forwarding, filtering, and flooding allows Ethernet switches to operate efficiently without manual configuration.
🧠 Quick Revision Questions
- What happens to a frame when a switch receives it and the destination MAC address is not found in the MAC address table?
- How does a switch initially learn the MAC addresses connected to its ports?
- What is the difference between forwarding and filtering decisions made by an Ethernet switch?
- What is the Ethernet broadcast address, and how does a switch handle broadcast frames?
- In the scenario described in Lecture 23, why does Barney receive a copy of the flooded frame, and how does this lead to the switch learning Barney's MAC address?
📘 Lecture 24 — Ethernet Network Speeds
📖 Overview: This lecture covers the evolution of Ethernet speeds from the original 10 Mbps standard through Fast Ethernet, Gigabit Ethernet, and 10 Gigabit Ethernet. It explains how different speeds maintain compatibility through common headers and forwarding logic, and introduces key concepts like auto-negotiation for mixed-speed networks.
🗂️ Topics Covered
The lecture traces the IEEE working groups that defined each Ethernet speed standard (802.3u for Fast Ethernet, 802.3z and 802.3ab for Gigabit Ethernet, 802.3ae for 10 Gigabit Ethernet), explains how higher speeds require better cabling while keeping the same MAC frame structure, covers optical versus copper cabling trade-offs, and concludes with how switches support multiple speeds through auto-negotiation between NICs and switch ports.
📝 Lecture Summary
Ethernet Speed Evolution
The original IEEE Ethernet standard used a 10-Mbps transmission rate where bits cross wires at 10 million bits per second. The first major speed enhancement came from IEEE working group 802.3u, creating Fast Ethernet (FE) at 100 Mbps. The IEEE deliberately kept Fast Ethernet identical to original Ethernet in every way except bit encoding and speed — same headers, trailers, CSMA/CD logic, and 6-byte MAC addresses. This backward compatibility meant vendors needed only small changes to existing products, enabling rapid market acceptance. The original 10 Mbps twisted pair Ethernet was called 10BaseT, while Fast Ethernet was called 100BaseT.
Gigabit and 10 Gigabit Ethernet
Working groups 802.3z and 802.3ab created Gigabit Ethernet (GigE) at 1000 Mbps (1 Gbps). The only difference between Gigabit Ethernet and Fast Ethernet is speed, requiring better cabling to support higher rates while keeping everything else identical. The 802.3z working group defined GigE over optical cable (glass fiber transmitting light instead of electricity), while 802.3ab defined GigE over copper cabling. Optical cabling offers higher speeds, longer distances, fewer errors, and better security — but at higher cost than copper. 10 Gigabit Ethernet (10 GigE) was defined by IEEE working group 802.3ae.
🔑 Definition — Auto-negotiation: An IEEE standard that allows the switch and NIC on either end of the cable to automatically negotiate to determine the speed (and whether to use full duplex or half duplex). Both devices must support multiple speeds and auto-negotiation logic.
Supporting Multiple Speeds
Because all advanced Ethernet forms use the same header, switch forwarding and learning logic does not change based on speed. A switch can have ports operating at different speeds simultaneously — some 10 Mbps, some 100 Mbps, some 1 Gbps — and they all work together using identical frame forwarding rules. The challenge is that fixed-speed ports don't provide an easy migration path.
📌 Example: A building floor has users with both 10 Mbps NICs and 100 Mbps Fast Ethernet NICs. You buy a 24-port switch with 12 10-Mbps ports and 12 100-Mbps ports. Fred uses a 10-Mbps NIC connected to a 10-Mbps port; Wilma uses a 100-Mbps NIC connected to a 100-Mbps port. If all Fast Ethernet ports are occupied, you cannot add another 100-Mbps NIC without replacing the switch.
💡 Why this matters: Auto-negotiation solves this problem by allowing a single switch port (e.g., a 10/100 autosensing port) to automatically detect and match the speed of whatever NIC is connected. The negotiation works like a simple conversation: "I want to use 100 Mbps" — "Okay, me too. Let's do it."
⭐ Key Takeaways
Ethernet speeds have evolved from 10 Mbps (10BaseT) through 100 Mbps Fast Ethernet (100BaseT), 1000 Mbps Gigabit Ethernet (GigE over optical via 802.3z and copper via 802.3ab), to 10 Gbps (10 GigE via 802.3ae) — all while maintaining identical frame headers, MAC addresses, and switch forwarding logic. Higher speeds require better cabling (optical for maximum performance, copper for cost savings) but preserve full backward compatibility in frame structure. Auto-negotiation is essential for mixed-speed environments, allowing NICs and switches to automatically agree on the highest mutually supported speed and duplex setting. The key exam point is that speed upgrades only change bit encoding and physical layer requirements — not the fundamental Ethernet frame format or CSMA/CD logic.
🧠 Quick Revision Questions
- What IEEE working group defined Fast Ethernet, and what speed does it operate at?
- What are the two IEEE working groups that defined Gigabit Ethernet, and what cabling types did each specify?
- Why can switches support multiple Ethernet speeds simultaneously without changing their forwarding logic?
- How does auto-negotiation work between a switch port and a NIC, and what two parameters does it negotiate?
- What are the four main advantages of optical cabling over copper cabling for high-speed Ethernet?
📘 Lecture 25 — Multiple Physical LANs
📖 Overview: This lecture explains how physical LANs and multiple physical LANs handle broadcasts. It covers broadcast domains, how hubs and switches process broadcast frames, and why multiple switches are needed to create separate LANs for security purposes. The lecture demonstrates that broadcasts and unicasts do not cross between physically separate LANs.
🗂️ Topics Covered
The lecture begins by explaining how hubs and switches both handle broadcast frames identically by forwarding them out all ports except the incoming port. It defines broadcast domains and shows three examples of single broadcast domains created by hubs and switches. The lecture then introduces a scenario requiring separate LANs for security, demonstrating that two switches must be used to create multiple physical LANs, and explains that broadcasts and unicasts cannot travel between physically unconnected switches.
📝 Lecture Summary
Broadcast Handling by Hubs and Switches
Hubs and switches behave differently in general, but process broadcast frames identically. A broadcast frame is an Ethernet frame that has a destination MAC address field set to FFFF.FFFF.FFFF. When a switch receives a broadcast frame, it forwards the frame out on all ports except to the incoming port. A hub works in the same fashion for all frames including broadcasts.
🔑 Definition — Broadcast domain: a group of devices for which a broadcast frame sent by one device is received by all other devices in the same group.
📐 Key Rule: Hubs and switches both forward broadcasts out all ports except the incoming port → every device connected to the same hub or switch (or interconnected hubs and switches) receives every broadcast.
📌 Example — Three broadcast domain scenarios:
- A single hub creates a single broadcast domain
- A single switch also creates a single broadcast domain
- A hub and a switch, connected together, also create a single broadcast domain
💡 Why this matters: All devices in a single broadcast domain receive all broadcasts, which can create security and performance issues — especially as networks grow.
The Need for Multiple Physical LANs
A LAN consists of the devices inside a single broadcast domain. In a small network scenario, your boss requires that "Fred and Barney" be on a different LAN than "Betty and Wilma" because the boys work with super-secret projects and security requirements cannot be met if Betty and Wilma are on the same LAN.
🔑 Definition — Multiple physical LANs: separate broadcast domains created by using physically unconnected switches.
📌 Example — To put Betty and Wilma on a different LAN than Fred and Barney, you must use two switches that are not physically connected to each other. The top switch connects Fred and Barney; the bottom switch connects Betty and Wilma.
Broadcast and Unicast Isolation Between Physical LANs
Both broadcast frames and unicast frames from the top LAN cannot be forwarded to the bottom LAN as there is no physical cable connecting the two switches.
🔑 Key Properties of Multiple Physical LANs:
- Each LAN has an independent MAC address table as compared to the other LANs
- Broadcasts originating in one LAN are flooded inside that LAN only
- Broadcasts originating in one LAN are not forwarded into the other LANs
- Unicasts originating in one LAN are not forwarded into the other LANs
📌 Example — If Fred sends a broadcast frame on the top LAN, only Barney receives it — Betty and Wilma on the bottom LAN never see that broadcast. Similarly, if Fred sends a unicast frame to Barney, that frame stays within the top LAN and never reaches the bottom LAN.
💡 Why this matters: Physical separation of switches provides security by ensuring that traffic (both broadcast and unicast) from one group cannot leak into another group's network.
⭐ Key Takeaways
The most critical points from this lecture are: (1) Broadcast frames have destination MAC address FFFF.FFFF.FFFF and are forwarded by both hubs and switches out all ports except the incoming port. (2) A broadcast domain is the group of devices that all receive each other's broadcasts — a single hub, a single switch, or a hub and switch connected together each form one broadcast domain. (3) A LAN equals a single broadcast domain. (4) To create separate LANs for security, you must use physically unconnected switches — broadcasts and unicasts cannot travel between them. (5) Each physical LAN maintains its own independent MAC address table.
🧠 Quick Revision Questions
- What is the destination MAC address in a broadcast Ethernet frame?
- When a switch receives a broadcast frame, which ports does it forward the frame to?
- What is a broadcast domain?
- How would you create two separate physical LANs so that broadcasts from one group cannot reach another group?
- Can a unicast frame originating in one physical LAN be forwarded into a different physical LAN if the switches are not connected by a cable?
📘 Lecture 26 — Introduction to Virtual LANs
📖 Overview: This lecture introduces Virtual LANs (VLANs), explaining how they create multiple broadcast domains using a single physical switch. Understanding VLANs is critical for network segmentation, improving security, and reducing costs by eliminating the need for additional switch hardware.
🗂️ Topics Covered
The lecture explains the concept of a physical LAN as a broadcast domain, introduces VLANs as a cost-effective alternative to multiple physical switches, describes how switches create multiple broadcast domains using subsets of physical ports, and illustrates how broadcasts and unicasts are isolated within each VLAN, with switches maintaining separate MAC address tables per VLAN.
📝 Lecture Summary
What is a Physical LAN?
A physical LAN, also known as a broadcast domain, is the group of devices for which a broadcast frame sent by one device is received by all other devices in the group. To create multiple separate LANs, multiple physical LAN switches were traditionally required, which is expensive.
🔑 Definition — Physical LAN (Broadcast Domain): The set of devices that will receive a broadcast frame originated by any device within that group.
Introduction to Virtual LANs (VLANs)
VLANs allow you to create multiple LANs without requiring extra switch hardware. A Virtual LAN is a broadcast domain created by a switch using a subset of the physical ports on that switch. LAN switch vendors include a feature that allows you to create multiple broadcast domains in a single switch. A network engineer can configure some physical ports of a switch as if they are in one VLAN (one broadcast domain) and configure other ports to be in a different VLAN (a different broadcast domain).
🔑 Definition — VLAN (Virtual LAN): A broadcast domain created by a switch using a subset of its physical ports.
📐 Concept: One physical switch → Multiple logical broadcast domains (VLANs) → No need for additional physical switches.
📌 Example: A single switch with ports 1-2 configured as VLAN 10, and ports 3-4 configured as VLAN 20. Broadcasts from a device in VLAN 10 are only received by devices in VLAN 10, and not by devices in VLAN 20. This behaves exactly like having two separate physical switches.
💡 Why this matters: VLANs drastically reduce hardware costs and simplify network management by allowing logical segmentation of a network from a single device.
VLAN Behavior: Broadcast and Unicast Isolation
This network behaves just like it would with two physical switches. However, you get the advantage of not having to buy another switch. The switch does learn all MAC addresses from ports across all VLANs, but the switch does not forward broadcasts or unicasts from one VLAN to the other. The switch keeps a separate address table for each VLAN.
🔑 Definition — VLAN Isolation: A switch does not forward broadcasts or unicasts from one VLAN to another; each VLAN is a separate broadcast domain.
📐 Principle: Switch maintains a separate MAC address table per VLAN.
📌 Example: In Figure 26.1, two VLANs are shown. A broadcast from a device in VLAN A will only reach other devices in VLAN A. The switch learns the MAC addresses of devices in VLAN A into one table, and the MAC addresses of devices in VLAN B into a separate table. Unicast frames are forwarded based on the correct VLAN-specific table, preventing data leakage between VLANs.
⭐ Key Takeaways
- A physical LAN is a broadcast domain; VLANs create multiple broadcast domains on a single switch. 2. VLANs save money by eliminating the need for multiple physical switches to create separate networks. 3. A switch maintains a separate MAC address table for each VLAN, ensuring traffic isolation. 4. Broadcasts and unicasts are not forwarded between VLANs, providing security and traffic segregation. 5. VLANs are configured by assigning physical ports to specific VLAN IDs.
🧠 Quick Revision Questions
- What is a physical LAN, and what is its defining characteristic regarding broadcasts?
- How does a VLAN allow you to create multiple LANs without buying extra switch hardware?
- Does a single switch learn MAC addresses from multiple VLANs, and does it forward traffic between them?
- What data structure does a switch maintain separately for each VLAN?
- In Figure 26.1, if a device in VLAN 10 sends a broadcast, will a device in VLAN 20 receive that broadcast?
📘 Lecture 27 — Packing VLAN’s frames in a Trunk
📖 Overview: This lecture explains why VLAN trunking becomes necessary when multiple switches connect devices from different VLANs. It covers how switches forward frames between VLANs across trunk links, and how extra headers solve the problem of identifying which VLAN a frame belongs to when it arrives at a receiving switch.
🗂️ Topics Covered
The lecture begins by recapping that without VLANs, switches can forward frames between multiple switches using their own address tables. Then it introduces the concept of a trunk — the Ethernet cable segment connecting two switches. The main focus is on VLAN trunking: when VLANs are added, a receiving switch must know which VLAN's MAC address table to use. The solution involves adding an extra header to frames before sending them over the trunk, identifying the VLAN, so the receiving switch knows which address table to consult.
📝 Lecture Summary
Recap: Forwarding Between Two Switches Without VLANs
The lecture starts by revisiting a scenario where 4 PCs (Fred, Betty, Barney, Wilma) are connected via two switches, with two PCs per switch. When a frame is sent between switches, each switch uses its own address table to decide where to forward the frame. The Ethernet cable segment between the two switches is called a trunk. This basic switching logic works fine when no VLANs are involved — each switch independently learns MAC addresses and forwards frames accordingly.
The Problem: Adding VLANs Creates Confusion
When VLANs are introduced — for example, Fred and Barney on VLAN1, Wilma and Betty on VLAN2 — frames must cross the trunk between switches. However, when a switch receives a frame over that trunk, it does not know which VLAN's MAC address table to use. As shown in Figure 27.2, Switch2 faces a dilemma: should it look in the VLAN1 address table or the VLAN2 address table? Without additional information, the switch cannot correctly process the frame.
🔑 Definition — VLAN Trunking: A mechanism used by switches to identify which VLAN a frame belongs to when transmitted over a trunk link between switches.
The Solution: Adding an Extra Header
To solve the problem, switches use VLAN trunking. Before sending a frame over the Ethernet trunk cable to the other switch, the sending switch adds another header to the frame. This extra header identifies the frame as belonging to a specific VLAN (e.g., VLAN1). When the receiving switch sees this extra header on frames arriving over the trunk port (e.g., Fa24), it knows exactly which MAC address table to use for forwarding. The receiving switch expects all frames coming in over that trunk port to have this extra header, so it can now process the frame correctly.
📌 Example: Switch1 wants to send a frame from Fred (VLAN1) to Barney (also VLAN1, on the other switch). Before sending the frame over the trunk, Switch1 adds an extra header labeling the frame as "VLAN1." When Switch2 receives this frame over port Fa24, it sees the extra header and knows to use its VLAN1 address table for forwarding, correctly delivering the frame to Barney.
💡 Why this matters: Without VLAN trunking, switches would have no way of knowing which VLAN a frame belongs to when it arrives over a trunk link, causing frames to be misdirected or dropped. This mechanism is essential for maintaining VLAN isolation across multiple switches.
⭐ Key Takeaways
VLAN trunking is essential when connecting multiple switches that carry multiple VLANs. The trunk is the Ethernet cable between switches, and without an identifier, a receiving switch cannot determine which MAC address table to use. The solution is to add an extra header to frames before transmission over the trunk, labeling them with their VLAN number. This allows the receiving switch to correctly process each frame using the appropriate VLAN's MAC address table. Understanding this mechanism is critical for designing scalable and isolated VLAN networks across multiple switches.
🧠 Quick Revision Questions
- What is a trunk in the context of connecting multiple switches?
- Why does a switch face a dilemma when receiving a frame over a trunk if VLANs are configured?
- What is the purpose of the extra header added by VLAN trunking?
- How does the receiving switch know which MAC address table to use for a frame arriving over a trunk port?
- In the example given, which VLAN's frames would be labeled with an extra header before being sent over the trunk?
📘 Lecture 28 — Email: A Network Application
📖 Overview: This lecture explains how email works as a network application by drawing an analogy to the postal service. It covers the roles of email servers, the process of sending and receiving email, and the structure of email addresses. Understanding email as a network application is essential for grasping how application-layer protocols enable communication over the internet.
🗂️ Topics Covered
The lecture begins by comparing email to the postal service, using the analogy of a postal worker picking up and dropping off mail. It then explains how email works without paper, detailing the roles of email servers and how they forward messages. Finally, it discusses email address structure and the roles of ISPs and corporate networks in email delivery.
📝 Lecture Summary
Email: A Network Application
Email allows you to send text messages electronically, similar to sending a paper letter through the postal service. You type text, add the recipient's email address, and send the message. Sending an email is like giving it to the postal service, which delivers it so that your friend can check and receive it later. Each email includes the text, the recipient's address, and your own email address for replies. Email also enables sending messages to multiple recipients at once.
When you create and send an email, your PC does not send it directly to your friend's PC. Instead, you send the message to your email server, which is the equivalent of dropping off a letter at the local post office. Your email server then sends the email to your friend's email server, similar to how the postal service delivers a paper letter to the post office near your friend. Finally, your friend checks his email and retrieves the message from his local email server, which is like retrieving paper mail from a PO box.
🔑 Definition — Email Server: A computer that stores and forwards email messages, analogous to a post office that handles mail delivery. 📌 Example: If you send an email from home using an ISP, your PC sends it to your ISP's email server, which forwards it to your friend's ISP's email server. Your friend later retrieves it from that server.
Internet service providers (ISPs) typically have one or more email servers. If you connect to an ISP from home, you use that ISP's email servers to drop off and pick up email. In a corporate enterprise network, you typically use your company's email servers for the same purpose.
🔑 Definition — ISP (Internet Service Provider): A company that provides internet access and often offers email server services for its customers. 📌 Example: A home user connects to Comcast (an ISP) and uses Comcast's email servers to send and receive email.
Email Addresses
Email addresses have two parts: the name of the email user and the name of the email server (domain). For example, in the address "user@example.com," "user" is the local part (the mailbox name), and "example.com" is the domain name of the email server.
🔑 Definition — Email Address: An identifier for a recipient, consisting of a local part (username) and a domain part (server name), separated by the "@" symbol. 📋 Example: In "john.doe@gmail.com," "john.doe" is the user's mailbox name, and "gmail.com" is the email server's domain.
⭐ Key Takeaways
Email functions as a store-and-forward network application where messages are sent from a client to a local email server, then forwarded to the recipient's email server, and finally retrieved by the recipient. This process mirrors the postal service's delivery chain, with email servers acting as post offices. Understanding email addresses (user@domain) is crucial for proper message routing. The distinction between ISPs and corporate networks highlights how email infrastructure is managed differently for home users versus enterprise users. Email supports multiple recipients, making it a versatile communication tool.
🧠 Quick Revision Questions
- What is the role of an email server in sending an email?
- How is sending an email similar to sending a paper letter through the postal service?
- What are the two parts of an email address, and what does each represent?
- Why does your PC not send an email directly to your friend's PC?
- How do ISPs and corporate networks differ in providing email services?
📘 Lecture 29 — TCP/IP Email Standards: SMTP, POP3
📖 Overview: This lecture explains the fundamental TCP/IP email standards used for sending and receiving emails across the internet. It covers the Internet Message Format (IMF), Simple Mail Transport Protocol (SMTP), and Post Office Protocol Version 3 (POP3), demonstrating how email clients and servers work together to deliver messages reliably.
🗂️ Topics Covered
This lecture covers the three main components of TCP/IP email standards: Internet Message Format (RFC 2822) which defines email headers, Simple Mail Transport Protocol (SMTP) which handles transmitting and receiving emails between servers, and Post Office Protocol Version 3 (POP3) which allows clients to retrieve emails from servers. It also explains the role of email client software and how SMTP commands like EHLO, Mail, and RCPT manage the email forwarding process.
📝 Lecture Summary
Internet Message Format, SMTP, and POP3
The TCP/IP E-mail standard consists of three main components. Internet Message Format (IMF) is described in RFC 2822 and defines the headers used to encapsulate the e-mail text, sender and receiver e-mail addresses. Simple Mail Transport Protocol (SMTP) is defined in RFC 2821 and provides details about protocols for transmitting and receiving e-mails. Post Office Protocol Version 3 (POP3) is defined in RFC 1939 and provides information about protocols for a client to retrieve e-mail from a server.
🔑 Definition — Internet Message Format (IMF): An RFC 2822 standard that describes headers used to encapsulate e-mail text, sender, and receiver e-mail addresses.
🔑 Definition — Simple Mail Transport Protocol (SMTP): An RFC 2821 standard that provides details about protocols for transmitting and receiving e-mails.
🔑 Definition — Post Office Protocol Version 3 (POP3): An RFC 1939 standard that provides information about protocols for a client to retrieve e-mail from a server.
Email Client Software
An Email Client software is a user interface that accepts text typed from the keyboard, understands what a user clicks on the screen, stores e-mails on the computer hard disk, and so on. E-mail TCP/IP protocols are implemented in the e-mail client software so that it can use the network. The e-mail client application is not the same thing as the application layer protocol.
💡 Why this matters: Understanding that the email client application and the application layer protocol are distinct is crucial for troubleshooting network issues and comprehending how email systems are layered.
Email Headers and SMTP Commands
An e-mail client sends not only the text of the e-mail message, but also a header. The header contains several fields, such as the recipient's and sender's e-mail addresses. All the clients and servers know where to find all the information needed to forward the e-mail correctly. E-mail clients and servers use SMTP protocols to manage the process of sending and receiving e-mail. SMTP defines messages so that the e-mail clients and servers can manage the e-mail forwarding process.
🔑 Definition — EHLO (Extended Hello) command: An SMTP command that identifies the client.
🔑 Definition — Mail command: An SMTP command that tells the server that the client wants to either send or receive e-mail.
🔑 Definition — RCPT command: An SMTP command that identifies the recipient of the e-mail.
📌 Example: The SMTP communication process works as follows: The client first sends the EHLO command to identify itself. The server replies. Next, the client sends the Mail command to indicate it wants to send an e-mail. The server acknowledges. Then, the client sends the RCPT command to identify the recipient. After the server replies with an acknowledgement (ACK) message to each of these first three commands, the e-mail can be transmitted.
⭐ Key Takeaways
The three essential TCP/IP email standards are Internet Message Format (RFC 2822) for headers, SMTP (RFC 2821) for transmitting/receiving emails between servers, and POP3 (RFC 1939) for clients to retrieve emails from servers. Email clients use SMTP commands EHLO (identify client), Mail (indicate send/receive intention), and RCPT (identify recipient) to manage the email forwarding process. The email client application is distinct from the application layer protocol it uses. Email headers defined by RFC 2822 contain critical fields like sender and recipient addresses that all clients and servers understand for correct forwarding. SMTP requires acknowledgement (ACK) from the server after each of the first three commands before email transmission can begin.
🧠 Quick Revision Questions
- What are the three main TCP/IP email standards and their corresponding RFC numbers?
- What is the difference between an email client application and the application layer protocol it uses?
- What is the purpose of the EHLO, Mail, and RCPT commands in SMTP?
- What does the Internet Message Format (RFC 2822) define, and what information does an email header contain?
- When does SMTP allow the actual email transmission to begin?
📘 Lecture 30 — File Transfer Protocol (FTP)
📖 Overview: This lecture introduces the File Transfer Protocol (FTP), which is an application-layer protocol used to transfer files between a client and a server over a network. It explains how FTP works, including authentication and data transfer, using a warehouse analogy to simplify the concept. Understanding FTP is essential for grasping how files are stored and retrieved in networked environments.
🗂️ Topics Covered
The lecture explains the working of the File Transfer Protocol (FTP) using a warehouse analogy, detailing how files are stored and retrieved from an FTP server. It covers the key processes of authentication (using USER and PASS commands) and data transfer (using PUT and GET commands). The lecture also notes that FTP is defined in RFC 959 and uses separate TCP connections for control messages and actual file transfers.
📝 Lecture Summary
File Transfer Protocol (FTP)
The File Transfer Protocol (FTP) works by putting files on an FTP server and getting them off it. This is analogous to a company leasing a warehouse to store goods: people who need something can go get it when needed. For the system to be useful, there must be a mechanism to find items and keep track of inventory. FTP uses client software on the end user's computer and implements application-layer protocols. The FTP client must connect to a server and identify itself to perform any useful action. The FTP server software runs on a physical server.
🔑 Definition — FTP (File Transfer Protocol): A standard network protocol used to transfer files from one host to another over a TCP-based network, such as the Internet. It uses a client-server model.
Example: Authentication and Data Transfer
The lecture provides a sequence of steps for storing and retrieving files on an FTP server.
Authentication (Identifying the user):
- The FTP client uses the FTP USER command to provide the username to the FTP server.
- The FTP client uses the FTP PASS command to supply the password to the server.
Data Transfer (Putting a file on the server):
3. If authenticated, the FTP client uses the PUT command to inform the server that the file's name is file1 and will be available in upcoming messages.
4. The client sends the actual contents of the file.
Data Transfer (Getting a file from the server):
To retrieve a file, the client follows the same connection and authentication sequence. Instead of issuing a PUT command, the client issues a GET command, which refers to copying a file from the server to the client.
🔑 Definition — PUT: An FTP command used to copy a file from the client to the server. 🔑 Definition — GET: An FTP command used to copy a file from the server to the client.
📌 Example: Keith wants to store file1 on the FTP server. He uses his client to send a USER command with his username and a PASS command with his password. After authentication, he sends a PUT command identifying file1 as the target, followed by the file's contents. Later, Conner wants to retrieve file1. He authenticates using USER and PASS, then sends a GET command for file1, and the server sends the file's contents to his client.
Additional Key Points
FTP is defined in RFC 959. A critical design feature of FTP is that it uses a different underlying TCP connection for the control messages (like USER, PASS, PUT, GET) versus the actual file transfer. This means FTP uses two separate channels for communication.
💡 Why this matters: Using separate control and data connections allows FTP to handle interruptions and large file transfers more robustly. The control connection stays open for commands, while a new data connection can be created for each file transfer.
⭐ Key Takeaways
FTP is an application-layer protocol for transferring files between a client and a server, operating through a standard authentication process using USER and PASS commands. Once authenticated, clients can PUT files onto the server and GET files from the server. A fundamental design principle of FTP, defined in RFC 959, is its use of two separate TCP connections: one for control messages and one for the actual data transfer.
🧠 Quick Revision Questions
- What is the purpose of the
USERandPASScommands in the FTP authentication process? - What is the difference between the
PUTandGETcommands in FTP? - How does FTP use TCP connections differently from the example of SMTP or POP3?
- Why is a clear "documentation" or indexing system important for a functional FTP server, as illustrated by the warehouse analogy?
- According to the lecture, what is the name of the RFC that defines the File Transfer Protocol?
📘 Lecture 31 — World Wide Web and HTTP Protocol
📖 Overview: This lecture explains how the World Wide Web functions, focusing on the interaction between web browsers (clients) and web servers. It covers the HTTP protocol, URLs, HTML files, and the step-by-step process of loading a web page, which is fundamental to understanding how the internet delivers content to users.
🗂️ Topics Covered
The lecture begins by explaining how a website is built and stocked with content on a web server, using FredsCo as an example. It then defines the URL and HTTP protocol, including the GET command. The role of HTML as a markup language for describing web page content is introduced, followed by a detailed multi-step example of how a browser loads a webpage by downloading multiple objects.
📝 Lecture Summary
Building and Stocking the New Retail Store, AKA New Website
The end user PC runs a web browser (also called a web client), but content must first be created and placed on a web server. Content consists of individual web pages, and a collection of these is called a website. For example, FredsCo installs web server software on a computer, puts created files (content) onto it, and makes it accessible via http://www.fredsco.com. When a customer named Conner opens his browser and connects to that URL, the web server receives Conner's request and sends the web page back to him.
🔑 Definition — Web Server: A computer with installed web server software that stores website files and responds to client requests by sending web pages.
Rules for WWW
When Conner types http://www.fredsco.com in his browser, the web page loads. This string is called a uniform resource locator (URL). A URL identifies the protocol in use and the name of the server. HTTP stands for Hypertext Transfer Protocol and is the TCP/IP protocol used to send web page contents from the web server to the web browser. The HTTP command GET requests the web server to send the server's default web page to the browser. When a website is developed, one web page is defined as the default. The server looks in its configuration, finds the file name of the home page, and sends the contents of a file called home.html back to the browser using HTTP.
💡 Why this matters: Understanding HTTP and GET is essential because they are the foundation of all web communication—every time you visit a website, your browser uses these same protocols and commands.
🔑 Definition — URL (Uniform Resource Locator): A string that identifies the protocol in use and the name of the server, used to locate web resources.
📐 Formula: URL = protocol://server-name → Identifies which protocol (e.g., HTTP) to use and which server to connect to.
📌 Example: http://www.fredsco.com → The protocol is HTTP, and the server name is www.fredsco.com.
HTML Files and Objects
An .HTML file contains text that conforms to a specification called Hypertext Markup Language (HTML). HTML was the first language used to describe the contents of a web page. HTML tells the browser what to put in the browser window, what color to make it, what size, and so on—but it does NOT define anything about how to send and receive data. When a web page gets loaded, some parts show up right away while the rest fills in slowly. A lot of files (called objects) get transferred between a web client and server. The first individual file (known as object) downloaded by HTTP is an HTML file. HTML files include text that goes on the web page, formatting instructions, plus instructions to download other objects.
🔑 Definition — HTML (Hypertext Markup Language): A specification used to describe the contents of a web page, including text, formatting, color, size, and instructions to download other objects.
🔑 Definition — Object: An individual file transferred between a web client and server; the first object downloaded is the HTML file.
An Example
Assume Conner types Fredsco's URL in his browser:
- Conner's browser gets the HTML file using HTTP.
- Conner's browser reads the file, displaying things on the screen as a result.
- When Conner's browser reads the file, it might have instructions that require Conner to download other objects. If so, it uses HTTP to get those objects.
- Conner's browser reads the contents of the new objects, displaying them on the screen.
- Steps 3 and 4 are repeated until all objects are downloaded.
📌 Example: For http://www.fredsco.com:
- Step 1: Browser uses HTTP GET to request
home.htmlfrom the server. - Step 2: Browser reads
home.htmland displays text/formatting. - Step 3:
home.htmlcontains instructions to download an image filelogo.jpg. - Step 4: Browser uses HTTP to get
logo.jpgand displays it. - Step 5: The process continues until all objects (text, images, videos, etc.) are loaded.
⭐ Key Takeaways
The World Wide Web relies on client-server architecture where web browsers (clients) send HTTP requests to web servers, which respond with HTML files and other objects. The URL identifies the protocol (HTTP) and server name, while the HTTP GET command retrieves the default web page. HTML files are the first objects downloaded and contain both content and instructions for fetching additional objects. The loading process is iterative—the browser repeatedly downloads and displays objects until the entire page is complete. Understanding these fundamental concepts is crucial for grasping how all web browsing works.
🧠 Quick Revision Questions
- What does URL stand for, and what two pieces of information does a URL identify?
- What is the purpose of the HTTP GET command?
- What is the first object downloaded when a web page is loaded, and what does it contain?
- In the five-step example, what happens in steps 3-5 after the HTML file is received?
- What does HTML define about a web page, and what does it NOT define?
📘 Lecture 32 — Main Features of TCP
📖 Overview: This lecture covers the core features of the Transmission Control Protocol (TCP), including its mechanisms for reliable data delivery, error recovery, segmentation, and multiplexing via port numbers. Understanding these features is essential for grasping how TCP ensures dependable communication between applications over the Internet.
🗂️ Topics Covered
The lecture begins by outlining the high-level features of TCP: ensuring delivery through error recovery, breaking large shipments into manageable sizes using segmentation, directing data to the correct application using port numbers, and simplifying application development. It then explains the TCP header format, focusing on sequence numbers and acknowledgment numbers for error recovery, and illustrates the forward acknowledgment process with examples of error-free and error-prone data transmission.
📝 Lecture Summary
31.6 Transferring All the Files That Make Up a Web Page
This section illustrates how a web page composed of multiple files (e.g., HTML, images) is transferred using TCP. Each file is sent as a separate TCP connection, ensuring that all components arrive reliably at the destination.
Main Features of TCP
The high points of TCP include ensuring delivery through error recovery, breaking large shipments into manageable sizes using segmentation, getting the data to the right individual program (not just the right computer) by using port numbers, and simplifying the creation of applications by hiding the details of data delivery from the application. When a sender (e.g., Wilma's computer) sends three TCP segments to a receiver (e.g., Fred), the sender numbers the segments so that if a receiver does not receive a segment or receives one with an error, it can request the sender to send again.
🔑 Definition — TCP Segment: The unit of data passed by TCP to the network layer, consisting of a TCP header followed by application data.
📐 Procedure: Sequential numbering of segments → Enables the receiver to detect missing or corrupted segments and request retransmission.
📌 Example: Wilma sends three TCP segments numbered 1, 2, and 3 to Fred. If segment 2 is lost or corrupted, Fred can request Wilma to resend segment 2.
Assuring Data Delivery
Figure 32.1 conceptually illustrates how TCP assures data delivery: the sender numbers the segments, and the receiver sends acknowledgments. If an acknowledgment is not received for a particular segment (or an error is indicated), the sender retransmits that segment.
💡 Why this matters: This reliable delivery mechanism is what makes TCP suitable for applications like web browsing, email, and file transfer, where data integrity is critical.
The Format of the Shipping Label: TCP Headers
The TCP header contains several important fields. For error recovery, TCP uses the sequence number and acknowledgment number fields. The sequence number identifies the segment, and the acknowledgment number is used when an error occurs. The ACK field indicates that this number is the number of the next segment the receiver expects to receive. This procedure is called forward acknowledgment.
🔑 Definition — Forward Acknowledgment: A method where the acknowledgment number specifies the next expected sequence number, rather than confirming receipt of a specific segment.
📌 Example: In Figure 32.3 (Delivery Confirmation, No Errors), Wilma sends segments 1, 2, and 3. Fred sends acknowledgments: after receiving segment 1, he sends ACK with acknowledgment number 2; after segment 2, he sends ACK with number 3; after segment 3, he sends ACK with number 4.
TCP Error-Recovery Process
Assume while Wilma sent three segments, segment number 2 has some errors (as shown in Figure 32.4). In this case, Fred detects the error in segment 2. Using forward acknowledgment, he sends an acknowledgment with the number of the next expected segment (which is still 2, since segment 2 was not successfully received). When Wilma receives this acknowledgment, she knows that segment 2 was not delivered correctly and resends it.
📌 Example: Wilma sends segments 1, 2, and 3. Fred receives segment 1 (ACK: expect 2), then receives corrupted segment 2 (ACK: still expect 2, because segment 2 is not usable), and then receives segment 3 (ACK: still expect 2, because segment 2 is missing). Wilma sees repeated ACKs for segment 2 and retransmits segment 2. After receiving the retransmitted segment 2, Fred sends ACK with acknowledgment number 4.
⭐ Key Takeaways
TCP's core features—reliable delivery through error recovery, segmentation, port-based demultiplexing, and application transparency—are fundamental to its role as the primary transport protocol on the Internet. The error-recovery process relies on sequence numbers to identify segments and forward acknowledgment, where the acknowledgment number indicates the next expected segment. The TCP header's sequence number and acknowledgment number fields are the key mechanism for detecting and recovering from lost or corrupted segments. Understanding these mechanisms is critical for analyzing network performance and troubleshooting connectivity issues.
🧠 Quick Revision Questions
- What are the four main features of TCP highlighted in this lecture?
- What is the purpose of the sequence number in a TCP segment?
- Explain how forward acknowledgment works in error-free transmission.
- How does TCP recover from a corrupted segment, using the example of Wilma sending three segments where segment 2 is corrupted?
- What does the ACK field in a TCP header indicate about the acknowledgment number?
📘 Lecture 33 — Working of TCP
📖 Overview: This lecture explains the operational mechanics of the TCP protocol within the TCP/IP suite. It covers how TCP interacts with application layer protocols, the process of data segmentation and encapsulation, and the fundamental role of transport layer services in ensuring reliable communication between hosts.
🗂️ Topics Covered
The lecture begins by explaining the relationship between application layer protocols (like HTTP and SMTP) and transport layer protocols (TCP and UDP) which are part of the operating system. It describes how transport layer protocols provide logical communication between application processes running on different hosts. The key functions covered include segmenting data on the sending side and reassembling it on the receiving side. The lecture also introduces the two Internet transport layer options—TCP (reliable) and UDP (unreliable)—and provides an example of TCP's encapsulation process when a browser requests a web page.
📝 Lecture Summary
Working of TCP
When using a TCP/IP application, the application layer protocol uses a transport layer protocol to send messages across the network. Application layer protocols (such as HTTP for WWW and SMTP for email) are part of the application software, while transport layer protocols are typically part of the operating system (OS) of the computer. The transport layer software waits for the application program to ask it to perform actions.
An application layer protocol could theoretically avoid using a transport layer protocol, but transport protocols provide essential services that many applications need. It is better, faster, cheaper, and simpler for an application to use a transport layer protocol because it provides logical communication between application processes running on different hosts.
🔑 Definition — Logical Communication: Communication that appears to exist directly between application processes on different hosts, even though the data actually travels through multiple network layers and intermediate devices.
Segmenting Data Before Sending
Transport protocols run in end systems. On the sending side, the transport layer breaks application messages into segments—smaller, manageable units of data. On the receiving side, the transport layer reassembles segments into messages and passes them to the application layer.
The Internet transport layer offers two options:
- Transmission Control Protocol (TCP) — provides reliable delivery
- User Datagram Protocol (UDP) — provides unreliable delivery
The minimal transport-layer services are:
- Process-to-process data delivery
- Error checking (error detection)
📐 Formula: Segmentation → [Application message] → [Multiple segments (TCP)] → [Reassembly] → [Original message] 💡 Why this matters: Segmentation allows efficient transmission of large messages across networks with limited packet sizes and enables error recovery by retransmitting only damaged segments rather than the entire message.
TCP’s Encapsulation
Consider this example: Keith's browser requests a home page. The browser does not actually send the request over the network directly. Instead, it asks the TCP software on Keith's computer to send it. This process is called encapsulation—the application data is wrapped inside TCP segments before being passed to lower layers for transmission.
📌 Example: Browser Request Encapsulation
- Context: Keith uses a web browser to request a home page from a web server
- What happens: The browser (application layer) creates an HTTP request message
- Action: Instead of sending the request directly, the browser asks TCP (transport layer) to handle the transmission
- Process: TCP encapsulates the HTTP request by adding its own header, creating a TCP segment
- Result: The segment is then passed to the network layer for further processing and delivery
⭐ Key Takeaways
For the exam, remember that transport layer protocols are part of the operating system and provide logical communication between application processes on different hosts. The transport layer's critical functions are breaking application messages into segments on the sending side and reassembling them on the receiving side. TCP provides reliable delivery while UDP is unreliable, and both offer minimal services of process-to-process data delivery and error checking. Understand the concept of encapsulation—when an application like a browser wants to send data, it asks TCP to handle the transmission, and TCP wraps the application data into segments with headers. Finally, remember that transport layer protocols exist in end systems (hosts), not in intermediate network devices.
🧠 Quick Revision Questions
- What are the two transport layer protocol options for the Internet, and how do they differ in terms of reliability?
- What are the two minimal transport-layer services that both TCP and UDP provide?
- Explain the process of segmentation: what happens on the sending side and the receiving side?
- Where do transport layer protocols typically reside in a computer system?
- In the encapsulation example with Keith's browser, what happens to the HTTP request message before it is sent over the network?
📘 Lecture 34 — TCP Flow and Congestion Control
📖 Overview: This lecture explains the two critical mechanisms TCP uses to prevent data loss and ensure efficient network communication. Flow control prevents the sender from overwhelming the receiver's buffer, while congestion control prevents the sender from overwhelming the network. Both are essential for reliable and fair data transmission in the Internet.
🗂️ Topics Covered
This topic describes the TCP flow and congestion control mechanisms. It begins by explaining the receive buffer and the need for flow control, then details how the receive window operates. The lecture then transitions to congestion, defining what it is and its consequences, before explaining the principles of TCP congestion control and how the sender adjusts its rate based on perceived network conditions.
📝 Lecture Summary
TCP Flow Control
Flow control is TCP's speed-matching service. It matches the rate at which the sender is sending against the rate at which the receiving application is reading. Hosts on each side of a TCP connection set aside a receive buffer for the connection. When the TCP connection receives bytes that are correct and in sequence, it places the data in the receive buffer. The associated application process will read the data from this buffer, but not necessarily at the instant the data arrives. If the application is relatively slow at reading the data, the sender can very easily overflow the connection's receive buffer by sending too much data too quickly.
💡 Why this matters: Without flow control, a fast sender could easily corrupt or crash a slow receiver by overflowing its buffer, leading to lost data and failed connections.
🔑 Definition — Receive Window (rwnd): A variable maintained by the sending side of TCP that gives the sender an idea about the free buffer space at the receiver. It is used to prevent the sender from overflowing the receiver's buffer.
📐 Flow Control Mechanism: The receiver advertises the spare room available in its receive buffer in the Receive Window field of every segment it sends to the sender.
📌 Example: If a receiver has a receive buffer of 5000 bytes and the application has already read 2000 bytes, but 1000 new bytes have arrived in sequence, the free space is 2000 bytes. The receiver will set the Receive Window field in its next segment to 2000, telling the sender it can send no more than 2000 bytes before waiting for more space to free up.
TCP Congestion Control
Congestion means too many sources sending too much data too fast for the network to handle. This can result in lost packets (buffer overflow at routers) and long delays (queuing in router buffers). Each TCP sender limits the rate at which it sends traffic as a function of perceived congestion. In case the network is congestion-free, upon the arrival of ACKs, the TCP sender indicates a congestion-free source-to-destination path.
🔑 Definition — Congestion: A state where too many sources are sending too much data too fast for the network to handle, leading to packet loss and increased delays.
📐 Congestion Indication: The occurrence of either a timeout or the receipt of three duplicate ACKs from the receiver indicates congestion.
📌 Example: If a sender has a sending rate of 100 packets per second and a timeout occurs (the ACK for a packet is not received in time), the sender interprets this as a sign of congestion. To alleviate the congestion, it will drastically reduce its send rate, for example, by dropping the rate down to 10 packets per second. It will then gradually increase the rate until another congestion signal is detected.
💡 Why this matters: Without congestion control, the Internet could experience "congestion collapse," where almost all packets are lost due to router buffer overflow, making the network practically unusable for everyone.
⭐ Key Takeaways
The most critical concept is the clear distinction between flow control and congestion control: flow control prevents the sender from overwhelming the receiver, while congestion control prevents the sender from overwhelming the network. The receive window is the primary tool for flow control, advertised in every TCP segment. Congestion is detected via timeouts or three duplicate ACKs. The sender's response to these signals is to increase its send rate when the path is clear and decrease it when congestion is detected. Understanding these mechanisms is essential for grasping how TCP ensures reliable and efficient data delivery across the Internet.
🧠 Quick Revision Questions
- What is the primary purpose of TCP flow control, and which variable is used to implement it?
- What two specific events does a TCP sender interpret as signals of network congestion?
- How does the receiver tell the sender how much more data it can safely send?
- What are the two main negative consequences of network congestion mentioned in the lecture?
- According to the principles of TCP congestion control, what action does a sender take when it perceives the network path is congestion-free?
📘 Lecture 35 — User Datagram Protocol (UDP)
📖 Overview: This lecture introduces the User Datagram Protocol (UDP), an unreliable transport-layer protocol in the Internet transport layer. It contrasts UDP with TCP and uses a household analogy to explain its role in providing logical communication between processes. The lecture explains why UDP exists despite its lack of reliability, focusing on its simplicity and suitability for real-time applications.
🗂️ Topics Covered
The lecture begins with a household analogy comparing transport-layer protocols to mail handlers Hassan and Umer (reliable TCP) versus Fahad and Ahmed (unreliable UDP). It then describes UDP's "best effort" service model, where segments may be lost or delivered out of order, with no connection between sender and receiver. Finally, the lecture explains the reasons for using UDP, including no connection establishment delay, no connection state, no congestion control, and suitability for real-time applications like online streaming video.
📝 Lecture Summary
Topic 35: User Datagram Protocol (UDP)
This topic describes the User Datagram Protocol (UDP). The Internet Transport Layer can either use Transmission Control Protocol (TCP) or User Datagram Protocol (UDP). TCP is a reliable service while UDP provides unreliable delivery.
🔑 Definition — UDP (User Datagram Protocol): An unreliable, connectionless transport-layer protocol that provides "best effort" delivery of segments between processes running on different hosts.
Household Analogy: Consider two houses, one in Lahore and other in Islamabad. Each house is a home to a dozen kids. The kids are cousins and each kid writes a letter to each cousin every week (144 letters in total). Each letter is delivered by traditional postal service in a separate envelope. In each house, one kid is responsible for mail collection and mail distribution. Hassan does this job in Lahore while Umer does it in Islamabad. Each week Hassan collects the mail and gives it to the postal service mail carrier. He also distributes the received mail. Umer performs a similar job in Islamabad. The postal service provides logical communication between the two houses and not from person to person.
Hassan and Umer provide logical communication among the cousins. Application messages are like letters in envelopes. Processes resemble cousins. Hosts (also called end systems) are same as houses. The job of the transport-layer protocol is the same as that of Hassan and Umer. The network-layer protocol is like the postal service.
Assume Hassan and Umer go on vacation, and another cousin pair — say Fahad and Ahmed replace them. Being younger, they pick up and drop off the mail less frequently and occasionally lose letters. They do not provide the same set of services as Hassan and Umer. Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) offer different service models to applications.
🔑 Definition — Best effort service: A service model where the protocol makes its best attempt to deliver segments but provides no guarantees — segments may be lost, duplicated, or delivered out of order.
In contrast to TCP: UDP provides "best effort" service. Segments may be lost, delivered out of order to application. There is no connection between UDP sender and receiver. Each UDP segment is handled independently of others. UDP does not support error recovery, congestion control, and flow control.
Why is there a UDP?
No connection establishment (which can add delay) is required by UDP. No connection state at sender and receiver, thus making it simpler. As no congestion control is supported, UDP can blast away as fast as desired. UDP is more suitable for real-time apps (online streaming video).
💡 Why this matters: While UDP seems inferior to TCP due to its lack of reliability, its minimal overhead and lack of connection establishment make it essential for applications where speed matters more than perfect delivery, such as live video streaming, online gaming, and VoIP calls.
⭐ Key Takeaways
UDP provides unreliable, connectionless "best effort" service — segments may be lost or arrive out of order, and no connection is established between sender and receiver. Unlike TCP, UDP does not support error recovery, congestion control, or flow control, making it simpler and faster. The key advantage of UDP is no connection establishment delay, no connection state maintenance, and the ability to send data as fast as desired. These properties make UDP particularly suitable for real-time applications like online streaming video where occasional packet loss is acceptable but delay is not. The household analogy clarifies that transport-layer protocols (like Hassan/Umer or Fahad/Ahmed) provide logical communication between processes on different hosts, just as the postal service provides logical communication between houses.
🧠 Quick Revision Questions
- What are the main differences between the service models offered by TCP and UDP?
- In the household analogy, what do the following represent: houses, cousins, letters, and the postal service?
- List three services that UDP does NOT provide that TCP does.
- Why is UDP more suitable than TCP for real-time applications like online video streaming?
- What does "best effort" service mean in the context of UDP, and what are the potential consequences for segment delivery?
📘 Lecture 36 — TCP Ports Numbers
📖 Overview: This lecture explains how TCP port numbers enable the correct delivery of data to the right application on a receiving computer. Understanding port numbers is essential for grasping how multiple network applications (browsers, email, FTP) can simultaneously operate on a single device.
🗂️ Topics Covered
The lecture covers the concept of TCP port numbers as identifiers for application programs, the TCP header structure showing the destination port field, the range of port numbers (0-65,535) with well-known ports (0-1023) for standard applications like web servers (port 80), and dynamically assigned port numbers for client-side applications.
📝 Lecture Summary
The Problem of Multiple Applications
Imagine Keith has two browsers open (one for http://www.fredsco.com and one for http://www.espn.com), plus an email client and an FTP client downloading files. When a new TCP segment arrives at Keith's computer, it reaches the correct computer but could contain data for any of these applications. The question is: which application should receive the data? This is depicted in Figure 36.1.
💡 Why this matters: Without a mechanism to identify the target application, network data would be delivered to the wrong program, making multitasking across network applications impossible.
The TCP Header and Port Numbers
The TCP header contains a field called the TCP destination port that tells the receiving computer which application program needs to receive the data. As shown in Figure 36.2, the TCP header includes this destination port field.
🔑 Definition — TCP Port Number: A unique number assigned to each application program currently running on a computer, enabling the transport layer to deliver incoming data to the correct application.
📌 Example: When Keith's computer receives a TCP segment for his ESPN browser, the destination port number in the TCP header directs the data specifically to that browser, not to the other browser, email client, or FTP client.
Port Number Ranges and Assignment
Port numbers range from 0 to 65,535 because the port number field is 16 bits (2^16 = 65,536 possible values). Well-known port numbers range from 0 to 1023 and are used by standard applications. For example, a web server uses port number 80. The complete list of well-known port numbers is available at www.iana.org.
📐 Formula: Port number range = 0 to 65,535 (16-bit field) → Well-known ports = 0 to 1023
🔑 Definition — Well-known Port Numbers: Ports 0–1023 reserved for standard, widely-used applications (e.g., HTTP uses port 80).
Dynamically Assigned Port Numbers
For client-side applications, the transport layer automatically assigns a port number dynamically (as shown in Figure 36.4). This means the client does not need to manually specify a port; the system handles it.
🔑 Definition — Dynamically Assigned Port Number: A port number automatically assigned by the transport layer to a client application, typically from the range above 1023.
⭐ Key Takeaways
TCP port numbers are critical for directing incoming data to the correct application on a receiving computer, solving the problem of multiple concurrent network applications. The TCP destination port field in the TCP header carries this identifier. Port numbers range from 0 to 65,535 (16 bits), with well-known ports (0–1023) reserved for standard applications like web servers (port 80). Client-side applications typically receive dynamically assigned port numbers from the transport layer automatically.
🧠 Quick Revision Questions
- What is the purpose of the TCP destination port field in the TCP header?
- What is the range of possible TCP port numbers, and why is that the range?
- What are well-known port numbers, and what range do they occupy?
- Give an example of a well-known port number and the application it corresponds to.
- Who assigns port numbers to client-side applications, and how are they assigned?
📘 Lecture 37 — TCP Segmentation
📖 Overview: This lecture explains how TCP handles data from application layer protocols by breaking it into appropriately sized segments for transmission. Understanding TCP segmentation is essential for grasping how data flows reliably across networks and how protocols like HTTP interact with transport layer services.
🗂️ Topics Covered
The lecture covers the preparatory steps before data exchange via TCP's three-way handshaking, followed by a detailed explanation of TCP segmentation. It describes how TCP receives data from application protocols, the concept of Maximum Segment Size (MSS), and the process of breaking application data into manageable segments. The topic concludes with a practical example illustrating segmentation with a web server request.
📝 Lecture Summary
Before Data Exchange: Three-Way Handshaking
Before useful data can be exchanged between a client and a server, a TCP connection is established with a three-way handshaking phenomenon. Both endpoints agree to communicate with each other. Also, port numbers the client and server use, what values to start with in the sequence number field, and other details are exchanged with each other.
🔑 Definition — TCP connection: A reliable, connection-oriented communication channel established between two endpoints before data transfer begins. 🔑 Definition — Three-way handshaking: The process by which TCP establishes a connection, involving three message exchanges where both sides agree to communicate and exchange initial parameters. 📐 Process: [Client sends SYN → Server responds with SYN-ACK → Client sends ACK] → Both endpoints agree to communicate, exchange port numbers, and agree on initial sequence number values.
TCP Segmentation
When a TCP/IP application such as email or web client has data to send, it gives it to transport layer protocol. The application layer protocol does not have a limit to the size of bytes it chooses to send. However, TCP segments data received from the applications to ensure that a TCP segment will fit into a single link-layer frame. The maximum amount of application-layer data that TCP can grab and place in a segment is called Maximum Segment Size (MSS). 1480 is a typical value for MSS. The process of breaking the application data into parts is called segmentation. The bytes that include the data and the TCP header are called TCP segments.
🔑 Definition — Maximum Segment Size (MSS): The maximum amount of application-layer data that TCP can grab and place in a single TCP segment, typically 1480 bytes. 🔑 Definition — Segmentation: The process of breaking application data into appropriately sized parts to fit into a single link-layer frame. 🔑 Definition — TCP segments: The bytes that include both the application data and the TCP header.
📌 Example:
- A client contacts a web server
- The home page has 3000 bytes of data
- HTTP gives all 3000 bytes to TCP
- MSS of TCP is 1480
- TCP puts 1460 bytes into data part of a segment
- 💡 Why this matters: The first segment carries 1460 bytes of data (leaving 1540 bytes remaining), demonstrating how TCP must create multiple segments from a single application data chunk to ensure proper transmission across the network.
⭐ Key Takeaways
Students must understand that TCP segmentation is a critical function ensuring application data fits into link-layer frames. The Maximum Segment Size (MSS) of 1480 bytes (with 1460 bytes of data) is a standard value. The three-way handshaking establishes the connection before any data exchange occurs, exchanging port numbers and initial sequence numbers. Segmentation is necessary because application protocols have no size limit for data they send. The TCP header plus application data together form what is called a TCP segment.
🧠 Quick Revision Questions
- What is the purpose of the three-way handshaking in TCP?
- What does MSS stand for and what is its typical value?
- How many bytes of application data from a 3000-byte HTTP response will be placed in the first TCP segment when MSS is 1480?
- Why does TCP need to segment data received from application layer protocols?
- What information is exchanged between endpoints during TCP handshaking besides agreeing to communicate?
📘 Lecture 38 — Basics of Internet Protocol (IP)
📖 Overview: This lecture introduces the fundamentals of the Internet Protocol (IP) and its role in network communication. It explains how routers forward data across networks from source to destination, and distinguishes between the two key functions of forwarding and routing. Understanding IP basics is essential for grasping how data travels across the global Internet.
🗂️ Topics Covered
This lecture covers the basics of Internet Protocol (IP), the role of routers as networking devices connecting multiple physical networks, the concept of routing as the complete process of sending data through routers to its destination, and the two key functions of forwarding (moving packets from input to output) and routing (determining the path from source to destination). Examples include Hannah accessing a web page from a server at cisco.com.
📝 Lecture Summary
Topic 38: Basics of Internet Protocol (IP)
In a typical large network, many routers and LAN switches sit between a client PC and a server. Routers are networking devices that connect to multiple physical networks, such as multiple Ethernets. They make decisions about where to forward the data so that it reaches the correct destination.
🔑 Definition — Router: A networking device that connects to multiple physical networks and makes decisions about where to forward data so that it reaches the correct destination.
📌 Example: Hannah on a LAN in Mason wants to get a web page from a web server http://www.cisco.com on a LAN in Cincinnati. This involves the data passing through routers between the two LANs.
Routing is the complete process by which a computer sends the data, passing through all the routers and eventually arriving at the destination. The example shows only LANs, but the routers could also be connected to a wide-area network (WAN).
🔑 Definition — Routing: The complete process by which a computer sends data, passing through all the routers and eventually arriving at the destination.
Two Key functions
Forwarding is moving a packet from router's input to appropriate router output. Routing is the determination of the route taken by packets from source to destination. These are two distinct but related functions in network communication.
🔑 Definition — Forwarding: Moving a packet from a router's input to the appropriate router output.
🔑 Definition — Routing: The determination of the route taken by packets from source to destination.
💡 Why this matters: Forwarding is the local action of moving a packet through a single router, while routing is the global process of determining the entire path across multiple routers. Both are essential for end-to-end data delivery.
⭐ Key Takeaways
The Internet Protocol (IP) is the foundation of network communication, with routers serving as the key devices that connect multiple physical networks and forward data toward its destination. Routing is the complete end-to-end process of sending data from source to destination through multiple routers, which may be connected via LANs or WANs. The two critical functions of routers are forwarding (moving packets from input to appropriate output on a single router) and routing (determining the entire path across the network). These functions work together to ensure data reaches the correct destination across the Internet.
🧠 Quick Revision Questions
- What is a router and what is its primary function in a network?
- Define routing in the context of computer networks.
- What is the difference between forwarding and routing?
- In the example given, what path does data take from Hannah's PC in Mason to the cisco.com web server in Cincinnati?
- Can routers be connected to wide-area networks (WANs) in addition to LANs?
📘 Lecture 39 — Working of IP and IP addresses
📖 Overview: This lecture explains how the Internet Protocol (IP) operates at the network layer of the TCP/IP model, focusing on IP addressing, forwarding, and routing. Understanding IP addresses is fundamental to how devices communicate over the internet, making this lecture essential for grasping network layer functionality.
🗂️ Topics Covered
The lecture covers IP as the network layer protocol of TCP/IP, the unreliable best-effort nature of IP delivery, IP address structure as 32-bit binary numbers divided into octets, the requirement for unique IP addresses per network interface, the 20-byte IP header format with source and destination address fields, and how sender and receiver IP addresses are used in packet transmission.
📝 Lecture Summary
Working of IP and IP addresses
Internet Protocol (IP) is the network layer protocol of the TCP/IP model. IP defines addressing, forwarding and routing. IP provides logical communication between hosts and makes its best effort to deliver segments between communicating hosts, but makes no guarantees. IP is said to be an unreliable service.
The addressing details recommended by IP facilitate easy and efficient forwarding of IP packets. IP addresses are 32-bit binary numbers. Each of the decimal numbers in an IP address is called an octet, with a range falling in [0-255]. 2³² is equal to 4 billion possible IP addresses.
Everyone should have a unique IP address to avoid confusion when trying to deliver data to that address. Each network interface on a computer needs an IP address. A network interface is simply a card that has a physical connector for some type of network. An Ethernet NIC is one such example. The NIC takes care of TCP/IP network interface layer details, which are the equivalent of OSI Layers 1 and 2.
Most end-user computers, also known as TCP/IP hosts, have a single network interface. Devices that have more than one network interface have more than one IP address. Routers are such devices. IP defines a 20-byte long header, which includes a 4-byte source IP address and a 4-byte destination IP address. An IP packet includes the IP header, along with any data that follows the IP header.
To send data from one computer to another, a sender puts the destination computer's IP address into the destination IP address field and puts its own IP address in the source IP address field.
🔑 Definition — Octet: One of the decimal numbers in an IP address, ranging from 0 to 255. 🔑 Definition — Network Interface: A card that has a physical connector for some type of network, such as an Ethernet NIC. 🔑 Definition — TCP/IP Host: An end-user computer typically having a single network interface. 📐 Formula: IP address size = 32 bits = 4 bytes for source + 4 bytes for destination → This means there are 2³² ≈ 4 billion possible unique IP addresses. 📌 Example: When Computer A wants to send data to Computer B, Computer A puts Computer B's IP address in the destination IP address field and its own IP address in the source IP address field of the 20-byte IP header.
💡 Why this matters: The distinction between source and destination IP addresses in the header allows routers to forward packets toward their destination while enabling the receiving host to know where replies should be sent.
⭐ Key Takeaways
IP is an unreliable, best-effort network layer protocol that provides logical communication between hosts without guarantees. IP addresses are 32-bit binary numbers written as four decimal octets (0-255), allowing approximately 4 billion unique addresses. Each network interface requires a unique IP address, meaning routers have multiple IP addresses while typical hosts have one. The IP header is 20 bytes long and contains both source and destination IP addresses (4 bytes each), which the sender must populate correctly for packet delivery.
🧠 Quick Revision Questions
- What are the three main functions defined by the Internet Protocol?
- How many bits are in an IP address, and how many possible IP addresses does this provide?
- Why must each network interface have a unique IP address?
- How long is the IP header, and how many bytes are allocated for source and destination IP addresses?
- What type of device requires more than one IP address, and why?
📘 Lecture 40 — How to run an IP Network?
📖 Overview: This lecture explains how an IP network operates by drawing an analogy with the postal service. It covers the structure of IP addresses, how they are grouped for efficient routing, and how routers use address prefixes to forward packets without needing to know every individual IP address.
🗂️ Topics Covered
The lecture begins by explaining how an application layer request (HTTP GET) is encapsulated by TCP and then IP to create packets for network delivery. It then introduces the concept of IP addresses using a postal service analogy, where the common portion of an IP address functions like a postal code. The key insight is that all devices on the same physical network share a portion of their IP addresses, which allows routers to make forwarding decisions based on address prefixes rather than individual addresses, dramatically simplifying routing logic.
📝 Lecture Summary
Topic 40: How to run an IP Network?
This topic explains how an IP network runs.
The postal service provides a wonderful service. You put a letter into the mailbox, and it magically appears at the right address. By sending an IP packet into the network, the networking devices should collectively be able to forward the packet to the right destination. An example of an IP address is 1.1.1.1. There are 4 decimal numbers, between 0 and 255 inclusive, separated by periods. The structure and meaning of IP addresses tell us how IP addresses are used in an internetwork.
To understand the concepts, let’s take postal service as a reference. In addition to the number, street, town, and state, the postal service uses postal codes to make it easy to sort the mail. Everyone in the same general geographical area such as a town has the same postal code. The only time the whole postal address is needed is when the letter gets to the final post office; the one that handles mail for that postal code.
🔑 Definition — IP Address: An IP address is a 32-bit number typically written as four decimal numbers (each between 0 and 255) separated by periods, like 1.1.1.1. It identifies a device's location in an internetwork.
📐 Formula: [Network Portion].[Host Portion] → The IP address is divided into a common prefix (network portion, like a postal code) and a unique suffix (host portion, like a street address).
📌 Example: IP address 1.1.1.1 is broken into four octets: 1, 1, 1, 1. All devices on the same Ethernet LAN might share the first octet 1 as their common portion, similar to sharing a ZIP code.
💡 Why this matters: Just as the postal system sorts mail by postal codes to avoid looking up every street address, IP networks use the common portion of addresses to route packets efficiently without examining every individual host.
IP address grouping makes routing easy
All IP addresses on the same physical network such as one Ethernet LAN have a portion of their IP addresses in common. This common portion works like a postal code. Like postal codes, all the IP addresses on the same Ethernet are in the same general area, so routing can take advantage of that fact.
IP address grouping makes routing easy. Let’s imagine the logic needed by R1:
- Packets whose destination begins with
1should be forwarded to the left. - Packets whose destination begins with
2should be forwarded to the Ethernet on the right. - Packets whose destination begins with
3should be forwarded to R2 so that R2 can forward the packet.
The routers do not have to know about every IP address in the entire internetwork. They only need to know which direction to send packets based on the common prefix of the destination address.
🔑 Definition — Router: A networking device that forwards IP packets between networks based on the destination IP address's network portion (prefix).
🔑 Definition — Routing: The process of forwarding packets from one network to another based on the destination address's common prefix, much like postal sorting by ZIP code.
📌 Example: Router R1 sees a packet destined for 2.2.2.2. Since the destination begins with 2, R1 forwards it to the Ethernet on the right. R1 does not need to know that host 2.2.2.2 exists — it just knows all 2.x.x.x addresses are on that Ethernet.
💡 Why this matters: This hierarchical grouping is what makes the Internet scalable. Without it, every router would need a list of billions of individual IP addresses; with it, routers only store routing table entries for network prefixes.
⭐ Key Takeaways
The critical concept from this lecture is that IP addresses are structured with a common network portion that works like a postal code, allowing routers to forward packets based on prefixes rather than individual addresses. Just as the postal service uses ZIP codes to sort mail efficiently without reading every street address, IP networks use the shared portion of addresses on the same physical network to simplify routing. Routers only need to know which direction to send packets based on these prefixes, not every individual IP address. This hierarchical grouping is essential for the scalability of the Internet. The analogy with the postal system helps understand that the full destination address is only needed at the final router, which handles the specific network containing the destination host.
🧠 Quick Revision Questions
- What is the postal service analogy for the common portion of IP addresses on the same physical network?
- How many decimal numbers does an IP address contain, and what are their possible range?
- Why do routers not need to know about every individual IP address in the internetwork?
- In the example with router R1, what should R1 do with a packet whose destination begins with
3? - What is the key benefit of IP address grouping for routing in an internetwork?
📘 Lecture 41 — Classes of IP Networks
📖 Overview: This lecture explains how IP networks are classified into different sizes (classes) based on their network number. It covers the three main classes—A, B, and C—and how the network portion and host portion of IP addresses are determined, which is fundamental for understanding IP addressing and routing in internetworks.
🗂️ Topics Covered
The lecture begins by defining an IP network as a group of IP addresses sharing a common beginning (network number). It then introduces three classes of IP networks (A, B, C) that define different network sizes, explains the reserved addresses (network number and broadcast address), and shows how the network and host portions of an address are structured. The example internetwork with two routers and three IP networks (1.0.0.0, 2.0.0.0, 3.0.0.0) illustrates these concepts.
📝 Lecture Summary
Topic 41: Classes of IP Networks
This topic describes the classes of IP networks. In an internetwork, IP calls a group of IP addresses that share a common beginning part of their addresses an IP network. The common portion is called the network number and is used to represent the network. For an IP network number, the bits other than the common portion have all 0s. In the example internetwork, the network numbers are 1.0.0.0, 2.0.0.0, and 3.0.0.0. A host cannot use a network number as an IP address in the network.
Let’s assume a simple internetwork with two routers and three IP networks. (See Figure 41.1: Classes of IP Networks.)
How many IP addresses can you have in network 1.0.0.0? You can't use 1.0.0.0 and 1.255.255.255 – these are reserved addresses. Valid addresses: more than 16 million addresses. IP defines three sizes of networks as different classes. The three different network classes are called Class A, B, and C. All addresses in the same Class A, B, or C network have the same numeric value for the network portion of the addresses. The rest of the address is called the host portion of the address.
🔑 Definition — IP network: A group of IP addresses that share a common beginning (network number).
🔑 Definition — Network number: The common portion of IP addresses in a network; used to represent the network. For an IP network number, the bits other than the common portion are all 0s.
🔑 Definition — Reserved addresses: In any IP network, the network number itself (all host bits 0) and the broadcast address (all host bits 1) cannot be assigned to hosts.
🔑 Definition — Classes of IP networks: IP defines three network sizes: Class A, Class B, and Class C. The class determines the number of bits used for the network portion and host portion.
🔑 Definition — Network portion: The part of an IP address that is the same for all hosts in the same Class A, B, or C network.
🔑 Definition — Host portion: The remaining part of an IP address after the network portion; it uniquely identifies a host within the network.
📌 Example: In network 1.0.0.0:
- The network number is 1.0.0.0.
- The broadcast address is 1.255.255.255.
- Both are reserved and cannot be used by hosts.
- Valid host addresses range from 1.0.0.1 through 1.255.255.254, giving more than 16 million possible addresses.
- All addresses in this network share the network portion “1” (first octet), and the remaining three octets form the host portion.
💡 Why this matters: Understanding network classes is essential for determining how many hosts a network can support and how routers forward packets based on the network portion of an address. It forms the basis for IP subnetting and routing.
⭐ Key Takeaways
The most critical concept from this lecture is that IP networks are grouped by a common network number, and three classes (A, B, C) define different network sizes. The network number and broadcast address are reserved and cannot be assigned to hosts. A host’s IP address consists of a network portion (same for all hosts in the same class network) and a host portion (unique to each host). The example of network 1.0.0.0 shows that with a single octet for the network portion, over 16 million valid host addresses exist (excluding the two reserved addresses). These classes directly impact how many hosts a network can contain and how routers identify networks.
🧠 Quick Revision Questions
- What is an IP network, and what is a network number?
- Which two addresses in an IP network are reserved and cannot be assigned to hosts?
- What are the three classes of IP networks defined by IP?
- In a Class A network like 1.0.0.0, how many valid host addresses are available? Why?
- What is the difference between the network portion and the host portion of an IP address?
📘 Lecture 42 — IP Subnetting
📖 Overview: This lecture explains the concept of IP subnetting, a method for subdividing larger IP networks into smaller, more manageable subnetworks. It matters because subnetting allows network engineers to efficiently use IP addresses and control network traffic with routers, preventing address waste on large Class A and B networks.
🗂️ Topics Covered
The lecture covers the problem of unused IP addresses in large Class A and B networks, introduces subnetting as a solution for efficiently segmenting a network, explains how routers separate devices in different subnets, describes how subnet numbers are formed, and discusses the practical benefits of subnetting for network design.
📝 Lecture Summary
Topic 42: IP Subnetting
In this topic, we explain the use of IP subnetting.
These days, single LANs with more than 1000 devices are extremely rare. Many IP addresses will go unused if you use a Class A or Class B network for the devices on a LAN. Subnetting provides a solution. Let’s assume that a design requires three networks, and uses three different Class B networks. Each Class B network can host 65,534 addresses.
A subnet is just a subdivision of a larger Class A, B, or C network. Subnetting refers to the process whereby the engineer decides to create subnets. Without Subnetting, devices in the same Class A, B, or C network cannot be separated from each other by a router. Also, devices in different Class A, B, or C networks must be separated from each other by a router. With Subnetting, devices in the same subnet cannot be separated from each other by a router. Also, devices in different subnets must be separated from each other by a router. Subnetting allows a network engineer to configure network devices of a class B network for example, 150.1.0.0, such that they can think that the first 3 octets of the addresses identify the network. Following subnets can be created: all addresses that begin with 150.1.1, all addresses that begin with 150.1.2, all addresses that begin with 150.1.3 and so on.
An IP subnet number is used to represent a subnet. The subnet number has the same value in the first part of the number as all the host addresses, and 0s in the last part.
💡 Why this matters: Subnetting is a fundamental technique for efficient IP address allocation and network segmentation, enabling logical grouping of devices and traffic control with routers.
⭐ Key Takeaways
Subnetting solves the problem of wasted IP addresses by subdividing large Class A, B, or C networks into smaller subnets. Routers can separate devices in different subnets but not devices within the same subnet. A subnet number has the same prefix as its host addresses but ends with all zeros. This technique allows network engineers to create logical groupings, such as all addresses starting with 150.1.1, 150.1.2, etc., within a single Class B network. Without subnetting, devices in the same Class A/B/C network cannot be separated by a router, limiting network design flexibility.
🧠 Quick Revision Questions
- What is the main problem that subnetting solves?
- What is the difference between how routers treat devices in the same subnet vs. devices in different subnets?
- How is an IP subnet number constructed?
- Using the example 150.1.0.0, how would you create subnets within this Class B network?
- Why is using multiple Class B networks for a small design considered wasteful without subnetting?
📘 Lecture 43 — Network Address Translation (NAT)
📖 Overview: This lecture explains the concept of Network Address Translation (NAT), a simpler approach to address allocation that allows multiple devices on a local network to share a single public IP address. It is particularly important for Small Office/Home Office (SOHO) networks where ISPs may not have contiguous address ranges available.
🗂️ Topics Covered
The lecture covers the fundamental concept of NAT as defined in RFC 2663, its application in SOHO networks to solve IP address allocation problems, and a detailed example showing how a NAT-enabled router manages communication between multiple devices on a private network (10.0.0.0/24) and the public internet using a single IP address (138.76.29.7).
📝 Lecture Summary
Introduction to NAT
A Small Office Home Office (SOHO) subnet connects devices such as cameras, computers, smartphones, and game consoles. Every IP-capable device needs an IP address. A SOHO needs a range of addresses that can be allocated by the ISP. With 32 bits, possible IP addresses are equal to 2³² or 4 billion.
If the subnet grew bigger, a larger block of addresses would have to be allocated. But what if the ISP had already allocated the contiguous portions of the SOHO network's current address range? Network Address Translation (NAT) is a simpler approach to address allocation. It is defined in RFC 2663 and has found increasingly widespread use.
💡 Why this matters: NAT solves the critical problem of IPv4 address exhaustion by allowing many devices to share a single public IP address, which is why it is used in virtually every home and small office network today.
An Example
Assume a home network with 3 computers. A NAT-enabled router, residing in the home, has an interface that is part of the home network. All four interfaces in the home network have the same subnet address of 10.0.0.0/24.
In Figure 43.1 (described in text), the NAT-enabled router has:
- An interface on the local home network with IP address 10.0.0.45
- An interface on the public internet with IP address 138.76.29.7
- Three devices connected to the local network: 10.0.0.1, 10.0.0.2, and 10.0.0.3
🔑 Definition — NAT (Network Address Translation): A method by which IP addresses are mapped from one address realm to another, typically allowing multiple devices on a private network to share a single public IP address when communicating with external networks.
📐 NAT Addressing Scheme:
- Private (local) addresses: 10.0.0.0/24 (used within the home network)
- Public (global) addresses: 138.76.29.7 (used for internet communication)
📌 Example: There can be hundreds of home networks, many using the same address space, 10.0.0.0/24. Devices within a given home network can send packets using 10.0.0.0/24 addressing. When packets are sent to or from the internet, the NAT-enabled router translates between private and public addresses, allowing all devices in the home network to appear as a single device with IP address 138.76.29.7 to the outside world.
💡 Why this matters: The use of the 10.0.0.0/24 private address space across many independent home networks is possible because these addresses are not globally unique — they only need to be unique within each local network, and NAT handles the translation to the public internet.
⭐ Key Takeaways
NAT is defined in RFC 2663 and provides a practical solution to IPv4 address exhaustion by allowing multiple devices on a private network to share a single public IP address. In a SOHO network, a NAT-enabled router interfaces both the private network (using addresses like 10.0.0.0/24) and the public internet (using an ISP-assigned address like 138.76.29.7). Thousands of different home networks can independently use the same private address space (e.g., 10.0.0.0/24) because these addresses are not globally routable. The fundamental mechanism of NAT involves translating private source addresses to the public IP address for outbound traffic and performing reverse translation for inbound traffic.
🧠 Quick Revision Questions
- What does NAT stand for and in which RFC is it defined?
- Why is NAT important for SOHO networks when ISPs have already allocated contiguous portions of an address range?
- In the example given, what private subnet address space is used by all interfaces within the home network?
- What is the public IP address of the NAT-enabled router's interface connected to the internet in the example?
- How can hundreds of different home networks all use the same 10.0.0.0/24 address space without conflicts?
📘 Lecture 44 — Dynamic Host Configuration Protocol (DHCP)
📖 Overview: This lecture explains how devices automatically obtain IP addresses when joining a network using DHCP. It covers the motivations for dynamic address assignment, compares manual vs automatic configuration, and presents real-world examples showing why DHCP is essential for networks with many transient users.
🗂️ Topics Covered
The lecture covers the limitations of manual IP configuration explained in the context of network address translation motivations, followed by a detailed explanation of DHCP as a plug-and-play protocol. Two motivating examples illustrate DHCP's practical necessity: a student moving between subnets on a campus, and an ISP managing limited IP addresses for many customers. The client-server architecture of DHCP is introduced.
📝 Lecture Summary
Motivations for Network Address Translation
The NAT-enabled router hides the details of the home network from the outside world. It behaves as a single device with a single IP address (138.76.29.7) to the external world. All traffic leaving has source IP 138.76.29.7, and all incoming traffic must have destination 138.76.29.7.
💡 Why this matters: Without NAT, every device would need a globally unique public IP address, which is impractical for home networks.
Three key motivations for using a single IP address:
- Range of addresses not needed from ISP
- Addresses of devices in local network can change without notifying outside world
- ISP can change without changing addresses of devices in local network
Dynamic Host Configuration Protocol (DHCP)
An organization obtains a block of IP addresses from an ISP and assigns them to host and router interfaces. Host addresses can be configured in two ways:
-
Manual configuration: performed by a system administrator
- Windows: control-panel → network → configuration → tcp/ip → properties
- UNIX: /etc/rc.config
-
DHCP: allows a host to dynamically obtain its IP address from network server when it joins network. Because a host gets connected automatically, it is a "plug-and-play" protocol.
Motivating Example 1
A student carrying a laptop from a dormitory room to a library to a classroom connects to a new subnet in each location and will need a new IP address each time.
Motivating Example 2
A residential ISP has 2,000 customers, but no more than 400 customers are ever online simultaneously. The ISP does not need 2,048 IP addresses; only gets a block of 512 IP addresses. As hosts join and leave, the DHCP server allocates an arbitrary address from its current pool of available addresses. Each time a host leaves, its address is returned to the pool.
DHCP is ideally suited to these situations because there are many users coming and going, and addresses are needed for only a limited amount of time. DHCP is a client-server protocol. A client is typically a newly arriving host wanting to obtain network configuration information, including an IP address for itself.
⭐ Key Takeaways
DHCP automates IP address assignment, making it ideal for networks with transient users like students moving between campus subnets or ISPs with many customers but limited address blocks. The protocol operates on a client-server model where hosts request addresses dynamically and return them when they leave, enabling efficient use of limited IP address pools. Manual configuration remains an alternative but requires administrator intervention for each device. DHCP's plug-and-play nature eliminates the need for users to understand network configuration details.
🧠 Quick Revision Questions
- What are the two methods for assigning IP addresses to hosts in an organization?
- In the ISP example, how many IP addresses does the ISP need to purchase for 2,000 customers if only 400 are online at once?
- What happens to a DHCP-assigned IP address when a host leaves the network?
- Which protocol architecture does DHCP use (client-server or peer-to-peer)?
- Why is DHCP called a "plug-and-play" protocol?
📘 Lecture 45 — Internet Control Message Protocol (ICMP)
📖 Overview: This lecture covers the Internet Control Message Protocol (ICMP), a key component of the network layer used for error reporting and informational messaging. Understanding ICMP is critical because it underpins essential network diagnostic tools like ping and traceroute, which are used daily to troubleshoot network connectivity.
🗂️ Topics Covered
This lecture explains the role and structure of ICMP within the network layer, including its use for error messages (unreachable host, network, port) and informational messages (echo request/reply). It details how ICMP messages are carried within IP datagrams and provides in-depth explanations of how the ping and traceroute tools leverage ICMP to test reachability and trace network paths.
📝 Lecture Summary
The Internet Control Message Protocol (ICMP)
ICMP is one of the three major components of the Network Layer, alongside the IP protocol and the routing component. It provides a facility to report errors in IP datagrams. ICMP is used by hosts and routers to communicate network-layer information to each other.
ICMP handles two main categories of messages:
- Error messages: Such as unreachable host, unreachable network, unreachable port, etc.
- Informational messages: Such as echo request and echo reply.
ICMP is often considered part of IP, but architecturally lies just above IP. ICMP messages are carried in IP datagrams as the IP payload. An ICMP message consists of the type, code, and the first 8 bytes of the IP datagram that caused the ICMP message to be generated. This allows the sender to determine which datagram caused the error.
💡 Why this matters: The inclusion of the first 8 bytes of the offending datagram is crucial for the original sender to identify and respond to the specific problem.
Many tools obtain information about the Internet by sending probes and waiting for ICMP responses. Common examples include ping and traceroute.
Ping and ICMP
The ping program sends a datagram to a specified destination to test if it can be reached. It reports the results by declaring whether the destination responds. Ping uses ICMP echo messages.
When a user invokes ping with an IP address or hostname:
- The ping program sends a datagram containing an ICMP type 8 code 0 message (echo request) to the specified host.
- The destination host, upon seeing an echo request, sends back a type 0 code 0 ICMP echo reply message.
🔑 Definition — Ping: A network utility that sends ICMP echo request messages to a target host to test reachability and measure round-trip time.
📌 Example: To test if 8.8.8.8 is reachable, a user runs ping 8.8.8.8. The ping program sends an ICMP echo request (type 8, code 0) to 8.8.8.8. If the host is reachable, it responds with an ICMP echo reply (type 0, code 0), and the ping program reports the result.
Traceroute & ICMP
Traceroute allows a user to trace a route from a host to any other host in the world. It employs two types of ICMP messages: TTL expired and destination port unreachable.
The source sends a series of IP datagrams to the destination. Each datagram carries a UDP segment with an unlikely UDP port number.
The process works as follows:
- The source sends a datagram with TTL = 1.
- The first router decrements the TTL to 0, discards the datagram, and sends an ICMP TTL expired message back to the source. This identifies router 1.
- The source then sends a datagram with TTL = 2, which gets past the first router but expires at the second router, which sends back a TTL expired message. This identifies router 2.
- This process repeats. When the datagram finally reaches the destination host, the TTL has not expired. However, the UDP segment contains an unlikely port number.
- The destination host sees this and sends back an ICMP destination port unreachable message.
- The source knows it has reached the destination when it receives a "destination port unreachable" message, as opposed to a "TTL expired" message.
🔑 Definition — Traceroute: A network diagnostic tool that sends a series of IP datagrams with increasing TTL values to map the network path (routers) between a source and a destination.
📐 Formula: TTL incrementally increased by 1 for each successive probe → each hop's router discards the packet and replies with an ICMP "time exceeded" message.
📌 Example: To trace the route to google.com, the traceroute program first sends a packet with TTL=1 to google.com. The first router on the path (e.g., 192.168.1.1) drops the packet and sends an ICMP TTL expired message back. Traceroute records this IP address. It then sends a packet with TTL=2. The second router (e.g., 10.0.0.1) sends back the TTL expired message. This continues until a packet reaches google.com, which replies with a "destination port unreachable" message because of the unlikely UDP port, signaling the end of the path.
⭐ Key Takeaways
ICMP is a fundamental network-layer protocol used by hosts and routers for error reporting (unreachable hosts, networks, ports) and informational queries. It is architecturally above IP but is carried as payload within IP datagrams, and its messages include the first 8 bytes of the offending datagram for context. The ping tool leverages ICMP echo request (type 8) and reply (type 0) messages to test host reachability. The traceroute tool cleverly exploits TTL expiration and destination port unreachable ICMP messages to discover the sequence of routers along a network path.
🧠 Quick Revision Questions
- What are the three major components of the Network Layer?
- What is the role of the type and code fields in an ICMP message?
- How does the ping program use ICMP to verify host reachability?
- Explain how the traceroute program uses TTL to discover each router on a path to a destination.
- How does the destination port unreachable ICMP message indicate the end of the path traced by traceroute?
📘 Lecture 46 — End-to-End: Processing IP Packet
📖 Overview: This lecture explains how IP packets are processed along the end-to-end route, focusing on the problem of fragmentation when packet size exceeds the Maximum Transmission Unit (MTU) of a link-layer protocol. It covers the stopping criterion for traceroute, the concept of MTU, and how routers fragment oversized datagrams, with reassembly performed only at the destination host.
🗂️ Topics Covered
The lecture begins with the stopping criterion for traceroute using ICMP "destination port unreachable" messages. It then introduces the concept of Maximum Transmission Unit (MTU) as a hard limit on IP datagram length imposed by link-layer protocols. The problem arises when different links along a route have different MTUs. The solution is fragmentation of the IP datagram into smaller fragments, which are reassembled only at the destination end system to keep the network core simple.
📝 Lecture Summary
The Stopping Criterion
The traceroute utility stops when an UDP segment eventually arrives at the destination host. The destination returns an ICMP "destination port unreachable" message (type 3, code 3). When the source host receives this ICMP message, it stops sending probes.
🔑 Definition — Traceroute stopping criterion: The process ends when the UDP probe reaches the destination, which replies with an ICMP "destination port unreachable" message, signaling the source to stop.
End-to-End: Processing IP Packet
In this topic, we describe fragmentation, i.e., processing of IP packets along the end-to-end route.
At the link-layer, an IP datagram is encapsulated within a link-layer frame. All link-layer protocols cannot carry network-layer packets of the same size. For example, Ethernet frames can carry up to 1500 bytes of data. The maximum amount of data a link-layer frame can carry is called Maximum Transmission Unit (MTU). The MTU of the link-layer protocol places a hard limit on the length of an IP datagram.
Problem
Each of the links along the route between sender and destination uses different link-layer protocols with different MTUs. When a router is about to forward an IP packet, it may find that its length is greater than the MTU of the outgoing link.
📌 Example: A router receives an IP datagram of 4000 bytes but the outgoing link has an MTU of 1500 bytes. This datagram cannot be forwarded as a single unit.
Solution
Fragment the data in the IP datagram into two or more smaller IP datagrams, and encapsulate each of these smaller IP datagrams in a separate link-layer frame.
IP Reassembly & Fragmentation
Each of these smaller datagrams is referred to as a fragment. Fragments need to be reassembled before they reach the transport layer at the destination. Both TCP and UDP are expecting to receive complete, un-fragmented segments from the network layer. Datagram reassembly is done only in the end systems. This design choice keeps the network core simple by avoiding the complexity of reassembly inside routers.
🔑 Definition — Fragmentation: The process of dividing an IP datagram into smaller pieces when its length exceeds the MTU of the outgoing link.
🔑 Definition — Reassembly: The process of reconstructing the original IP datagram from its fragments, performed only at the destination host.
💡 Why this matters: Reassembly at the end system rather than at intermediate routers reduces processing load on routers and simplifies the network core, which is a fundamental design principle of the Internet.
⭐ Key Takeaways
An IP datagram must fit within the MTU of the link-layer protocol used on each link. Since different links may have different MTUs, routers along the path may need to fragment oversized datagrams into smaller units. These fragments are called fragments and must be reassembled before reaching the transport layer at the destination. Crucially, reassembly is performed only at the destination end system, not at intermediate routers, to keep the network core simple. The traceroute utility stops when the destination replies with an ICMP "destination port unreachable" message.
🧠 Quick Revision Questions
- What is the stopping criterion for traceroute, and what ICMP message triggers it?
- Define Maximum Transmission Unit (MTU) and explain why it is a problem for IP datagrams.
- What solution does the IP protocol use when a datagram is larger than the MTU of the outgoing link?
- Where does datagram reassembly occur — at intermediate routers or at the destination? Why?
- Why must fragments be reassembled before the transport layer receives the data?
📘 Lecture 47 — A Link State Routing Algorithm
📖 Overview: This lecture explains the working of a link state routing algorithm, which routers use to configure forwarding tables. It focuses on how global knowledge of network topology and link costs enables each router to compute the least-cost path from senders to receivers.
🗂️ Topics Covered
The lecture covers the role of routing algorithms in configuring forwarding tables, the concept of a "good" path using least-cost metrics (e.g., physical length, link speed, monetary cost), and the core operation of the link state routing algorithm which uses global information where each node broadcasts identities and costs of its attached links.
📝 Lecture Summary
IP Reassembly & Fragmentation (Context from Prior Lecture)
There are three fields in the IP header that support fragmentation and reassembly. Identification allows a destination host to determine which datagram a newly arrived fragment belongs to, and a sender increments this identification number for each datagram. MF stands for "more fragments" and is set for all fragments except the last one. Fragmentation offset tells where in the current datagram this fragment belongs.
The Role of Routing Algorithms
When an IP packet arrives to a router, the router indexes a forwarding table and determines the link interface to which the packet is to be directed. Routing algorithms, operating in network routers, exchange and compute the information that is used to configure these forwarding tables. The job of routing is to determine good paths from senders to receivers, through the network of routers. A "good" path is one that has the least cost, for example, based on the physical length of the link, link speed, or monetary cost associated with it.
How Link State Routing Works
The Link State routing algorithm uses global information such as network topology, and all link costs are known by every router. Each node broadcasts the identities and costs of its attached links to all other nodes in the network. This allows every router to have a complete and identical view of the network, enabling it to independently compute the least-cost path to every destination.
💡 Why this matters: Because every node has the full map, it can run an algorithm like Dijkstra's to find the optimal path, ensuring efficient data delivery.
⭐ Key Takeaways
The link state routing algorithm relies on global, complete knowledge of the network topology and all link costs. Routers use this algorithm to configure forwarding tables that direct incoming IP packets to the correct outgoing link interface. A "good" path is defined as the least-cost path, where cost metrics can include physical length, link speed, or monetary cost. In this algorithm, each node must broadcast its connected link identities and their costs to all other routers. This distributed global knowledge allows each router to compute the shortest path independently.
🧠 Quick Revision Questions
- What three fields in the IP header are used for fragmentation and reassembly?
- What is the primary job of a routing algorithm in a network of routers?
- What defines a "good" path in the context of the link state routing algorithm?
- What type of information does the link state routing algorithm require to operate?
- How does a node participate in the link state routing algorithm to share its local information?
📘 Lecture 48 — Distance Vector Routing Algorithm
📖 Overview: This lecture explains the working of a distance vector routing algorithm, a fundamental approach in computer networking for determining the shortest paths between nodes in a network. It introduces the Bellman-Ford Equation and describes how nodes iteratively exchange and update routing information to converge on the least-cost paths, which directly informs the entries in a node's forwarding table.
🗂️ Topics Covered
The lecture begins with the notations used for link costs, path costs, and predecessor nodes. It then introduces the Bellman-Ford Equation as the basis for computing least-cost paths, followed by a detailed explanation of the routing information each node maintains (costs to neighbors, its own distance vector, and neighbors' distance vectors). Finally, it covers the basic iterative process where nodes exchange distance vectors, update their estimates, and propagate changes until convergence.
📝 Lecture Summary
Notation
The following notations are used throughout the algorithm: c(x,y) is the link cost from node x to y, which is set to ∞ if they are not direct neighbors. D(v) is the current value of the cost of the path from the source to destination v. p(v) is the predecessor node along the path from source to v. N' is the subset of nodes already included in the shortest path tree.
Bellman-Ford Equation
If dx(y) is defined as the cost of the least-cost path from node x to node y, then the Bellman-Ford equation states: dx(y) = min {c(x,v) + dv(y)}, where the minimum is taken over all neighbors v of x. The node that achieves this minimum is the next hop in the shortest path. Thus, the solution to the Bellman-Ford equation provides the entries in a node’s forwarding table.
🔑 Definition — dx(y): the cost of the least-cost path from node x to destination y. 📐 Formula: dx(y) = min {c(x,v) + dv(y)} → the least cost from x to y equals the minimum, over all neighbors v of x, of the direct cost from x to v plus the least cost from v to y. 📌 Example: If node x has neighbors v1 and v2, with c(x,v1)=2, c(x,v2)=5, and it knows dv1(y)=3 and dv2(y)=1, then dx(y) = min{2+3, 5+1} = min{5,6} = 5, so the next hop is v1.
Routing Information Maintained by Each Node
Each node x maintains the following routing information:
- For each neighbor v, the cost c(x,v).
- Node x’s own distance vector Dx = [Dx(y): y ∈ N], where Dx(y) is an estimate of the cost of the least-cost path from itself to y.
- The distance vectors of each of its neighbors, i.e., Dv = [Dv(y): y ∈ N] for each neighbor v of x.
💡 Why this matters: Maintaining these three pieces of information allows each node to independently compute shortest paths using only local knowledge and information exchanged with neighbors.
Basic Idea of the Distance Vector Algorithm
From time to time, each node sends a copy of its distance vector to each of its neighbors. When a node x receives a new distance vector from any of its neighbors v, it saves v’s distance vector, and then uses the Bellman-Ford equation to update its own distance vector. If x’s distance vector has changed as a result of this update step, x will then send its updated distance vector to each of its neighbors, which can in turn update their own distance vectors. The estimate Dx(y) converges to the actual least cost dx(y).
🔑 Definition — Distance Vector (Dx): an array of estimates of the costs of the least-cost paths from node x to all other nodes y in the network. 📐 Convergence: The iterative exchange and updating process ensures that over time, each node's estimated distance Dx(y) approaches the true least cost dx(y).
⭐ Key Takeaways
The Distance Vector Routing Algorithm relies on the Bellman-Ford Equation, which states that the least cost from a node to a destination is the minimum over neighbors of the sum of the direct link cost and the neighbor's least cost to that destination. Each node must maintain its own distance vector, its neighbors' distance vectors, and the costs to its direct neighbors. The algorithm operates iteratively: nodes exchange their distance vectors with neighbors, update their own estimates using the equation, and propagate any changes. This process continues until all distance vectors converge to the true least-cost paths. The node that provides the minimum cost in the Bellman-Ford equation becomes the next hop in the forwarding table.
🧠 Quick Revision Questions
- In the notation, what does c(x,y) represent, and what special value does it take if x and y are not direct neighbors?
- Write the Bellman-Ford equation for dx(y), and explain what the min function is taken over.
- What three pieces of routing information does each node x maintain?
- Describe the basic step-by-step process that occurs when a node x receives a new distance vector from a neighbor v.
- What does it mean for the estimate Dx(y) to converge to dx(y)?
📘 Lecture 49 — Working of Default Gateway Router
📖 Overview: This lecture explains how a default gateway router functions in an internetwork when a host wants to access a remote web server. Using Hannah's request to reach
www.example.com, it illustrates how packets traverse multiple IP networks, relying on the default gateway to forward traffic beyond the local subnet.
🗂️ Topics Covered
The lecture covers the definition and purpose of a default gateway router, the packet flow from a source host in one IP network to a destination server in another, the role of routing tables and ARP, and how the router forwards data across three different IP networks.
📝 Lecture Summary
Working of Default Gateway Router
This section walks through the scenario where Hannah wants to access www.example.com on a webserver. The internetwork has three different IP networks, each with a unique IP network number. The key is the default gateway router, which acts as the exit point for packets leaving the local network.
🔑 Definition — Default Gateway Router: A router that serves as the forwarding host for packets destined for networks outside the local subnet. It is the first hop for any off-network traffic. 📌 Example: Hannah's computer (on IP network A) sends a packet to the webserver (on IP network C). The packet is first sent to the default gateway router (on network A), which then routes it through network B to finally reach the webserver on network C. This relies on the router's routing table and ARP to find the next hop.
💡 Why this matters: Without a default gateway, a host can only communicate within its own subnet. The default gateway is essential for accessing any resource on a different IP network, like websites or remote servers.
⭐ Key Takeaways
- A default gateway router is the critical device that allows hosts to send packets to destinations outside their local IP network.
- When a host (e.g., Hannah) wants to reach a remote server, it sends the packet to the default gateway, which then uses its routing table to forward the packet across multiple networks.
- The internetwork in the example consists of three IP networks, and the packet traverses each hop, relying on ARP for MAC address resolution at each step.
- The default gateway must have an IP address in the same subnet as the host for the host to reach it directly.
- The process assumes the Distance Vector (DV) algorithm has converged, ensuring routing tables are up-to-date.
🧠 Quick Revision Questions
- What is the role of a default gateway router in IP networking?
- In the example, what is the first device Hannah's packet is sent to when accessing
www.example.com? - How many different IP networks are involved in the scenario described?
- What protocol is used by the default gateway to find the MAC address of the next hop?
- Why must the default gateway's IP address be on the same subnet as the sending host?
📘 Lecture 50 — Address Resolution Protocol
📖 Overview: This lecture explains how IP packets are transmitted over Ethernet networks through encapsulation and the Address Resolution Protocol (ARP). It describes the critical process by which a host determines the MAC address of its default gateway router to deliver packets to destinations on other networks.
🗂️ Topics Covered
The lecture covers two main issues: how IP packets are encapsulated in Ethernet frames for transmission over LANs, and how a host learns the Ethernet (MAC) address of its default router using ARP. It explains the roles of DHCP for learning the router's IP address, ARP broadcasts for MAC address discovery, and the encapsulation process where IP packets are placed between Ethernet headers and trailers.
📝 Lecture Summary
The Problem — Two Issues
A PC like Hannah's cannot send an IP packet directly over an Ethernet; it must send an Ethernet frame. The IP header contains the destination web server's IP address, but there is no field for the default gateway IP address. Hannah must find a way to ensure that R1 (her default router) receives the packet.
🔑 Definition — Default router/gateway: The router to which a PC sends packets when the destination is in another network or subnet.
Solution of Issue 1 — Encapsulation
Hannah encapsulates the IP packet in an Ethernet frame for transmission over the LAN. Ethernet places the IP packet between a header and a trailer. The Ethernet header contains source and destination Ethernet address fields. The trailer contains a Frame Check Sequence (FCS) field to detect transmission errors.
📐 Concept: Encapsulation → The process of wrapping an IP packet inside an Ethernet frame (header + data + trailer) for transmission over a LAN.
Solution of Issue 2 — Getting R1's MAC Address
To deliver the packet to R1, Hannah must include R1's Ethernet (MAC) address as the destination in the Ethernet frame. She learns the IP address of the default router either manually or via Dynamic Host Configuration Protocol (DHCP). To learn the MAC address of R1, Hannah uses the Address Resolution Protocol (ARP).
🔑 Definition — ARP (Address Resolution Protocol): A protocol used to map a known IP address to an unknown Ethernet (MAC) address on a local network.
Hannah generates an ARP broadcast — a request saying "Hey, if this is your IP address, tell me your Ethernet MAC address." Every device on the LAN receives this broadcast because the switch forwards LAN broadcasts to all devices in the network.
📌 Example: Hannah knows R1's IP address (e.g., 192.168.1.1) from DHCP. She does not know R1's MAC address. She sends an ARP broadcast frame to all devices: "Who has IP 192.168.1.1? Tell me your MAC address." R1 replies with its MAC address (e.g., 00:1A:2B:3C:4D:5E). Hannah now encapsulates the IP packet in an Ethernet frame with R1's MAC as destination and sends it to R1.
💡 Why this matters: Without ARP, a host cannot determine the hardware address needed to deliver an IP packet to the next-hop router, making communication across networks impossible.
⭐ Key Takeaways
The lecture explains that IP packets cannot be sent directly over Ethernet — they must be encapsulated in Ethernet frames with source/destination MAC addresses and an FCS trailer. The destination IP in the packet header is the final web server, not the router, so a host must separately learn its default gateway's MAC address. This is accomplished through ARP, where a host broadcasts "Who has this IP?" and the router with that IP unicasts back its MAC address. The default gateway's IP address itself is learned via manual configuration or DHCP.
🧠 Quick Revision Questions
- What is the two-part solution for delivering an IP packet from a host to a router on the same Ethernet?
- How does a host learn the IP address of its default gateway?
- What specific information does an ARP broadcast request ask for?
- Why does the IP header not include the default gateway's IP address?
- What is the role of the Frame Check Sequence (FCS) in the Ethernet trailer?
📘 Lecture 51 — Router’s Routing Logic and Table
📖 Overview: This lecture explains the three-step process a router uses when forwarding packets across an internetwork, from de-capsulation through encapsulation. It covers how routers make forwarding decisions using routing tables and ARP, and examines how the logic differs between intermediate routers and the final router directly connected to the destination.
🗂️ Topics Covered
The lecture covers the three steps of router packet forwarding: de-capsulation (checking frame errors and removing headers), forwarding decision (using the IP routing table to determine next hop), and encapsulation (creating a new frame with appropriate MAC addresses). It also explains the difference between an intermediate router and the final router, including how ARP is used to learn MAC addresses.
📝 Lecture Summary
Router’s Routing Logic and Table
This section introduces the scenario of Hannah's PC accessing www.example.com across an internetwork with three different IP networks, each with one IP network number. As R1 receives the packet, it must forward it to R2 next. The process breaks down into three steps: de-capsulation, deciding where to forward the packet, and encapsulation.
💡 Why this matters: Understanding these three steps is fundamental to grasping how routers move data across networks, forming the backbone of internet communication.
Step 1: De-capsulation
R1 checks the incoming frame's FCS (Frame Check Sequence). If there are errors, the frame is discarded. Otherwise, the router removes the frame header and trailer, leaving the original IP packet with source address 8.1.1.1 and destination address 130.4.3.3.
Step 2: Decide Where to Forward the Packet Next
A router makes a forwarding decision by examining the destination IP address of the IP packet. For routing to work well, the router needs to know how to reach the various IP networks and subnets in the internetwork. This information is contained in a routing table. RIP and OSPF are examples of routing protocols that help build routing tables.
🔑 Definition — Routing Table: A data structure stored in a router that contains information about how to reach various IP networks and subnets in the internetwork.
Step 3: Encapsulation
At this point, R1 has an IP packet sitting in memory. To send the IP packet out on interface E2, R1 needs to encapsulate it in a new Ethernet frame. In the newly created frame: the source MAC address is the MAC address of R1's E2 interface, and the destination MAC address is the MAC address of R2. If R1 does not know R2's MAC address, it uses ARP (Address Resolution Protocol) to find R2's MAC address and stores it in a cache for future use.
🔑 Definition — ARP (Address Resolution Protocol): A protocol used to discover the MAC address associated with a given IP address on a local network.
📌 Example: If R1 needs to send a packet to R2 but only knows R2's IP address, R1 broadcasts an ARP request asking "Who has IP address X?" R2 responds with its MAC address, which R1 caches for future communications.
Logic of Final Router
R2 follows the same logic as R1, except R2's routing table differs from R1's. Since R2 is the final router, it does not need to send the packet to another router; instead, it sends the packet directly to the web server.
From R2 to the web server: R2 creates a new Ethernet frame using its own Ethernet address on the outgoing interface as the source MAC. R2 uses ARP to learn the web server's MAC address and uses it as the destination MAC in the frame.
🔑 Definition — Final Router: The last router in the path that has a direct connection to the destination network, allowing it to forward packets directly to the destination host without going through another router.
⭐ Key Takeaways
The router's packet forwarding process involves three critical steps: de-capsulation (checking FCS and removing frame headers), routing table lookup (using the destination IP to decide the next hop), and encapsulation (creating a new frame with source and destination MAC addresses). Intermediate routers forward packets to the next router, while the final router sends packets directly to the destination host. ARP is essential for learning MAC addresses when they are not already cached. The routing table is the core database that enables routers to make correct forwarding decisions, and protocols like RIP and OSPF help populate these tables dynamically.
🧠 Quick Revision Questions
- What are the three steps a router performs when forwarding a packet?
- What does the router check in the incoming frame during de-capsulation?
- What information does a router use from the IP packet to make its forwarding decision?
- What is ARP and why does a router need it during encapsulation?
- How does the logic of a final router differ from an intermediate router when forwarding a packet?
📘 Lecture 52 — Routing with Subnets
📖 Overview: This lecture explains how a router's routing logic functions within an internetwork that uses subnetting. It demonstrates that despite the complexity of subnetting, the fundamental routing principles remain unchanged, using a Class B network example with three subnets to illustrate packet forwarding from source to destination.
🗂️ Topics Covered
The lecture examines routing logic in a subnetted internetwork, using a Class B IP network (150.1.0.0) subdivided into three subnets (150.1.1.0, 150.1.2.0, and 150.1.3.0). It covers how hosts in the same subnet share identical first three octets, the role of default gateways, ARP broadcasts for MAC address resolution, and how routers forward packets based on routing table entries through multiple hops to reach the final destination.
📝 Lecture Summary
Routing with Subnets
This topic explains how a router's routing logic works with subnets.
Let's assume an internetwork of a single Class B IP network 150.1.0.0. This IP network is subdivided into three subnets namely, 150.1.1.0, 150.1.2.0, and 150.1.3.0. All hosts in a given IP subnet have the same value in the first 3 octets of their IP addresses. Next, we look at the routing tables.
[Figure 52.1: Routing with Subnets]
When Hannah sends a packet to the web server, destination address is 150.1.3.3. Hannah's logic works like it did without subnetting. Hannah's default gateway is R1. Hannah sends an ARP broadcast for IP address 150.1.1.250. R1 replies and Hannah sends a frame to R1 with the IP packet inside the Ethernet frame. R1 receives the frame, and if it is error free, it extracts the IP packet. R1 uses destination address and finds an entry for it in its IP routing table. R1 forwards packet out on its E2 interface to R2 next. Finally, when R2 receives the frame, it does the usual error check and extracts the IP packet. R2 finds an entry for destination IP address. R2 can forward the packet directly to the web server. Whether or not an internetwork uses subnetting, the basic routing logic remains the same. If Hannah sends a packet to someone who's on the same subnet, she can send it directly to the destination without involving default router.
🔑 Definition — Default Gateway: The router that a host uses to send packets to destinations outside its own subnet.
🔑 Definition — ARP (Address Resolution Protocol) Broadcast: A network request sent to all devices on a local subnet to discover the MAC address associated with a given IP address.
📌 Example: In the subnetted internetwork:
- Source: Hannah (IP address 150.1.1.1, subnet 150.1.1.0)
- Destination: Web Server (IP address 150.1.3.3, subnet 150.1.3.0)
- Hannah sends packet to default gateway R1 (150.1.1.250)
- R1 forwards packet via its E2 interface to R2
- R2 delivers packet directly to web server
- The packet traverses two router hops (R1 and R2) before reaching the destination
💡 Why this matters: Understanding that subnetting does not change basic routing logic is crucial for network design. The same fundamental forwarding decisions apply whether routing within a simple Class B network or across complex subnetted internetworks.
⭐ Key Takeaways
The essential concept from this lecture is that subnetting adds organization to IP addressing but does not alter the fundamental routing logic. Routers still examine destination IP addresses, consult their routing tables, and forward packets accordingly. Hosts still use default gateways to reach destinations outside their own subnet, and ARP broadcasts remain necessary for local MAC address resolution. The critical insight is that whether an internetwork uses subnetting or not, the basic routing logic remains exactly the same - only the addressing structure changes.
🧠 Quick Revision Questions
- What is the primary difference in routing logic between a subnetted and non-subnetted internetwork?
- In the example, which router serves as Hannah's default gateway and what is its IP address?
- How many router hops does Hannah's packet traverse to reach the web server at 150.1.3.3?
- What determines whether a host can send a packet directly to the destination without involving the default gateway?
- What is the role of an ARP broadcast in the packet forwarding process described in this lecture?
📘 Lecture 53 — Router Hardware Architecture
📖 Overview: This lecture explains the hardware components of a router, which is fundamental to understanding how packets are forwarded in a network. It covers the two key router functions (routing algorithms and forwarding), the architecture of input ports, switching fabrics, and output ports, as well as the critical issue of queuing and packet loss.
🗂️ Topics Covered
The lecture begins by introducing the two key router functions: running routing algorithms (RIP, OSPF) and forwarding datagrams from incoming links to appropriate outgoing links. It then presents a generic router architecture including input ports, switching fabrics, and output ports. The discussion proceeds to explain input port functions, three types of switching fabrics (memory, bus, crossbar), output port functionality, and where queuing occurs at both input and output ports, including the phenomena of Head-of-the-Line (HOL) blocking.
📝 Lecture Summary
Router Hardware Architecture
There are two key router functions: run routing algorithms (RIP, OSPF) and forwarding datagrams from incoming links to appropriate outgoing links. A generic router architecture includes input ports, a switching fabric, and output ports. The router’s hardware components work together to perform these functions efficiently.
Input Ports
Input ports perform physical and data link layer functions of an incoming physical link at a router. They determine the output port to which an arriving packet will be forwarded via the switching fabric.
🔑 Definition — Input Port: The router component that performs physical and data link layer functions on an incoming physical link and determines the output port for forwarding via the switching fabric.
Switching fabrics
Switching fabrics transfer packet from input buffer to appropriate output buffer. The rate at which packets can be transferred from inputs to outputs is called the switching rate. The three types are: switching via memory, switching via a bus, and switching via an interconnection network (crossbar).
🔑 Definition — Switching Fabric: The component that transfers packets from input buffers to appropriate output buffers, with a switching rate defining the transfer speed. 🔑 Definition — Switching Rate: The rate at which packets can be transferred from inputs to outputs.
Output port
The output port receives packets from the switching fabric and transmits them over the outgoing link. It performs necessary data link and physical layer functions before sending the packets out on the line.
Where does queuing occur?
Packet queues can form at both input and output ports. The location and extent of queuing will depend on the traffic load, speed of switching fabric, and line speed. As these queues grow large, the router’s buffer space will eventually be exhausted and packet loss will occur when no memory is available to store arriving packets.
Suppose switch speed is N times faster than speed of line. Even then output buffering will still occur when multiple inputs send to the same output. This scenario creates contention at the output port.
The Head-of-the-Line (HOL) blocking at Input Port is a phenomenon where the packet at the front of an input queue is blocked from being forwarded because its destination output port is busy, causing all subsequent packets in that input queue to wait, even if their own destination ports are free.
💡 Why this matters: Understanding queuing dynamics is critical for designing routers with appropriate buffer sizes and switch speeds to minimize packet loss and latency.
🔑 Definition — Head-of-the-Line (HOL) Blocking: A condition at input ports where the first packet in a queue cannot be forwarded because its destination output port is busy, blocking all subsequent packets in that input queue.
⭐ Key Takeaways
The most critical concepts from this lecture are the two key router functions (routing algorithms and forwarding) and the three main hardware components: input ports, switching fabric, and output ports. Input ports determine the output port for each arriving packet, switching fabrics transfer packets from input to output buffers using one of three methods (memory, bus, or crossbar), and output ports transmit packets over outgoing links. Queuing occurs at both input and output ports, dependent on traffic load, switching fabric speed, and line speed, and can lead to packet loss when buffers overflow. The Head-of-the-Line (HOL) blocking phenomenon at input ports demonstrates how a single blocked packet can prevent other packets in the same queue from being forwarded, creating inefficiency in router performance.
🧠 Quick Revision Questions
- What are the two key functions of a router?
- Name the three types of switching fabrics used in routers.
- What determines the location and extent of queuing at router ports?
- Explain what happens when a router’s buffer space is exhausted.
- Define Head-of-the-Line (HOL) blocking and describe when it occurs.
📘 Lecture 54 — Routing to Nearby Places
📖 Overview: This lecture explains how a router learns about networks/subnets that are directly connected to it. When a router's interfaces are configured and operational, it automatically knows which subnets are directly attached and can add those routes to its routing table without needing to communicate with other routers.
🗂️ Topics Covered
The lecture covers how a router discovers directly connected networks once its physical interfaces are up and configured with IP addresses. It explains the process of configuring a new router, how the router uses the IP address and subnet mask to determine the valid range of IP addresses in each subnet, and how it then adds a route for each directly connected subnet to its routing table without needing to forward packets to another router.
📝 Lecture Summary
Topic 54: Routing to Nearby Places
In this topic, we explain how a router learns routing table for networks/subnets that are directly connected to it.
At a given time, a router knows which of its physical interfaces are up and working. It knows the IP addresses used on each interface. Also, it knows about IP networks or subnets that are connected to its interfaces. The router can add a route to the subnet in its routing table.
Configuring a Router — When you buy a brand new router, a network engineer connects to the router and tells the router which IP addresses to use. For each interface, use an IP Address and Subnet mask to figure out the range of valid IP addresses in each subnet.
After R1's interfaces are up, it knows about subnets: the subnet numbers, the outgoing interface it should use to forward packets to them. There is no need to send packets to another router for them. In our previous example, R1's Ethernet1 interface is connected directly to the same subnet as Hannah. As a result, R1 simply adds a route for each directly connected subnet to its routing table.
⭐ Key Takeaways
A router learns about directly connected networks automatically once its interfaces are configured with IP addresses and subnet masks and are operational. The network engineer's job is to initially configure the IP addresses on each interface. The router uses the IP address and subnet mask to determine the network/subnet number and the range of valid IP addresses. For directly connected subnets, the router adds a route with the outgoing interface but no next-hop router, because packets can be sent directly. This is the simplest way a router populates its routing table, and it forms the foundation for learning routes to remote networks through other routing protocols.
🧠 Quick Revision Questions
- What information does a router need to know about each of its interfaces to discover directly connected subnets?
- How does a router determine the subnet number and valid IP address range for a directly connected network?
- When a router has a directly connected route, does it need a next-hop router address in its routing table? Why or why not?
- What is the role of a network engineer when configuring a new router?
- In the example with R1 and Hannah, why does R1 not need to send packets to another router to reach Hannah's subnet?
📘 Lecture 55 — Dynamically Learning Routing Tables
📖 Overview: This lecture explains how routers learn routing table entries dynamically through routing protocols, rather than relying solely on static configuration. It covers the fundamental process by which routers exchange route information, enabling them to build comprehensive knowledge of network topology automatically.
🗂️ Topics Covered
The lecture begins by contrasting static routes with dynamic learning, then introduces routing protocols as the mechanism for automatic route discovery. It explains the step-by-step process of how routers initially know only directly connected routes, then generate and exchange routing updates containing network/subnet information. Finally, it details how receiving routers process these updates by recording the incoming interface and the sending router's IP address as the next-hop.
📝 Lecture Summary
Topic 55: Dynamically Learning Routing Tables
This topic explains how routing table entries are learnt dynamically. The most typical way a router learns all the rest of the routes in an internetwork, beyond just its directly connected routes, is by using a routing protocol. Routing protocols define messages by which routers can exchange route information with other routers. If all the routers participate, all routers should have routes for all subnets or networks.
Let’s assume an internetwork that consists of two routers and three subnets. Several steps that occur over time are:
- Each router knows only its directly connected routes.
- A router generates a routing protocol message (called a routing update) that contains information about IP networks and subnets and sends it to another router.
- The receiving router: a) Puts that interface into the route in which it received the routing update. b) Also puts the IP address of the router that sent the routing update as the next-hop router.
The lecture illustrates this with a diagram (Figure 55.1) showing R2 advertising its routes, with R1 learning a route to subnet 150.1.3.0. In the process:
🔑 Definition — Routing Protocol: A set of messages and rules that routers use to exchange route information with each other, allowing dynamic learning of network topology.
📐 Formula: Route learned = Destination subnet + outgoing interface (where update received) + next-hop router (IP address of sending router)
📌 Example: Consider an internetwork with two routers (R1 and R2) and three subnets. Initially, R1 knows subnet 150.1.2.0 (directly connected on Ethernet1) and R2 knows subnet 150.1.3.0 (directly connected on Ethernet2). R2 sends a routing update containing "I have a route to subnet 150.1.3.0". R1 receives this update on its Ethernet1 interface (interface where update arrived). R1 records: destination = 150.1.3.0, outgoing interface = Ethernet1, next-hop = R2's IP address (150.1.2.2). Now R1 can forward packets to 150.1.3.3 via R2.
💡 Why this matters: Dynamic routing eliminates the need for manual configuration of every route, making networks scalable and resilient to topology changes.
⭐ Key Takeaways
Routing protocols are the essential mechanism for dynamic route learning, allowing routers to automatically exchange routing information beyond their directly connected networks. The learning process follows a consistent three-step pattern: initial knowledge of only directly connected routes, generation of routing update messages containing known network/subnet information, and processing of received updates where the receiving router records the incoming interface and the sender's IP address as the next-hop. This dynamic approach solves the problem of static routing, particularly the difficulty of adapting to network topology changes and the inability to utilize multiple physical paths simultaneously. The critical distinction is that while directly connected routes are automatic when an interface is configured and working, all other routes must be learned either statically (configured by an engineer) or dynamically (via routing protocols). Successful routing protocol implementation requires all routers to participate, ensuring every router has complete knowledge of all subnets and networks in the internetwork.
🧠 Quick Revision Questions
- What three pieces of information does a receiving router record when it processes a routing update?
- Why do static routes make it difficult to utilize multiple physical paths to the same destination?
- What is the initial routing knowledge of each router before any routing protocol exchange occurs?
- What is the purpose of a routing update message in a routing protocol?
- How does the dynamic learning process ensure that routers eventually have routes for all subnets in an internetwork?
📘 Lecture 56 — How to Pick the Best Route
📖 Overview: This lecture explains how routing protocols select the best path to a destination when multiple routes exist. It introduces the concept of a metric — a numerical value that determines route quality — and describes how routers react when a preferred route fails. Understanding best-route selection is fundamental to building reliable and efficient networks.
🗂️ Topics Covered
The lecture begins by describing a three-router internetwork where Router R1 can reach subnet 150.1.3.0 through either R2 or R3. It then explains how routing protocols use a number called a metric to evaluate each route's quality. The scenario concludes with a failure event: when the Ethernet switch between R1 and R2 loses power, the routing protocol removes the failed route from the routing table, leaving only the backup route through R3 active.
📝 Lecture Summary
How the Best Route Gets Selected
Routing protocols not only help routers learn routes, but they also help routers learn the best routes to a destination when there is more than one way to get there. Assume an internetwork consisting of three routers. R1 can send packets to subnet 150.1.3.0 through R2 or through R3.
![Figure 56.1: How the best route gets selected]
🔑 Definition — Metric: A number defined by a routing protocol that is associated with each route in a routing update. That number represents how good or how bad that route is.
When a router receives multiple routing updates, it might learn of multiple ways to reach a subnet. By looking at the metrics, the router can pick the best route.
![Figure 56.2: The router can pick the best route]
Handling Route Failure
Imagine that someone turns off the power on the Ethernet switch between R1 and R2. That route would then fail and be unavailable. The routing protocol on R1 would remove the route from the routing table. At the same time, R1's routing protocol would continue to learn about the alternative route through R3, so packets destined for subnet 150.1.3.0 would be forwarded through that remaining route.
💡 Why this matters: Route failure handling ensures network resilience. When the primary path fails, the routing protocol automatically removes the dead route and relies on the surviving backup route, maintaining connectivity without manual intervention.
⭐ Key Takeaways
Routing protocols serve a dual purpose: they learn routes and also identify the best route when multiple paths exist. The metric is the decisive factor — it is a numerical value assigned to each route that indicates its quality or cost. When multiple routes to the same destination are learned, the router selects the one with the best metric. If a route fails (for example, because a switch loses power), the routing protocol removes that route from the routing table. As long as an alternative route remains available through another path, the router continues to forward traffic using that surviving route.
🧠 Quick Revision Questions
- What is the purpose of a metric in a routing protocol?
- In the example with subnet 150.1.3.0, through which two routers could R1 reach the destination?
- What does a router do when it receives multiple routing updates for the same subnet?
- What happens to a route when the Ethernet switch between two routers loses power?
- After the Ethernet switch between R1 and R2 fails, how does R1 forward packets to subnet 150.1.3.0?
📘 Lecture 57 — Interior & Exterior Routing Protocols
📖 Overview: This lecture explains why routing on the internet cannot be done with a single, flat routing protocol and introduces the concept of hierarchical routing through Autonomous Systems (ASes). It distinguishes between interior routing protocols (used within an AS) and exterior routing protocols (used between ASes), which is fundamental to understanding how the global internet scales and respects administrative boundaries.
🗂️ Topics Covered
The lecture covers the limitations of flat routing (scale and administrative autonomy), the definition and role of Autonomous Systems (ASes), the function of gateway routers, and the distinction between intra-AS (interior) and inter-AS (exterior) routing protocols. It uses a diagram to illustrate how gateway routers within one AS forward packets to destinations outside that AS.
📝 Lecture Summary
Hierarchical Routing
Considering the network to be flat, taking all routers to be identical and running one single routing protocol is not realistic. There are at least two reasons:
- Scale: With hundreds of millions of destinations, it is impossible to store all destinations in routing tables. Similarly, routing table exchanges would swamp links.
- Administrative Autonomy: The internet is a network of networks. Each network admin may want to control routing in its own network.
💡 Why this matters: Without hierarchy, the internet would collapse under the weight of its own routing information, and no single organization would accept another controlling its internal routing decisions.
🔑 Definition — Autonomous System (AS): Organize routers into regions. An AS is under the same administrative control. For example, operated by the same ISP or belonging to the same company network.
All routers within the same AS run the same routing protocol (intra-AS or interior routing protocol) and have information about each other. Routers in different ASes can run different intra-AS routing protocols.
🔑 Definition — Gateway routers: To connect ASes to each other, one or more of the routers in an AS will have to be responsible for forwarding packets to destinations outside the AS.
📌 Example: In the diagram, if a router in AS1 receives an IP packet destined outside of AS1, then it uses an inter-AS (exterior) routing algorithm to learn which destinations are reachable through which gateway router, and then forwards the packet accordingly.
⭐ Key Takeaways
A flat routing model is unrealistic due to scale and administrative autonomy, so the internet is organized into Autonomous Systems (ASes). Each AS is under a single administrative control and runs its own intra-AS (interior) routing protocol among its routers. Gateway routers connect different ASes and use inter-AS (exterior) routing protocols to learn reachability to destinations in other ASes. This hierarchical structure allows the internet to scale globally while respecting the autonomy of individual networks.
🧠 Quick Revision Questions
- What are the two main reasons why a single, flat routing protocol across the entire internet is not realistic?
- Define an Autonomous System (AS) and give an example of what entity might operate one.
- What is the role of a gateway router in the context of connecting different ASes?
- Do routers in the same AS always run the same interior routing protocol? Do routers in different ASes always run the same interior routing protocol?
- When a router in AS1 receives a packet destined for a host outside AS1, what type of routing algorithm does it use to decide where to forward the packet?
📘 Lecture 58 — Introduction to Domain Name System
📖 Overview: This lecture explains why a Domain Name System (DNS) is required for the Internet. It covers the need for multiple identifiers, the function of DNS as a distributed database, and the core services DNS provides. Understanding DNS is essential for grasping how user-friendly hostnames are translated into router-friendly IP addresses, making Internet communication seamless.
🗂️ Topics Covered
The lecture introduces the concept of multiple identifiers for Internet hosts, contrasting human-friendly hostnames with machine-friendly IP addresses. It explains the need for a Domain Name System as a distributed database, analogous to a phone book. The hierarchical namespace structure is described, along with the roles of Top-Level Domains (TLDs), Second-Level Domains (SLDs), and subdomains. Finally, the core services provided by DNS—hostname-to-IP-address translation, host aliasing, mail server aliasing, and load distribution—are detailed.
📝 Lecture Summary
Why is DNS Required?
People have many identifiers (e.g., name, passport#, NTN#, NIC#). One identifier cannot be used everywhere. Similarly, Internet hosts have many identifiers. A hostname (e.g., www.yahoo.com) is human-friendly but difficult for routers to process variable length alphanumeric characters. An IP address (32 bit) is router-friendly. If you need to call someone and you know the person's name but not the phone number, you can look up the information in a phone book. TCP/IP hosts can have the equivalent of a phone book in a file. The local host file contains a list of TCP/IP host computer names and their corresponding IP addresses.
🔑 Definition — Hostname: A human-friendly alphanumeric identifier for a network host, such as www.example.com. 🔑 Definition — IP Address: A 32-bit numeric identifier that routers use to deliver packets across networks. 📌 Example: If Hannah types http://www.example.com in a browser, the system needs to find the corresponding IP address to establish a connection.
DNS is a Distributed Database
When the Internet was small, a single hosts.txt file (managed by the Network Information Center at SRI) was used. An administrator would email changes, and the updated file was downloaded weekly. This method had obvious drawbacks: the file and traffic would be huge for the growing Internet, host names could not be unique, and the process was inefficient.
DNS is not a single database but is distributed across many servers. It is implemented in a hierarchy of many name servers. DNS is an application-layer protocol — the client-server paradigm runs over UDP on port 53. DNS is also a core Internet function, meaning if DNS does not work, many other services (web, email, file transfer) also stop working.
🔑 Definition — Name Server: A server that stores DNS database records and responds to DNS queries. 🔑 Definition — Application-Layer Protocol: A network protocol that operates at the application layer (Layer 7) of the OSI model, used for communication between programs. 📐 Formula: DNS Operation → User → Query → DNS Server → Response (IP Address) → User connects to destination.
DNS Namespace
The DNS namespace is organized hierarchically into a tree structure (like a directory tree). The root of the tree is unnamed. The root is a logical concept — there are 13 logical root name servers (each replicated for redundancy). Under the root are Top-Level Domains (TLDs).
There are three types of TLDs:
- Generic Top-Level Domains (gTLDs): .com, .org, .net, .edu, .gov
- Country Code Top-Level Domains (ccTLDs): .pk, .uk, .au
- Infrastructure Top-Level Domain: .arpa (used for reverse DNS lookups)
Under TLDs are Second-Level Domains (SLDs) (e.g., foo.com is a SLD under .com). Each SLD can have subdomains (e.g., eng.foo.com, sales.foo.com). Each subdomain can be further divided. A domain is a subtree of the DNS namespace.
🔑 Definition — Namespace: A hierarchical tree structure that organizes all domain names on the Internet.
🔑 Definition — Top-Level Domain (TLD): The highest level in the DNS hierarchy, such as .com, .org, .edu.
📌 Example: In the hostname eng.foo.com, the sequence is: . (root) → .com (TLD) → .foo (SLD) → .eng (subdomain).
DNS Services
DNS provides several essential services beyond simple name-to-address translation:
- Hostname to IP Address Translation: This is the primary service. DNS resolves a hostname (e.g., www.yahoo.com) into an IP address (e.g., 68.180.206.184).
- Host Aliasing: A host can have multiple names. The canonical hostname (actual name) can have one or more alias hostnames. DNS resolves an alias to the canonical name.
- Mail Server Aliasing: Email addresses use simple names like
user@company.cominstead of the actual mail server name. DNS resolves the alias to the canonical mail server name. - Load Distribution: Busy sites (e.g.,
cnn.com) are replicated across multiple servers with different IP addresses. DNS translates the same hostname into different IP addresses for different requests, distributing the load.
🔑 Definition — Canonical Hostname: The actual, primary hostname of a server. 🔑 Definition — Alias Hostname: An alternative name for a server that points to the canonical hostname. 💡 Why this matters: Load distribution via DNS is a simple and effective way to balance traffic across multiple web servers without requiring complex hardware load balancers at the application layer.
⭐ Key Takeaways
The lecture establishes that DNS is an indispensable core Internet service that translates human-friendly hostnames into machine-friendly IP addresses. Unlike the early days of a single hosts.txt file, DNS is a distributed, hierarchical database that scales globally. Its namespace is structured as a tree from root to TLDs to SLDs and subdomains. Beyond basic translation, DNS provides critical services including host aliasing, mail server aliasing, and load distribution. A deep understanding of DNS is fundamental because its failure impacts virtually all Internet applications — web, email, and file transfers all depend on DNS resolution.
🧠 Quick Revision Questions
- Why can't we simply use a single, centralized hosts.txt file for name resolution on the modern Internet?
- What are the three main categories of Top-Level Domains (TLDs)? Give an example of each.
- Explain how DNS performs load distribution for a busy website like www.cnn.com.
- What is the difference between a canonical hostname and an alias hostname?
- On which transport layer protocol and port does DNS typically operate?
📘 Lecture 59 — Domain Name System (DNS) Servers
📖 Overview: This lecture explains the need for multiple domain name system (DNS) servers organized hierarchically, addressing the scalability problems of a centralized DNS. It describes how different types of DNS servers interact to resolve a domain name into an IP address, and introduces the roles of root, TLD, authoritative, and local DNS servers.
🗂️ Topics Covered
The lecture begins by introducing DNS as an application-layer protocol for name resolution, then outlines the major problems with a centralized DNS approach: single point of failure, traffic volume, distant database delays, and maintenance burdens. It presents the solution of a distributed, hierarchical DNS server architecture, explaining the interaction flow between root servers, top-level domain (TLD) servers, authoritative servers, and local DNS servers. A concrete example of resolving www.amazon.com is used to illustrate this process.
📝 Lecture Summary
Domain Name System (DNS) Servers
DNS is an application-layer protocol that allows hosts to query a database and to resolve names (name, address). It is employed by other application-layer protocols such as HTTP, SMTP, and FTP.
Problems with centralized DNS
A centralized DNS approach presents four critical problems:
- Single point of failure: If the DNS server crashes, so does the entire Internet.
- Traffic volume: A single server would have to handle all DNS queries.
- Distant centralized database: A single server cannot be “close to” all the querying clients – causing significant delays.
- Maintenance: A centralized database would have to be updated frequently for every new host.
🔑 Definition — Centralized DNS: A single server holding all name-to-IP mappings for the entire Internet.
In order to deal with the issue of scale, the DNS uses a large number of servers, organized in a hierarchical fashion and distributed around the world.
Interaction of Servers: an approximation
Let’s assume a client wants the IP address for www.amazon.com.
- The client queries a root server to find the com DNS server.
- The client queries the com DNS server (TLD) to get the amazon.com DNS server.
- The client queries the amazon.com DNS server (Authoritative) to get the IP address for www.amazon.com.
🔑 Definition — Root Name Servers: In the Internet there are 13 root servers.
🔑 Definition — Top-level Domain (TLD) Servers: Responsible for com, org, net, edu, gov, and all top-level country domains, e.g.: uk, fr, ca, jp.
🔑 Definition — Authoritative Servers: Organizations with publicly accessible hosts (e.g. web servers) must provide publicly accessible DNS records that map the names of those hosts to IP addresses.
🔑 Definition — Local DNS Servers: Do not strictly belong to the hierarchy. Each ISP has one server which is also called a “default name server”. When a host makes a DNS query, the query is sent to its local DNS server.
💡 Why this matters: The hierarchical and distributed design of DNS servers prevents the Internet from having a single point of failure, distributes query traffic globally, and allows updates to be managed locally by the organization that owns a domain. Without this structure, the Internet as we know it could not scale.
⭐ Key Takeaways
A centralized DNS is impractical due to single-point-of-failure, massive traffic volume, geographic delays, and frequent maintenance overhead. The actual DNS uses a distributed, hierarchical architecture with root servers, TLD servers, authoritative servers, and local DNS servers. There are exactly 13 root servers in the Internet. The resolution process for www.amazon.com involves three sequential queries: first to a root server to locate .com, then to the .com TLD server to locate amazon.com, and finally to amazon.com's authoritative server to get the IP address. Local DNS servers, one per ISP, act as the first point of contact for client queries and cache results to improve performance.
🧠 Quick Revision Questions
- What are the four problems with a centralized DNS approach?
- How many root name servers exist in the Internet?
- What is the role of a Top-level Domain (TLD) server?
- Who provides authoritative DNS servers for a domain like amazon.com?
- What is the function of a local DNS server, and does it strictly belong to the DNS hierarchy?
📘 Lecture 60 — Working of Domain Name System
📖 Overview: This lecture explains the working of the Domain Name System (DNS) both inside and outside a company. It covers how DNS resolves names to IP addresses within an enterprise network and how it handles external website requests, including the concept of DNS caching.
🗂️ Topics Covered
This lecture covers the internal DNS resolution process within a company's enterprise network, illustrated with the example of Hannah's PC accessing a local website. It then explains the external DNS resolution process when accessing a website hosted in a different company's network.
📝 Lecture Summary
Working of Domain Name System
This topic explains how the Domain Name System (DNS) functions to figure out names and IP addresses for the entire Internet, as well as inside a single site at a single company.
Inside the Company
Assume that Hannah’s PC is inside the example.com corporation's enterprise network and she wants to view http://www.example.com.
For DNS to work well inside a company, someone must be responsible for supporting it. That work includes updating and changing the list of names and IP addresses.
Outside the Company
Assume that Hannah wants to access the http://www.fredsco.com website, which is located in the Fredsco enterprise network.
🔑 Definition — DNS Caching: once (any) name server learns a mapping, it caches that mapping for future use.
📐 Formula: No formula is presented in this lecture.
📌 Example: The lecture uses two contrasting scenarios to illustrate DNS working. In the first scenario, Hannah (inside example.com) accesses a website within her own company's network. In the second scenario, she accesses a website located in a different company's network (fredsco.com), highlighting that the resolution process involves servers outside her own enterprise.
⭐ Key Takeaways
A student must understand that DNS operates differently for internal and external name resolution within an enterprise network. DNS requires a responsible administrator to maintain the list of names and IP addresses inside a company. The critical concept of caching is introduced, where name servers store learned mappings to improve efficiency. The lecture provides two concrete network diagrams showing how a single user's request travels depending on the target domain's location.
🧠 Quick Revision Questions
- What is the role of an administrator in making DNS work well inside a company?
- According to the lecture, what happens when a name server learns a mapping?
- What is the difference between Hannah accessing www.example.com versus www.fredsco.com?
- What term describes the process where a name server stores a learned mapping for future use?
- In the context of this lecture, what does DNS define?
📘 Lecture 61 — DNS Resource Records
📖 Overview: This lecture explains the structure and use of DNS Resource Records (RRs), which are the fundamental data units stored in DNS servers that map domain names to IP addresses. It describes the different types of resource records and demonstrates the practical process of registering a new domain name and how DNS queries resolve to allow web browsing.
🗂️ Topics Covered
This lecture covers the structure of DNS Resource Records including the four key fields (Name, Value, Type, TTL), the five main type definitions (A, NS, CNAME, MX, AAAA), and a step-by-step walkthrough of how domain names are registered with ICANN-accredited registrars. It then follows the complete DNS resolution process when a user attempts to access a newly registered website.
📝 Lecture Summary
DNS Resource Records
The DNS distributed database is stored on servers in the form of resource records (RRs). Each resource record contains four fields: (Name, Value, Type, TTL). The Type field defines how the Name and Value fields should be interpreted.
The Type field is defined as:
- Type = A — Provides a standard hostname to IPv4 address mapping: (hostname, IP address)
- Type = NS — Specifies an authoritative DNS server for a domain: (domain, hostname of authoritative name server)
- Type = CNAME — Provides canonical name alias: (alias hostname, canonical hostname)
- Type = MX — Specifies mail exchange server: (alias domain name, canonical name of mail server)
- Type = AAAA — Provides a hostname to IPv6 address mapping: (hostname, IPv6 address)
Inserting resource records into DNS
Let’s assume that Alice just created a new startup company “Network Utopia”. She wants to register domain name networkuptopia.com.
🔑 Definition — Registrar: An organization accredited by the Internet Corporation for Assigned Names and Numbers (ICANN) that verifies the uniqueness of domain names, enters them into the database, and collects a small fee for its services.
Step 1: Alice contacts a registrar to register her domain name. Step 2: She provides the registrar with the names and IP addresses of her primary and secondary authoritative name servers. Step 3: The registrar inserts two RRs into the TLD com server:
- Type NS record: (networkutopia.com, dns1.networkutopia.com, NS)
- Type A record: (dns1.networkutopia.com, 212.212.212.1, A) Step 4: Alice must ensure that:
- A Type A record for her web server www.networkuptopia.com is entered into her authoritative DNS servers
- A Type MX record for her mail server mail.networkutopia.com is entered into her authoritative DNS servers
💡 Why this matters: This registration process is what makes your website visible to the entire internet — without these RRs properly configured, no one can find your server.
The DNS Resolution Process
Now suppose Bob views www.networkutopia.com:
- Bob’s host sends a DNS query to his local DNS server
- The local DNS server contacts a TLD com server
- The TLD com server contains the NS and A RRs listed above and sends a reply back to Bob’s local DNS server
- Bob’s local DNS server then sends a query to 212.212.212.1, asking for the Type A record
- The authoritative name server responds with the Type A record, providing the IP address of the web server, say 212.212.71.4
- Bob’s host now has the IP address and the browser can initiate a TCP connection
📌 Example: When Bob types www.networkutopia.com, his local DNS server queries the TLD com server, which responds with the NS record pointing to dns1.networkutopia.com (212.212.212.1). The local server then queries that authoritative server for the Type A record of www.networkutopia.com and receives IP 212.212.71.4, enabling Bob's browser to open a TCP connection.
⭐ Key Takeaways
The DNS system relies entirely on Resource Records which store mappings between names and values with specific type definitions. There are five critical RR types: A (IPv4 address), NS (authoritative name server), CNAME (alias), MX (mail server), and AAAA (IPv6 address). Registering a domain requires working with an ICANN-accredited registrar who inserts NS and A records into the TLD server, while the domain owner must configure A and MX records on their own authoritative servers. The resolution process involves a chain: local DNS server → TLD server → authoritative name server, with each step querying for specific RR types. Understanding this flow is essential for diagnosing DNS failures in real-world networks.
🧠 Quick Revision Questions
- What are the four fields contained in every DNS Resource Record?
- What is the difference between a Type A record and a Type NS record?
- Which organization accredits domain registrars, and what is the registrar's role?
- List all five Type definitions discussed in this lecture and briefly explain each.
- Trace the complete DNS resolution process when a user tries to access www.networkutopia.com for the first time.
📘 Lecture 62 — Introduction to Wide Area Network
📖 Overview: This lecture introduces the concept of a wide area network (WAN) and explains how it differs from local area networking. It highlights why simple Ethernet cabling cannot be used over long distances due to legal and physical constraints, setting the foundation for understanding dedicated WAN technologies.
🗂️ Topics Covered
The lecture defines what a wide area network (WAN) is in terms of device distance and legal cabling boundaries. It then presents a simple scenario of connecting two routers with an Ethernet crossover cable, explaining how signal transmission works between them. Finally, it identifies two critical problems—legal and physical—that prevent using Ethernet over long distances like between Atlanta and Cincinnati.
📝 Lecture Summary
What is a Wide Area Network?
A wide-area network (WAN) defines a type of network, or part of a network, in which the devices are relatively far apart. A WAN is a network, or part of a network, for which the cabling must pass outside the property of one company. The distance might only be a few miles, or it might be thousands of miles!
How Two Routers Could Connect (In Theory)
You can run an Ethernet cross-over cable between two devices and the two devices can communicate with Ethernet. That works well, but can we use it for longer distances? If two routers in two cities need to forward packets to each other, they need some sort of physical medium over which to send the packets.
When R1 sends out an electrical signal over the cable, R2 needs to receive that same signal on the wires that it expects to receive data. Likewise, R1 needs to receive what R2 transmits. Because the physical interfaces on the routers use the same pins to transmit, the cable connects the twisted pair used for transmitting by R1 over to R2's receive pins, and vice versa. In short, all that the two routers need is a cable between them, with transmit and receive pairs of wires, so that they can send and receive anytime they want.
🔑 Definition — wide-area network (WAN): A network or part of a network in which the devices are relatively far apart and the cabling must pass outside the property of one company.
Problems with Using Ethernet over Long Distances
In the previous example, there are two problems that stop you from using Ethernet:
- 1: You are not legally allowed to run a cable between Atlanta and Cincinnati.
💡 Why this matters: Even though two routers could theoretically communicate using a simple Ethernet crossover cable, the physical and legal barriers of running cables across public or third-party property make Ethernet impractical for WAN connections. This is why dedicated WAN technologies and service providers are necessary.
⭐ Key Takeaways
A WAN is defined by both distance and the fact that cabling must leave a company's property, unlike a LAN. While two routers can theoretically communicate using an Ethernet crossover cable with proper transmit/receive wiring, legal restrictions prevent running cables across cities or states. The core problem is not technical feasibility but legal permission to use the physical medium over public or third-party land. This lecture sets the stage for understanding why service providers and dedicated WAN technologies exist.
🧠 Quick Revision Questions
- What is the definition of a wide area network (WAN) according to this lecture?
- How does an Ethernet crossover cable allow two routers to send and receive signals to each other?
- What is one specific problem that prevents using Ethernet between Atlanta and Cincinnati?
- Does the lecture state that Ethernet is technically incapable of working over long distances?
- Why must WAN cabling pass outside the property of one company?
📘 Lecture 63 — Different Aspects of WAN Link
📖 Overview: This lecture explains how telephone companies (telcos) enable long-distance communication between two routers located miles apart, such as Atlanta and Cincinnati. It covers the physical and logical services required to create a WAN link, including the role of serial interfaces, 4-wire circuits, and central office switches.
🗂️ Topics Covered
The lecture covers the three main services a telco must provide to connect two distant routers: a cable-like service with crossed wire pairs, proper physical encoding via serial interfaces, and the infrastructure of central offices (COs) with WAN switches that ensure the path between locations. It emphasizes the telco's existing cable networks and legal right-of-way for installation.
📝 Lecture Summary
To Connect Two Routers (e.g., Atlanta and Cincinnati, 450 miles)
A telephone company (telco) must offer a service that acts like a cable with four wires (two pairs). When a router sends data on one pair, that pair is crossed to the other pair before reaching the other end. This way, when one router sends on one pair, the other router receives on the other pair. Routers use a serial interface because the service requires physically encoding data a little differently than on Ethernet. The result is that two routers can send and receive data to and from each other. Essentially, a telco can lease a 4-wire cable or 4-wire circuit between two points.
🔑 Definition — 4-wire circuit: A physical cable with four wires (two pairs) leased by a telco to connect two distant routers, enabling bidirectional data transmission.
Telco Infrastructure
Telcos have already run cables between almost every town and city. They have offices called central offices (COs) almost everywhere. In addition, telcos have the right-of-way, which is the legal right to dig up roads and put cabling in the ground.
🔑 Definition — Central Office (CO): A telco office that houses switches and connects local cables to long-distance networks.
🔑 Definition — Right-of-way: The legal permission granted to telcos to dig up roads and install underground cabling.
Switches and Path Establishment
Switches in the CO are called telco switches, phone switches, or WAN switches. The telco must ensure a path between Atlanta and Cincinnati by providing:
- A cable from the office building in Atlanta where one router sits to the telco CO in Atlanta.
- A cable from the office building in Cincinnati where the other router sits to the telco CO in Cincinnati.
⭐ Key Takeaways
The most critical points from this lecture are that telcos provide a 4-wire circuit that acts like a crossed cable, enabling two distant routers to communicate using serial interfaces. Telcos have pre-existing cable networks connecting almost all towns and cities, with central offices everywhere and legal right-of-way to install new cabling. WAN switches in the COs route traffic between locations. Serial interfaces are required because the physical encoding differs from Ethernet. Understanding the telco's role in providing physical infrastructure and path establishment is fundamental to grasping WAN link operation.
🧠 Quick Revision Questions
- What three main services must a telco offer to connect two distant routers?
- How does the crossing of wire pairs enable bidirectional communication between two routers?
- Why do routers use a serial interface instead of an Ethernet interface for a WAN link?
- What is the legal right-of-way, and why is it important for telcos?
- Name the type of switch found in a central office that helps establish the path between two distant locations.
📘 Lecture 64 — A Cross-over Cable versus Leased Circuit
📖 Overview: This lecture compares an Ethernet cross-over cable, used for direct router-to-router connections, with a leased circuit (WAN link) provided by a telecommunications company. It explains the key differences in transmission speeds, how WAN link speeds are structured, and how to control them using a CSU/DSU device.
🗂️ Topics Covered
The lecture begins by describing how an Ethernet cross-over cable connects two routers for local frame forwarding at speeds like 10 Mbps to 10 Gbps. It then contrasts this with a leased WAN link provided by a telco, which supports many different speeds that are typically multiples of 64 Kbps, such as a T1 line at 1.5 Mbps. Key points about WAN link speed options are outlined, followed by a detailed explanation of how to control the WAN link speed using the channel service unit/data service unit (CSU/DSU) of a serial interface.
📝 Lecture Summary
What is a Cross-over Cable and a Leased Circuit?
If you install an Ethernet cross-over cable between two routers by plugging the cable into an Ethernet interface on the routers, the two routers can forward Ethernet frames to each other. Ethernet can support transmission speeds of 10 Mbps, 100 Mbps, 1000 Mbps (1 gigabit/second), and even 10 Gbps. If you install a WAN link between two routers, a telco creates something similar to a cross-over cable with some differences. With WAN links, many different transmission speeds are supported. Typically, WAN links use speeds that are multiples of 64 Kbps. For example, a telco offers a service called T1 line or T1 circuit whose speed is 1.5 Mbps, which is 24 times 64 Kbps. A telco can also offer links in multiples of 1.544 Mbps. You can also order even higher speeds that generally come in multiples of 51.84 Mbps.
💡 Why this matters: This distinction is fundamental for network design. A cross-over cable is a simple, low-cost solution for a direct local connection, while a leased line is a paid service for connecting geographically distant networks with a wide range of speed options.
🔑 Definition — Ethernet cross-over cable: A type of Ethernet cable used to directly connect two similar devices, like two routers, without needing a switch or hub.
🔑 Definition — WAN link: A leased circuit provided by a telecommunications company that connects two routers over a wide geographical area.
📌 Example: A company in Atlanta and a company in Cincinnati connect their routers via a leased WAN line from a telco. The telco provides a T1 circuit with a speed of 1.5 Mbps, which is equivalent to 24 times the base speed of 64 Kbps.
Key points about speed of WAN links
Many different speeds are possible. You specify the speed when you order the leased line. You need to configure the routers to use the right speed.
How to control the WAN link speed
Serial links run at different speeds, and must be preconfigured. The channel service unit/data service unit (CSU/DSU) of a serial interface controls the speed. The CSU/DSU functions can be done with an external device or as a function of the serial interface card on the router. If you use a CSU/DSU that sits outside the router, you must configure the speed on that external device. If CSU/DSU is built into the router, you must configure the speed of the WAN link on the router.
🔑 Definition — CSU/DSU (Channel Service Unit/Data Service Unit): A device or interface function that controls the speed of a serial WAN link, ensuring the router and the telco's network operate at the same clock rate.
💡 Why this matters: Without properly configuring the CSU/DSU speed, the serial link will not function, as both ends of the leased line must agree on the transmission clock rate.
⭐ Key Takeaways
A cross-over cable provides a direct Ethernet connection between two routers at speeds like 10, 100, or 1000 Mbps, while a leased WAN circuit is a paid telco service for long-distance connections with speeds typically in multiples of 64 Kbps, such as a T1 at 1.5 Mbps. The speed of a WAN link must be specified when ordering and configured on the routers. The speed of a serial WAN link is controlled by the CSU/DSU, which can be an external device or built into the router's serial interface card. A T1 line's 1.5 Mbps speed is exactly 24 times the base rate of 64 Kbps.
🧠 Quick Revision Questions
- What is the primary difference between an Ethernet cross-over cable and a leased WAN circuit in terms of geographical scope and service provider?
- A T1 line is a common WAN service. What is its exact speed, and what is its relationship to the base unit of 64 Kbps?
- Which component of a serial WAN interface is responsible for controlling and clocking the link speed?
- If you have a router with a built-in CSU/DSU, where do you configure the speed of the WAN link?
- What are the possible speeds for an Ethernet cross-over cable, and what are the common speed options for a WAN link as described in the lecture?
📘 Lecture 65 — Routers and WANS
📖 Overview: This lecture explains how routers and WANs work together to connect remote sites. It covers the practical steps for installing a WAN link and describes how routers encapsulate IP packets using data link layer protocols like HDLC and PPP for point-to-point connections.
🗂️ Topics Covered
The lecture begins with a concrete WAN link installation plan involving phone company contracts, router and CSU/DSU installation, and cable configuration. It then describes how routers use WAN links to forward IP packets to remote subnets, with end-user devices never connecting directly to the WAN. The lecture concludes with an explanation of WAN data link framing, focusing on HDLC and PPP protocols.
📝 Lecture Summary
A WAN Link Installation Plan
A step-by-step plan for setting up a leased line WAN connection is provided. First, contract with the phone company to provide a leased line at a certain speed. Second, install a router at each site near where the telco will run its cable. Third, install an external CSU/DSU near the routers at each site, if you didn't buy routers with internal CSU/DSUs. Fourth, configure the CSU/DSUs with the correct speed. Finally, after the phone company runs the cables, install the cables into the CSU/DSU (external) or serial interface of the router (internal CSU/DSU) at each site.
Routers and WANS
Routers use WAN links when they need to forward IP packets to a subnet at a remote site. End user devices at a company's office site use an Ethernet NIC and never directly connect to a WAN link. To send traffic to an IP host at another site, end user devices send the data to the router. The router forwards the IP packet to another router at the other site, which then forwards the packet to the other IP host.
WAN data link framing
When an IP packet arrives to a router, such as R1 acting as Hannah's default gateway, R1 receives the Ethernet frame and checks for errors. If no errors occurred, R1 extracts the IP destination address (e.g., 150.1.3.3) and finds a match in its routing table. R1 then needs to encapsulate the IP packet inside a data link layer frame. Two popular data link layer protocols for point-to-point WAN links are high-level data link control (HDLC) and Point-to-Point Protocol (PPP).
🔑 Definition — HDLC (High-level Data Link Control): A data link layer protocol for point-to-point WAN links that provides framing and error detection.
🔑 Definition — PPP (Point-to-Point Protocol): A data link layer protocol for point-to-point WAN links that provides framing, error detection, and additional features like authentication.
⭐ Key Takeaways
Routers use WAN links to forward IP packets between remote sites, while end user devices connect only via Ethernet and never directly to the WAN. The standard WAN installation process requires a leased line contract, routers, CSU/DSUs (internal or external), and proper cable configuration. When a router receives an Ethernet frame, it extracts the IP destination, checks its routing table, and encapsulates the packet in a WAN data link frame. The two dominant data link layer protocols for point-to-point WAN links are HDLC and PPP, which provide framing and error detection for transmission over the leased line.
🧠 Quick Revision Questions
- What are the five steps in the WAN link installation plan?
- Why do end user devices never connect directly to a WAN link?
- What does a router do with an IP packet after it receives an Ethernet frame and finds a match in its routing table?
- What are the two popular data link layer protocols for point-to-point WAN links mentioned in the lecture?
- What is the role of a CSU/DSU in a WAN connection?
📘 Lecture 66 — Frame Relay
📖 Overview: This lecture explains Frame Relay, a WAN technology that enables multiple remote sites to communicate using a single physical link per site, reducing hardware and cost compared to leased lines. It covers how Frame Relay works with switches, routers, and virtual circuits, as well as a comparison with HDLC and PPP protocols.
🗂️ Topics Covered
The lecture begins by reviewing HDLC and PPP as point-to-point WAN protocols, noting their single-byte address field and differences. It then introduces Frame Relay as a more efficient WAN technology, explaining its use of Frame Relay switches, virtual circuits, data-link connection identifiers (DLCIs), and how routers communicate across the Frame Relay cloud.
📝 Lecture Summary
Point-to-Point WAN Protocols (HDLC and PPP)
Point-to-point WAN links use either high-level data link control (HDLC) or Point-to-Point Protocol (PPP) to encapsulate IP packets at the data link layer. Both protocols have only one address field, 1 byte long, but on a point-to-point link, the address doesn't really matter because only the single destination device could receive the data.
🔑 Definition — HDLC: A data link layer protocol defined by the ITU in the 1970s for point-to-point WAN links. 🔑 Definition — PPP: A data link layer protocol defined in RFC 1661 during the 1990s with more advanced features than HDLC. 📌 Example: When router R1 sends data to router R2 on a point-to-point WAN link, the HDLC or PPP header contains an address field, but since R2 is the only possible receiver, addressing is trivial.
💡 Why this matters: Cisco uses a nonstandard version of HDLC but conforms to the standard for PPP.
Frame Relay Basics
Frame Relay is a wide area network (WAN) technology that uses one physical WAN link connected to each site, while allowing each site to send data to every other site. It requires less work, less new hardware, and is more cost-effective than using many serial leased lines.
A Frame Relay network acts like a big WAN switch, with routers connecting to it. To send data to another router, the sending router just sends a frame with the correct address in it.
🔑 Definition — Frame Relay switch: Equipment that understands Frame Relay and can forward traffic based on Frame Relay protocols. The telco uses these switches in its local central offices (COs) to route data to correct sites.
📌 Example: A company with three remote sites can use Frame Relay: each site has one physical cable to a Frame Relay switch, and data is addressed within the Frame Relay frame to reach any other site, instead of requiring a separate physical link between each pair of sites.
💡 Why this matters: When a router physically connects to a Frame Relay switch, it connects to a Frame Relay service. The company selling Frame Relay services is called a Frame Relay service provider.
⭐ Key Takeaways
Frame Relay allows multiple remote sites to communicate using a single physical WAN link per site, making it more cost-effective and less hardware-intensive than using multiple leased lines. The network relies on Frame Relay switches in telco central offices to forward frames based on addressing inside the frame. Before Frame Relay, HDLC and PPP were typical for point-to-point links, but they only support two devices per link. Frame Relay essentially acts as a big WAN switch that any connected router can use to reach any other connected router.
🧠 Quick Revision Questions
- What is the main advantage of Frame Relay over using multiple leased serial lines to connect multiple sites?
- What is the role of a Frame Relay switch in a wide area network?
- How does the address field in HDLC and PPP differ from addressing in Frame Relay?
- What is a Frame Relay service provider, and what do they provide?
- Why does the address field in an HDLC or PPP frame not matter much on a point-to-point link?
📘 Lecture 67 — Frame Relay Switching
📖 Overview: This lecture explains the architecture and operation of Frame Relay, a Layer 2 WAN technology. It covers the physical components, addressing mechanisms, and how Frame Relay switches forward frames between multiple remote sites using DLCIs.
🗂️ Topics Covered
The lecture covers the physical parts of a Frame Relay network, including customer premises equipment (CPE), central office (CO) equipment, and Frame Relay switches. It explains the role of DLCI addresses in frame forwarding, the static configuration requirements for switches, and how the telco's Frame Relay network interconnects multiple remote sites.
📝 Lecture Summary
Physical Parts of Frame Relay
The Frame Relay network uses the same cabling and CSU/DSU equipment as leased lines, but the telco configures its central office (CO) differently. In the CO, the cable connects to a Frame Relay switch rather than a traditional leased line switch. The Frame Relay provider is typically a telecommunications company (telco) that works with other telcos to create the collective Frame Relay network. The provider's network consists of all its Frame Relay switches and the equipment connecting them. Frame Relay is a set of protocol specifications that operate at OSI Layer 2, the data-link layer.
Frame Relay Switching
When a telco sells Frame Relay service, it forwards Frame Relay frames sent by one router to another router. Before a router can send a packet, it must add the correct data link header and trailer to the packet. Each Frame Relay header contains a single address field called a data-link connection identifier (DLCI). The DLCI is a 10-bit number, usually written as a decimal number between 0 and 1023. Each Frame Relay switch forwards the frame based on the DLCI through the network until it reaches the router on the other side.
🔑 Definition — DLCI (Data-Link Connection Identifier): A 10-bit address field in the Frame Relay header, written as a decimal between 0 and 1023, that identifies the virtual circuit and determines how the frame is forwarded.
💡 Why this matters: DLCIs are the fundamental addressing mechanism in Frame Relay — they replace the MAC addresses used in Ethernet and determine the path through the provider's network.
Frame Relay switches must be configured statically to know where to forward frames with particular DLCIs in their headers. Unlike Ethernet switches that can learn MAC addresses automatically through flooding and learning algorithms, Frame Relay switches cannot learn addresses automatically. Every switch in the path must have manual configuration entries specifying the correct outgoing interface for each DLCI value.
⭐ Key Takeaways
Frame Relay is a Layer 2 WAN technology that uses DLCI addresses (10-bit values between 0-1023) in the frame header for switching. The physical cabling and CSU/DSU are identical to leased lines, but the telco connects them to Frame Relay switches in the CO. Frame Relay switches forward frames based solely on the DLCI, requiring static configuration of forwarding tables since they cannot learn addresses automatically. The service allows communication between multiple remote sites through the provider's network of interconnected Frame Relay switches.
🧠 Quick Revision Questions
- What is the size of the DLCI field in a Frame Relay header, and what range of decimal values can it represent?
- How does a Frame Relay network differ from a leased line network at the central office?
- Why must Frame Relay switches be configured statically rather than learning addresses automatically?
- At which OSI layer does Frame Relay operate, and what is its primary function?
- What equipment must a router use to connect to a Frame Relay network, and is this different from leased line connections?
📘 Lecture 68 — Virtual Circuits
📖 Overview: This lecture explains the concept of virtual circuits (VCs) in Frame Relay networks. It demonstrates how a single physical access link can support multiple logical connections to different remote sites, and introduces the distinction between full mesh and partial mesh topologies.
🗂️ Topics Covered
The lecture covers the architecture of Frame Relay networks with multiple remote sites, the definition and characteristics of virtual circuits (VCs), the concept of permanent virtual circuits (PVCs), how service providers preconfigure PVC details using DLCIs, and the difference between full mesh and partial mesh PVC topologies.
📝 Lecture Summary
Topic 68: Virtual Circuits
In this topic, we explain the concept of virtual circuits.
Let's assume that there are three sites using Frame Relay network and frames are going from one site (R1) to the other two sites (R2 and R3).
In Frame Relay lingo, the ability for R1 to send data to R2 over the Frame Relay network is called a virtual circuit (VC). A VC is like a leased circuit, in that exactly two devices can send and receive data using it. It is called virtual to contrast it with a physical leased circuit. As a VC is typically predefined to always be there, VCs are often called permanent virtual circuits (PVCs).
The service provider preconfigures all the required details of a PVC. Configuring the switches to forward frames with DLCI 102 to Cincinnati and frames with DLCI 103 to Boston. In the previous network, there is no PVC between R2 and R3. The choice of which sites need to have a PVC depends on where the network engineers think that traffic needs to flow in the network.
🔑 Definition — Virtual Circuit (VC): A logical connection between exactly two devices over a Frame Relay network that behaves like a leased circuit but is virtual rather than physical.
🔑 Definition — Permanent Virtual Circuit (PVC): A virtual circuit that is predefined by the service provider to always be available, as opposed to being set up on demand.
📌 Example: In a three-site Frame Relay network with routers R1 (Atlanta), R2 (Cincinnati), and R3 (Boston):
- A PVC using DLCI 102 connects R1 to R2 (Cincinnati)
- A PVC using DLCI 103 connects R1 to R3 (Boston)
- There is no PVC directly between R2 and R3
- R1 uses its single physical access link to forward traffic to both R2 and R3 simultaneously through these separate PVCs
When routers use Frame Relay, and there is a PVC between each pair of routers, the PVCs are in a full mesh. When not all routers have a PVC, it's called a partial mesh.
🔑 Definition — Full Mesh: A topology where a PVC exists between every pair of routers in the network.
🔑 Definition — Partial Mesh: A topology where not all router pairs have a PVC; only those PVCs that network engineers deem necessary for traffic flow are configured.
💡 Why this matters: The full mesh vs. partial mesh decision is a critical design consideration. Full mesh provides maximum connectivity but requires more PVCs (and thus more cost), while partial mesh reduces cost but may create traffic bottlenecks or single points of failure.
⭐ Key Takeaways
A virtual circuit (VC) in Frame Relay is a logical connection between exactly two devices that functions like a leased circuit but is virtual rather than physical. VCs that are always present and preconfigured by the service provider are called permanent virtual circuits (PVCs). A single physical access link on a router can support multiple PVCs, each identified by a unique DLCI value, allowing communication with multiple remote sites. When PVCs exist between every pair of routers, the topology is called a full mesh; when some pairs lack direct PVCs, it's a partial mesh. The choice of topology depends on expected traffic patterns and cost considerations.
🧠 Quick Revision Questions
- What is a virtual circuit (VC) in the context of Frame Relay, and how does it differ from a physical leased circuit?
- What does PVC stand for, and why are VCs often called PVCs?
- How can a single physical access link on a Frame Relay router support communication with multiple remote sites?
- What is the difference between a full mesh and a partial mesh PVC topology?
- In the three-site example (Atlanta, Cincinnati, Boston), why is there no PVC between R2 and R3, and what determines which PVCs are configured?
📘 Lecture 69 — Point-to-Point WANs & Frame Relay
📖 Overview: This lecture compares point-to-point WANs using leased lines with Frame Relay networks. It demonstrates why Frame Relay is considered faster, cheaper, and better for WAN connectivity, focusing on hardware requirements and telco infrastructure differences. Understanding this comparison is crucial for network design decisions regarding cost and efficiency.
🗂️ Topics Covered
This lecture covers the hardware requirements for creating three leased circuits between routers, including serial interfaces and CSU/DSU units. It then presents the equivalent Frame Relay network, highlighting the reduced hardware needs with one cable per router. The lecture visually contrasts the two architectures through figures.
📝 Lecture Summary
Comparison of Point-to-Point WANs and Frame Relay
Frame Relay is considered to be faster, cheaper, and better than using leased lines for a WAN. Point-to-point WANs tend to require more hardware than does the equivalent network built with Frame Relay.
Three Leased Lines to Connect Three Routers
Figure 69.1 illustrates what the telco does to create three leased circuits to connect three routers. A router requires two serial interfaces and two separate channel service/data service units (CSU/DSU). The telco has to install two cables between the local CO and the office building in Atlanta where R1 resides.
Equivalent Frame Relay Network
Figure 69.2 (implied) shows the equivalent Frame Relay network for the three sites. One cable from each router is needed to the telco, one serial interface, and one CSU/DSU at each router.
⭐ Key Takeaways
Frame Relay requires significantly less hardware than equivalent point-to-point leased line networks. For three sites, each router in a Frame Relay network needs only one serial interface, one CSU/DSU, and one cable to the telco, whereas a point-to-point design requires two serial interfaces, two CSU/DSUs, and two cables per router. This hardware reduction makes Frame Relay faster and cheaper to deploy and maintain.
🧠 Quick Revision Questions
- How many serial interfaces does a router need in a three-site point-to-point leased line WAN?
- How many CSU/DSU units are required per router in the equivalent Frame Relay network?
- Why is Frame Relay considered better than leased lines for WANs?
- How many cables must the telco install to the building where R1 resides in the point-to-point scenario?
- What is the main hardware difference between the two approaches for connecting three routers?
📘 Lecture 70 — Routing over PVCs
📖 Overview: This lecture explains how routing works over Permanent Virtual Circuits (PVCs) in a Frame Relay network. It addresses the challenge of connecting multiple sites efficiently without requiring separate physical interfaces for each remote connection, and introduces key concepts like partial mesh topologies and data-link connection identifiers (DLCIs).
🗂️ Topics Covered
This lecture covers how to configure routing over PVCs in a Frame Relay network with three sites, using a partial mesh topology where not all routers have direct PVCs to each other. It explains the role of data-link connection identifiers (DLCIs) in identifying PVCs and how routers use them to forward frames between sites. The lecture also discusses the cost and hardware implications of scaling point-to-point WANs versus using PVCs.
📝 Lecture Summary
Routing over PVCs
This topic explains routing over permanent virtual circuits (PVCs). In a growing company with multiple sites, using point-to-point WANs becomes impractical because each additional point-to-point line requires a separate physical serial interface and a separate CSU/DSU on the router. This creates significant extra costs for router hardware, CSU/DSU equipment, and the telco must run many more cables.
Assume an internetwork that uses three routers at three sites. Each router has an access link to a local Central Office (CO). In this design, there is no PVC between R2 and R3, making the network a partial mesh of PVCs. The Frame Relay provider (the telco) tells the customer to configure R1 so that it uses data-link connection identifier (DLCI) 102 to send frames to R2, and DLCI 103 to send frames to R3.
🔑 Definition — PVC (Permanent Virtual Circuit): A logical, permanent connection between two endpoints in a Frame Relay network that functions like a dedicated line but uses the provider's shared infrastructure.
🔑 Definition — DLCI (Data-Link Connection Identifier): A 10-bit address field in the Frame Relay frame header that identifies which PVC a frame should traverse, essentially functioning as the "to" address for Frame Relay frames.
📐 Formula: PVC mapping → DLCI value at router interface maps to specific remote destination
- Meaning: Each local DLCI tells the router which PVC to use to reach a specific remote router
📌 Example: In Figure 70.1, a three-router Frame Relay network has:
- R1 configured with DLCI 102 → used to send frames to R2
- R1 configured with DLCI 103 → used to send frames to R3
- No PVC exists between R2 and R3 (partial mesh)
- Each router connects to the local CO via an access link
💡 Why this matters: Using PVCs allows a router to reach multiple remote sites using a single physical serial interface and CSU/DSU, dramatically reducing hardware costs compared to point-to-point lines which require one physical interface per remote connection.
⭐ Key Takeaways
The fundamental difference between point-to-point WANs and PVCs is that each point-to-point line requires separate physical interfaces and CSU/DSU equipment, while PVCs allow one physical interface to support multiple logical connections using DLCIs. In a partial mesh Frame Relay network, not all routers have direct PVCs between them (as with R2 and R3 in the example). DLCI values are assigned by the Frame Relay provider and tell the router which PVC to use for each destination. Scaling a point-to-point WAN from 3 to 100 sites requires significantly more hardware and cabling, making PVCs a more cost-effective solution.
🧠 Quick Revision Questions
- What is the difference between a point-to-point WAN and using PVCs in terms of hardware requirements?
- What does DLCI stand for and what is its purpose in a Frame Relay network?
- What is a partial mesh topology and how does it differ from a full mesh?
- Why would a company choose to use PVCs rather than point-to-point lines as it grows from 3 sites to 10 sites?
- In the example with R1, R2, and R3, why doesn't R1 use a single DLCI to reach both R2 and R3?
📘 Lecture 71 — The Internet: A Large IP Network
📖 Overview: This lecture explains how the Internet enables global IP packet delivery through a single connection. It contrasts the Internet with WAN links and Frame Relay, showing how an Internet service provider (ISP) creates an IP network that allows enterprises and individuals to communicate worldwide. The lecture also reviews the three major components that make up the Internet.
🗂️ Topics Covered
This lecture begins by explaining how a company can communicate between far-away sites using telco services, including WAN links and Frame Relay. It then shows how a single connection to the Internet provides access to a global network, using an ISP’s IP network. Finally, it presents a comparison table of WAN links, Frame Relay, and the Internet, summarizing their key differences and capabilities.
📝 Lecture Summary
The Internet: A Large IP Network
This topic explains why connecting to the Internet provides a path for IP packets to be sent almost anywhere. A company cannot run a cable between two far-away buildings for legal and practical reasons. A telco already has the ability to let you connect to its network physically, and then deliver the data over its network. With WAN links, the telco allows two sites to communicate. With Frame Relay, many sites can communicate, but they all must use the same Frame Relay service from the same telco. The company can connect to the Internet with a WAN link or Frame Relay. With that one physical connection, that company gains access to a huge number of people who also have access to the Internet.
💡 Why this matters: The Internet’s single-connection model drastically reduces the cost and complexity of connecting to a global network, unlike WAN links or Frame Relay which are limited to private, telco-specific networks.
Reaching the World through One Connection to the Internet
An Internet service provider (ISP) creates an IP network over which IP packets can be forwarded, similar to the way a telco creates a network over which bits (for WAN links) and Frame Relay frames (for Frame Relay) can be forwarded. Some ISPs are also telcos. The Internet consists of three major components:
- The IP networks that ISPs create.
- The enterprise IP networks that attach to one or more ISPs.
- The individuals who connect their computers to ISPs.
🔑 Definition — ISP (Internet Service Provider): A company that creates an IP network to forward IP packets, enabling customers to access the Internet.
📐 Concept: A single physical connection from a company to an ISP provides access to a huge number of other people and organizations also connected to the Internet.
📌 Example: If a company connects to an ISP using a single WAN link or Frame Relay circuit, that one connection allows IP packets to reach any other device on the Internet, rather than requiring separate links to each destination.
Comparisons of WAN Links, Frame Relay and the Internet
Table 71.1 compares the three technologies across several dimensions:
- Number of sites: WAN links connect two sites; Frame Relay connects many sites; the Internet connects many sites.
- Structure: WAN links require a full mesh of links for many-to-many communication; Frame Relay uses a partial mesh of PVCs; the Internet uses a partial mesh of connections to ISPs.
- Connection type: WAN links use point-to-point circuits; Frame Relay uses PVCs; the Internet uses any WAN technology to connect to the ISP.
- Addressing: WAN links use no extra addressing (just the circuit); Frame Relay uses DLCI identifiers; the Internet uses IP addresses.
- Worldwide reach: WAN links do not provide worldwide reach; Frame Relay does not provide worldwide reach; the Internet does provide worldwide reach.
🔑 Definition — Worldwide reach: The ability to send data to any destination on the globe, which only the Internet provides among these three technologies.
📐 Table: The key differentiator is that only the Internet offers worldwide reach, while WAN links and Frame Relay are confined to the telco’s private network.
⭐ Key Takeaways
The Internet enables global IP packet delivery through a single connection to an ISP, unlike WAN links which only connect two sites and Frame Relay which connects multiple sites but within the same telco’s network. The Internet comprises three major components: ISP IP networks, enterprise IP networks, and individual users’ computers. WAN links and Frame Relay are private telco services limited to subscribers of that specific telco, while the Internet’s structure allows any device with an IP address to communicate worldwide. The comparison table highlights that only the Internet offers worldwide reach, with IP addressing being the universal addressing scheme.
🧠 Quick Revision Questions
- What are the three major components that make up the Internet?
- How does a single connection to the Internet provide access to a global network, while WAN links and Frame Relay do not?
- What is an ISP, and how does it differ from a telco in terms of the network it creates?
- According to Table 71.1, which technology (WAN links, Frame Relay, or the Internet) allows for many sites to communicate and also provides worldwide reach?
- Why can’t a company simply run a cable between two far-away buildings, and how do telcos and ISPs solve this problem?
📘 Lecture 72 — Using a Phone Line for Data
📖 Overview: This lecture explains how modems enable data transmission over standard analog telephone lines. It describes the fundamental characteristics of analog signals (frequency and amplitude) and how modems convert digital computer data into analog signals for transmission over the Public Switched Telephone Network (PSTN), mimicking voice signals without requiring physical changes to the local loop.
🗂️ Topics Covered
The lecture covers the basic components of a telephone system (microphone, local loop, telco CO, speaker), the characteristics of analog electrical signals (frequency and amplitude), how voice works as a continuously changing analog wave, and how modems convert binary digits from computers into representative analog signals for transmission over the PSTN.
📝 Lecture Summary
Using a Phone Line for Data
A telephone includes a microphone, which converts sound waves into an analog electrical signal. This signal is carried by the local loop (the phone line between a house and a telco CO). The telco sends the electrical signal between one phone and another. On the receiving side, the phone converts the electrical signal back to sound waves using a speaker. The characteristics of the analog signal are:
- Frequency: the number of times a signal repeats itself, from peak to peak, in one second.
- Amplitude: how strong the signal is.
🔑 Definition — Local loop: The phone line between a house and a telco Central Office (CO). 🔑 Definition — Frequency: The number of times a signal repeats itself, from peak to peak, in one second. 🔑 Definition — Amplitude: How strong the signal is. 📐 Formula: Frequency = number of cycles per second (measured in Hertz, Hz) → the higher the frequency, the more cycles per second. 📌 Example: An analog electrical signal with a high amplitude would represent a louder sound wave compared to one with a low amplitude, for the same frequency.
The sounds that your voice makes happen to be a continuously changing sound wave, so analog electrical signals that continuously change work well for voice. Modems allow two computers to send and receive a serial stream of bits over an analog phone circuit, with no physical changes required on the local loop between a residence and the telco CO. As the telephone switch in the CO expects to send and receive analog voice signals over the local loop, modems simply send an analog signal to the PSTN and expect to receive an analog signal from the PSTN. Instead of voice, a modem converts a string of binary digits on a computer into a representative analog electrical signal.
🔑 Definition — Modem: A device that allows two computers to send and receive a serial stream of bits over an analog phone circuit. 🔑 Definition — PSTN: Public Switched Telephone Network. 💡 Why this matters: Modems enable data communication over the existing telephone infrastructure without requiring any physical modifications to the local loop, which was critical for early internet and remote access.
⭐ Key Takeaways
Analog telephone signals have two key characteristics: frequency (how often the signal repeats per second) and amplitude (signal strength). Voice is a continuously changing analog wave, so analog signals work well for it. Modems enable computers to transmit digital data (binary digits) over analog phone lines by converting the data into representative analog electrical signals, effectively mimicking voice. This entire process works without physical changes to the local loop between the residence and the telco CO, as the telephone switch expects analog signals. A modem on the sending side converts bits to analog, and on the receiving side, a modem converts the analog signal back to bits.
🧠 Quick Revision Questions
- What are the two key characteristics of an analog electrical signal mentioned in the lecture?
- What does a microphone do in a telephone system?
- How does a modem allow two computers to communicate over an analog phone circuit?
- Why can modems use the existing local loop without physical changes?
- What does a modem convert on the sending side, and what does it expect to receive from the PSTN?
📘 Lecture 73 — Digital Subscriber Line (DSL)
📖 Overview: This lecture introduces Digital Subscriber Line (DSL) technology as an alternative to dial-up modems for Internet access. It explains how DSL overcomes the limitations of traditional modems by providing much faster speeds while allowing simultaneous phone calls and Internet usage over the same telephone line.
🗂️ Topics Covered
The lecture compares modems to DSL technology, explaining how modems encode binary data onto analog signals through modulation and are limited by speed and inability to use the phone simultaneously. It then introduces DSL as a superior alternative that uses the same phone line but operates at much faster speeds while enabling concurrent voice calls and Internet surfing.
📝 Lecture Summary
Modems and Their Limitations
Modems encode a binary 0 or 1 onto the analog signal by varying frequency or amplitude. Changing these characteristics of the analog signal is referred to as modulation. In the previous example, frequency changes every 0.1 seconds, so a PC can send 10 bits/sec. If a modem sends at 9600 bps, the receiving modem needs to sample the incoming analog signal every 1/9600 of a second. The details of modem operation relate to OSI Layer 1, the physical layer.
Modems use the phone line to make what the telco thinks is a voice call, so you cannot make another call while you are surfing the Internet. Another big negative is the speed.
Digital Subscriber Line (DSL)
Digital subscriber line (DSL) is an alternative technology for sending and receiving data to and from an ISP, using the same old phone line, but running at much faster speeds. Also, you can make phone calls and surf (send IP packets) at the same time.
🔑 Definition — Digital Subscriber Line (DSL): A technology that uses existing telephone lines to provide high-speed Internet access while simultaneously allowing voice calls.
💡 Why this matters: DSL revolutionized home Internet access by eliminating the need to tie up the phone line for web surfing, while offering significantly higher speeds than dial-up modems.
⭐ Key Takeaways
DSL is a major improvement over traditional modems because it allows simultaneous voice calls and Internet usage on the same phone line. While modems require the phone line to be dedicated to a single voice call during Internet use and are limited to speeds like 9600 bps, DSL provides much faster data transmission. Both technologies operate at the physical layer (OSI Layer 1) but use different methods to encode data onto analog signals. Modulation—changing frequency or amplitude—is the fundamental technique modems use to represent binary data.
🧠 Quick Revision Questions
- What two characteristics of an analog signal can be varied to encode binary data in modulation?
- At what speed does a modem send if the receiving modem must sample every 1/9600 of a second?
- What OSI layer do modems and DSL operate at?
- What is one major limitation of modems that DSL overcomes regarding phone usage?
- What does DSL stand for and what is its primary advantage over traditional modems?
📘 Lecture 74 — Sending Data without a Phone Line
📖 Overview: This lecture describes how existing cable television infrastructure can be used for Internet access, bypassing the need for a traditional phone line. It explains the hybrid fiber-coaxial (HFC) access network, its components, and how frequency division multiplexing enables data transmission over cable TV networks.
🗂️ Topics Covered
This lecture covers how cable Internet access leverages the existing cable television infrastructure, from the cable head end to individual residences. It introduces the concept of a hybrid fiber-coaxial (HFC) network, where fiber optics connect the head end to neighborhood junctions, and coaxial cable reaches individual houses. The lecture also explains frequency division multiplexing as the method for transmitting different channels in different frequency bands.
📝 Lecture Summary
Sending Data without a Phone Line
This topic describes how TV cable networks can be used for the Internet. Cable Internet access makes use of the cable television company’s existing cable television infrastructure. A residence obtains cable Internet access from the same company that provides its cable television. A cable head end broadcasts television channels.
Hybrid Fiber-Coaxial (HFC) Access Network
To connect houses to the Internet, a hybrid fiber-coaxial (HFC) access network is used. Fiber optics connects the cable head end to neighborhood-level junctions, from which traditional coaxial cable is then used to reach individual houses. This architecture is called Hybrid fiber coax (HFC).
Frequency Division Multiplexing
The lecture introduces frequency division multiplexing as the method used in these networks. This technique allows different channels to be transmitted simultaneously in different frequency bands without interference.
⭐ Key Takeaways
Cable Internet access uses the existing cable television infrastructure, not phone lines. A hybrid fiber-coaxial (HFC) network combines fiber optics from the cable head end to neighborhood junctions with traditional coaxial cable to individual houses. Frequency division multiplexing is the key technique that enables transmitting different channels in different frequency bands, allowing both television and Internet data to coexist. The cable head end is the central point that broadcasts television channels and connects to the Internet backbone.
🧠 Quick Revision Questions
- What is the central point in a cable television network that broadcasts television channels?
- What type of cable connects the cable head end to neighborhood-level junctions in an HFC network?
- What type of cable is used from neighborhood junctions to reach individual houses?
- What is the name of the system that combines fiber optics and coaxial cable for Internet access?
- What technique allows different channels to be transmitted in different frequency bands simultaneously?
📘 Lecture 75 — Introduction to AAA Security Model
📖 Overview: This lecture introduces the AAA security model, which stands for Authentication, Authorization, and Accounting. Understanding these three components is critical for controlling access to servers and networks, ensuring that only authorized users can perform specific actions.
🗂️ Topics Covered
The lecture defines AAA and explains its three components. It details authentication as a five-step process using a username and password, describes how an authentication server works with application servers using the Kerberos protocol, and defines authorization as determining what a user is allowed to do. The accounting component is mentioned but not detailed.
📝 Lecture Summary
AAA Stands for Authentication, Authorization, and Accounting
AAA refers to three areas of security related to an individual device or user. Before using most servers, you must have the right to use that server, typically using a username and password.
🔑 Definition — AAA: A security model that stands for Authentication, Authorization, and Accounting, addressing issues regarding individual device or user access rights.
Authentication
Authentication is a five-step process:
- Fred requests a web page.
- The web server replies, asking for a username and password.
- Fred types in and sends his username and password to the server.
- The web server checks its list of usernames and verifies that the password is correct.
- If the username and password are correct, the web server returns the contents of the web page.
Username and password can be listed on a server called an authentication server. Application servers query the authentication server. The Kerberos protocol runs between application and authentication servers.
🔑 Definition — Authentication: The process of verifying the identity of a user or device, typically using a username and password.
💡 Why this matters: Authentication is the first line of defense in controlling access to network resources and systems.
Authorization
The second "A" in AAA is for Authorization. It refers to the process of figuring out what a particular user is allowed to do.
🔑 Definition — Authorization: The process of determining what actions or resources a verified (authenticated) user is permitted to access.
⭐ Key Takeaways
AAA stands for authentication, authorization, and accounting, forming a comprehensive security model for controlling user access. Authentication is a five-step process where a user proves their identity using credentials like a username and password. Authorization determines the specific permissions and actions a user is allowed to perform after being authenticated. Authentication servers and protocols like Kerberos facilitate secure verification between application servers and user credentials.
🧠 Quick Revision Questions
- What are the three components of the AAA security model?
- List the five steps in the basic authentication process.
- What is the role of an authentication server in the AAA model?
- Which protocol runs between an application server and an authentication server?
- What is the difference between authentication and authorization in the AAA model?
📘 Lecture 76 — Password Authentication Protocol
📖 Overview: This lecture explains how Internet Service Providers (ISPs) authenticate users connecting via modem or DSL. It contrasts the insecure Password Authentication Protocol (PAP) with the secure Challenge Handshake Authentication Protocol (CHAP), both part of the Point-to-Point Protocol (PPP). Understanding these protocols is essential for network security, as they protect user credentials during remote access.
🗂️ Topics Covered
This lecture covers the Password Authentication Protocol (PAP) and its five-step authentication process using RADIUS or TACACS+. It then details the Challenge Handshake Authentication Protocol (CHAP) and its six-step process that never sends the password over the network. The key difference is that PAP transmits passwords in clear-text, while CHAP uses a message digest computed from a random challenge and the password. The roles of AAA servers, RADIUS, and TACACS+ in handling authentication requests are also explained.
📝 Lecture Summary
Password Authentication Protocol (PAP)
Password Authentication Protocol (PAP) is a simple authentication protocol used by ISPs as part of PPP (Point-to-Point Protocol) — a data link protocol. PAP sends the username and password in clear-text, meaning anyone with network sniffing tools can read the credentials.
The PAP authentication sequence when Fred dials an ISP with a modem follows these five steps:
- Fred uses PAP to send a username and password to the ISP router.
- The ISP router sends a request to an authentication server using RADIUS protocol messages.
- The authentication server checks the username and password against its database.
- The authentication server confirms that Fred is authentic using RADIUS.
- The router uses PAP to confirm that Fred is allowed to use the Internet.
🔑 Definition — PAP (Password Authentication Protocol): A simple authentication protocol that sends usernames and passwords in clear-text as part of PPP.
🔑 Definition — RADIUS (Remote Authentication Dial-In User Service): A networking protocol that provides centralized authentication, authorization, and accounting (AAA) management for users who connect to a network service.
🔑 Definition — TACACS+ (Terminal Access Controller Access-Control System Plus): A proprietary Cisco protocol developed before RADIUS that can be used in place of RADIUS for authentication services.
💡 Why this matters: PAP's transmission of passwords in clear text makes it highly vulnerable — anyone with network monitoring tools can capture credentials. This is why CHAP was developed as a secure alternative.
Challenge Handshake Authentication Protocol (CHAP)
Challenge Handshake Authentication Protocol (CHAP) is a more secure alternative to PAP that never sends the password across the network connection. CHAP uses a random number (challenge) and a math function to create a message digest that proves the user knows the password without revealing it.
The CHAP process uses six steps:
- The ISP router generates a random number and sends it in a CHAP message to the user's PC.
- The PC runs a math function using the random number and the password typed by the user as input.
- The PC sends the result of the function — called a message digest — back to the router.
- The router sends the username, the random number, and the message digest to the AAA server. 5a. The AAA server uses the same math function that the client used in Step 2, with the same random number, plus the password associated with that username in the AAA user database. 5b. The result is another message digest. 5c. If the message digest calculated by the AAA server matches the one calculated by the PC, the password that the user typed must be the correct one.
- The AAA server tells the router that the user is authentic; the router tells the PC.
🔑 Definition — CHAP (Challenge Handshake Authentication Protocol): A secure authentication protocol that uses a three-way handshake with a random challenge to verify identity without transmitting the password.
🔑 Definition — Message Digest: The result of running a mathematical function on the combination of a random number and a password — used to prove knowledge of the password without revealing it.
💡 Why this matters: CHAP is fundamentally more secure than PAP because the password is never passed through a network connection during the entire procedure. An attacker capturing network traffic sees only the random challenge and the digested result — not the password itself.
⭐ Key Takeaways
The critical difference between PAP and CHAP is security: PAP transmits passwords in clear-text making them easily captured, while CHAP uses a random challenge and message digest to verify identity without ever sending the password over the network. Both protocols are part of PPP (Point-to-Point Protocol) used by ISPs. The authentication process involves an ISP router communicating with a central AAA server using RADIUS (or Cisco's proprietary TACACS+). CHAP's six-step process proves password knowledge through mathematical computation rather than transmission, making it the standard for secure remote authentication. For the exam, remember the exact step sequences for both protocols and understand why CHAP is preferred.
🧠 Quick Revision Questions
- In PAP, how is the password transmitted to the ISP router?
- What is the purpose of the random number generated by the router in Step 1 of CHAP?
- What is a message digest, and how is it used to verify the user's password in CHAP?
- Name two protocols that can be used by an ISP router to communicate with an AAA server.
- During which step(s) of CHAP does the password travel across the network?
📘 Lecture 77 — Virtual Private Network (VPN)
📖 Overview: This lecture explains the concept and benefits of using a Virtual Private Network (VPN). It covers how encryption transforms data into seemingly random bits, allowing secure transmission over the public Internet to create a logically private network.
🗂️ Topics Covered
This lecture covers the fundamental concept of VPNs as encrypted data transmission over the public Internet, how encryption and decryption work with secret keys, the definition of a VPN as a logical private network, and the real-world scenario of an employee using VPN software and a VPN concentrator to connect to a corporate network securely.
📝 Lecture Summary
Topic 77: Virtual Private Network (VPN)
This topic explains the benefits of using a virtual private network (VPN). Encryption allows a computer to apply a mathematical formula to data, sending the results of the mathematical function over the network. The data just looks like a bunch of random bits. The computer receiving the data can then re-create the original data by decrypting the data. To decrypt the data, you need a secret password called an encryption key.
These days, it is common for users to encrypt data before sending it over the Internet. Instead of calling it encryption, it is called a virtual private network (VPN). The packets go across the Internet, which is still a physical public network. VPNs create a private network, but they do so logically, or virtually.
Let’s assume Barney works for a company. The enterprise network at Barney's company is a private network, with all the components inside privately controlled office space. The Internet is public. For Barney to use the VPN, he must encrypt the packet as he creates it. To do this, Barney needs to have VPN software installed on his computer. He also needs to know the encryption key to use. A VPN device inside the corporate network is called a VPN concentrator, which decrypts packets received from Barney and others. This is shown in Figure 77.1: Encrypting IP Packets for a VPN.
🔑 Definition — VPN (Virtual Private Network): Using encryption to send data securely over a public network (the Internet) to create a logically private connection.
🔑 Definition — Encryption Key: A secret password required to decrypt data that has been encrypted.
🔑 Definition — VPN Concentrator: A device inside a corporate network that decrypts packets received from remote users like Barney.
📐 Process: VPN Connection → Barney uses VPN software on his computer to encrypt each packet → Encrypted packets travel over the public Internet → VPN concentrator at corporate network decrypts the packets → Original data is recreated for the private enterprise network.
📌 Example: Barney works for a company with a private enterprise network. He wants to connect securely from a remote location across the public Internet. He has VPN software on his computer and knows the encryption key. When Barney creates a packet, his VPN software encrypts it. The encrypted packet travels over the public Internet to his company's network. The VPN concentrator inside the corporate network receives and decrypts the packet, recreating the original data for the private network.
💡 Why this matters: VPNs allow remote employees to securely access their company's private network over the public Internet, protecting sensitive corporate data from interception.
⭐ Key Takeaways
The core concept of a VPN is using encryption to create a logically private network over the physically public Internet. Encryption transforms data into seemingly random bits using a mathematical formula, and decryption requires a secret encryption key to restore the original data. A remote user like Barney must have VPN software and know the encryption key to create encrypted packets. The VPN concentrator at the corporate network is the device responsible for decrypting packets received from external users. The key benefit is enabling secure, private communication over a public infrastructure, making it a critical tool for modern remote work.
🧠 Quick Revision Questions
- What is the fundamental difference between a physical private network and a virtual private network?
- What two things does a remote user like Barney need to successfully use a VPN?
- What is the name of the device inside the corporate network that decrypts packets from VPN users?
- Why does encrypted data look "like a bunch of random bits" when sent over the network?
- In the VPN process, what travels across the public Internet: the original data or the encrypted data?
📘 Lecture 78 — Enterprise Network and the Internet
📖 Overview: This lecture examines what traffic should and should not be allowed between an enterprise network and the Internet. It covers the key considerations when connecting an internal network to the public Internet, including which hosts communicate and which host initiates that communication. Understanding these traffic rules is essential for designing secure enterprise network boundaries.
🗂️ Topics Covered
This lecture discusses the decision-making process for allowing or blocking traffic between an enterprise network and the Internet. It introduces the concept of an Internal IP Network with internal and external web servers, and explains two critical security questions: which two hosts need to exchange packets, and which host begins that communication. The lecture then presents typical types of traffic that are allowed to flow between an enterprise and the Internet.
📝 Lecture Summary
Enterprise Network and the Internet
When connecting an enterprise network to the Internet, one of the first decisions is what traffic to allow to pass in each direction. Consider an enterprise network called "Internal IP Network" belonging to a company named Fredsco. This network has two types of web servers:
- An internal web server containing content only appropriate for Fredsco employees
- An external web server intended for external users, though internal clients also need to browse it
To secure Fredsco's network, two questions must be answered:
- Between which two hosts do packets need to flow?
- Which host begins that communication?
These questions determine the security rules that govern traffic between the enterprise and the Internet.
🔑 Definition — Enterprise network: A private network belonging to an organization, containing internal resources like servers and client computers.
💡 Why this matters: Getting these two questions wrong can either leave the network vulnerable to attack or prevent legitimate business communications from functioning.
Typical Types of Traffic Allowed
The lecture presents typical types of traffic that are permitted between an enterprise network and the Internet. These traffic types are determined by the answers to the two security questions above. The figure (Figure 78.2) illustrates common patterns of allowed traffic flows.
🔑 Definition — Traffic flow: The movement of data packets between specific pairs of hosts, with one host initiating the connection.
📐 Formula: Security decision process: Identify hosts → Determine initiator → Apply allow/block rules
📌 Example: In the Fredsco scenario, internal clients initiate connections to the external web server, while external users initiate connections to the external web server but should not be able to initiate connections to the internal web server.
⭐ Key Takeaways
The most critical concept from this lecture is that network security between an enterprise and the Internet depends on identifying both the host pairs that need to communicate and which host initiates that communication. For the Fredsco example, internal clients must be able to reach both internal and external web servers, while external users should only reach the external web server. These rules form the basis for configuring firewalls and access control lists. A systematic approach to defining these traffic rules is essential before connecting any enterprise network to the Internet.
🧠 Quick Revision Questions
- What are the two questions that must be answered to secure an enterprise network connected to the Internet?
- In the Fredsco example, why must internal clients be able to access both the internal and external web servers?
- Why should external users not be allowed to initiate communication with the internal web server?
- What is the difference between the internal web server and the external web server in terms of intended audience?
- How does identifying which host begins communication affect the security rules?
📘 Lecture 79 — Firewalls, Demilitarized Zone, IDS
📖 Overview: This lecture covers the core security mechanisms used to protect networks from Internet threats. It explains how firewalls filter traffic based on rules, the strategic placement of a Demilitarized Zone (DMZ) for public-facing servers, and how Intrusion Detection Systems (IDS) monitor for malicious activity that bypasses the firewall.
🗂️ Topics Covered
This lecture describes the use of firewalls, demilitarized zone (DMZ), and intrusion detection systems (IDS). It explains how a network engineer configures firewall rules to allow or discard packets, the role of the firewall in the network path, and how it identifies new flows using TCP SYN flags. The lecture then introduces the DMZ as a third interface for Internet-accessible servers, with a strict rule against outside-initiated connections to the inside. Finally, it covers network-based and host-based IDS devices that watch packets for signs of cheating or malicious behavior.
📝 Lecture Summary
Topic 79: Firewalls, Demilitarized Zone, IDS
A network engineer configures the firewall with a set of rules that tells it what's legal and what isn't. The firewall then allows some packets to pass through and discards others to enforce these rules. The firewall must be in the path used for forwarding packets to and from the Internet. Cisco’s firewall product is called a PIX firewall.
🔑 Definition — Firewall: A security device that enforces a set of rules to allow or discard packets passing between networks. 🔑 Definition — PIX firewall: Cisco’s specific firewall product.
As a firewall watches the traffic entering the network, it knows the nature of the traffic that is allowed to flow through it. It also recognizes when a host is initiating a new flow. A host initiating a new flow can be identified by looking at: The first TCP segment used to create a TCP connection has the SYN flag bit = 1, and the source IP address of the packet. 📌 Example: In Figure 79.2 and 79.3, the firewall sees a TCP segment with SYN=1 from a known source IP. It identifies this as a new flow initiation and checks its rules to allow the TCP connection. 📌 Example: In Figure 79.4, the firewall sees a TCP segment with SYN=1 from an outside host trying to reach an inside web server. The firewall's rule disallows this, so it discards the packet.
💡 Why this matters: The SYN bit is the key indicator a firewall uses to distinguish between a new connection attempt and an existing flow.
Firewalls are like routers. They forward packets based on destination IP address. They have at least two physical interfaces and can have more than two. The Outside interface connects to the Internet. The Inside interface connects to the internal network. A third interface is connected to a LAN called a demilitarized zone (DMZ) , placed somewhere between the inside and outside interfaces. With a DMZ, Internet-accessible servers can be placed on a different LAN. A stronger firewall rule is applied: No TCP connections can be initiated from outside to the inside. The only flows allowed are for servers in the DMZ.
🔑 Definition — Demilitarized Zone (DMZ) : A separate LAN connected to a third interface on a firewall, used to host public-facing servers like web and email servers, with strict rules preventing outside-initiated connections to the internal network.
Intrusion detection systems (IDSs) watch packets that a firewall allows through. They look for things in the packets to determine if someone is cheating the firewall and doing bad things to servers in the network. Some IDS devices sit in the network, watching packets that pass over a LAN and are called network-based IDSs. Those IDS software that sit on the servers are called host-based IDSs.
🔑 Definition — Intrusion Detection System (IDS) : A security system that monitors packets allowed through the firewall to detect malicious activity. 🔑 Definition — Network-based IDS: An IDS device that sits on a LAN and monitors all traffic passing through it. 🔑 Definition — Host-based IDS: An IDS software installed on a server to monitor activity on that specific host.
💡 Why this matters: The IDS provides a second layer of defense, catching threats that the firewall's rules might miss.
⭐ Key Takeaways
The firewall is a rule-based filter that must sit in the network path between the internal network and the Internet. It identifies new connection attempts by looking for the SYN flag set to 1 in the first TCP segment. The DMZ is a separate network segment connected to a third firewall interface, used to host public servers while preventing any TCP connections from the outside to the inside. An Intrusion Detection System (IDS) provides an additional layer of security by inspecting packets that pass the firewall, either on the network (network-based IDS) or on individual servers (host-based IDS). The firewall's core rules typically block all incoming connections from the outside to the inside, only allowing traffic destined for DMZ servers.
🧠 Quick Revision Questions
- What specific TCP flag does a firewall look for to identify a host initiating a new flow?
- What is the primary difference between a network-based IDS and a host-based IDS?
- What is the key rule applied to a DMZ regarding TCP connections from the outside?
- What is the name of Cisco’s firewall product?
- What are the standard names for the two primary physical interfaces on a firewall?
📘 Lecture 80 — Introduction to Wireshark
📖 Overview: This lecture introduces Wireshark, a free, open-source network packet analyzer used to capture and display network packets in great detail. It explains the tool’s intended purposes for learning, troubleshooting, security analysis, and debugging, and covers its key features, installation process, and the layout of its main user interface window.
🗂️ Topics Covered
The lecture begins by defining Wireshark as a network packet analyzer and noting its open-source origins with G. Combs. It then lists the intended purposes of the tool for various users (students, administrators, security engineers, developers) and outlines its major features, including cross-platform availability and live packet capture. The installation process is detailed step-by-step, specifying required components like Wireshark, TShark, Plugins, Tools, and the critical WinPcap driver for live capture. Finally, the main window is deconstructed, labeling each area: Title bar, Main menu, Main toolbar, Display filter area, Packet List pane, Packet Details pane, Packet Bytes pane, and Status Bar.
📝 Lecture Summary
Introduction to Wireshark
Wireshark is a network packet analyzer which captures network packets and displays that packet data as detailed as possible. It is a free open source software program available at www.wireshark.org. G. Combs is the original creator of Ethereal (Wireshark's development name prior to May 2006). As an open source project, its source code is open.
Intended Purposes: When run on a host connected to a wired or wireless network, Wireshark captures and decodes the network frames. People use it to learn network protocol internals. Network administrators use it to troubleshoot network problems. Network security engineers use it to examine security problems. Developers use it to debug protocol implementations.
🔑 Definition — Wireshark: A network packet analyzer that captures network packets and displays detailed packet data. It is free, open source, and runs on UNIX and Windows.
🔑 Definition — Network Packet Analyzer: A tool that captures and decodes network frames for analysis, used for learning, troubleshooting, security examination, and debugging.
Wireshark’s Features
1- Available for UNIX and Windows. 2- Capture live packet data. 3- Display packets with very detailed protocol information. 4- Filter packets on many criteria. 5- Save packet data captured.
Wireshark’s Installation
Get Wireshark installer from: www.wireshark.org/download.html and execute it. Figure 80.1 shows Wireshark’s Installation wizard.
Installation Components include:
- Wireshark - The network protocol analyzer.
- TShark - A command-line network protocol analyzer.
- Plugins & Extensions - Extras for the Wireshark and TShark dissection engines.
- Tools - Additional command line tools to work with capture files.
- User’s Guide
Figures 80.2 and 80.3 show the component selection screens.
Installing WinPcap
Installing WinPcap is essential. With WinPcap installed you would be able to capture live network traffic. Figures 80.4 and 80.5 show the WinPcap installation process.
🔑 Definition — WinPcap: A driver required for capturing live network traffic on Windows systems. Without it, Wireshark cannot capture live packets.
The Main Window
The main window is shown in Figure 80.6 and consists of several areas:
- Area 1 shows the Title bar — trace file name.
- Area 2 represents Main menu — standard menu.
- Area 3 is the Main toolbar — provides quick access to frequently used items from menu.
- Area 4 depicts Display filter area — reduce amount of traffic you see.
- Area 5 shows Packet List pane — summary of frames.
- Area 6 is the Packet Details pane — dissected frames.
- Area 7: Packet Bytes pane — hex/ASCII details.
- Area 8 represents Status Bar — access to the Expert, annotations, packet counts, and profiles.
⭐ Key Takeaways
Wireshark is a free, open-source packet analyzer for learning network protocols and troubleshooting. It requires WinPcap to capture live traffic. The main window has 8 critical areas: Title bar, Main menu, Main toolbar, Display filter, Packet List pane, Packet Details pane, Packet Bytes pane, and Status Bar. Installation also includes TShark (command-line version), Plugins, Tools, and a User’s Guide. The tool is available for both UNIX and Windows systems.
🧠 Quick Revision Questions
- What is Wireshark and what are its five main features?
- Who created Wireshark (originally called Ethereal)?
- Why is WinPcap necessary during installation?
- What are the eight areas of the main Wireshark window?
- List the four intended purposes of Wireshark mentioned in the lecture.
📘 Lecture 81 — Five Common Network Problems
📖 Overview: This lecture identifies and describes five common network problems that can degrade performance or prevent connectivity. Understanding these issues helps network professionals diagnose faults in TCP/IP communications, from connection refusals to slow application responses.
🗂️ Topics Covered
The lecture covers five common network problems: TCP Connection Refused by Server, Connection Blocked by a Host-Based or Network Firewall, Slow Application at Server, Slow Load of Remote Content, and their respective symptoms, causes, and diagnostic indicators in captured traffic.
📝 Lecture Summary
TCP Connection Refused by Server
This problem occurs when a service is not running on the target server, a firewall blocks the connection, or the destination port is closed. The client initiates a TCP three-way handshake by sending a SYN packet, but instead of completing the handshake, the server responds with a Reset (RST)/ACK packet, refusing the connection. Alternatively, a host-based firewall may respond with an ICMP Destination Unreachable/Port Unreachable message. Possible symptoms include the client's SYN followed by RST/ACK, or the client's SYN followed by an ICMP Port Unreachable response from a host-based firewall.
🔑 Definition — TCP Connection Refusal: A condition where a TCP connection attempt is rejected by the target system because the requested service is unavailable or a firewall blocks the connection. 📐 No formula is provided for this concept. 📌 Example: A client sends a SYN packet to a web server on port 80, but the web server has no HTTP service running. The server responds with an RST/ACK packet, immediately terminating the connection attempt.
Connection Blocked by a Host-Based or Network Firewall
This problem involves a firewall intentionally dropping or rejecting connection attempts to protected resources. Ideally, hosts should not even attempt communication with firewalled resources, but such attempts may occur due to misconfiguration, malware, a malicious user, or other issues. Possible symptoms include no response at all to a SYN packet (the firewall silently drops it), or an RST/ACK response to a SYN packet (the firewall actively rejects the connection).
🔑 Definition — Firewall Block: A security mechanism that prevents unauthorized or unwanted network connections by filtering packets based on rules. 📐 No formula is provided for this concept. 📌 Example: A client attempts to connect to an internal database server from an external network. The network firewall is configured to block all inbound connections to the database port. The client's SYN packet receives no response (silent drop), or an RST/ACK if the firewall is configured to reject the connection.
Slow Application at Server
This problem occurs when the server accepts the connection (no refusal) but responds slowly. The causes include: 1) lack of processing power at the server, 2) a poorly behaving application, or 3) a slow upstream server in a multi-tiered architecture that actually provides the data. The good news is the server provides service; the bad news is the response is delayed. Possible symptoms differ by protocol type: For TCP-based applications, there is a large delay between the server's ACK to a client request and the response data. For UDP-based applications, there is a large delay between a request and the response data.
🔑 Definition — Slow Application: A condition where a server accepts a connection but takes an unusually long time to process and respond to client requests. 📐 No formula is provided for this concept. 📌 Example: A client sends an HTTP GET request to a web server. The server immediately acknowledges (ACK) the request but takes 5 seconds before sending the HTTP response data. This indicates the server-side application is slow to generate the response.
Slow Load of Remote Content
Many networks use a multi-tiered architecture where a client-facing server (Server 1) must obtain data from other servers (Servers 2 through 9) before responding to the client. The client experiences slow loading because the upstream server is slow, not necessarily the front-end server. To diagnose this, network traffic must be captured at the correct point to see which backend server is actually responding slowly. Possible symptoms are the same as Slow Application at Server: for TCP-based apps, a large delay between the server's ACK to a client request and the response data; for UDP-based apps, a large delay between a request and the response data.
🔑 Definition — Multi-Tiered Architecture: A network design where a front-end server depends on multiple backend servers to fulfill client requests, often used in web applications, databases, and enterprise systems. 📐 No formula is provided for this concept. 📌 Example: A client accesses a web page hosted on Server 1. Server 1 must query Servers 2, 3, and 4 to gather dynamic content for the page. If Server 4 is slow to respond, the client sees a slow page load even though Server 1 is functioning normally. Only by capturing traffic between Server 1 and the backend servers can the slow component be identified.
⭐ Key Takeaways
The five common network problems each present distinct symptoms in captured traffic, which network analysts must learn to identify. TCP connection refusals manifest as RST/ACK responses or ICMP Port Unreachable messages immediately after a client's SYN. Firewall blocks may show either no response (silent drop) or active rejection (RST/ACK). Slow application problems at servers and slow remote content loads in multi-tiered environments both present as large delays between request acknowledgment and actual response data. The key distinction between server-side slowness and multi-tiered slowness is that the latter requires capturing traffic at the backend servers to locate the actual bottleneck. Understanding these patterns enables effective troubleshooting using packet analysis tools like Wireshark.
🧠 Quick Revision Questions
- What packet(s) would you expect to see in a TCP capture when a server refuses a connection because the requested service is not running?
- What are the two possible symptoms when a host-based or network firewall blocks a connection attempt?
- Name three possible causes for a slow application at the server.
- In a multi-tiered architecture experiencing slow load times, where must you capture traffic to identify the actual slow server?
- How can you distinguish between a TCP-based slow application and a UDP-based slow application from the symptom description?
📘 Lecture 82 — Next 5 Common Network Problems
📖 Overview: This lecture covers five additional common network problems that network engineers must diagnose. It explains server application faults, content redirection, buffer issues at both the receiver and sender sides, and problems caused by altered TCP attributes. Understanding these problems is crucial for effective network troubleshooting and performance optimization.
🗂️ Topics Covered
The lecture examines Server Application Fault (where a server is running but not responding to requests), Content Redirection (where applications redirect clients to another host), TCP Receive Buffer Full (where buffer exhaustion stops data transfer), TCP Send Buffer Full (where limited send buffer space degrades performance), and Altered TCP Attributes along a Path (where routers modify TCP connection attributes). Each problem is described with its causes, mechanisms, and observable symptoms.
📝 Lecture Summary
Server Application Fault
In this scenario, the server is up and running but stops responding to requests. The server successfully responds to a SYN with a SYN/ACK during the TCP handshake, but when the client sends the actual request (e.g., an HTTP GET), no response is received. The client waits for a TCP Retransmission Time Out (RTO), then retransmits the request. If no ACK is received, the client continues to retransmit using an exponential backoff time (doubling the delay each time). Eventually, the client gives up and sends a TCP Reset (RST) to terminate the connection. 💡 Why this matters: This problem can appear as a server being "alive" (pingable) but completely unresponsive to applications, causing user-facing failures.
🔑 Definition — Exponential Backoff: A retransmission strategy where the waiting time increases exponentially (e.g., 1s, 2s, 4s, 8s) between retransmission attempts to prevent network congestion. 📌 Example: A web server accepts the TCP SYN from a client (Step 1), sends SYN/ACK (Step 2), receives the client's ACK (Step 3), but then the client sends an HTTP GET request and receives no response. After 1 second (RTO), the client retransmits the GET. After 2 more seconds, it retransmits again. After 4 seconds, again. The client eventually gives up and sends a TCP Reset (RST).
Content Redirection
This problem is analogous to arriving at a store only to be told the item is out of stock and to go to another store. In networking, if an application supports redirection (like HTTP), and the target server knows where the requested information actually resides, it may send a redirection response to the client. The client then starts a new process to resolve the name of the new host and communicate with it. 💡 Why this matters: This can look like an error or unexpected traffic shift in packet captures.
🔑 Definition — HTTP Redirection: A response from a web server (status codes 300-399) indicating the client should request the resource from a different URL.
📐 Formula: HTTP Status Codes 300-399 → Client receives "Redirect" and initiates a new name resolution (DNS) and TCP connection to the new host.
📌 Example: A user requests http://example.com/oldpage, but the server responds with HTTP Status Code 301 (Moved Permanently) and a Location: header pointing to http://newexample.com/newpage. The client then performs a DNS resolution for newexample.com and establishes a new TCP connection to that host.
TCP Receive Buffer Full
This problem occurs when the advertised TCP receive buffer value drops to zero. The receiver uses the Window Size field in TCP headers to tell the sender how much data it can receive. If the buffer is full, the window is set to zero, and data transfer stops completely. Even a low Window Size value (not zero) can significantly slow or stop data flow. The only way to recover is a Window Update packet from the receiver, indicating that buffer space has been freed and the window is now positive. 💡 Why this matters: This causes data flow to stall, resulting in unusually high TCP delays before the transfer resumes.
🔑 Definition — Window Update: A TCP packet sent by the receiver to inform the sender that buffer space is available and data transfer can resume. 📌 Example: A server is downloading a large file from a client. The server's receive buffer becomes full. The server sends an ACK with a window size of 0. The client stops sending data. After the server processes some data and frees up 4 KB of buffer, it sends a Window Update (ACK with window = 4). The client resumes sending data.
TCP Send Buffer Full:
This problem occurs when the send buffer space on the transmitting side is limited. Even if the network has high bandwidth and the receiver has plenty of buffer space, a small send buffer on the sender can bottleneck performance. The sender cannot transmit new data until the send buffer is freed (i.e., until the data it holds is acknowledged by the receiver). 💡 Why this matters: This leads to high TCP delays for no obvious network-related reason, which can be hard to diagnose.
📌 Example: An application generates data faster than it can be passed to the TCP stack. If the send buffer is only 8 KB, and the sending application writes 16 KB of data, only 8 KB will be sent immediately. The application must wait for TCP to send that 8 KB and receive acknowledgments before it can send the next 8 KB, even if the network and receiver are completely idle and ready.
Altered TCP Attributes along a Path
This problem involves routers and other interconnecting devices that modify the attributes of a TCP connection as they forward the traffic. For example, a router might reduce the Maximum Segment Size (MSS) or alter TCP options in the SYN packets, or it might change the TCP window scale factor. This can cause the sender to calculate a smaller effective window, leading to delays. 💡 Why this matters: This can "break" TCP optimizations and cause performance degradation even on a network with sufficient capacity.
🔑 Definition — TCP MSS (Maximum Segment Size): The maximum amount of data (in bytes) that a TCP segment can contain, excluding the TCP header. It is negotiated during the three-way handshake. 📌 Example: A client and server agree on an MSS of 1460 bytes (typical for Ethernet) during the handshake. However, a router in the path has a lower MTU (e.g., 512 bytes due to a tunnel) and silently truncates the packets or causes fragmentation. This forces the connection to perform at a lower effective segment size, reducing throughput and causing delays before Window Update packets.
⭐ Key Takeaways
- Server Application Fault means the server is alive (accepts TCP connections) but fails to respond to application requests, leading to TCP retransmissions with exponential backoff until a TCP Reset is sent.
- Content Redirection is identified by HTTP status codes 300-399, causing the client to perform a new DNS resolution and connect to a different host.
- TCP Receive Buffer Full stops data flow when the advertised window reaches zero; recovery requires a Window Update from the receiver.
- TCP Send Buffer Full on the transmitting side can halve performance even if the network and receiver are ready, shown by unexplained high TCP delays.
- Altered TCP Attributes along a Path (e.g., changed MSS or window scale) can severely degrade performance, often seen as low calculated window sizes and delays before Window Update packets.
🧠 Quick Revision Questions
- What is the sequence of events when a Server Application Fault occurs, from the initial SYN to the final TCP Reset?
- What HTTP status code range indicates content redirection, and what two subsequent network activities does it trigger?
- What specific packet must be sent by a receiver to resume data transfer after its TCP receive buffer is full (window = 0)?
- How can a limited TCP send buffer degrade performance even when the network and receiver have plenty of capacity?
- What TCP attribute is primarily affected when a router in the path has a lower MTU than the endpoints negotiated?
📘 Lecture 83 — Next 6 Common Network Problems
📖 Overview: This lecture covers six additional common network problems that can affect network performance and troubleshooting. Understanding these issues is crucial for network engineers to diagnose and resolve connectivity, performance, and data integrity problems effectively.
🗂️ Topics Covered
The lecture describes six common network problems: Mismatched TCP Parameters across a Proxy Device, Routing Loops, Weak Signal (WLAN), Asymmetric Routing, Packet Loss, and High Path Latency. Each problem is defined with its cause and possible symptoms that can be observed during network analysis.
📝 Lecture Summary
Mismatched TCP Parameters across a Proxy Device
This problem occurs when connection parameters on one side of a proxy device do not match the connection parameters offered on the other side. The proxy device sits between two connections and must translate or negotiate parameters, but mismatches cause queuing delays.
🔑 Definition — Mismatched TCP Parameters: Connection parameters on one side of a proxy device do not match the connection parameters offered in connection on the other side of proxy device. 📌 Possible Symptoms: Delays in data forwarded through proxy (proxy queuing).
Routing Loops
Routing loops occur when a packet is routed back onto a network over and over again, causing it to circulate endlessly until its Time to Live (TTL) expires. This creates duplicate-looking packets that are actually different due to decrementing TTL values.
🔑 Definition — Routing Loop: A situation where a packet is routed back onto a network repeatedly. 📌 Possible Symptoms: Identical packets listed but no TCP Retransmission indications (they are not identical packets—their TTL value decrements). 📌 Example: A packet with TTL=64 enters a loop; each pass decrements TTL to 63, 62, etc. Captured packets look identical except for the decreasing TTL field.
Weak Signal (WLAN)
A weak signal in a Wireless Local Area Network (WLAN) occurs when a wireless signal degrades substantially, potentially causing it to be interpreted improperly when captured by analyzers.
🔑 Definition — Weak Signal (WLAN): A wireless signal that has degraded substantially and may not be interpreted properly when captured. 📌 Possible Symptoms: Low Signal Strength value. 💡 Why this matters: Low signal strength can cause frame errors, retransmissions, and poor throughput, making it a common source of user complaints.
Asymmetric Routing
Asymmetric routing is a situation where traffic flowing from Host A to Host B flows along a different path than the traffic flowing from Host B to Host A. This becomes problematic when devices must see every packet in order to function, such as proxy hosts or Intrusion Detection Systems (IDS).
🔑 Definition — Asymmetric Routing: Traffic flows from Host A to Host B along a different path than traffic flowing from Host B to Host A. 📌 Key Example: A network path must be symmetrical from a client to a proxy host. An IDS box must see every packet to function properly. 📌 Possible Symptoms: ACKed segment that was not captured. 💡 Why this matters: If security devices don't see both directions of traffic, they cannot properly analyze or filter the communication.
Packet Loss
Packet loss typically occurs at an interconnecting device such as a switch, router, NAT device, or network firewall. Small, quick recovery may go unnoticed, but loss of many sequential packets impacts user experience and generates complaints.
🔑 Definition — Packet Loss: Dropping of packets at an interconnecting device such as a switch, router, NAT device, or network firewall. 📌 Possible Symptoms: Fast Retransmission; Duplicate ACKs. 📌 Example: If a router drops 5 sequential packets from a TCP stream, the receiver sends duplicate ACKs triggering fast retransmission at the sender.
High Path Latency
High path latency is caused by a single low-speed (high delay) link along a path or the delay between geographically disbursed peers. This injects a level of path latency that affects overall performance.
🔑 Definition — High Path Latency: A condition where a single low-speed link or geographical distance between peers injects significant delay affecting performance. 📌 Possible Symptoms: Large delays between the outbound SYN and the inbound SYN/ACK of a TCP handshake. 📌 Example: A client in New York connecting to a server in Sydney might experience 200ms+ delay in the SYN-SYN/ACK exchange due to physical distance.
⭐ Key Takeaways
Students must remember the six common network problems: Mismatched TCP Parameters (proxy queuing delays), Routing Loops (identical packets with decrementing TTL), Weak Signal (low signal strength values), Asymmetric Routing (ACKed segment not captured), Packet Loss (fast retransmission and duplicate ACKs), and High Path Latency (large delays in TCP handshake). Each problem has distinct symptoms that appear in network captures, allowing for targeted diagnosis. The routing loop is unique because packets appear identical but differ in TTL, distinguishing them from actual retransmissions. Asymmetric routing primarily affects devices needing bidirectional visibility like IDS. High path latency is specifically identified by delays in the initial TCP handshake phases.
🧠 Quick Revision Questions
- What symptom indicates Mismatched TCP Parameters across a Proxy Device?
- How can you distinguish between a routing loop and an actual TCP retransmission in a packet capture?
- What is the primary symptom of a Weak Signal in a WLAN environment?
- Why is Asymmetric Routing problematic for an Intrusion Detection System (IDS) device?
- What specific delay pattern in a TCP handshake indicates High Path Latency?
📘 Lecture 85 — Next 5 Common Network Problems
📖 Overview: This lecture explores five additional common network problems beyond the initial four. It covers route redirections, along with packet loss, packet corruption, retransmission issues, and network congestion, explaining their causes, symptoms, and impact on network performance.
🗂️ Topics Covered
This lecture begins with route redirections, explaining how ICMP redirects help hosts find better paths. It then covers packet loss and its causes, packet corruption and detection methods, retransmission issues and the TCP retransmission timer, and finally network congestion including TCP's congestion control mechanisms.
📝 Lecture Summary
Route Redirections
When a host sends packets to one local router but another local router has a preferred path, a route redirection may occur. The receiving router responds with an ICMP packet containing the IP address of the recommended router. This is rare because most networks have only one router. 💡 Why this matters: Route redirections help optimize network paths dynamically but can indicate misconfigurations.
🔑 Definition — Route Redirection: A network mechanism where a router informs a host that a better path exists through a different router. 📌 Example: Host A sends packets to Router X, but Router Y has a better path to the destination. Router X sends an ICMP Type 5 packet with Code 0 (Redirect for Host) or Code 1 (Redirect for Network) to redirect traffic.
Packet Loss
Packet loss occurs when data packets fail to reach their destination. Common causes include network congestion, faulty hardware (e.g., bad cables, failing routers), wireless interference, and buffer overflows. TCP detects packet loss through timeouts or duplicate ACKs and responds by retransmitting lost packets and reducing its transmission rate.
🔑 Definition — Packet Loss: The failure of one or more transmitted packets to arrive at their destination. 📌 Example: During heavy network congestion, a router's buffer may overflow, causing it to drop incoming packets. The sending host detects this through the absence of expected acknowledgments.
Packet Corruption
Packet corruption happens when data bits are altered during transmission, usually due to electrical interference, faulty cables, or signal degradation. TCP uses checksums to detect corruption. When a corrupted packet is received, the receiver discards it and does not send an ACK, causing the sender to retransmit.
🔑 Definition — Packet Corruption: An error where bits in a packet are changed during transmission, making the data invalid. 📐 Formula: CRC or checksum calculation → verifies packet integrity. 📌 Example: A noisy electrical cable causes bit flips in a packet. The receiver computes the checksum, finds it doesn't match the transmitted value, and discards the packet. No ACK is sent, so the sender retransmits.
Retransmission
Retransmission is TCP's mechanism for recovering lost or corrupted data. When a sender doesn't receive an ACK within a certain time (the Retransmission Timeout or RTO), it resends the packet. TCP also uses fast retransmit when it receives three duplicate ACKs for the same sequence number.
🔑 Definition — Retransmission Timeout (RTO): The time a sender waits for an ACK before assuming a packet is lost and retransmitting it. 📌 Example: Host A sends packet 5. It sets RTO to 200ms. If no ACK for packet 5 arrives within 200ms, Host A retransmits packet 5. If three duplicate ACKs for packet 4 arrive (indicating packet 5 was lost), Host A immediately retransmits packet 5 without waiting for RTO (fast retransmit).
Network Congestion
Network congestion occurs when demand exceeds capacity on network links or routers. TCP uses congestion control algorithms like TCP Reno and TCP Cubic to manage this. When congestion is detected (via packet loss), TCP reduces its congestion window (cwnd) to decrease the sending rate. TCP's congestion control includes slow start, congestion avoidance, fast retransmit, and fast recovery.
🔑 Definition — Congestion Window (cwnd): A TCP sender-side limit on the amount of data that can be sent before receiving an ACK, adjusted dynamically based on network conditions. 📐 Formula: cwnd determined by slow start (exponential growth) and congestion avoidance (additive increase, multiplicative decrease). 📌 Example: During slow start, cwnd starts at 1 MSS and doubles every RTT (1, 2, 4, 8...) until a packet loss is detected. Upon loss detection, TCP Reno sets cwnd to half its current value (multiplicative decrease) and enters congestion avoidance (additive increase by 1 MSS per RTT).
⭐ Key Takeaways
Route redirections involve ICMP Type 5 packets directing hosts to better paths, though they are rare in simple networks. Packet loss and corruption are detected through missing ACKs and checksum failures respectively, triggering retransmissions. Retransmission timing is governed by the RTO, which adapts based on measured RTT. Network congestion is managed by TCP's congestion window through algorithms like slow start and congestion avoidance. Understanding these problems is critical for diagnosing network performance issues and optimizing TCP behavior.
🧠 Quick Revision Questions
- What ICMP packet type indicates a route redirection is occurring, and what codes are used?
- How does TCP detect packet loss, and what two mechanisms does it use for retransmission?
- What is the purpose of checksums in packet transmission, and what happens when corruption is detected?
- Explain the difference between TCP's slow start and congestion avoidance phases in terms of window growth.
- What is the Retransmission Timeout (RTO), and how does it affect data transmission?
📘 Lecture 86 — Next 8 Common Network Problems
📖 Overview: This lecture examines eight additional common network problems that network analysts must diagnose. It covers storms, loops, malware, name resolution failures, addressing errors, TCP inefficiencies, client misconfigurations, and application performance issues, providing practical symptoms for each.
🗂️ Topics Covered
The lecture covers broadcast/multicast storms, switch loops, virus/malware on hosts, network name resolution issues, network address resolution problems, hardware address resolution failures, lack of Selective ACK support, absence of Window Scaling, client misconfiguration, low MTU size, TCP port number reuse, and slow application performance. Each problem includes its potential symptoms for diagnosis.
📝 Lecture Summary
Broadcast or Multicast Storms
Broadcasts are typically not forwarded so problems are limited to a single network. Multicasts can be forwarded through an internetwork, so they can cause a greater problem if something goes wrong and they storm the network.
🔑 Definition — Broadcast/Multicast Storm: An overwhelming flood of packets addressed to the all-nets broadcast (255.255.255.255) or a multicast address (224-239.x.x.x), causing network degradation.
💡 Why this matters: Multicasts can propagate across routers, so a single faulty host can overwhelm an entire enterprise network.
Switch Loop
Older switches that have not been restarted or rechecked periodically may malfunction. If there is a loop—network will become overwhelmed with looped packets.
🔑 Definition — Switch Loop: A network condition where packets circulate endlessly between switches, multiplying and consuming bandwidth. 📌 Example: A high rate of identical packets appearing repeatedly on the network indicates a switch loop.
Virus/Malware on Network Hosts
When a compromised host begins performing port scans on other network hosts or begins broadcasting discovery packets, the overhead may be felt.
🔑 Definition — Virus/Malware Overhead: Network congestion caused by infected hosts conducting unauthorized scans or broadcasts. 📌 Example: Local broadcasts appearing frequently, or unusual internal targets (like a local client trying to connect to the Accounting server), indicate malware activity.
Network Name Resolution
This is imperative to connecting to a target. A user may receive an application error such as "Server not found" as in the case of a DNS Name Error when browsing.
🔑 Definition — Name Resolution Failure: The inability to translate a hostname to an IP address, resulting in connection failures. 📌 Example: No response to a name query, or an error response to a name query (such as a DNS Name Error or Server Error).
Network Address Resolution
Incorrect subnet addressing can cause a client to send packets destined to a local device to a router.
🔑 Definition — Subnet Misconfiguration: When a host's IP address or subnet mask is wrong, causing it to treat local devices as remote. 📌 Example: ARP Requests are sent for remote targets. Traffic destined to local hosts is sent to the router instead.
Hardware Address Resolution
This allows obtaining MAC address of a local target or local router. Network address resolution problems may cause a host to think local devices are remote (or vice versa).
🔑 Definition — ARP Resolution Failure: The inability to resolve a local IP address to its corresponding MAC address. 📌 Example: No response to an ARP query for a local host. No response to an ARP query for a local router.
No Support for Selective ACK
When packet loss is detected by a receiving TCP host that supports SACK, that host can acknowledge data received after the missing packet(s). Without SACK, the first packet lost and every subsequent data packet will be retransmitted even when those subsequent packets were received successfully.
🔑 Definition — SACK (Selective Acknowledgment): A TCP option that allows a receiver to acknowledge non-contiguous data, avoiding unnecessary retransmissions. 📌 Example: No SACK Option in the TCP header of a SYN packet. No SACK Option in the TCP header of a SYN/ACK packet when there was a SACK Option in the TCP header of a SYN packet.
No Support for Window Scaling
Window Scaling is used to increase the advertised TCP receive buffer size past the 65,535-byte limit caused by the 2-byte Window Size field. During the TCP handshake, peers indicate that they support Window Scaling and provide a Window Scale Shift Count. Reduces delays caused by a low window or Zero Window condition.
🔑 Definition — Window Scaling: A TCP option that multiplies the Window Size field to allow larger receive buffers, improving throughput on high-latency links. 📌 Example: No Window Scaling Option in TCP header of a SYN packet. No Window Scaling Option in TCP header of a SYN/ACK packet when there was a Window Scaling Option in TCP header of a SYN packet.
Client Misconfiguration
A misconfigured client may have the wrong DNS address, the wrong router address, incorrect port numbers defined in a services file, or other problems.
🔑 Definition — Client Misconfiguration: Incorrect network settings on a client device preventing proper communication. 📌 Example: The client sends traffic to the wrong target. The client receives service refusals or no answer. Numerous other symptoms may appear depending on the misconfiguration.
Low Packet Size/Low MTU Size
The amount of data that can be carried in a frame is limited by MTU, MSS, or even an inefficient application. Performance suffers when sending large files.
🔑 Definition — Low MTU/MSS: A network path or endpoint that advertises an unusually small maximum segment or transmission unit size. 📌 Example: The MSS value defined in the TCP SYN or SYN/ACK packet is illogically small (e.g., less than typical 536 or 1460 bytes).
TCP Port Number Reuse
Port numbers can be reused without any problem if the previous TCP connection is terminated. Otherwise, the new connection is refused.
🔑 Definition — Port Reuse Conflict: Attempting to reuse a TCP port that is still in a TIME_WAIT or established state, causing connection refusal. 📌 Example: TCP RST sent in response to a SYN packet to a server port that is known to be open.
Slow Application
Slow applications can be due to poor or bloated coding, internal errors, or even man-made timers defining the application's performance speed.
🔑 Definition — Slow Application: An application that exhibits large delays in response time due to software inefficiencies or intentional timing. 📌 Example: Large delay in the application response time value observed in packet captures.
⭐ Key Takeaways
The eight additional common network problems cover storms (broadcast/multicast), physical loops, malware, name resolution failures, subnet misconfiguration, ARP failures, TCP optimization absences (SACK and Window Scaling), client misconfiguration, low MTU, port reuse conflicts, and slow applications. For each, diagnosis relies on specific symptoms visible in packet captures—such as high identical packet rates for loops, no SACK/Window Scaling options in handshake packets, RST responses to open ports, or small MSS values. Understanding these symptoms enables rapid identification of network performance issues and misconfigurations. The most critical skills are recognizing when broadcasts/multicasts indicate storms, detecting looped traffic, and identifying missing TCP options that degrade throughput.
🧠 Quick Revision Questions
- What symptom indicates a switch loop is occurring on the network?
- What is the difference between broadcast and multicast storms in terms of propagation?
- What TCP header symptom reveals that a host does not support Selective ACK?
- What network misconfiguration causes ARP requests to be sent for remote targets instead of local ones?
- What packet-level evidence suggests a client has a misconfigured DNS or router address?
📘 Lecture 88 — Using a Troubleshooting Checklist
📖 Overview: This lecture presents a structured troubleshooting checklist for analyzing captured network traffic in a trace file. It emphasizes a methodical approach to verify trace file integrity, isolate the complaining user's traffic, identify and prioritize delays, and check for throughput and other communication issues for both TCP and UDP-based applications.
🗂️ Topics Covered
This topic describes the usage of a Troubleshooting Checklist for analyzing captured traffic saved in a trace file. The order of the checklist may change depending on the troubleshooting issue, but it covers verifying trace file integrity and basic communications, focusing on the complaining user’s traffic, detecting and prioritizing delays, looking for throughput issues, checking miscellaneous traffic characteristics, and examining connection issues for TCP and UDP-based applications, as well as spotting application errors.
📝 Lecture Summary
Using a Troubleshooting Checklist
Captured traffic is saved in a trace file. When you open a trace file, use a basic troubleshooting checklist. The order in which you go through the checklist may change depending on the troubleshooting issue.
Verify Trace File Integrity and Basic Communications
Look for ACKed Unseen Segment. Verify traffic from the complaining user's machine is visible. Verify resolution process completion such as DNS/ARP.
Focus on Complaining User’s Traffic
Filter out unrelated traffic. Export related traffic to a separate trace file.
Detect and Prioritize Delays
Sort and identify high delta times. Measure path latency (Round Trip Time) using delta times in the TCP handshake. This can be achieved by measuring delta from TCP SYN to SYN/ACK. Measure server response time. This can be obtained by measuring from request to response.
🔑 Definition — delta time: The time difference between two captured packets, used to measure delays.
📐 Formula: Path Latency (RTT) = Delta time between TCP SYN and SYN/ACK packet → Plain-English meaning: The round-trip time to establish a connection is measured by the time gap between sending a connection request (SYN) and receiving an acknowledgment (SYN/ACK).
📌 Example: To measure path latency to a server, capture the TCP three-way handshake. If the user's machine sends a SYN packet at time 0.000 seconds and receives a SYN/ACK packet at time 0.050 seconds, the delta time is 0.050 seconds. Therefore, the path latency (Round Trip Time) is 50 milliseconds.
Look for Throughput Issues
Click on low throughput points to jump to problem spots in the trace file. Look at traffic characteristics at low throughput points.
Check Miscellaneous Traffic Characteristics
Check packet sizes during file transfer. Check for ICMP messages. Check for IP fragmentation.
TCP-Based Application: Determine TCP Connection Issues/Capabilities
Look for unsuccessful TCP handshakes. Examine the TCP handshakes Options area, e.g. MSS, SACK.
UDP-Based Application: Identify Communication Issues
Look for unsuccessful requests.
Spot Application Errors
Filter for application error response codes.
⭐ Key Takeaways
A structured troubleshooting checklist is essential for efficiently analyzing network trace files. The process begins by verifying trace file integrity and basic communications, followed by isolating the complaining user’s traffic. To identify problems, you must detect and prioritize delays by measuring path latency (using the delta from TCP SYN to SYN/ACK) and server response time, and look for throughput issues by examining low throughput points. Additionally, checking miscellaneous characteristics like packet sizes, ICMP messages, and IP fragmentation, as well as examining TCP connection options (MSS, SACK) and UDP request success, is critical for comprehensive analysis. Finally, directly filtering for application error response codes is a practical method to spot application-layer errors.
🧠 Quick Revision Questions
- What is the first step when opening a trace file in the troubleshooting checklist?
- How do you calculate path latency (Round Trip Time) from a TCP handshake capture?
- Besides path latency, what other delay is measured using delta times in the troubleshooting checklist?
- What should you look for to identify problems in a TCP-based application during a troubleshooting analysis?
- What is one of the miscellaneous traffic characteristics that should be checked during a file transfer?
📘 Lecture 89 — Wireshark Lab 1
📖 Overview: This lecture introduces the process of creating a custom Troubleshooting Profile in Wireshark. It matters because profiles allow users to customize Wireshark’s interface with specific buttons, color schemes, and settings for different tasks, enabling efficient switching between use cases like VoIP analysis, WLAN analysis, or general troubleshooting.
🗂️ Topics Covered
The lecture covers the concept of Wireshark profiles, including the Default profile versus custom profiles. It provides a step-by-step guide to creating a new profile named "Troubleshooting Book Profile" using the "Classic" global configuration, which employs the most vibrant colors. It also explains how to access the profile via the Status Bar and the Configuration Profile window.
📝 Lecture Summary
Creating Your Troubleshooting Profile
Until you create a new profile, you work in Wireshark's Default profile. The profile you are currently working in is shown in the right-side column of the Status Bar. You can create separate profiles for different needs, such as a VoIP profile, a WLAN profile, and a general troubleshooting profile. Creating a custom profile allows you to customize Wireshark with buttons, colors, and more.
🔑 Definition — Profile: A set of customized settings in Wireshark (including buttons, colors, and filters) that can be saved and switched between for different tasks.
💡 Why this matters: Profiles let you instantly switch between different environments (e.g., troubleshooting vs. VoIP analysis) without manually reconfiguring Wireshark each time.
📌 Example: Creating the Troubleshooting Book Profile To create a profile from the Classic global configuration:
- Right-click the Profile column on the Status Bar.
- In the Configuration Profile window, select New.
- Click the arrow in the Create from area, expand the Global section, and select Classic (this profile uses the most vibrant colors).
- Enter Troubleshooting Book Profile in the Profile Name area.
- Click OK.
The resulting profile (shown in Figure 89.2) is now ready to use.
⭐ Key Takeaways
The most critical thing to remember is that the Default profile is active until a custom profile is created, and you can see the current profile in the right side of the Status Bar. Custom profiles, such as the Troubleshooting Book Profile, are created via the Configuration Profile window by right-clicking the Status Bar. The Classic global configuration should be selected to get vibrant colors. Finally, multiple profiles can be created and quickly switched between for different troubleshooting needs.
🧠 Quick Revision Questions
- Where is the current Wireshark profile displayed?
- What are the four steps to create a custom Troubleshooting profile?
- Which global configuration option is recommended in this lecture and why?
- Name three different types of profiles that might be created for different needs.
- What is the name of the profile created in this lecture?
📘 Lecture 90 — Wireshark Lab 2
📖 Overview: This lecture teaches you how to enhance the Packet List Pane Columns in Wireshark to display additional packet information for faster analysis. You will learn to add custom columns, specifically focusing on HTTP delay measurement by extracting the "Time since request" field from HTTP packets.
🗂️ Topics Covered
This lecture covers enhancing the default Packet List Pane columns in Wireshark by adding custom columns. The focus is on adding an HTTP Delta column to measure time delays between HTTP requests and responses. The demonstration uses the tr-httpdelta.pcapng trace file, which contains Windows update and virus detection traffic.
📝 Lecture Summary
Topic 90: Wireshark Lab 2
This topic discusses how to enhance the Packet List Pane Columns in Wireshark. By default, the Packet List pane contains: No. (number), Time, Source, Destination, Protocol, Length, and Info columns. You can add columns to display additional information about packets to speed up your analysis process.
Step 1: Open tr-httpdelta.pcapng. This trace file contains traffic to/from a user's machine that is checking for Windows updates as well as virus detection updates.
Step 2: Packets 1-3 are TCP handshake packets. Packet 4 is an HTTP GET request for a file called minitri.flg. Packet 5 is an ACK for the GET request. Packet 6 is the HTTP 200 OK response.
Select Packet 6 in the Packet List pane and then, in the Packet Details pane, expand the Hypertext Transfer Protocol.
Step 3: Scroll to the bottom of the HTTP section and right-click on the [Time since request: 0.019036000 seconds] line. Select Apply as Column.
Step 4: Wireshark places the new Time since Request column to the left of the Info column. Right-click on this new column heading and select Edit Column Details. Enter HTTP Delta in the Title area. Click OK.
💡 Why this matters: By adding the HTTP Delta column, you can now quickly scan and identify HTTP delays between requests and responses without manually calculating them, significantly speeding up network troubleshooting.
⭐ Key Takeaways
The most critical thing to remember is that Wireshark allows you to create custom columns by right-clicking any value in the Packet Details pane and selecting "Apply as Column." This lecture specifically demonstrates creating an HTTP Delta column to measure the time between an HTTP request and its response, which is invaluable for identifying latency issues. The steps are: open the trace file, select the HTTP response packet, expand the HTTP section, right-click the "Time since request" value, and rename the column to "HTTP Delta." This custom column will now appear in the Packet List pane, enabling rapid identification of slow HTTP transactions.
🧠 Quick Revision Questions
- What is the default purpose of the Packet List Pane columns in Wireshark, and why would you add custom columns?
- What is the name of the trace file used in this lab, and what type of network traffic does it contain?
- What is the exact name of the field you right-click on to create the HTTP Delta column?
- After applying the column, what menu option do you use to rename it from "Time since Request" to "HTTP Delta"?
- Which packet number is the HTTP 200 OK response that contains the "Time since request" information?
📘 Lecture 91 — Wireshark Lab 3
📖 Overview: This lecture teaches how to modify the Time column settings in Wireshark to measure time intervals between displayed packets. The focus is on changing from the default "Seconds Since Beginning of Capture" to "Seconds since Previous Displayed Packet" for precise delta time calculations.
🗂️ Topics Covered
Changing the Time column display format from seconds since beginning of capture to seconds since previous displayed packet; sorting by HTTP delta time to identify delays; hiding and restoring columns in Wireshark; working with the tr-australia.pcapng trace file containing a web browsing session.
📝 Lecture Summary
[Wireshark Lab 3 — Changing Time Column Settings]
Packets are time stamped at the moment they are captured. By default, Wireshark sets the Time column to Seconds Since Beginning of Capture. Additionally, the resolution is set to nanoseconds, regardless of whether the packet timestamps contain that level of precision.
Step 1: Open tr-australia.pcapng. This trace file contains a web browsing session and was captured at the client. The goal is to change the Time column setting so we can quickly measure the delta time between displayed packets.
Step 2: This trace file begins with a DNS query and response. TCP connection establishment begins in Packet 3. Select View | Time Display Format | Seconds since Previous Displayed Packet.
💡 Why this matters: Changing to seconds since previous displayed packet allows you to see the exact time gap between consecutive packets in the display, which is essential for detecting network delays and performance bottlenecks.
[Step 3 — Creating an HTTP Delta Column]
Step 3: Select Statistics | HTTP | Packet Counter | Create HTTP Delta Column. Wireshark creates a new column named HTTP Delta with delta time for each HTTP transaction based on the current time format.
[Step 4 — Sorting by Delta Time]
Step 4: Click on the new HTTP Delta column header to sort the column data from high to low.
[Step 5 — Identifying Delays]
Step 5: Click twice on your new HTTP Delta column header to sort the column data from high to low. Wireshark indicates there is a 2.807332 second delay before one of the HTTP 200 OK responses (Packet 49).
🔑 Definition — Delta time: The time difference between two displayed packets, used to measure network delays. 📐 Formula: Delta time = Time of Current Packet - Time of Previous Displayed Packet 📌 Example: In Packet 49, the HTTP 200 OK response shows a delta time of 2.807332 seconds, indicating a significant delay before this response.
[Step 6 — Hiding and Restoring Columns]
Step 6: Right-click on your HTTP Delta column heading and select Hide Column. You can restore this hidden column at any time by right-clicking on any column header, selecting Displayed Columns, and selecting the column to restore.
⭐ Key Takeaways
The critical skill from this lecture is changing the Time column display format from "Seconds Since Beginning of Capture" to "Seconds since Previous Displayed Packet" using View | Time Display Format. The HTTP Delta column is created via Statistics | HTTP | Packet Counter, enabling precise measurement of delays between HTTP transactions. Sorting this column reveals the largest delays, such as the 2.807332 second delay before Packet 49's HTTP 200 OK. Column hiding and restoring is accomplished through right-click context menus and Displayed Columns settings.
🧠 Quick Revision Questions
- What is the default Time column display format in Wireshark?
- Which menu path changes the Time column to show seconds since the previous displayed packet?
- How do you create an HTTP Delta column in Wireshark?
- What does a delta time of 2.807332 seconds indicate in an HTTP response packet?
- How can you restore a hidden column in Wireshark?
📘 Lecture 92 — Wireshark Lab 4
📖 Overview: This lecture demonstrates how to apply display filters in Wireshark to isolate traffic between specific hosts, subnets, or conversations. It is essential for network troubleshooting, as it allows you to focus on relevant data when a trace file contains traffic from many hosts.
🗂️ Topics Covered
This topic covers filtering traffic in Wireshark by host address, subnet address, or conversation. It shows how to navigate to the Address Resolution table, identify specific hosts, and use display filters to isolate and save a single conversation between a local client and a remote server (cnn.com).
📝 Lecture Summary
Topic 92: Wireshark Lab 4
This topic describes how to apply a filter on a host, subnet, or conversation in Wireshark. When you capture traffic at the server or inside the network infrastructure, your trace file may contain conversations between many hosts on the network. Are you interested in the traffic between a specific client and server? If yes, you can apply a display filter based on a host address, a subnet address, or a conversation.
Step 1: Open tr-cnn.pcapng.
Step 2: This trace file contains numerous conversations. Let’s extract conversations between the local client and cnn.com servers. We begin with looking at the name resolution information that Wireshark extracted from the trace file. Select Statistics | Show Address Resolution.
[Figure 92.1: Extract and Save a Single Conversation]
⭐ Key Takeaways
A student must remember that a captured trace file often contains traffic from many hosts, so filtering is critical for focused analysis. The key method is to use Statistics > Show Address Resolution to view the resolved hostnames. From this table, you can identify the specific IP addresses for a client-server pair and then build a display filter to isolate their conversation. This technique is essential for extracting and saving only the relevant packets from a large capture.
🧠 Quick Revision Questions
- What is the first step to isolate traffic between a specific client and server in a Wireshark trace?
- Which Wireshark menu path is used to view the resolved hostnames from the trace file?
- When capturing traffic inside network infrastructure, why is it necessary to apply a display filter?
- What is the purpose of the "Show Address Resolution" feature in Wireshark?
- How would you filter traffic to see only conversations between a local client and cnn.com servers?
📘 Lecture 93 — Wireshark Lab 5
📖 Overview: This lecture focuses on advanced Wireshark filtering techniques, specifically how to apply display filters using port numbers and application names to isolate specific network conversations. These skills are essential for analyzing network traffic efficiently, especially when dealing with large trace files containing thousands of packets.
🗂️ Topics Covered
The lecture covers how to filter traffic from a specific domain (cnn.com) using IP address ranges, how to export filtered packets to separate trace files, how to apply conversation filters via right-click, and how to filter based on port numbers versus application names such as FTP data. It includes step-by-step Wireshark instructions for each technique.
📝 Lecture Summary
Filtering Traffic from cnn.com Domain
All servers in the cnn.com domain begin with the IP prefix 157.166. In the display filter area, enter ip.addr==157.166.0.0/16 and click Apply. The Status Bar indicates that 360 packets match this filter, listing all conversations to and from the cnn.com servers. Use File | Export Specified Packets (with the Displayed radio button selected by default) and name your file tr-cnntraffic.pcapng to save this filtered traffic.
To filter a single conversation, use the right-click method on a packet in the Packet List pane. Select Conversation Filter | TCP. For example, on Packet 3, this results in 55 packets appearing. Export this conversation by selecting File | Export Specified Packets and naming the file tr-cnnconv1.pcapng. Always click the Clear button to remove your display filter afterward—avoiding unrelated traffic and potential distractions makes analysis easier. Therefore, save the traffic from an interesting conversation to a separate trace file.
Wireshark Lab 5: Filtering by Port Number
There are two ways to define a display filter on an application in a trace file: filter based on the application name (if known to Wireshark) or the port number in use. Open tr-twohosts.pcapng and look at the FTP data transfer connection established by 192.168.1.119.
Enter ip.addr==192.168.1.119 in the display filter area and click Apply. This filters all traffic to and from 192.168.1.119. Look for the response to the PASV command (Packet 3,959). Expand the FTP section in the Packet Details pane to see the port number that the server will be listening on for the FTP data channel (port 39,757).
🔑 Definition — PASV command: Passive mode FTP command where the server opens a port and waits for the client to connect for data transfer.
Now replace your address display filter with tcp.port==39757 and click Apply. The Status Bar indicates that 28,020 packets match this filter. Next, contrast this with a display filter based on an application name.
Replace your TCP port filter with ftp-data and click Apply. Now you won’t see the TCP handshake, ACKs, or the connection teardown packets—the filter only shows packets actually carrying FTP data payload.
📌 Example: When filtering by tcp.port==39757, you see 28,020 packets including the TCP three-way handshake, acknowledgments, and connection close. When filtering by ftp-data, you see only the packets containing actual file transfer data, not the protocol overhead.
Click the Clear button to remove your display filter.
⭐ Key Takeaways
A student must remember that Wireshark allows two primary methods for filtering application traffic: by port number (e.g., tcp.port==39757) and by application name (e.g., ftp-data), with the port filter capturing all protocol overhead packets while the application name filter shows only data-bearing packets. The right-click conversation filter quickly isolates a single TCP conversation. Saving filtered traffic to separate trace files (using Export Specified Packets) keeps analysis organized and distraction-free. Always clear display filters after use to avoid unintentional filtering.
🧠 Quick Revision Questions
- What IP address prefix do all cnn.com servers use, and how do you filter for that entire network in Wireshark?
- After filtering traffic from 192.168.1.119, where do you find the port number that the FTP server will use for the data channel?
- What is the difference in the packets shown when using
tcp.port==39757versusftp-dataas a display filter? - How do you save a specific conversation from a display filter to a separate trace file?
- Why should you click the Clear button after applying and saving a display filter?
📘 Lecture 95 — Wireshark Lab 7
📖 Overview: This lecture describes how to locate buffer problems using the Calculated Window Size field in Wireshark. It demonstrates how to identify Zero Window conditions and low window size values that can stop TCP data transmission.
🗂️ Topics Covered
This topic covers the significance of the TCP Window Size field in detecting buffer problems, how to apply a filter to identify packets with low window size values, and the impact of insufficient buffer space on data transmission between TCP peers.
📝 Lecture Summary
Locating Buffer Problems using the Calculated Window Size Field
Every TCP packet sent by a host contains that host's available receive buffer space in the Window Size field. If Window Scaling is in use, this field value is multiplied by a scaling factor. When the advertised buffer space becomes equal to zero, the host cannot accept any more data—a Zero Window condition. Even a low Window Size value can stop a TCP peer from transmitting data.
💡 Why this matters: Identifying low window sizes is critical for troubleshooting network performance issues where data transmission stalls unexpectedly.
Step 1: Open tr-winsize.pcapng.
Step 2: Expand any TCP header in the Packet Details pane. Right-click on the Calculated window size field and select Prepare a Filter | Selected.
Step 3: Change the display filter value to tcp.window_size < 1000 and click Apply. This displays Packet 374 in which the client is advertising a 536-byte receive buffer.
What will happen if the TCP peer has more than 536 bytes of data queued to transmit? This low Window size value will stop data transmission.
🔑 Definition — Zero Window: A condition where a host's advertised buffer space becomes equal to zero, meaning the host cannot accept any more data from its TCP peer.
📐 Formula: Effective Window Size = Window Size field × Scaling Factor (when Window Scaling is active)
📌 Example: In the trace file tr-winsize.pcapng, Packet 374 shows a client advertising a 536-byte receive buffer. The server had more than 536 bytes queued to transmit but could not send a full-sized packet because the client only had 536 bytes of buffer space available. The server had to wait until the client's buffer size increased.
Step 4: Click Clear to remove your filter. In this trace file, we next view the delay that occurs before the Window Update packet (Packet 375).
The Window Update packet is sent when the client's buffer space becomes available again, signaling the server to resume transmission.
⭐ Key Takeaways
The TCP Window Size field in every packet contains the host's available receive buffer space, and a low value can stop data transmission. A Zero Window condition occurs when buffer space reaches zero, preventing any data acceptance. The calculated window size equals the window size field multiplied by the scaling factor when Window Scaling is enabled. Using the filter tcp.window_size < 1000 in Wireshark helps locate buffer problems, and the Window Update packet signals when buffer space becomes available again, allowing transmission to resume.
🧠 Quick Revision Questions
- What does the TCP Window Size field in a packet represent?
- What is a Zero Window condition and why does it stop data transmission?
- What Wireshark display filter would you use to find packets where the client's receive buffer is less than 1000 bytes?
- What is the purpose of a Window Update packet?
- What happens when Window Scaling is in use and how does it affect the advertised buffer space?
📘 Lecture 96 — Wireshark Lab 8
📖 Overview: This lecture teaches how to filter out "normal" network traffic in Wireshark to focus on anomalies. It covers two methods for excluding traffic based on field values and explains when to use each method correctly. This skill is critical for network forensics and troubleshooting.
🗂️ Topics Covered
The lecture covers filtering out application traffic using the exclamation sign (!), two methods for excluding traffic based on field values (! with == vs. !=), guidelines for choosing the correct method, examples of correct and incorrect display filters, and a step-by-step lab exercise using tr-general.pcapng to reveal hidden Dropbox traffic.
📝 Lecture Summary
Filtering OUT Traffic
To filter out traffic based on an application name, precede the application display filter name with an exclamation sign (!). For example, to remove ARP from view, use !arp. There are two methods to exclude traffic based on a field value. One method uses the ! or not operator with == or eq. The other uses the != or ne operator.
🔑 Definition — Display Filter: A Wireshark filter that controls which packets are displayed, without affecting packet capture.
📌 Example — Excluding a specific IP address:
• !ip.addr==10.10.10.10 (method 1: ! with ==)
• http.request.method != "GET" (method 2: !=)
💡 Why this matters: Using the wrong operator with multi-field names like ip.addr can produce incorrect results, making you miss anomalies.
When to Use ! and == and When to Use !=
Use the first method (! and ==) when you filter on a field name that matches two fields such as ip.addr, tcp.port, or udp.port. Use the second method (!=) when you refer to a field name that only matches one field such as dns.flags.rcode or tcp.dstport.
📐 Rule: For multi-field names → !fieldname==value. For single-field names → fieldname!=value.
📌 Example — Correct vs. Incorrect filters:
• Correct: !ip.addr==10.1.1.1
• Incorrect: ip.addr != 10.1.1.1 (because ip.addr matches both source and destination)
• Correct: dns.flags.rcode!=0
• Incorrect: !dns.flags.rcode==0 (because dns.flags.rcode matches only one field)
Lab Exercise: Removing Normal Traffic
This lab removes a set of applications and protocols from view to determine what other traffic is seen on the network.
🔑 Step 1: Open tr-general.pcapng.
🔑 Step 2: In the display filter area, type !tcp && !arp and click Apply. There are 40 packets that match this filter.
🔑 Step 3: To remove DNS and DHCP from view, expand the filter by adding && !dns && !bootp. Eight packets are displayed.
📌 Example — The displayed packets indicate that there are two hosts running Dropbox on the network and are sending packets to the broadcast address (255.255.255.255).
⭐ Key Takeaways
The most critical exam point is the correct syntax for excluding traffic: use !field==value for multi-field names (ip.addr, tcp.port, udp.port) and field!=value for single-field names (dns.flags.rcode, tcp.dstport). The lab demonstrates a systematic approach: start with the most common protocols (TCP, ARP), then add DNS and DHCP to reveal hidden application traffic like Dropbox broadcasts. Remember that ip.addr != 10.1.1.1 is incorrect because ip.addr matches both source and destination IP fields, while !ip.addr==10.1.1.1 works correctly. The exclamation sign (!) is the universal operator for excluding protocols by name (e.g., !arp, !dns, !bootp).
🧠 Quick Revision Questions
- What is the correct display filter to exclude all traffic from IP address 10.1.1.1?
- Why is
ip.addr != 10.1.1.1an incorrect filter while!ip.addr==10.1.1.1is correct? - How many packets remain after applying
!tcp && !arpto tr-general.pcapng? - What operators are added to remove DNS and DHCP traffic in the lab?
- What two hosts were revealed after removing normal traffic in the lab, and what type of packets were they sending?
📘 Lecture 97 — Wireshark Lab 9
📖 Overview: This lecture explains how to create custom Filter Expression Buttons in Wireshark to quickly apply display filters for identifying common network problems. The specific example demonstrates building a button that detects TCP handshake packets missing Selective Acknowledgment (SACK) and Window Scaling functionality.
🗂️ Topics Covered
Creating Filter Expression Buttons in Wireshark using display filters; building a combined inclusion filter for SYN bits and exclusion filters for TCP options; applying the filter to the sample trace file tr-smbjoindomain.pcapng; saving the filter as a reusable button named TCP-HS.
📝 Lecture Summary
Creating Filter Expression Buttons
Filter Expression buttons are based on display filters. These buttons can be created and used to quickly apply display filters to your traffic to identify common network problems. The lecture demonstrates creating a button to quickly identify TCP handshake packets that do not offer Selective Acknowledgment (SACK) or Window Scaling functionality. To do this, we need to combine an inclusion filter for the SYN bit set to 1 with an exclusion filter for the SACK and Window Scaling options.
💡 Why this matters: Instead of manually typing complex filters each time, you can create one-click buttons that instantly highlight problematic packets, saving significant time during network troubleshooting.
Step-by-Step Procedure
Step 1: Open tr-smbjoindomain.pcapng.
Step 2: Packet 11 is the first SYN packet in the trace file. Right-click on the TCP header of this packet and select Expand Subtrees. First build the filter and then turn the filter into a filter expression button. Right-click on SYN: Set line and select Prepare a Filter | Selected. Wireshark places the first part of the filter in the display filter area.
![Figure 97.1: Create a Button to Detect Missing TCP Functionality]
Step 3: Scroll down to the TCP Options area. Click on the TCP SACK Permitted Option: True line. This displays tcp.options.sack_perm in the Status Bar area. Expand the filter by typing && !tcp.options.sack_perm so that TCP handshake packets that do not contain this value can be observed.
🔑 Definition — tcp.options.sack_perm: A TCP option field that indicates the SACK Permitted option is present in the TCP handshake.
📐 Filter logic: tcp.flags.syn == 1 && !tcp.options.sack_perm → Shows SYN packets that do NOT have SACK permitted enabled.
Step 4: Now add || ! tcp.options.wscale.multiplier and put parentheses around the options, as shown next.
🔑 Definition — tcp.options.wscale.multiplier: A TCP option field containing the Window Scale multiplier value.
📐 Complete filter: tcp.flags.syn == 1 && (!tcp.options.sack_perm || !tcp.options.wscale.multiplier) → Shows SYN packets that lack EITHER SACK OR Window Scaling (or both).
Step 5: Click the Save button and name your new button TCP-HS and click OK.
⭐ Key Takeaways
Filter Expression Buttons provide one-click access to complex display filters for rapid network problem identification. The lecture demonstrates building a combined filter that detects TCP handshake packets missing SACK or Window Scaling functionality, both critical TCP optimizations for modern high-performance networks. The filter uses tcp.flags.syn == 1 to isolate handshake packets, then excludes those with tcp.options.sack_perm or tcp.options.wscale.multiplier. Parentheses ensure correct logical grouping when combining multiple exclusion conditions. The saved button (TCP-HS) can be reused across any capture file for instant TCP handshake analysis.
🧠 Quick Revision Questions
- What two TCP options are being checked for absence in the filter expression button created in this lab?
- Why must parentheses be placed around the option exclusion part of the filter?
- Which Wireshark menu option is used to begin building the display filter from the SYN field?
- What does the filter condition
!tcp.options.sack_permspecifically exclude from the display? - What is the purpose of using a Filter Expression Button instead of typing the filter each time?
📘 Lecture 98 — Wireshark Lab 10
📖 Overview: This lecture teaches how to launch and navigate through Wireshark’s Expert Infos feature. Understanding Expert Infos allows network analysts to quickly detect problems, obtain basic communication information, and view/jump to packet comments, making it essential for efficient network troubleshooting.
🗂️ Topics Covered
The lecture covers opening the Expert Infos window via the Status Bar, exploring its six tabs (Errors, Warnings, Notes, Chats, Details, Packet Comments), disabling IPv4 checksum validation to eliminate false errors, and using the tool to jump to specific packets. It also demonstrates how Expert Infos reveals issues like duplicate ACKs caused by high latency or connection outages.
📝 Lecture Summary
Step 1-3: Opening and Understanding Expert Infos
To begin, open tr-twohosts.pcapng. Click the Expert Infos button in the bottom left corner of the Status Bar to open the Expert Infos window. The window is divided into six tabs:
- Errors: Checksum errors, dissector failures.
- Warnings: Potential problems detected.
- Notes: Symptoms of problems; typically recovery processes.
- Chats: TCP connection overhead (handshake, Window updates, disconnects).
- Details: Summary of Errors, Warnings, Notes, and Chats.
- Packet Comments: List of all packet comments in the trace file.
If IPv4 checksum validation is disabled, no Expert Infos Errors appear. Otherwise, 6,767 IPv4 Bad Checksum Errors will show. To disable validation, right-click on the Internet Protocol Version 4 line in the Packet Details Pane, select Protocol Preferences, and toggle off Validate IPv4 checksum if possible. Click the Warnings tab of the Expert Infos window, then click on a packet to jump to that location in the trace file.
💡 Why this matters: Disabling checksum validation avoids false positives caused by hardware offloading, allowing you to focus on real network issues.
Step 4: Interpreting Notes
Click the Notes tab. As you scroll, you will see 589 Duplicate ACKs sent by the receiver to recover a missing packet. This can be caused by a very high latency path or a brief connection outage.
🔑 Definition — Duplicate ACK: An acknowledgment sent by the receiver for the same sequence number multiple times, indicating a missing packet that triggers fast retransmission.
📌 Example: In tr-twohosts.pcapng, 589 Duplicate ACKs appear in the Notes tab, signaling a missing packet due to high latency or a brief connection outage.
⭐ Key Takeaways
The Expert Infos window in Wireshark is a powerful troubleshooting tool with six tabs: Errors, Warnings, Notes, Chats, Details, and Packet Comments. Disabling IPv4 checksum validation under Protocol Preferences eliminates false error counts caused by hardware offloading. The Notes tab reveals recovery processes like Duplicate ACKs, which indicate packet loss from high latency or brief outages. You can click any Expert Infos entry to jump directly to the corresponding packet in the trace file. Mastering Expert Infos enables rapid detection of network problems efficient navigation of large captures.
🧠 Quick Revision Questions
- What are the six tabs in the Wireshark Expert Infos window?
- How can you disable IPv4 checksum validation in Wireshark?
- What does the presence of many Duplicate ACKs in the Notes tab indicate?
- How do you jump directly to a specific packet from an Expert Infos entry?
- What type of information is found under the Chats tab of Expert Infos?
📘 Lecture 99 — Wireshark Lab 11
📖 Overview: This lecture demonstrates how to change the dissector behavior in Wireshark to properly measure network performance metrics. It focuses on the critical preference setting "Allow subdissector to reassemble TCP streams" and shows how its default setting can lead to inaccurate HTTP response time measurements.
🗂️ Topics Covered
The lecture covers changing the TCP dissector reassembly preference setting, opening a specific pcap file (tr-youtubebad.pcapng), navigating packets using hyperlinks, identifying incorrect HTTP response time calculations, and toggling protocol preferences to obtain accurate measurements.
📝 Lecture Summary
Change the TCP Dissector Reassembly Setting to Properly Measure HTTP Response Times
Some of Wireshark's predefined preference settings are not ideal for troubleshooting. For example, the Allow subdissector to reassemble TCP streams preference setting can hide important information and produce incorrect metrics.
🔑 Definition — Allow subdissector to reassemble TCP streams: A Wireshark preference setting that reassembles TCP segments into complete application-layer messages before passing them to the subdissector (e.g., HTTP).
Step 1: Open tr-youtubebad.pcapng. The Response Code in the Info column for Packet 6 cannot be seen because the Allow subdissector to reassemble TCP streams preference setting is enabled.
Step 2: In the Packet Detail pane of Packet 4, right-click the Hypertext Transfer Protocol heading and select Expand Subtrees. A hyperlink to the response packet is located at the bottom of the HTTP section. Double-click the hyperlink to jump to Packet 29,259.
Step 3: Scroll to the bottom of the HTTP header in Packet 29,259. The Time Since Request (http.time) field indicates the HTTP response time was over 276 seconds.
📐 Formula: http.time = Time Since Request → The time difference between the HTTP request packet and the HTTP response packet with the 200 OK response.
💡 Why this matters: This measured response time is not correct. The HTTP response time is measured from the HTTP request packet to the HTTP response packet that contains the 200 OK response.
Step 4: To find the actual HTTP response time, in the Packet Details pane of any packet, right-click the TCP header, select Protocol Preferences, and toggle off the Allow subdissector to reassemble TCP streams preference setting.
Step 5: Click Close to shut down the Expert Infos window.
⭐ Key Takeaways
The default Wireshark preference "Allow subdissector to reassemble TCP streams" can produce misleading HTTP response time measurements by reassembling TCP streams before the HTTP dissector processes them. Students must know how to locate the HTTP response time field (http.time) in the packet details, use hyperlinks to jump between related packets, and toggle protocol preferences by right-clicking the TCP header and selecting Protocol Preferences. The correct HTTP response time measurement requires this preference to be turned off, as demonstrated by correcting a measured value of over 276 seconds to the actual value. This skill is essential for accurate network troubleshooting using Wireshark.
🧠 Quick Revision Questions
- What is the specific preference setting that causes incorrect HTTP response time measurements in Wireshark?
- How do you navigate directly from an HTTP request packet to its corresponding response packet in Wireshark?
- What field in the HTTP header indicates the HTTP response time, and in which packet (by number) was it shown as over 276 seconds?
- What step must you follow to toggle off the Allow subdissector to reassemble TCP streams preference?
- Why does the "Allow subdissector to reassemble TCP streams" setting produce an incorrect HTTP response time measurement?
📘 Lecture 100 — Wireshark Lab 12
📖 Overview: This lecture demonstrates how to use Wireshark’s Conversations window to identify the most active network conversation in a packet capture file. It also shows how to apply a filter to isolate and analyze the packets belonging to that conversation. Understanding top talkers is critical for network troubleshooting, security analysis, and performance monitoring.
🗂️ Topics Covered
This lecture covers using the Statistics → Conversations feature in Wireshark to find the most active TCP conversation by byte count, sort conversations by byte count, and apply a filter to view only packets from that specific conversation. It uses the tr-general.pcapng trace file as the working example.
📝 Lecture Summary
Step 1: Open the Trace File
Open the file tr-general.pcapng in Wireshark to begin the analysis.
Step 2: Open the Conversations Window
Navigate to Statistics → Conversations. A dialog box appears with tabs indicating the number of each type of conversation (Ethernet, IPv4, TCP, UDP, etc.) seen in the trace file.
Step 3: Find the Most Active TCP Conversation
We are interested in the most active TCP conversation by byte count. Click the TCP tab, then click the Bytes column heading twice to sort from high to low. The most active conversation displayed is between IP address 192.168.1.72 on port 32313 and IP address 192.87.106.229 on port 80 (listed as http).
Step 4: Filter to Show Only This Conversation
Right-click on this top conversation and select Apply as Filter → Selected A <-> B. Wireshark applies the filter and displays the 123 packets belonging exclusively to this conversation.
⭐ Key Takeaways
The Conversations window in Wireshark is the primary tool for identifying the most active conversations in a capture. Sorting by the Bytes column (high to low) reveals the conversation with the most data transferred. The Apply as Filter → Selected A <-> B option allows you to isolate all packets of a specific conversation for focused analysis. The most active TCP conversation in the example is a web (HTTP) connection between a local host and a remote server on port 80.
🧠 Quick Revision Questions
- Which menu path opens the Conversations window in Wireshark?
- How do you sort conversations to find the one with the highest byte count?
- What is the IP address and port of the local host in the most active TCP conversation in the example?
- What option allows you to filter all packets belonging to a selected conversation?
- How many packets belong to the most active conversation in the example trace?
📘 Lecture 101 — Wireshark Lab 13
📖 Overview: This lecture demonstrates how to build and use a basic IO Graph in Wireshark to visualize network throughput. It is critical for troubleshooting because the IO Graph helps you quickly identify performance problems like delays and packet loss recovery in TCP conversations.
🗂️ Topics Covered
This lecture covers building a basic IO Graph in Wireshark, interpreting throughput drops found in the graph, investigating two specific problem points in a trace file (tr-winsize.pcapng), analyzing a TCP Window Update packet with a 2.75-second delay, and observing packet loss recovery at the client side.
📝 Lecture Summary
Building a Basic IO Graph in Wireshark
The IO Graph is a tool used to view throughput levels for all traffic in a trace file, or to plot a subset of traffic based on display filters. It helps you prioritize troubleshooting tasks by visually showing network performance issues. To begin, open the trace file tr-winsize.pcapng, which contains a single TCP conversation where an HTTP client downloads a large file from a web server. Then select Statistics | IO Graph. By default, Wireshark displays the packets per second rate (packet per tick with a default tick rate of one second).
Investigating the First Throughput Drop
To investigate the first drop in throughput seen on the graph, click on it. Wireshark jumps to that point in the trace file for further analysis. If your Time column is set to Seconds Since Previous Displayed Packet (View | Time Display Format), you will see a delay of over 2.75 seconds in the trace file. Packet 375 is marked as a TCP Window Update packet. This indicates that the delay may be related to the Window Size value advertised by the client (10.0.52.164).
🔑 Definition — TCP Window Update: A packet that informs the sender about the current size of the receiver’s receive window, indicating how much data the receiver is willing to accept. 💡 Why this matters: A small or shrinking window size can throttle throughput, causing significant delays in data transfer.
Investigating the Second Throughput Drop
Go to the IO Graph and click on the second problem point. From Wireshark’s window, you can see what is happening at this point in the file download process. The client appears to be in the middle of a packet loss recovery process.
🔑 Definition — Packet Loss Recovery: The process by which TCP detects and retransmits lost packets, often triggered by duplicate acknowledgments or timeouts. 💡 Why this matters: Packet loss recovery can drastically reduce throughput, and spotting it in an IO Graph helps you locate the exact moment and cause.
After analysis, go to the IO Graph and click Close.
⭐ Key Takeaways
The IO Graph is a powerful tool for quickly visualizing throughput levels and spotting network problems in a trace file. The first throughput drop was caused by a TCP Window Update packet, introducing a delay of over 2.75 seconds, likely due to a small client window size. The second drop occurred because the client was engaged in a packet loss recovery process. Plotting subsets of traffic with display filters can further refine troubleshooting. Understanding these two common causes — window updates and packet loss recovery — is essential for diagnosing HTTP download slowdowns in Wireshark.
🧠 Quick Revision Questions
- What is the default metric plotted by the IO Graph in Wireshark?
- What type of packet was Packet 375, and what was the delay associated with it?
- What does a TCP Window Update packet indicate about the receiver?
- What network event was the client experiencing at the second throughput drop point?
- Why is the IO Graph useful for prioritizing troubleshooting tasks?
📘 Lecture 102 — Wireshark Lab 14
📖 Overview: This lecture teaches how to create a coloring rule in Wireshark to quickly identify specific packet types. The focus is on building a rule to highlight DNS errors with an orange background, making them stand out in the Packet List pane. This skill is essential for efficient network troubleshooting and packet analysis.
🗂️ Topics Covered
The lecture covers the step-by-step process of adding a coloring rule in Wireshark. It begins with opening a sample capture file and filtering for DNS traffic. It then explains how to use the Packet Details pane to examine DNS response codes, and how to create a new coloring rule that triggers when the Reply Code field indicates an error (value greater than 0). Finally, it covers setting the background color to orange and applying the rule.
📝 Lecture Summary
Step 1: Open the Capture File
Open the provided pcapng file tr-chappellu.pcapng. This file contains a network trace where a client attempts to resolve a domain name multiple times.
Step 2: Filter for DNS Traffic
Type dns in the display filter area and click Apply. This filters the packets to show only DNS traffic. In this capture, 43 packets match. The client sends requests to two DNS servers (75.75.75.75 and 75.75.76.76) to resolve www.chappellU.com. It sends nine requests before receiving a successful answer in Packet 12.
Step 3: Examine the DNS Response
Right-click on the Domain Name System (query) section in the Packet Details window for Packet 12. Select Expand Subtrees to see the full structure. Inside the Flags section, locate the Reply Code field.
🔑 Definition — Reply Code (rcode): A field in a DNS response that indicates the status of the query. A value of 0 means success, while any value greater than 0 indicates a DNS error (e.g., NXDOMAIN, SERVFAIL).
📌 Example: In Packet 12, the Reply Code is 0, meaning the DNS query was successful.
Step 4: Create a New Coloring Rule
Right-click on the Reply Code field and select Colorize with Filter | New Coloring Rule.
Step 5: Name the Rule and Set the Filter
Enter DNS Errors as the name of the new coloring rule. Change the String value to dns.flags.rcode > 0. This filter matches any DNS packet where the Rcode field is greater than 0, i.e., any DNS error.
📐 Formula: dns.flags.rcode > 0 → This selects packets where the DNS response indicates an error condition.
Step 6: Set the Background Color
Click the Background Color button. In the Color Name field, type orange. Wireshark automatically converts the word "orange" to its hex value #FFA500 and shows a preview of the color. Click OK to close the Background Color window, then click OK to close the Edit Color Filter window.
💡 Why this matters: The new rule appears at the top of the list of color filters. Packets are processed in order through this list. Now, any DNS error packet will appear with an orange background in the Packet List pane.
⭐ Key Takeaways
The most critical skill from this lecture is that coloring rules allow you to visually highlight packets matching specific display filters. The key to creating a useful rule is to identify a field (like dns.flags.rcode) and define a condition (> 0) that indicates the packets of interest. Colors are set by name (e.g., "orange") or hex value (e.g., #FFA500), and rules are processed top-down. For the exam, remember the exact syntax for the DNS error filter (dns.flags.rcode > 0) and the steps to create a coloring rule via the right-click context menu.
🧠 Quick Revision Questions
- What is the exact display filter string used to highlight DNS errors in the coloring rule?
- What does a Reply Code (rcode) value of 0 signify in a DNS response?
- In which pane of Wireshark do you right-click to open the "Colorize with Filter" option?
- How does Wireshark process multiple coloring rules when packets are displayed?
- What is the hex color value for the word "orange"?
📘 Lecture 103 — Capture Options for a Switched Network
📖 Overview: This lecture explains the challenges of capturing network traffic on a switched network and provides practical solutions such as port mirroring, hubs, and TAPs. It also covers essential configuration steps in Wireshark, including applying coloring rules to highlight specific packets (like DNS errors) and understanding where coloring rule details appear in the packet details pane. This topic matters because modern networks rely on switches, which by default isolate traffic, making packet capture non-trivial.
🗂️ Topics Covered
The lecture explains how to apply a coloring rule to mark packets (like DNS errors) in Wireshark and where the rule name and string appear in the Frame section. It then distinguishes between the four types of packets forwarded by a switch (broadcast, multicast, traffic to your hardware address, and traffic to an unknown hardware address), and details three methods for capturing another user's traffic on a switched network: using a hub, using a TAP, or using port mirroring (SPAN). The summary emphasizes that connecting directly to a switch port normally prevents listening to other users' traffic.
📝 Lecture Summary
Step 7: Click OK to close the Coloring Rules window.
After configuring a coloring rule in Wireshark, you click OK to close the Coloring Rules window. This applies the rule to packets in the trace.
Step 8: With dns filter still in place, scroll through the packets to see if you notice the two DNS errors in the trace file.
With a display filter for DNS still active, you scroll through the packets. Two DNS errors appear in the trace file at Packets 83 and 84, highlighted with an orange coloring rule.
Step 9: Expand the Frame section in the Packet Details pane of Packet 83.
In Packet 83, expand the Frame section in the Packet Details pane. This area lists your Coloring Rule Name and Coloring Rule String.
Topic 103: Capture Options for a Switched Network
This topic explains tips on choosing a capture location for a switched network. Today, almost all network clients connect through a switch. Four types of packets are forwarded by a switch: broadcast, multicast, traffic to your hardware address, and traffic to an unknown hardware address.
Because of this, when you connect a system running Wireshark directly to a switch port, you cannot listen to other users' traffic. To capture the traffic between a client and the upstream switch (and ultimately a remote host), you need to use one of three methods:
- Use a hub (which repeats all traffic to all ports)
- Use a TAP (a Test Access Point that copies all traffic to a monitoring port)
- Use port mirroring (also known as SPAN — Switched Port Analyzer), which configures the switch to send a copy of traffic from one port to another port where Wireshark is connected
🔑 Definition — Port Mirroring (SPAN): A switch configuration that copies all traffic from one or more source ports to a destination (monitor) port, allowing Wireshark to capture traffic without interrupting the original flow.
🔑 Definition — TAP (Test Access Point): A hardware device inserted between two network devices that copies all traffic passing through it to a monitoring port, with no impact on performance or packet loss.
💡 Why this matters: Without using one of these three methods, a user connecting Wireshark directly to a switch port will only see their own traffic and broadcast/multicast frames, missing all other client conversations.
⭐ Key Takeaways
To capture traffic from other users on a switched network, you must use a hub, a TAP, or port mirroring (SPAN) — a direct connection to a switch port only captures your own traffic, broadcast, multicast, traffic to your hardware address, and traffic to unknown hardware addresses. In Wireshark, coloring rules are applied via the Coloring Rules window, and the rule name and string appear in the Frame section of the Packet Details pane. DNS errors in a trace file can be highlighted (e.g., with orange coloring) to quickly spot issues. For exam purposes, remember the four packet types a switch forwards and the three capture solutions for switched networks.
🧠 Quick Revision Questions
- What four types of packets does a switch forward?
- Why can't you capture other users' traffic when connecting Wireshark directly to a switch port?
- Name three methods for capturing traffic between a client and an upstream switch on a switched network.
- Where in the Packet Details pane do you find the Coloring Rule Name and Coloring Rule String?
- How do you apply a coloring rule to highlight DNS errors in a trace file?
📘 Lecture 104 — Wireshark Lab 15
📖 Overview: This lecture covers essential methods for capturing network traffic, with a focus on wireless capture options in Wireshark. Understanding these techniques is critical for network troubleshooting and security analysis, enabling you to obtain accurate traffic samples for examination.
🗂️ Topics Covered
The lecture begins by describing three methods for capturing wired traffic: installing Wireshark on the user's machine, using switch port spanning, and using a Test Access Port (Tap). It then shifts focus to wireless capture, explaining how to test if your native WLAN adapter can capture management and control traffic in monitor mode, with step-by-step instructions for verifying capture capabilities.
📝 Lecture Summary
(a) Install Wireshark on the user's machine
This is a great option if you can physically access the user's machine. It provides direct capture of all traffic sent and received by that host.
(b) Make the switch send a copy of the traffic down your analyzer port
The next option is Switch Port Spanning (also called "spanning"). This makes the switch send a copy of the traffic down to your analyzer port. However, not all switches support this feature. If there are corrupt frames traveling from the user's host, those corrupt frames won't be forwarded down the spanned port by the switch. Furthermore, avoid oversubscribing your switch port—this means spanning a level of traffic that cannot "fit" down the pipe to your Wireshark system. The switch will drop excess packets and the trace file will be incomplete.
💡 Why this matters: Oversubscription can lead to missing data in your capture, giving you an incomplete picture of network activity.
(c) Tap in and obtain a copy of the traffic between the client and the switch
Use a Test Access Port ("Tap"). A tap is a simple device that copies all the traffic flowing through it (including those corrupt packets) out to a monitor port. This method ensures you capture even faulty frames that spanning would miss.
Wireless Capture Options
You are lucky if your native WLAN adapter can capture WLAN Management and Control traffic. In Monitor Mode, you should be able to see traffic from any network as well.
🔑 Definition — Monitor Mode: A special mode for wireless adapters that allows capture of all wireless traffic in range, including management and control frames, regardless of the network the adapter is associated with.
📌 Example: To test the capture capabilities of your WLAN native adapter, follow these steps:
- Step 1: Launch Wireshark and click the Interface List button on the Main Toolbar.
- Step 2: Select the checkbox in front of your WLAN adapter and click Start.
- Step 3: Go to a browser window and visit www.wireshark.org. Go to Wireshark and examine the packets you have captured. If your native adapter is suitable for network capture, you should see some WLAN management and control traffic (such as Beacon packets and Probe Request/Probe Response packets).
⭐ Key Takeaways
The most critical points from this lecture are: (1) For wired captures, you have three options—install Wireshark locally, use switch port spanning (with the risk of missing corrupt frames and oversubscription), or use a tap to capture all traffic including corrupt packets. (2) For wireless captures, not all native WLAN adapters support capturing management and control frames; you must test your adapter by entering monitor mode. (3) A successful test will show Beacon frames and Probe Request/Response packets in your capture, confirming your adapter’s suitability for wireless analysis. (4) Oversubscribing a spanned port will cause packet drops and an incomplete trace file, so carefully monitor traffic volume. (5) The best method depends on your access to the network infrastructure and whether you need to see corrupt frames, which only a tap can capture.
🧠 Quick Revision Questions
- What are the three methods for capturing wired traffic described in this lecture?
- Why might corrupt frames not appear in a capture taken from a spanned switch port?
- What problem does "oversubscribing" a switch port cause for your Wireshark capture?
- What is the key advantage of using a Test Access Port (tap) over switch port spanning?
- How can you test whether your native WLAN adapter is suitable for capturing management and control traffic in Wireshark?
📘 Lecture 105 — Wireshark Lab 16
📖 Overview: This lecture provides a step-by-step guide on how to capture network traffic to a File Set in high traffic rate situations using Wireshark. Understanding file sets is critical for managing large captures by splitting them into manageable, linked files that can be navigated systematically.
🗂️ Topics Covered
This lecture covers the concept of File Sets in Wireshark, why they are important in high traffic rate situations, and a complete lab exercise demonstrating how to configure automatic file rotation and stop conditions. It also explains how to navigate between files in a set while preserving display filters for efficient packet analysis.
📝 Lecture Summary
Capturing to a File Set in High Traffic Rate Situations
This section introduces the importance of capturing to file sets when dealing with high network traffic. File sets are groups of trace files that are linked based on their file name pattern, allowing the capture to be split into multiple smaller files rather than one enormous file. This prevents memory issues and makes analysis more practical.
💡 Why this matters: In high-traffic environments, a single capture file can become too large to open or work with efficiently. File sets solve this by automatically rotating files at a set interval.
🔑 File Set: A group of trace files that are linked based on their file name, allowing Wireshark to treat them as a single continuous capture.
Lab Exercise: Capturing Three Files
This section provides the practical steps to configure and execute a file set capture with an autostop condition.
Step 1: Click the Capture Options button on the Main Toolbar.
Step 2: In the Capture Options window, set the path and file name for your file set. Enable Use Multiple Files. Set Next file every 1 Minute(s). Set Stop capture after 3 Files. Click Start.
Step 3: Open a browser and visit several web sites. Browse for at least 3 minutes. Your capture process will automatically stop after 3 minutes. The third file will be displayed.
Step 4: To move from one file to the next file in a file set, select File | File Set | List Files. Select a file in the list and Wireshark will load that file. You can quickly locate specific packets in the file set by applying a display filter to one of the files and then clicking subsequent files in the file list. The display filter will remain in place as you open each file. When you are finished navigating through files, click Close on the File Set window.
📐 Configuration Rule: Next file every 1 Minute(s) + Stop after 3 Files = Total capture duration of exactly 3 minutes
📌 Example: If you set the file name to "capture.pcapng", Wireshark will generate files named "capture_00001_20250101120000.pcapng", "capture_00002_20250101120100.pcapng", and "capture_00003_20250101120200.pcapng", each containing 1 minute of traffic.
⭐ Key Takeaways
File sets are essential for managing high-traffic captures by splitting them into smaller, linked time-based files. The lab demonstrates configuring a 1-minute file rotation with an automatic stop after 3 files, producing exactly 3 minutes of capture. Critical to remember is that when navigating between files in a set, any display filter applied to one file remains active when opening subsequent files, enabling consistent cross-file analysis. The File Set List window is accessed through File | File Set | List Files, and files are loaded by simply selecting them from the list.
🧠 Quick Revision Questions
- What is a file set in Wireshark and why is it used?
- In the lab exercise, what two configuration parameters are set to control file rotation and capture duration?
- After the capture automatically stops, how many files will have been created?
- How do you navigate from one file to the next within a file set?
- What happens to a display filter when you open subsequent files in a file set?
📘 Lecture 107 — Verify the Target Host Traffic
📖 Overview: This lecture explains how to verify that you are capturing the correct traffic from target hosts in Wireshark. It covers common capture process problems and introduces the TCP/IP resolution process that applications must follow to communicate on a network. Understanding this verification step is critical for reliable network analysis.
🗂️ Topics Covered
This lecture covers two main areas: checking your capture process for common errors such as capture filter mismatches, tap connection issues, or switch spanning problems; and understanding the TCP/IP resolution process including port resolution, IP address resolution via DNS, MAC address resolution through ARP, and forwarding based on MAC addresses.
📝 Lecture Summary
Check Your Capture Process
The first step of any analysis process is to verify that the hosts are able to communicate and you can see their traffic in the trace file. If you do not see any traffic, something may have gone wrong during the capture process. There are three common causes: A) Wireshark had a capture filter in place and the complaining user's traffic did not match the capture filter. B) If you are using a tap, the user's network cable isn't plugged into the tap. C) If you are spanning a switch port, the switch is not spanning the traffic down your analyzer port.
💡 Why this matters: If you cannot see the target host's traffic, your entire analysis will be based on incomplete or wrong data.
Consider the TCP/IP Resolution Process
All applications must go through a basic resolution process to build the packet to communicate with another host on a TCP/IP network. This process involves four sequential steps:
-
Port Resolution: The user specifies the Port number in the URL, in the application code. This determines which application service the packet should reach on the destination host.
-
IP Address Resolution: The application must resolve a fully qualified domain name (FQDN) to an IP address using DNS (Domain Name System).
-
MAC Address Resolution: The user's machine resolves the default gateway MAC address (if required) using ARP (Address Resolution Protocol). This translates the IP address of the next-hop router into a physical MAC address.
-
Forwarding: The packet is then built and forwarded to the next-hop router using that MAC address on the local Ethernet network.
🔑 Definition — Resolution Process: The step-by-step method by which an application converts human-readable names and service identifiers into the numerical addresses (IP, MAC, and port) needed to construct and send a packet across a TCP/IP network.
📐 Process Flow: URL/Application → Port Number → DNS resolves FQDN to IP Address → ARP resolves IP to MAC Address → Packet forwarded using MAC address
📌 Example: When a user types www.wireshark.org in a browser: 1) Port 80 or 443 is specified in the URL or browser code. 2) DNS resolves www.wireshark.org to an IP address (e.g., 198.41.0.4). 3) ARP resolves the default gateway IP to its MAC address. 4) The packet is forwarded to the gateway using that MAC address.
⭐ Key Takeaways
The most critical things to remember: always verify that you can see the target host's traffic before beginning analysis. If no traffic appears, check three things: capture filters, tap connections, and switch spanning port configurations. Every TCP/IP communication follows a four-step resolution process: port resolution, IP address resolution via DNS, MAC address resolution via ARP, and forwarding using the resolved MAC address. Understanding this process helps you identify where communication failures occur. The MAC address resolution step uses ARP to find the default gateway's MAC address, not the destination host's MAC address when communicating across networks.
🧠 Quick Revision Questions
- What are three possible reasons you might not see traffic after starting a Wireshark capture?
- List the four steps of the TCP/IP resolution process in order.
- Which protocol resolves a fully qualified domain name to an IP address?
- Which protocol resolves an IP address to a MAC address?
- What does the user specify for port resolution, and where does this specification come from?
📘 Lecture 109 — Wireshark Lab 19
📖 Overview: This lecture describes how to identify local address resolution problems in Wireshark. It covers the critical role of MAC address acquisition before client communication can occur and demonstrates how to analyze ARP failure scenarios in packet captures.
🗂️ Topics Covered
The lecture examines the local address resolution process, focusing on how a client must obtain a MAC address for a local target or router before sending packets. It explains that the client checks its cache first and, if the MAC address is unknown, sends an ARP request. The lab demonstrates identifying when ARP requests go unanswered, causing communication to fail.
📝 Lecture Summary
Wireshark Lab 19: Identifying Local Address Resolution Problems
Before a client can send a packet to a local target or a local router, it must obtain the MAC (Media Access Control) address of that device. If the client does not have the MAC address information in cache, the client sends out an Address Resolution Protocol (ARP) request. If no response is received when trying to acquire the local target's MAC address, the client is done—it cannot send out a packet to the target.
🔑 Definition — MAC Address: The Media Access Control address is a unique hardware identifier assigned to network interfaces for local network communication. 💡 Why this matters: Without the MAC address, a client cannot deliver packets at Layer 2 of the OSI model, even if it knows the target's IP address.
📌 Example — ARP Failure Scenario: In the lab trace file tr-localresolution.pcapng, packets show ARP requests being sent without receiving corresponding ARP replies. This indicates the client failed to resolve the local target's MAC address, blocking all subsequent communication attempts.
The lab procedure consists of:
- Step 1: Open the capture file
tr-localresolution.pcapng - Step 2: Type
arpin the display filter area and click Apply to isolate ARP packets - Step 3: Observe ARP requests that have no matching ARP replies
- Step 4: Clear the display filter when finished
📌 Example — Analyzing ARP Failure: When filtering for arp in Wireshark, you can identify unresolved ARP requests by looking for packets with "Who has [IP address]? Tell [sender IP]" in the Info column, followed by no corresponding "is at [MAC address]" reply.
⭐ Key Takeaways
The most critical concept from this lecture is that MAC address resolution is a prerequisite for all local network communication. The client first checks its local cache for the MAC address; if absent, it sends an ARP request. If no ARP reply is received, the communication attempt fails completely. Students must recognize that ARP failures are identifiable in Wireshark by searching for ARP requests without corresponding replies. This highlights that network problems can occur at Layer 2 (data link layer) even when higher-layer protocols appear functional.
🧠 Quick Revision Questions
- What three conditions must be met for a client to successfully send a packet to a local target?
- What does the client do if the target's MAC address is not in its local cache?
- In Wireshark, what display filter would you use to isolate ARP traffic?
- What does the "Info" column show for an ARP request that has not received a response?
- Why would a client be unable to send any packets to a local target even if it knows the target's IP address correctly?
📘 Lecture 110 — Wireshark Lab 20
📖 Overview: This lecture examines the “No server Response to TCP Connection Request” scenario in Wireshark. It explains why a server may fail to respond to a TCP connection attempt and how to diagnose such issues using packet traces, focusing on packet loss and firewall blocking as primary causes.
🗂️ Topics Covered
The lecture covers multiple reasons for missing TCP handshake responses, including SYN packet loss before reaching the server, firewall dropping of SYN packets, host-based firewall blocking of ports, and SYN/ACK packet loss or blocking on the return path. It also demonstrates how to open and analyze a specific trace file and use Wireshark’s TCP stream index column to identify separate connections.
📝 Lecture Summary
Wireshark Lab 20 – No Server Response to TCP Connection Request
There are several reasons why a server may not respond to a TCP connection attempt. The TCP handshake request packet (SYN) may not arrive at the server. Maybe the SYN packet was lost. A firewall along the path dropped the SYN packet, or a host-based firewall on the server blocked access to the port. Alternately, the response (SYN/ACK) may not arrive at the client. The SYN/ACK packet was lost along the path, or a firewall along the path blocked the SYN/ACK.
Step 1: Open tr-noserver.pcapng.
Step 2: Scroll through this trace file. This trace file contains only SYN packets from 192.168.1.72 to 192.168.1.66. None of the SYN packets have received SYN/ACK responses. Expand the TCP header in Packet 1. Right-click on the [Stream index: 0] line and select Apply as Column. Wireshark shows that there are 6 separate connections (TCP Stream Index: 0-5).
🔑 Definition — SYN (Synchronize): The first packet in a TCP three-way handshake, sent by a client to initiate a connection. 🔑 Definition — SYN/ACK (Synchronize-Acknowledgment): The second packet in a TCP three-way handshake, sent by a server to acknowledge the client’s SYN and agree to establish the connection. 🔑 Definition — Stream Index: A Wireshark identifier that groups packets belonging to the same TCP connection.
📌 Example: In tr-noserver.pcapng, 192.168.1.72 sends SYN packets to 192.168.1.66 over 6 separate connections (Stream Index 0-5). None receive a SYN/ACK response, indicating the server is either unreachable or blocking the connection.
💡 Why this matters: Identifying whether the SYN packet never reaches the server or the SYN/ACK never returns helps narrow down the location of the problem (client side, network path, or server side).
⭐ Key Takeaways
Students must remember that a missing TCP handshake response can result from either the SYN not reaching the server (lost, dropped by firewall, or blocked by server’s host-based firewall) or the SYN/ACK not returning to the client (lost or blocked). The trace file tr-noserver.pcapng demonstrates this scenario, where multiple SYN packets are sent but no SYN/ACK is received. Using the Stream Index column in Wireshark helps identify distinct TCP connections within a capture, even when no handshake is completed.
🧠 Quick Revision Questions
- What are two main categories of reasons a server may not respond to a TCP SYN?
- What does the absence of any SYN/ACK packets in a trace file indicate?
- How can you identify separate TCP connections in Wireshark when no handshake is completed?
- What is the difference between a firewall dropping the SYN and a host-based firewall blocking the port?
- In tr-noserver.pcapng, what is the source IP address sending SYN packets and what is the destination IP address?
📘 Lecture 111 — Wireshark Lab 21
📖 Overview: This lecture demonstrates how to analyze the “No Response to Service Request” situation in Wireshark using a specific trace file. It focuses on interpreting TCP traffic patterns when a server fails to respond to a client’s service request, and on using filters and columns to isolate relevant connections.
🗂️ Topics Covered
The lecture covers opening and filtering the trace file tr-serverresponse.pcapng, using the Stream Index column to differentiate separate TCP connections between client 24.6.173.220 and server 50.62.146.230, applying a TCP Conversation Filter, and analyzing the traffic to understand the “No Response to Service Request” scenario.
📝 Lecture Summary
Topic 111: Wireshark Lab 21 — Analyzing “No Response to Service Request”
This topic discusses how to analyze the “No Response to Service Request” situation in Wireshark.
Step 1: Open the file tr-serverresponse.pcapng.
Step 2: Scroll through this trace file to get familiar with the traffic pattern. Use the Stream Index column to differentiate the separate connections between 24.6.173.220 and 50.62.146.230. Right-click on Packet 1 in the Packet List pane and select Conversation Filter | TCP.
📌 Example: By applying the TCP Conversation Filter on Packet 1, Wireshark isolates only the packets belonging to that specific TCP stream between the two IP addresses, allowing focused analysis of the “No Response to Service Request” behavior.
⭐ Key Takeaways
The “No Response to Service Request” scenario is identified by observing a TCP connection where the server does not reply to the client’s request, often visible through repeated SYN packets or lack of SYN-ACK. The Stream Index column is essential for isolating individual connections in a trace file with multiple streams. Applying a Conversation Filter (TCP) simplifies analysis by showing only packets from a single conversation. This lab reinforces the skill of using Wireshark’s filtering and column customization to diagnose network service failures.
🧠 Quick Revision Questions
- What trace file is used in this lab for analyzing “No Response to Service Request”?
- Which column helps differentiate separate TCP connections between two IP addresses?
- What filter is applied after right-clicking on Packet 1 in the Packet List pane?
- What are the two IP addresses involved in the analyzed TCP connection?
- What does the “No Response to Service Request” situation typically look like in a packet capture?
📘 Lecture 112 — Do not Focus on Acceptable Delays
📖 Overview: This lecture addresses how to identify and properly interpret delays in network trace files. It teaches students which delays are normal and can be safely ignored (acceptable delays), versus those that signal actual problems. Understanding acceptable delays prevents false alarms and focuses analysis on genuine network or application failures.
🗂️ Topics Covered
This lecture covers the concept of acceptable delays in TCP trace files, explaining why some delays (like those before TCP RST packets) are normal and should not raise alarms. It examines specific categories of acceptable delays: delays before DNS queries caused by user interaction, delays before TCP FIN or Reset packets caused by application processing time, delays before a client sends a request to a server due to user input, and delays before Keep-Alive or Zero-Window Probes.
📝 Lecture Summary
Introduction: The Worth of Normal Delays
This topic discusses the worth of normal delays. You can safely ignore some delays in your trace files. For example, a delay before a TCP RST packet would likely not be felt by the end user. Such acceptable delays should not raise an alarm. The lecture emphasizes not focusing on delays that are part of normal operation, as they do not indicate a problem.
💡 Why this matters: Focusing on acceptable delays wastes analysis time and can lead to incorrect diagnoses of network issues.
Delays before DNS Queries
A DNS query will be triggered when we enter a URL in a browser and then press Enter, or when we see an interesting link on a web page and we click on it. Open tr-delays.pcapng. You will find that the delay before Packet 29 is caused by an eventual time out of a connection. Packet 32 is a DNS query, and the delay before it is because the user did not straightaway click on www.wireshark.org.
🔑 Definition — Acceptable Delay before DNS Query: A delay introduced by the user taking time to decide which link to click or manually typing a URL, rather than a network problem.
Delays before TCP FIN or Reset Packets
Delay introduced by an application, which sends TCP FIN/RST packets to close the connection after waiting for a specified time or some task is completed. The application must process data or complete a job before it can terminate the TCP connection. This delay is normal and should be expected.
🔑 Definition — Acceptable Delay before TCP FIN/RST: The time an application takes to finish its tasks before initiating a graceful (FIN) or abrupt (RST) connection termination.
Delays before a Client Sends a Request to a Server
This occurs when filling out a form and pressing the Submit button, or clicking the next link on a web page. In all such cases, an application requires user interaction. The delay is introduced by the human, not the network.
🔑 Definition — Acceptable Delay before Client Request: The time between a page loading and the user performing an action (clicking, typing) that triggers a new HTTP request.
Delays before Keep-Alive or Zero Window Probes
[Note: This section heading appears in the outline but the lecture text provides no specific content for it. The summary is based on the section title and general knowledge of TCP behavior. This is likely an oversight or truncated section in the provided text.]
🔑 Definition — Keep-Alive Probe: A TCP packet sent to check if a connection is still active when no data has been exchanged for a long period. Zero Window Probe: A TCP packet sent by a sender to check if a receiver's window has opened after the receiver announced a zero window size. Delays before these probes are normal as they wait for timers.
⭐ Key Takeaways
The most critical thing a student MUST remember from this lecture is that not all delays in a trace file indicate a problem. Delays before DNS queries are often caused by user hesitation, not network failure. Delays before TCP FIN/RST packets are due to application processing time and are normal. Delays before a client sends a request are typically caused by user interaction with a form or link. These acceptable delays should be ignored during analysis to avoid false alarms. The core skill is distinguishing between application-level or user-caused delays and genuine network delays like retransmission timeouts.
🧠 Quick Revision Questions
- What is an "acceptable delay" in the context of TCP trace file analysis?
- What is the most common cause of a delay before a DNS query in a web browsing session?
- Why might a delay occur before TCP FIN or RST packets are sent?
- How can you differentiate between a delay caused by a network problem and a delay caused by user interaction?
- According to the lecture, what should you do when you encounter a delay before a Keep-Alive or Zero Window Probe?
📘 Lecture 113 — Watch for the Delays that DO Matter
📖 Overview: This lecture focuses on identifying significant network delays that indicate real performance issues, distinguishing them from normal delays like Zero Window probes or keep-alives. Understanding these meaningful delays helps network analysts pinpoint problems in server response times, round trip times, and data stream interruptions.
🗂️ Topics Covered
The lecture categorizes delays that matter into four key types: delays before a server responds with SYN/ACK (indicating high round trip time), delays before a client completes the 3-way TCP handshake (also measuring RTT), delays before a server sends a response (indicating server-side processing issues), and delays before the next packet in a data stream (caused by sender busyness or blocking). Each delay type is explained with its significance for network troubleshooting.
📝 Lecture Summary
Delays before a Server Responds with a SYN/ACK
A client can use the time between the SYN and SYN/ACK in the TCP handshake to determine the round trip time (RTT) between the hosts. A large delay before the SYN/ACK is an indication of a high round trip time between the hosts. 💡 Why this matters: This measurement helps determine if network path latency is the root cause of slow connections.
🔑 Definition — Round Trip Time (RTT): The time it takes for a packet to travel from source to destination and back.
Delays before a Client Completes the 3-Way TCP Handshake
The time between SYN/ACK and the client's ACK to finish the TCP handshake can be used by the server to determine the round trip time. This gives the server a measurement of path latency without additional probes.
Delays before a Server Sends a Response
In a trace file, if you observe that a server quickly sent an ACK to a client's request, but there is a long delay before the server's response, then this is not a path latency issue. We need to consider why a server might be slow. For example, in tr-http-pcaprnet101.pcapng, the client's GET request (GET /home) in packet 18 followed by the server ACK takes 17 ms. We can see a delay of almost 1.8 seconds before the requested data begins. The trace was taken at the client. The round trip time between the hosts is acceptable, but the server response time is not.
📌 Example: In trace file tr-http-pcaprnet101.pcapng, packet 18 shows client GET /home request. Server ACK arrives after 17 ms (acceptable RTT). However, a 1.8 second delay follows before data transmission begins, indicating a server processing problem, not a network latency issue.
Delays before the Next Packet in a Data Stream
There can be several reasons for delays that occur during a file download or file upload process: the sender became busy with other processing, or there can be a blocking event such as Virtual Memory Paging, SQL Database Commit, DNS Lookup, or CPU Overload. 💡 Why this matters: These delays point to application-level or system-level performance problems rather than network congestion.
🔑 Definition — Blocking Events: Operations that pause the sender's data transmission, including virtual memory paging, SQL database commits, DNS lookups, or CPU overload.
⭐ Key Takeaways
A student must remember that meaningful delays in TCP communications fall into four distinct categories. Delays before SYN/ACK and before the final ACK in the handshake both indicate high round trip time (path latency). A quick ACK followed by a long delay before the server's response data indicates a server-side performance problem, not network latency. Delays during data streams can be caused by sender busyness or blocking events like paging, database commits, DNS lookups, or CPU overload. Crucially, these are different from the "delays that don't matter" like Zero Window probes or keep-alives. The example from tr-http-pcaprnet101.pcapng shows RTT of 17ms but a server response delay of 1.8 seconds—a classic case of server bottleneck, not network bottleneck.
🧠 Quick Revision Questions
- What does a large delay between SYN and SYN/ACK in the TCP handshake indicate?
- How can a server determine the round trip time between hosts using the TCP handshake?
- If a server sends a quick ACK to a client request but delays sending the actual response data, what is the likely cause?
- In the tr-http-pcaprnet101.pcapng example, what was the measured RTT and what was the server response delay?
- Name three types of blocking events that can cause delays between packets in a data stream.
📘 Lecture 114 — Wireshark Lab 22
📖 Overview: This lecture explores how to detect and analyze delays in UDP conversations using Wireshark. It focuses on the connectionless nature of UDP and how conversation statistics provide insights into network performance for UDP-based applications like VoIP.
🗂️ Topics Covered
The lecture covers sources of delay in TCP-based conversations (device buffering, lack of receive buffer space, delayed ACKs, window updates), then shifts focus to UDP as a connectionless transport protocol. The main practical section provides a step-by-step guide to using Wireshark's Conversations Window to view UDP conversation statistics, including packet rates and bps rates. A specific example uses the tr-voip-extensions.pcapng file to demonstrate sorting conversations by traffic flow.
📝 Lecture Summary
Delays before an ACK from a TCP peer
This situation arises when ACKs from a receiver get delayed because of the path latency or delayed ACK function. Delayed ACK timers are often set at 200 ms.
🔑 Definition — Delayed ACK function: A TCP mechanism where the receiver delays sending an ACK to allow piggybacking with data, often using a 200 ms timer.
Delays before a Window Update
A host must wait for a Window Update before sending a packet, if it finds that the advertised Window Size is too small to fit a full-sized data segment.
🔑 Definition — Window Update: A TCP segment sent to inform the sender that the receiver has more buffer space available for data.
📌 Example: If the receiver's advertised Window Size is 100 bytes but the sender wants to send a 1460-byte segment, the sender must wait for a Window Update before transmitting.
Topic 114: Wireshark Lab 22
In this topic, we discuss how to detect delays in UDP Conversations in Wireshark. The User Datagram Protocol (UDP) is a connectionless transport layer protocol with an 8-byte header. Unlike TCP, UDP has no sequencing or acknowledgement capability. Delays between requests and responses are a measure for UDP-based applications. UDP conversation statistics such as packet rate, bps rate etc. can be obtained with Conversations Window.
🔑 Definition — UDP Conversation: A unidirectional or bidirectional flow of UDP packets between two endpoints identified by IP addresses and port numbers.
📐 Formula: Packet rate = Number of packets / Time interval → Measures how many UDP packets are transmitted per second. 📐 Formula: bps rate = Bits transmitted / Time interval → Measures the bit rate of UDP traffic.
💡 Why this matters: Since UDP lacks retransmission and flow control, delays directly impact real-time applications like VoIP, video streaming, and online gaming.
Step 1: Open tr-voip-extensions.pcapng
Open the provided capture file containing UDP traffic from a VoIP extension scenario.
Step 2: Select Statistics | Conversation
Navigate to the Statistics menu and select Conversation to access the Conversations Window.
Step 3: Click the UDP tab
Uncheck the Name Resolution option, if you are interested in seeing port numbers rather than port names. This displays raw port numbers (e.g., 25426) instead of service names (e.g., "sip").
Step 4: Sort by bps A → B
Click twice on the bps A –> B column heading. This will sort UDP conversations based on traffic flowing from Address A/Port A to Address B/Port B. In the list, Wireshark will view the conversation between 192.168.5.11/port 25426 and 192.158.5.10/port 8000 first.
🔑 Definition — bps A → B: The bit rate of traffic flowing from the first endpoint (Address A/Port A) to the second endpoint (Address B/Port B).
⭐ Key Takeaways
UDP delays are detected by analyzing conversation statistics rather than sequence numbers or ACKs. The Conversations Window provides packet rate and bps rate for each UDP flow. Sorting by bps A→B helps identify the most bandwidth-intensive conversations. Path latency and window updates affect TCP but not UDP, making UDP conversation analysis simpler. The 8-byte UDP header means minimal overhead, but no error recovery.
🧠 Quick Revision Questions
- What is the size of the UDP header?
- How do you access the Conversations Window in Wireshark?
- What does the "bps A → B" column represent?
- Why might you uncheck Name Resolution when viewing UDP conversations?
- What is the typical delayed ACK timer value in TCP?
📘 Lecture 115 — Wireshark Lab 23
📖 Overview: This lecture explains how to add and sort a Delta Time column in Wireshark to identify network delays. It demonstrates the process using a trace file from Malaysian Airlines, enabling analysts to locate the largest delays in a capture by sorting delta time values.
🗂️ Topics Covered
The lecture covers the default Time column setting in Wireshark (Seconds Since Beginning of Capture) and how to replace it with delta times for better delay analysis. It provides step-by-step instructions for creating a frame.time_delta column, repositioning it next to the existing Time column, renaming it to "Delta", and sorting it to identify the largest delays.
📝 Lecture Summary
Topic 115: Wireshark Lab 23
This topic describes how to Add/Sort a Delta Time Column in Wireshark. In Wireshark, the default Time column setting is Seconds Since Beginning of Capture. It becomes easier to locate delays when a time column displays delta times. We can locate the largest delays in a trace file by sorting the delta time column.
💡 Why this matters: Delta time columns allow you to see the time difference between consecutive packets, making it simple to spot unusual pauses or bottlenecks in network traffic.
Step 1: Open tr-malaysianairlines.pcapng
Step 2: Expand the Frame section of any packet.
Step 3: Right-click on the “Time delta from previous captured frame” line and select Apply as Column. This will create a frame.time_delta column.
Step 4: The new column appears to the left of the Info column. Click and drag it to the right of the existing Time column.
Step 5: Rename the column by right-clicking on the column heading and selecting Edit Column Details. Let’s change the Title to Delta. Click OK.
🔑 Definition — Delta Time: The time difference between the current packet and the previous captured frame, useful for measuring inter-packet delays.
📐 Formula: Delta Time = Timestamp(current packet) – Timestamp(previous packet) → This gives the exact time gap between two consecutive packets.
📌 Example: In tr-malaysianairlines.pcapng, after creating a Delta column and sorting it in descending order, the largest delta value appears at the top, indicating the longest delay between two consecutive packets in the capture.
⭐ Key Takeaways
The key takeaway is that the default Time column shows absolute time since capture start, which is not useful for delay analysis. By creating a frame.time_delta column and sorting it, you can instantly locate the biggest delays in a trace file. This method involves right-clicking the "Time delta from previous captured frame" field, applying it as a column, repositioning it next to the Time column, and renaming it to "Delta". This technique is critical for performance troubleshooting and identifying network latency issues in Wireshark.
🧠 Quick Revision Questions
- What is the default Time column setting in Wireshark?
- Which field should you right-click to create a delta time column?
- Where does the new delta column initially appear after you add it?
- How do you rename the delta time column to "Delta"?
- How can you use the delta time column to locate the largest delays in a capture file?
📘 Lecture 118 — Wireshark Lab 26
📖 Overview: This lecture demonstrates how to obtain TCP conversation statistics in Wireshark. It covers using the Conversations window to identify the most active TCP session in a trace file and applying filters based on conversation endpoints. This skill is essential for network analysts troubleshooting TCP-based applications or analyzing large packet captures.
🗂️ Topics Covered
This lecture explains the connection-oriented nature of Transmission Control Protocol (TCP) and stream-based communication. It covers the TCP Stream Index (tcp.stream) numbering system and walks through steps to find the most active TCP conversation by sorting conversations by byte count. The lecture also demonstrates how to create a filter from a selected conversation using source/destination addresses and ports.
📝 Lecture Summary
How to obtain TCP conversation statistics in Wireshark
Transmission Control Protocol (TCP) is a connection-oriented protocol. TCP is a stream based communication. Each separate TCP conversation is numbered by Wireshark with a TCP Stream Index (tcp.stream) value starting with 0.
To find the most active TCP conversation in a trace file:
Step 1: Open tr-chappellu.pcapng.
Step 2: Select Statistics | Conversations and click the TCP tab.
Step 3: Click twice on the Bytes column to sort from high to low. This identifies the conversation that transmitted the most data.
Step 4: Right-click on the top entry and select Apply as Filter | Selected | A <–> B. Wireshark creates a filter based on the source/destination address and source/destination port fields.
📌 Note: If you have a large trace file, you can apply a filter directly from within the Conversations window to narrow down your analysis.
⭐ Key Takeaways
The most active TCP conversation in a trace file can be identified by sorting the TCP Conversations tab by the Bytes column in descending order. Wireshark numbers each TCP conversation with a unique TCP Stream Index (tcp.stream) starting at 0. After identifying a conversation, right-clicking and selecting "Apply as Filter | Selected | A <–> B" creates an automatic filter based on both IP addresses and port numbers. This filtering technique is critical for isolating specific TCP streams in large captures with hundreds of simultaneous connections. The Conversations window provides a centralized view of all TCP sessions with their byte counts and packet counts.
🧠 Quick Revision Questions
- What is the TCP Stream Index (tcp.stream), and what value does it start with?
- Which column in the TCP Conversations tab should you sort to find the most active conversation?
- What two types of information are included in the filter created by "Apply as Filter | Selected | A <–> B"?
- Why is TCP described as a "connection-oriented" and "stream based" protocol?
- How can you access the TCP Conversations window and sort conversations by byte count?
📘 Lecture 119 — Wireshark Lab 27
📖 Overview: This lecture teaches how to filter TCP conversations using the stream index field in Wireshark. Understanding TCP streams allows network analysts to isolate and examine specific communication sessions between two endpoints. The stream index provides a powerful method for focusing on individual conversations within a large packet capture.
🗂️ Topics Covered
This lecture explains what a TCP stream is in Wireshark, how the stream index field is assigned to unique connections, and provides step-by-step instructions for creating a filter based on the tcp.stream field. The practical demonstration uses the tr-chappellu.pcapng trace file and shows how to apply a filter from Packet 59's TCP header.
📝 Lecture Summary
Filtering TCP Conversations with the Stream Index Field
In this topic, we describe how to filter TCP conversation with the stream index field in Wireshark.
What is a Stream? Wireshark assigns each unique TCP connection attempt a separate TCP stream based on the source/destination addresses and source/destination port numbers. Let’s create a filter based on the tcp.stream field.
Step 1: Open tr-chappellu.pcapng.
Step 2: Expand the TCP header in Packet 59.
Step 3: Right-click on the [Stream index: 7] field in the TCP header. Select Apply as Filter | Selected.
💡 Why this matters: The stream index allows you to instantly isolate all packets belonging to a specific TCP conversation, making it much easier to analyze individual connections within a busy trace file.
🔑 Definition — Stream index: A unique number Wireshark assigns to each TCP connection based on the combination of source IP, destination IP, source port, and destination port. This index allows you to filter and view packets belonging to a specific conversation.
⭐ Key Takeaways
The stream index field is a powerful filtering mechanism in Wireshark that uniquely identifies each TCP conversation based on source/destination addresses and ports. You can quickly apply a filter by right-clicking the [Stream index: N] field in any packet's TCP header and selecting "Apply as Filter | Selected". This method is especially useful when a trace file contains many TCP conversations, as it allows you to isolate the most active or relevant conversation. The stream index value (e.g., 7) can be used with the filter expression "tcp.stream==7" to display only packets from that specific conversation. Remember to use the Clear button to remove your filter when finished analyzing a particular stream.
🧠 Quick Revision Questions
- What criteria does Wireshark use to assign a unique TCP stream to each connection attempt?
- Where in the packet details pane can you find the [Stream index: N] field?
- What menu option should you use after right-clicking the stream index field to create a filter?
- Why is the stream index filter particularly useful when a trace file contains many TCP conversations?
- What should you do when you are finished analyzing a specific TCP stream?
📘 Lecture 120 — Wireshark Lab 28
📖 Overview: This lecture demonstrates how to add a TCP stream index column in Wireshark to differentiate multiple TCP conversations within a trace file. It explains the concept of TCP stream indexing and provides step-by-step instructions for adding and utilizing this column for filtering and analysis.
🗂️ Topics Covered
This lecture covers the concept of TCP stream indexing in Wireshark, including how each unique connection attempt is assigned a tcp.stream value starting at 0. It provides a step-by-step procedure for adding a Stream Index column to the packet list, sorting by conversations, and identifying the total number of TCP streams in a trace file (23 in the example).
📝 Lecture Summary
Topic 120: Wireshark Lab 28
This topic shows how to add a TCP stream index column in Wireshark. There can be numerous TCP conversations in a trace file, and Wireshark calls each unique connection attempt a TCP stream. To differentiate the TCP conversations, Wireshark assigns each unique connection attempt a separate TCP stream index based on the source/destination addresses and source/destination port numbers. Wireshark numbers each separate TCP conversation with a TCP Stream Index (tcp.stream) value starting with 0.
The lecture demonstrates this using a packet that is part of the first TCP conversation in a trace file, shown in Figure 120.1.
🔑 Definition — TCP Stream Index (tcp.stream): A unique numeric identifier assigned by Wireshark to each distinct TCP connection attempt, based on source/destination addresses and port numbers, starting at 0.
Step 1: Open the Trace File
Open tr-chappellu.pcapng to begin the lab exercise.
Step 2: Add the Stream Index Column
Expand the TCP header in Packet 1. Right-click on the [Stream index: 0] line and select Apply as Column. This action adds a new column to the packet list pane that displays the stream index for every packet.
Step 3: Sort and Count TCP Conversations
Click on the Stream index column once to sort the trace file by conversations. Jump to the end of the trace file and you will find that there are 23 TCP conversations. Remember that counting TCP streams starts at 0, so the streams are numbered 0 through 22.
📌 Example: In the trace file tr-chappellu.pcapng, after adding the Stream Index column and sorting by it, you can observe that the first conversation has stream index 0, the second has stream index 1, and so on, up to stream index 22 (total 23 conversations).
⭐ Key Takeaways
The TCP Stream Index (tcp.stream) is a fundamental Wireshark feature for isolating and analyzing individual TCP conversations within large trace files. Each unique connection attempt receives a unique stream index starting at 0, based on source/destination IP addresses and port numbers. Adding the Stream Index as a column allows quick sorting and counting of all TCP conversations in a trace file. In the example trace file, there were 23 TCP conversations (stream indices 0 through 22). The Stream Index column is essential for filtering specific conversations and exporting them to separate trace files for focused analysis.
🧠 Quick Revision Questions
- What does the TCP Stream Index (tcp.stream) represent in Wireshark?
- What information does Wireshark use to assign a unique TCP stream index to each conversation?
- How do you add a Stream Index column to the packet list pane in Wireshark?
- In the example trace file tr-chappellu.pcapng, how many TCP conversations were present and what were their stream index ranges?
- Why must you remember that counting TCP streams starts at 0 when interpreting the total number of conversations?
📘 Lecture 121 — Wireshark Lab 29
📖 Overview: This lecture introduces how to add and sort a TCP Delta Time column in Wireshark. Understanding tcp.time_delta is crucial for analyzing TCP performance, as it measures the time between consecutive packets in the same TCP stream, helping to pinpoint network delays.
🗂️ Topics Covered
This lecture covers the definition and purpose of the TCP Delta Time column, the steps to add it by enabling the TCP Calculate conversation timestamp preference, and how to sort it for analysis. The practical example uses the tr-chappellu.pcapng trace file to demonstrate the process.
📝 Lecture Summary
Adding/Sorting a TCP Delta Time Column
The tcp.time_delta field shows the time from the end of one packet in a TCP stream to the end of the next packet in that same TCP stream. To add the tcp.time_delta column, you must first enable the TCP Calculate conversation timestamp preference. This is done by clicking the Preferences button, expanding Protocols, and choosing TCP.
🔑 Definition — tcp.time_delta: The time measured from the end of one packet to the end of the next packet in the same TCP stream.
📐 Formula: tcp.time_delta = time_end_of_packet_N+1 − time_end_of_packet_N → This gives the interpacket delay for packets in the same TCP conversation.
📌 Example: In the tr-chappellu.pcapng trace file, adding the tcp.time_delta column allows you to see the exact time gaps between successive TCP packets in the same stream. Sorting by this column highlights the slowest or fastest packet pairs, aiding in troubleshooting delays.
💡 Why this matters: Enabling this setting allows Wireshark to compute the delta for each packet; without it, the column will show no data. The preference is found under Preferences → Protocols → TCP.
⭐ Key Takeaways
You must enable the TCP Calculate conversation timestamp preference in Wireshark before the tcp.time_delta column can display any values. The tcp.time_delta measures only the time between consecutive packets within the same TCP stream, not between arbitrary packets. This column is invaluable for locating performance bottlenecks such as retransmissions or application delays. Adding and sorting by tcp.time_delta helps quickly identify the slowest points in a TCP conversation. The example file used in the lecture is tr-chappellu.pcapng.
🧠 Quick Revision Questions
- What is the exact field name in Wireshark for the TCP delta time?
- What preference must be enabled for the tcp.time_delta column to work?
- Between what two points is tcp.time_delta measured?
- How do you access the TCP Calculate conversation timestamp preference?
- In the lecture, which trace file is used as the example?
📘 Lecture 122 — Wireshark Lab 30
📖 Overview: This lecture demonstrates how to create a custom TCP Delay button in Wireshark to efficiently locate network communication delays. It covers the step-by-step process of adding a filter expression as a button and refining it to exclude irrelevant packets such as FIN, RST, and HTTP GET requests.
🗂️ Topics Covered
The lecture covers creating a TCP Delta column to measure delays between packets in a TCP stream, then building a TCP Delay button using the tcp.time_delta filter expression. It then refines the filter to exclude TCP FIN and RST packets, and finally HTTP GET requests, to focus on meaningful delay indicators like SYN retransmissions.
📝 Lecture Summary
Topic 122: Wireshark Lab 30
This topic describes how to add a TCP Delay Button in Wireshark. Using a "TCP Delay" button (filter expression) will allow us to efficiently locate delays. By pressing the button, TCP packets that are preceded by a noticeable delay will be displayed.
Step 1: Open tr-chappellu.pcapng.
Step 2: In the display filter area, enter the following filter: tcp.time_delta > 1
Step 3: Click the Save button on the display filter toolbar. Enter TCP Delay as the label when prompted. Click OK to save your new button.
Step 4: Click your new TCP Delay button. You will find that 37 packets match the filter. There are numerous TCP FIN packets in the list – we do not care about it.
🔑 Definition — TCP FIN packet: A packet with the FIN flag set, used to gracefully terminate a TCP connection.
📐 Formula: Filter expression → tcp.time_delta > 1 (displays packets preceded by a delay greater than 1 second)
Step 5: Select Edit | Preferences | Filter Expressions, update TCP Delay filter expression to: tcp.time_delta > 1 && tcp.flags.fin==0 && tcp.flags.reset==0 and then Click OK.
🔑 Definition — TCP RST packet: A packet with the RST flag set, used to abruptly reset or abort a TCP connection. 📌 Example: After updating the filter, clicking the TCP Delay button again displays 23 packets because TCP FIN and RST packets have been removed.
Step 6: Click your TCP Delay button again. 23 packets are displayed because TCP FIN and RST packets have been removed. Let’s further remove HTTP GET requests from the TCP Delay button. Add the following string to the end of your filter: && !http.request.method=="GET". The highest TCP Delta delay is under 6 seconds and is a SYN retransmission packet. There are 12 SYN retransmissions between the client and 184.73.250.227. There is one SYN/ACK as the RTT is 1.28957 seconds.
🔑 Definition — SYN retransmission: A retransmission of a SYN packet when the initial connection attempt does not receive a SYN/ACK response, indicating network delay or packet loss. 🔑 Definition — RTT (Round-Trip Time): The time it takes for a packet to travel from source to destination and back, measured here as 1.28957 seconds for a SYN/ACK.
💡 Why this matters: Refining the filter to exclude FIN, RST, and HTTP GET requests allows network analysts to focus on genuine delay-causing events such as SYN retransmissions, which indicate connectivity issues.
⭐ Key Takeaways
The lecture teaches how to create and refine a TCP Delay button in Wireshark using the tcp.time_delta > 1 filter to identify packets with delays over one second. The initial filter returns 37 packets, but by excluding TCP FIN and RST packets, this reduces to 23. Further removing HTTP GET requests reveals 12 SYN retransmissions between the client and 184.73.250.227, with the highest TCP Delta delay under 6 seconds. The RTT for one SYN/ACK is 1.28957 seconds, demonstrating how the refined filter isolates meaningful delay events for network troubleshooting.
🧠 Quick Revision Questions
- What is the initial filter expression used to create the TCP Delay button?
- After applying the filter
tcp.time_delta > 1, how many packets were initially matched? - What two TCP flags were excluded in Step 5 to refine the filter from 37 to 23 packets?
- What is the RTT value (in seconds) for the SYN/ACK packet identified in Step 6?
- How many SYN retransmissions were found between the client and
184.73.250.227?
📘 Lecture 123 — Wireshark Lab 31
📖 Overview: This lecture explains how to estimate the Round Trip Time (RTT) using TCP handshake packets captured in Wireshark. It is critical for diagnosing network performance issues because high RTT causes file transfers to be very slow. By analyzing the
tcp.time_deltavalue between a client’s SYN and the server’s SYN/ACK, you can quantify the network delay.
🗂️ Topics Covered
The lecture covers the purpose of estimating RTT via TCP handshake, the use of tcp.time_delta in Wireshark, filtering for TCP SYN packets, sorting by TCP Delta column, and identifying the delay preceding SYN/ACK packets. A step-by-step lab using the tr-cnn.pcapng file is provided.
📝 Lecture Summary
Obtaining RTT Using TCP Handshake in Wireshark
A file transfer process will be very slow if the Round Trip Time (RTT) is extremely high, even when everything else functions properly. Wireshark allows us to estimate the RTT by looking at the tcp.time_delta value. We capture packets at the client side and examine the tcp.time_delta between the client's TCP SYN packet and the server's TCP SYN/ACK response.
🔑 Definition — Round Trip Time (RTT): The time it takes for a packet to travel from source to destination and back again. In this lab, it is estimated by the delay between a TCP SYN and its corresponding SYN/ACK.
Step-by-Step Lab Procedure
Step 1: Open tr-cnn.pcapng.
Step 2: Enter tcp.flags.syn==1 in the display filter area and click Apply. This filter shows only packets with the SYN flag set, which includes both SYN and SYN/ACK packets.
Step 3: Click your TCP Delta column heading twice to sort from high to low. We are interested in the delays preceding SYN/ACK packets.
📌 Example: In a sorted view, the largest tcp.time_delta values will appear first. Look for a row where the Info column says [SYN, ACK]. The tcp.time_delta for that row represents the time elapsed since the previous packet (the initial SYN). This value is your approximate RTT.
💡 Why this matters: By sorting high-to-low, you immediately spot the most severe RTT delays. If the delta before a SYN/ACK is very large (e.g., seconds), it indicates a problematic network path that will slow down all TCP-based file transfers.
⭐ Key Takeaways
Students must remember that the RTT estimate from the TCP three‑way handshake is found by filtering for tcp.flags.syn==1 and then examining the tcp.time_delta value immediately preceding a SYN/ACK packet. The delay measured is the time from the client’s SYN to the server’s SYN/ACK, which approximates one half of the full RTT (since the server must first receive the SYN). Sorting the TCP Delta column from high to low quickly reveals the worst RTT values. This method requires capturing at the client side for accuracy. High RTT directly causes slow file transfers, making this a key diagnostic skill.
🧠 Quick Revision Questions
- What display filter would you use to show only TCP SYN and SYN/ACK packets in Wireshark?
- Which column value gives the approximate RTT between a client’s SYN and the server’s SYN/ACK?
- Why must the capture be taken from the client side rather than the server side?
- After applying the filter, what is the purpose of sorting the TCP Delta column from high to low?
- If
tcp.time_deltafor a SYN/ACK is 0.5 seconds, what is the approximate RTT for that handshake?
📘 Lecture 124 — RTT: Packets 2 and 3 of TCP Handshake
📖 Overview: This lecture explains how to measure the Round Trip Time (RTT) between a client and server using the second and third packets of the TCP three-way handshake in Wireshark. Mastering this technique is essential for network performance analysis and troubleshooting latency issues.
🗂️ Topics Covered
The lecture covers the method for obtaining RTT using Packets 2 and 3 of the TCP handshake in Wireshark, including how to use the tcp.time_delta value between the server's SYN/ACK and the client's ACK response. It provides specific display filters for detecting the SYN/ACK packet and outlines the characteristics and filter criteria for identifying the tricky third handshake packet (ACK).
📝 Lecture Summary
Using Packets 2 & 3 of TCP Handshake for RTT in Wireshark
Packets 2 and 3 of the TCP three-way handshake can be used to measure the path latency or Round Trip Time (RTT). To do this, run a packet capturing tool such as Wireshark on the server host. Look at the tcp.time_delta value between the server's TCP SYN/ACK packet (Packet 2) and the client's TCP ACK response (Packet 3).
🔑 Definition — tcp.time_delta: The time difference between two consecutive packets in a TCP conversation, used here to calculate RTT.
Detecting Packet 2 (SYN/ACK)
The second packet of the TCP handshake, the SYN/ACK packet, is easy to locate. Apply the following display filter in Wireshark: tcp.flags.syn==1 && tcp.flags.ack==1. This filter identifies packets where both the SYN flag (bit) and the ACK flag (bit) are set to 1.
Detecting Packet 3 (ACK)
Detection of the third packet of the handshake is more difficult. Use the following characteristics:
- a) tcp.seq==1 (Required) — The TCP Sequence Number is 1 (as a Relative Sequence Number)
- b) tcp.ack==1 (Required) — The TCP Acknowledgment Number is 1 (as a Relative Acknowledgment Number)
- c) tcp.len > 0 (Optional) — There is data present in the third packet of the handshake
- d) tcp.push==1 (Optional) — The PUSH bit is set
The complete display filter to capture both Packet 2 and Packet 3 is: (tcp.flags.syn==1 && tcp.flags.ack==1) || (tcp.seq==1 && tcp.ack==1)
💡 Why this matters: The TCP handshake occurs at the start of every TCP connection. Measuring RTT from these two packets gives you the pure network latency without application-layer processing delays.
🔑 Definition — Relative Sequence/Acknowledgment Number: In Wireshark, sequence and acknowledgment numbers are displayed relative to the initial values (starting from 0 or 1) for easier human readability, rather than the absolute 32-bit numbers used in the TCP header.
📌 Example: If you capture a TCP handshake and Packet 2 (SYN/ACK) has a timestamp of T=0.000 seconds and Packet 3 (ACK) has a timestamp of T=0.045 seconds, the tcp.time_delta for Packet 3 would be 0.045 seconds, representing the RTT of 45 milliseconds between the server and client.
⭐ Key Takeaways
The Round Trip Time (RTT) in a TCP connection is measured using the time delta between Packet 2 (SYN/ACK) and Packet 3 (ACK) of the TCP three-way handshake. To detect Packet 2, use the filter tcp.flags.syn==1 && tcp.flags.ack==1. Detecting Packet 3 is more challenging and requires applying the filter (tcp.seq==1 && tcp.ack==1), with optional conditions tcp.len > 0 and tcp.push==1. The complete dual-packet filter is (tcp.flags.syn==1 && tcp.flags.ack==1) || (tcp.seq==1 && tcp.ack==1). The RTT is read directly from the tcp.time_delta value of Packet 3 when captured on the server host.
🧠 Quick Revision Questions
- What is the complete display filter to capture both Packet 2 (SYN/ACK) and Packet 3 (ACK) of the TCP handshake?
- Which two required TCP header fields (by relative value) identify the third packet of the handshake?
- Where in Wireshark can the RTT value be found for these two packets?
- On which host should Wireshark be running to measure RTT using this method?
- What are the two optional conditions that may also apply to the third handshake packet?
📘 Lecture 125 — Wireshark Lab 32
📖 Overview: This lecture demonstrates how to calculate the Round Trip Time (RTT) using display filters in Wireshark. It is essential because RTT is a key metric for network performance analysis, and using display filters allows precise measurement of TCP handshake timing.
🗂️ Topics Covered
The lecture covers opening the trace file tr-chappellu.pcapng, applying the filter tcp.flags.syn==1 to isolate SYN packets, measuring RTT from the SYN and SYN/ACK pair, and then refining filters to capture second and third handshake packets. It also explores advanced filter conditions to exclude irrelevant packets like FIN flags.
📝 Lecture Summary
Step 1: Open the Trace File
Open the file tr-chappellu.pcapng in Wireshark. This trace was captured at the client side and will be used to locate TCP connection packets.
Step 2: Initial Filter for SYN Packets
Enter the filter tcp.flags.syn==1 in the display filter area and click Apply. This finds 58 packets matching the filter. The first two packets are from client port 35,621. Packet 3 and Packet 4 are the first two packets of a new TCP connection. The TCP Delta column shows the time from the TCP SYN (port 35,622) to the SYN/ACK for that same port. The RTT is approximately 17 ms.
🔑 Definition — RTT (Round Trip Time): The time it takes for a packet to travel from source to destination and back, measured here between SYN and SYN/ACK.
📌 Example: In the trace, Packet 3 (SYN from port 35,622) and Packet 4 (SYN/ACK to port 35,622) have a TCP Delta of 17 ms → RTT = 17 ms.
Step 3: Filter for SYN/ACK and Sequence/Acknowledge Packets
Enter the filter: (tcp.flags.syn==1 && tcp.flags.ack==1) || (tcp.seq==1 && tcp.ack==1). Click Apply. This finds 69 packets matching. However, several packets in this set are not of interest because they include unrelated handshake packets.
Step 4: Enhance the Filter
Enhance the filter with additional conditions: (tcp.flags.syn==1 && tcp.flags.ack==1) || (tcp.seq==1 && tcp.ack==1) && tcp.len==0 && tcp.flags.fin==0. Click Apply. This excludes packets with FIN flags and ensures only zero-length TCP segments are considered, improving accuracy.
💡 Why this matters: Adding these conditions removes extraneous packets (like connection teardown or data packets), isolating only the second and third handshake packets for precise RTT calculation.
⭐ Key Takeaways
- RTT is measured by timing the SYN and SYN/ACK packets in a TCP handshake, using display filters in Wireshark.
- The filter
tcp.flags.syn==1isolates SYN packets; the TCP Delta column shows the time difference between matched packets. - For server-side captures, use
(tcp.flags.syn==1 && tcp.flags.ack==1) || (tcp.seq==1 && tcp.ack==1)to find second and third handshake packets. - Refine filters with
tcp.len==0andtcp.flags.fin==0to exclude data packets and FIN flags, ensuring accurate RTT measurement. - The trace
tr-chappellu.pcapngis used to demonstrate these techniques, with an example RTT of 17 ms.
🧠 Quick Revision Questions
- What display filter isolates TCP SYN packets in Wireshark?
- How is RTT calculated using the TCP Delta column in Wireshark?
- What is the purpose of adding
tcp.len==0andtcp.flags.fin==0to the filter? - How many packets match the filter
tcp.flags.syn==1in the tracetr-chappellu.pcapng? - Why might the filter
(tcp.flags.syn==1 && tcp.flags.ack==1) || (tcp.seq==1 && tcp.ack==1)return more packets than needed?
📘 Lecture 126 — Wireshark Lab 33
📖 Overview: This lecture demonstrates how to use Wireshark's advanced I/O Graph to plot TCP delays and locate problematic conversations in a trace file. It teaches students how to filter out normal delays (like FIN packets) to isolate meaningful high-latency events for network troubleshooting.
🗂️ Topics Covered
Plotting maximum tcp.time_delta values using Wireshark's I/O Graph with the Advanced MAX(*) calculation; interpreting graph spikes to locate high-latency packets; applying filter expressions to exclude normal delays such as TCP FIN packets, reset packets, and HTTP GET requests.
📝 Lecture Summary
Plotting TCP Delays with Wireshark I/O Graph
This section explains how to use Wireshark's advanced I/O Graph to visualize maximum TCP delays. The goal is to plot the maximum tcp.time_delta value for each time interval to identify the worst delays in the trace file. The steps begin by opening the file tr-chappellu.pcapng, then navigating to Statistics | IO Graph. In the Y Axis Unit area, select Advanced..., then choose the MAX(*) Graph 1 Calc option and enter tcp.time_delta in the Calc area. Click the Graph 1 button to generate the graph.
📐 Formula: MAX(tcp.time_delta) → plots the highest time delta between successive TCP packets in each interval, showing the worst-case delay.
📌 Example: In the trace file, the graph reveals a delay spike around 25 seconds. Clicking on this high point jumps to Packet 155, where the TCP Delta column value is 15.757807 seconds. This packet is a TCP FIN, which is a normal delay and not of interest for performance analysis.
Filtering Out Normal Delays
To focus only on meaningful delays, the lecture introduces a filter expression that removes normal TCP termination packets and HTTP GET requests. After applying the filter, clicking on the largest remaining delay point jumps to Packet 86 — the actual packet of interest.
🔑 Definition — Filter Expression: tcp.time_delta > 1 && tcp.flags.fin==0 && tcp.flags.reset==0 && !http.request.method=="GET" → this filter selects only TCP packets with a time delta greater than 1 second, excluding FIN packets (normal connection termination), reset packets (RST), and HTTP GET requests (which often have normal delays due to user behavior).
💡 Why this matters: Without filtering, the largest delay might be a harmless FIN packet that simply waited for the connection timeout. By excluding these, you isolate the packets that represent true network or server performance problems.
⭐ Key Takeaways
The most critical skill from this lecture is using Wireshark's I/O Graph with the MAX(tcp.time_delta) calculation to visually identify high-latency packets. Always apply a filter to exclude FIN, RST, and HTTP GET packets, as these often produce normal delays that are not indicative of network problems. The value 15.757807 seconds for packet 155 illustrates how FIN packets can dominate delay charts if unfiltered. After filtering, the largest delay points to packet 86 — the true problematic conversation. This technique allows network engineers to quickly isolate and investigate the worst-performing TCP connections in a capture file. The filter expressions can be saved as buttons for repeated use in identifying high path latency.
🧠 Quick Revision Questions
- What Wireshark menu path is used to access the I/O Graph for plotting TCP delays?
- Which calculation option in the Advanced Y Axis settings is used to find the worst delay in each time interval?
- What is the TCP Delta value of Packet 155, and what type of packet is it?
- What four conditions are combined in the filter expression to exclude normal delays from the graph?
- After applying the filter, which packet number corresponds to the largest remaining delay in the example trace?
📘 Lecture 127 — Wireshark Lab 34
📖 Overview: This lecture introduces the process for finding DNS response times in Wireshark using the
dns.timefield. It demonstrates how to create a custom column to monitor DNS server performance and identify slow DNS responses that can affect network applications.
🗂️ Topics Covered
The lecture covers DNS as a request/response protocol using UDP, the DNS time field available only in response packets, step-by-step instructions for creating a DNS Delta column in Wireshark, sorting the column to identify significant delays, and investigating why a DNS server might be responding slowly — illustrated with the tr-dns-slow.pcapng trace file.
📝 Lecture Summary
Topic 127: Wireshark Lab 34
This topic explains how to find DNS response times in Wireshark. Domain Name Service (DNS) provides the network IP address of a machine for a network name such as (such as www.wireshark.org). Applications protocols such as SMTP and HTTP generate DNS queries when a user provides a network name to them. DNS, which is a request/response protocol, employs UDP.
🔑 Definition — DNS: Provides the network IP address of a machine for a network name 📐 Formula: dns.time = Time between DNS query and DNS response (in seconds) 📌 Example: DNS response Packet 3 has dns.time of 0.107083000 seconds
Step 1: Open tr-dns-slow.pcapng.
Step 2: The dns.time field exists only in DNS response packets. In this trace file, Packet 3 is the first DNS response packet. Use this packet to create a dns.time column. Expand Packet 3's the Domain Name System (response) section.
Step 3: Right-click on the [Time: 0.107083000 seconds] line and click Apply as Column.
Step 4: The newly created column appears to the left of the Info column. You can click and drag your new column to the right of the existing TCP Delta column.
Step 5: Right-click on the new column heading and select Edit Column Details. Rename the new column to DNS Delta. Click OK.
Step 6: By clicking the new DNS Delta column heading twice, it gets sorted from high to low.
A significant delay preceding Packet 11 of this trace file can be observed — almost 1.3 seconds. We need to investigate further to determine why the DNS server is working slowly.
💡 Why this matters: A 1.3 second DNS response time indicates severe DNS server performance issues that will degrade all applications relying on name resolution, including web browsing and email delivery.
⭐ Key Takeaways
The critical skill from this lecture is creating a DNS Delta column in Wireshark by applying the dns.time field from a DNS response packet as a column. This column only appears in response packets, not query packets. Sorting the DNS Delta column from high to low reveals the slowest DNS responses — in the example, Packet 11 had a 1.3 second delay, which is abnormally slow for DNS and requires investigation. Methods to rename and reposition columns were also demonstrated for efficient analysis. Understanding how to measure DNS response times enables network administrators to diagnose DNS server performance problems.
🧠 Quick Revision Questions
- What protocol does DNS typically use for transport?
- In which type of DNS packets does the
dns.timefield exist? - What was the DNS response time value for Packet 3 in the tr-dns-slow.pcapng file?
- What was the significant delay observed for Packet 11, and what does it indicate?
- How do you sort the DNS Delta column to find the slowest DNS responses?
📘 Lecture 128 — Wireshark Lab 35
📖 Overview: This topic describes how to create a Button to detect High DNS response times in Wireshark. It matters because DNS delays can significantly impact web browsing performance, and network analysts need quick tools to identify problematic DNS queries.
🗂️ Topics Covered
This lecture covers the role of the Domain Name System (DNS) as a distributed database for address/name translation, the process by which a browser obtains an IP address for a hostname via DNS, and a step-by-step Wireshark tutorial on creating a custom filter button to detect DNS response times greater than 1 second using the dns.time > 1 display filter.
📝 Lecture Summary
DNS Overview
The Domain Name System (DNS) is a distributed database implemented in a hierarchy of many DNS servers. It is an application-layer protocol that allows hosts to query the distributed database to resolve names (address/name translation). Consider a browser (i.e., an HTTP client) running on some host A, who requests www.wireshark.org. In order for host A to be able to send an HTTP request message, host A must first obtain the IP address of the server. The host A runs the client side of the DNS application. The browser extracts the hostname from the URL and passes it to the client side of the DNS application. The DNS client sends a query using UDP to the DNS server listening at port 53. The DNS client eventually receives a reply which includes the IP address for the hostname. Once the browser receives the IP address from DNS, it can initiate a TCP connection to the HTTP server process located at port 80 at that IP address.
🔑 Definition — DNS (Domain Name System): A distributed database implemented in a hierarchy of many DNS servers; an application-layer protocol that allows hosts to query the distributed database to resolve names (address/name translation).
📌 Example: A browser on host A requests www.wireshark.org. The browser extracts the hostname from the URL and passes it to the DNS client. The DNS client sends a UDP query to port 53 of a DNS server. The DNS server replies with the IP address. The browser then initiates a TCP connection to port 80 at that IP address to send the HTTP request.
Creating a Button to Detect High DNS Response Times
Let’s create a button to detect DNS response times larger than 1 second. Step 1: Open tr-dns-slow.pcapng. Step 2: Type dns.time > 1 in the display filter area and then click Save. Step 3: Name your button DNS Delay and click OK. Step 4: Click your new DNS Delay button. We observe that Packet 11 is the only packet that matched this filter, i.e., Packet 11 contains the largest DNS delay time. Figure 128.1 illustrates the creation of this button.
🔑 Definition — dns.time: A Wireshark display filter field that represents the DNS response time (the time between a DNS query and its corresponding response).
📐 Formula: dns.time > 1 → This filter selects all DNS packets where the response time is greater than 1 second.
📌 Example: After opening tr-dns-slow.pcapng, the user types dns.time > 1 in the display filter area, saves the filter as a button named "DNS Delay", and clicks the button. Only Packet 11 matches this filter, indicating it contains the largest DNS delay time (greater than 1 second).
💡 Why this matters: Creating custom filter buttons like this allows network analysts to quickly identify performance issues without retyping complex filters each time.
⭐ Key Takeaways
The lecture demonstrates the fundamental DNS resolution process where a browser extracts a hostname from a URL, sends a UDP query to port 53 of a DNS server, and receives an IP address in reply. It then provides a practical Wireshark tutorial on creating a custom button using the display filter dns.time > 1 to detect DNS response times larger than 1 second. The critical steps are opening the correct pcap file (tr-dns-slow.pcapng), entering the filter condition, saving it as a named button, and clicking the button to reveal only qualifying packets. Packet 11 was the sole match in the provided capture, highlighting its high DNS delay. This technique enables rapid identification of DNS performance anomalies in network traffic analysis.
🧠 Quick Revision Questions
- What port does the DNS server listen on for UDP queries?
- What display filter field is used to detect DNS response times in Wireshark?
- How many packets matched the filter
dns.time > 1in the tr-dns-slow.pcapng capture? - What is the first step in creating a custom DNS delay button in Wireshark?
- How does a browser obtain the IP address of a server before sending an HTTP request?
📘 Lecture 129 — Wireshark Lab 36
📖 Overview: This lecture teaches you how to visualize and analyze DNS response times using Wireshark’s IO Graph feature, enabling detection of slow DNS responses in a network trace. Understanding this skill is critical for troubleshooting network performance issues, as DNS delays directly impact web browsing and application responsiveness.
🗂️ Topics Covered
This lecture covers the step-by-step process of creating a DNS response time graph in Wireshark using the IO Graph tool, specifically focusing on the MAX(*) calculation method for the dns.time field, and how to interactively identify problematic packets by clicking on graph peaks.
📝 Lecture Summary
Plotting DNS Response Times in Wireshark
To highlight DNS delays in a trace file, you create a specialized IO Graph. The process begins by opening the provided trace file tr-dns-slow.pcapng. Then, navigate to Statistics | IO Graph to access the graphing interface. In the Y Axis Unit area, select Advanced... to unlock custom calculation options. From the MAX(*) option under Graph 1 Calc, enter dns.time in the Calc field. Finally, click the Graph 1 button to plot the DNS response times.
🔑 Definition — dns.time: The Wireshark field representing the time between a DNS query and its corresponding response, measured in seconds.
📐 Formula: MAX(*) → Calculates the maximum value of the specified field (here, dns.time) within each time interval of the graph.
📌 Example: When plotting tr-dns-slow.pcapng, after selecting MAX(*) and entering dns.time, the graph displays peaks at specific intervals. Clicking the highest point in the graph instantly takes Wireshark to that packet, allowing you to inspect the slow DNS response.
💡 Why this matters: DNS slow response times can cause noticeable delays in web page loading and other network services. By plotting dns.time against time, you can visually identify outliers (the highest peaks) that represent abnormally slow DNS queries requiring further investigation.
⭐ Key Takeaways
The primary takeaway is the ability to create a DNS response time graph in Wireshark using the IO Graph tool with the MAX() calculation on the dns.time field. You must remember the exact navigation path: Statistics | IO Graph → Y Axis Unit → Advanced... → MAX() Graph 1 Calc → enter "dns.time" → click Graph 1. The highest peak on the graph directly corresponds to the slowest DNS response, and clicking it automatically opens that packet for detailed inspection. This technique transforms raw packet data into an actionable visual tool for DNS performance troubleshooting.
🧠 Quick Revision Questions
- What is the exact menu path to access the IO Graph in Wireshark?
- Which calculation option should be selected in the Advanced Y Axis Unit settings to plot DNS response times?
- What field name must be entered in the Calc area to plot DNS response times?
- What does clicking the highest point on the plotted graph do in Wireshark?
- What does the dns.time field represent in a captured packet trace?
📘 Lecture 130 — Wireshark Lab 37
📖 Overview: This lecture explains how to reassemble TCP streams by disabling the Allow Subdissector setting in Wireshark. It focuses on measuring HTTP response times accurately and understanding the difference between total download time and actual server response time. This knowledge is critical for network troubleshooting and performance analysis.
🗂️ Topics Covered
The lecture covers the HTTP response time estimation using the http.time field, the impact of disabling Allow Subdissector to reassemble TCP streams, and two practical methods to change this TCP preference setting. It also discusses how DNS query responses can cause delays and how sorting the dns.time column aids detection.
📝 Lecture Summary
Reassembling TCP Streams by Disabling Allow Subdissector
The delta time between an HTTP request (e.g., GET) and the response (e.g., 200 OK) is the HTTP response time. In Wireshark, this can be estimated with the http.time field. High HTTP response times can result from an overloaded web server or when the server needs to consult another server to answer client requests.
🔑 Definition — Allow Subdissector to Reassemble TCP Streams: A Wireshark TCP preference that, when enabled, measures time from the HTTP Request to the final data packet of the response (total download time). When disabled, it measures only how quickly the server responded.
📐 Formula: HTTP response time = http.time field → time difference between HTTP request and first response packet (with subdissector disabled) OR last data packet (with subdissector enabled)
📌 Example: If a web server is overloaded or needs to consult another server, it can result in high HTTP response times. By disabling the subdissector, you learn how quickly the server responded, as opposed to the total download time of the object.
💡 Why this matters: Distinguishing between server response time and total download time helps identify whether delays are caused by the server itself or by network/data transfer issues.
Two Methods to Change TCP Preference Setting
To estimate the total time taken by downloading an object, enable this setting. To learn how quickly the server responded, disable it.
Method 1: Right-click in Packet Details Step 1: Open tr-http-pcaprnet101.pcapng. Step 2: Right-click on the TCP header in the Packet Details of Packet 5. Select Protocol Preferences. Step 3: Uncheck Allow subdissector to reassemble TCP streams (as shown in Figure 130.1).
Method 2: Edit Menu Step 3: The 2nd method is: Select Edit | Preferences | (+) Protocols | TCP.
Figure 130.1 shows the checkbox in the TCP protocol preferences settings.
💡 Why this matters: Knowing both methods ensures you can quickly configure Wireshark for accurate response time analysis in any situation.
⭐ Key Takeaways
The HTTP response time, measured by the http.time field, can be interpreted in two ways: total download time (subdissector enabled) or server response time (subdissector disabled). High HTTP response times often indicate server overload or dependency on other servers. Sorting the dns.time column helps detect delays caused by DNS query responses. Two methods exist to change the TCP preference setting for reassembling streams: right-clicking the TCP header in Packet Details or navigating through Edit | Preferences | Protocols | TCP. Understanding this distinction is essential for accurate network performance troubleshooting.
🧠 Quick Revision Questions
- What is the difference between HTTP response time with Allow Subdissector enabled versus disabled?
- What common server issues can result in high HTTP response times?
- List the two methods to change the TCP preference setting for reassembling TCP streams in Wireshark.
- Why might sorting the dns.time column help in detecting delays?
- In the example given, what type of packet caused the largest delay?
📘 Lecture 131 — Wireshark Lab 38
📖 Overview: This lecture demonstrates how to locate and display HTTP response times in Wireshark using a specific trace file. It provides a step-by-step practical procedure for creating a custom column to visualize the
http.timefield, which is critical for analyzing web server performance and network latency.
🗂️ Topics Covered
The lecture covers opening the trace file tr-http-pcaprnet101.pcapng, identifying the first HTTP response packet (Packet 10, HTTP 303 See Other), accessing the [Time since request] field in the Packet Details pane, applying it as a column, and repositioning the column for better visibility in the Wireshark interface.
📝 Lecture Summary
Step 1: Open the Trace File
Begin by opening the provided capture file named tr-http-pcaprnet101.pcapng in Wireshark. This file contains HTTP traffic suitable for analyzing response timing.
Step 2: Identify the First HTTP Response Packet
Only HTTP response packets contain the http.time field. In this trace file, the first HTTP response packet is Packet 10, which is an HTTP 303 See Other response. Use this packet to create your http.time column.
🔑 Definition — HTTP response packet: A packet sent by a web server in reply to an HTTP request, containing status codes (e.g., 303 See Other) and timing metadata.
Steps 3–4: Create and Position the Column
In the Packet Details pane of Packet 10, right-click on the Hypertext Transfer Protocol section and select Expand Subtrees. Locate the line [Time since request: 0.026416000 seconds]. Right-click on this line and select Apply as Column. Your newly created column appears to the left of the Info column. Click and drag your new column to a position with better visibility for analysis.
📐 Formula: http.time = Timestamp of HTTP response packet − Timestamp of corresponding HTTP request packet. Measured in seconds.
📌 Example: In Packet 10, the [Time since request] value is 0.026416000 seconds, meaning the server took approximately 26.4 milliseconds to respond to the request.
💡 Why this matters: HTTP response times directly indicate server responsiveness and network latency. Monitoring this metric helps diagnose web application performance issues.
⭐ Key Takeaways
You must remember that only HTTP response packets contain the http.time field, and the first such packet in this trace is Packet 10 (HTTP 303 See Other). The key skill is right-clicking on the [Time since request] line in the Packet Details pane and selecting "Apply as Column" to create a custom column. After creation, you should reposition the column by dragging it for better visibility. The value 0.026416000 seconds represents the server's response time for that packet. Mastering this column creation process allows you to systematically analyze response times across all HTTP traffic in any capture file.
🧠 Quick Revision Questions
- Which type of Wireshark packet contains the
http.timefield? - What is the packet number and status code of the first HTTP response packet in
tr-http-pcaprnet101.pcapng? - What specific line in the Packet Details pane do you right-click to create the HTTP response time column?
- How do you move the newly created column to a better position in the Wireshark interface?
- What does the value 0.026416000 seconds represent in the context of this lab?
📘 Lecture 132 — Wireshark Lab 39
📖 Overview: This lecture teaches how to analyze and visualize HTTP response times using Wireshark. It covers creating a custom column to calculate HTTP delays and saving a filtering button for quick detection of high response times, enabling efficient network problem identification.
🗂️ Topics Covered
The lecture covers creating a custom HTTP Delta column to measure response delays, sorting packets by delay to find the slowest responses, and building a persistent filter button to instantly isolate HTTP responses exceeding a defined threshold (e.g., 1 second).
📝 Lecture Summary
Step 5: Renaming the New Column
Right-click on the column heading and select Edit Column Details. Rename this new column to HTTP Delta. Click OK. This custom column will display the calculated delta time (delay) between the HTTP request and the corresponding response.
🔑 Definition — HTTP Delta: The calculated time difference (in seconds) between an HTTP request and its matching response, indicating the server response delay.
Step 6: Sorting and Observing High Delays
Sort HTTP responses from high to low by clicking your new HTTP Delta column heading twice. Packets with the largest delays will appear at the top of the list. We can observe that HTTP response time from the HTTP server (209.133.32.69) is over 1.7 seconds twice in this trace file. Those packets are bearing numbers 432 and 20.
📌 Example: Sorting by the HTTP Delta column reveals that packets #432 and #20 from server 209.133.32.69 have response delays exceeding 1.7 seconds. This identifies the worst-performing HTTP transactions.
Step 1: Open the Trace File
Open tr-http-pcaprnet101.pcapng.
Step 2: Create a Button for High Response Times
Type http.time > 1 in the display filter area and then, click Save. This creates a persistent button that you can click anytime to instantly filter and display only HTTP responses with a delay greater than 1 second. This is one of the most powerful features to improve your efficiency in locating network problems.
💡 Why this matters: Creating filter buttons transforms complex filter expressions into one-click actions, drastically speeding up repetitive network troubleshooting tasks.
⭐ Key Takeaways
You must remember how to create a custom HTTP Delta column to measure request-response delays in Wireshark. Sorting this column identifies the slowest HTTP responses. The most powerful efficiency tool is saving a filter expression (like http.time > 1) as a clickable button for instant access. Packet numbers 432 and 20 in this trace had delays over 1.7 seconds, illustrating real-world server latency.
🧠 Quick Revision Questions
- What is the purpose of creating an HTTP Delta column in Wireshark?
- After creating the HTTP Delta column, how do you sort packets to see the largest delays first?
- How many packets in the trace file had an HTTP response time over 1.7 seconds, and what were their packet numbers?
- What filter expression is used to create a button that detects high HTTP response times?
- Why is the ability to save filter expressions as buttons considered a powerful feature in Wireshark?
📘 Lecture 133 — Wireshark Lab 40
📖 Overview: This lecture focuses on using Wireshark to graphically visualize and analyze HTTP response times. It explains how to configure custom graphs and filters, and demonstrates the process of identifying packets with the highest delays. This matters because it enables network analysts to quickly spot performance bottlenecks in HTTP communications.
🗂️ Topics Covered
This lecture covers the step-by-step configuration of Wireshark's IO Graph feature to plot HTTP response times (http.time). It details the Graph configuration options (Graph 1-5, Color, Filter, Style), X Axis settings (Tick interval, Pixels per tick, View as time of day), and Y Axis Unit & Scale settings. The practical lab demonstrates creating a custom graph to identify packets with the highest HTTP response delays, specifically packets 20 and 432 showing delays over 1.7 seconds.
📝 Lecture Summary
Step 3: When you click save, Wireshark prompts to name the button. Name it HTTP Delay and then click OK.
Always remember to clear your display filter when you are done reviewing the results.
Step 4: As you click your new HTTP Delay button, you will find two packets of this trace file matching the filter—Packet 20 and Packet 432.
Topic 133: Wireshark Lab 40
In this topic, we plot HTTP response times in Wireshark. Wireshark allows a user to define up to five differently colored graphs. We can make the following configurations:
Graphs
- Graph 1-5: enable the specific graph 1-5 (only graph 1 is enabled by default).
- Color: (cannot be changed)
- Filter: a display filter for this graph
- Style: (Line/Impulse/FBar/Dot)
X Axis
- Tick interval: an interval in x direction lasts (10/1 mins or 10/1/0.1/0.01/0.001s)
- Pixels per tick: use 10/5/2/1 pixels per tick interval
- View as time of day: instead of sec or mins, view x as time of day
Y Axis
- Unit: the unit for y direction (Packets/Tick, Bytes/Tick, Bits/Tick, Advanced...)
- Scale: the scale for the y unit (Logarithmic, Auto, 10, 20, 50, 100, 200, 500, ...)
Let’s Graph HTTP Response Times.
Step 1: Open tr-http-pcaprnet101.pcapng.
Step 2: Select Statistics | IO Graph.
Step 3: In the Y Axis Unit area, select Advanced...
Step 4: Select the MAX(*) Graph 1 Calc option and then, enter http.time in the Calc area.
Step 5: To plot your results, click the Graph 1 button.
If you click the highest points in the graph, Wireshark will take you to those packets which have encountered highest delays. Packet 20 and Packet 432 show that the HTTP response time from the HTTP server (209.133.32.69) was over 1.7 seconds.
💡 Why this matters: This technique allows you to visually identify the slowest HTTP transactions in a capture, which is critical for troubleshooting web application performance issues.
⭐ Key Takeaways
You must remember that Wireshark's IO Graph can plot up to five graphs simultaneously. To plot HTTP response times, you select the Advanced Y Axis Unit, choose the MAX(*) calculation, enter http.time as the calculation field, and enable Graph 1. The highest points in the resulting graph correspond to packets with the largest response delays; clicking them navigates to those packets. In the lab example, packets 20 and 432 (from HTTP server 209.133.32.69) had delays exceeding 1.7 seconds. Always clear the display filter after reviewing results.
🧠 Quick Revision Questions
- How many differently colored graphs can you define in Wireshark's IO Graph?
- What menu path do you follow to access the IO Graph feature?
- Which calculation option (e.g., MAX, MIN, AVG) is used to plot http.time in the lab?
- In the lab, which two packets had the highest HTTP response delays, and what was the approximate delay value?
- What is the IP address of the HTTP server identified in packets 20 and 432?
📘 Lecture 134 — Wireshark Lab 41
📖 Overview: This lecture demonstrates how to create a Server Message Block (SMB) response time column in Wireshark to analyze file-sharing protocol delays. Understanding SMB timing is critical for troubleshooting slow network file transfers on Windows-based networks.
🗂️ Topics Covered
Introduction to Server Message Block (SMB) as a request/response protocol for Windows file sharing, explanation of the smb.time field in SMB response packets, and a step-by-step walkthrough for creating, positioning, and sorting an SMB Delta column in Wireshark using the provided packet capture file.
📝 Lecture Summary
Introduction to Server Message Block (SMB)
Server Message Block (SMB) is a file sharing protocol used by Microsoft on Windows-based networks. The two common versions are SMB and SMB version 2. It operates as a request/response protocol, where a client sends a request and the server sends back a response with a specific response code. Response codes are documented on Microsoft's Open Specification site at www.microsoft.com/openspecifications/.
💡 Why this matters: SMB delays can significantly impact file transfer performance. The smb.time field, found only in SMB response packets, provides a direct measurement of how long the server took to respond.
Step 1: Open the Packet Capture File
Open the file tr-smb-slow.pcapng in Wireshark.
Step 2: Locate the First SMB Response Packet
The first SMB response packet in the capture is Packet 5 (Negotiate Protocol Response). The smb.time field exists only in SMB response packets.
🔑 Definition — smb.time: A Wireshark field that records the time elapsed from when the SMB request was sent to when the SMB response was received, measured in seconds.
📋 To examine: Expand the SMB section and the SMB Header section of Packet 5 in the Packet Details pane.
Step 3: Create a Column from smb.time
Right-click on the line that reads [Time from request: 0.000766000 seconds] and select Apply as Column.
📌 Example: This value (0.000766000 seconds) represents a delay of approximately 0.77 milliseconds for the Negotiate Protocol Response.
Step 4: Reposition the New Column
The newly created column appears to the left of the Info column. Click and drag the column to a suitable location where visibility is improved.
Step 5: Rename the Column
Wireshark automatically assigns the new column the label Time from request. To rename it:
- Right-click on the column heading.
- Select Edit Column Details.
- Change the title to SMB Delta.
- Click OK.
Step 6: Sort by Largest Delay
To examine SMB response packets with the largest delays, click the SMB Delta column heading twice. This sorts the packets from high to low (descending order), placing the slowest responses at the top.
📌 Example: After sorting, the packet with the highest smb.time value will appear first, indicating the greatest server delay.
⭐ Key Takeaways
SMB is a request/response file sharing protocol on Windows networks, and its response delays can be measured using the smb.time field in Wireshark. Only SMB response packets contain the smb.time field — request packets do not. The step-by-step process involves opening the capture file, expanding Packet 5’s SMB header, right-clicking the Time from request value to apply it as a column, then renaming the column to SMB Delta for clarity. Sorting by this column in descending order helps identify the slowest SMB responses, which is essential for performance troubleshooting. The example value of 0.000766 seconds illustrates millisecond-level delays that are typical in network captures.
🧠 Quick Revision Questions
- What does SMB stand for, and what type of protocol is it?
- In which type of SMB packets does the smb.time field exist?
- What was the smb.time value in Packet 5 of the provided capture?
- What are the two steps required to rename the smb.time column from "Time from request" to "SMB Delta"?
- How do you sort packets to show the largest SMB delays at the top of the packet list?
📘 Lecture 135 — Wireshark Lab 42
📖 Overview: This lecture demonstrates how to use Wireshark to analyze Server Message Block (SMB) protocol performance by creating and interpreting Service Response Time (SRT) statistics. Understanding SMB response times is critical for diagnosing file sharing and network storage performance issues in Windows environments.
🗂️ Topics Covered
Examining SMB and SMB2 response time statistics in Wireshark, opening a sample pcap file, navigating to the SRT statistics window, creating the SMB statistic, and interpreting the minimum, maximum, and average Service Response Time values displayed.
📝 Lecture Summary
Step 1: Open tr-smb-slow.pcapng
The lecture begins by instructing users to open the provided trace file named tr-smb-slow.pcapng. This file contains captured network traffic that includes SMB protocol exchanges, specifically selected to demonstrate slow SMB response times.
💡 Why this matters: Using a pre-captured trace file allows consistent analysis without needing a live SMB environment.
Step 2: Select Statistics | Service Response Time | SMB
Navigate to Statistics in the Wireshark menu bar, then select Service Response Time, and finally choose SMB. When prompted by Wireshark, click Create Stat to generate the SMB Service Response Time statistics window.
This window displays three key metrics for the SMB protocol:
- Minimum Service Response Time
- Maximum Service Response Time
- Average Service Response Time
📌 Example: For the tr-smb-slow.pcapng trace, the SMB Service Response Time statistics window will show specific values for minimum, maximum, and average response times that reflect the performance characteristics of the captured SMB traffic.
⭐ Key Takeaways
The lecture's core lesson is that Wireshark can automatically create and display SMB Service Response Time statistics from captured network traffic. Users must first open a pcap file containing SMB traffic, then navigate through Statistics | Service Response Time | SMB, and click "Create Stat" when prompted. The resulting window shows three critical performance metrics: minimum, maximum, and average SRT. These statistics are available for both SMB and SMB2 protocols. This analysis capability is essential for diagnosing slow file sharing performance in Windows networks.
🧠 Quick Revision Questions
- What menu path in Wireshark leads to SMB Service Response Time statistics?
- What three SRT values are displayed in the SMB Service Response Time statistics window?
- What is the name of the sample pcap file used in this lab?
- What must the user click when prompted by Wireshark to generate the SMB statistic?
- Which two SMB protocol versions does Wireshark track for response times?
📘 Lecture 136 — Wireshark Lab 43
📖 Overview: This lecture explains how to create a custom button in Wireshark to detect Server Message Block (SMB) and SMB2 response times that exceed 1 second. It teaches the practical skill of using display filters with time-based fields to quickly identify network performance issues related to file sharing protocols.
🗂️ Topics Covered
The lecture covers the process of creating a button in Wireshark to detect SMB and SMB2 response times larger than 1 second. It demonstrates the use of the smb.time and smb2.time filter fields, saving the filter as a button, and testing the button against the tr-smb-slow.pcapng packet capture file.
📝 Lecture Summary
Step 1: Open tr-smb-slow.pcapng
First, open the provided packet capture file named tr-smb-slow.pcapng in Wireshark. This file contains network traffic with SMB and SMB2 requests and responses.
Step 2: Create the Display Filter
In the display filter area, type the following filter expression: smb.time > 1 || smb2.time > 1. This filter matches packets where either smb.time (for SMB) or smb2.time (for SMB2) is greater than 1 second.
🔑 Definition — smb.time: The time delta (in seconds) between an SMB request and its corresponding response.
📐 Formula: smb.time > 1 || smb2.time > 1 → Matches packets where the SMB or SMB2 response time exceeds 1 second.
📌 Example: In the capture file, Packet 132 is the only packet that matches the filter smb.time > 1 || smb2.time > 1.
Step 3: Save the Filter as a Button
After typing the filter, click the Save button (the small disk icon) in the filter toolbar. A dialog box will appear. Name your button SMB/SMB2 Delay and then click OK. This creates a clickable button in the filter toolbar.
Step 4: Test the Button
Click your newly created SMB Delay button. Wireshark will automatically apply the saved filter. In the tr-smb-slow.pcapng capture, Packet 132 is the only packet that matched your filter, indicating it had an SMB response time exceeding 1 second.
💡 Why this matters: This technique allows network administrators to quickly identify slow SMB responses that can cause file access delays in Windows environments.
⭐ Key Takeaways
The most critical points from this lecture are: (1) Wireshark provides smb.time and smb2.time fields to measure response times for SMB and SMB2 protocols. (2) You can create custom buttons by typing a filter expression, clicking Save, and naming the button. (3) The filter smb.time > 1 || smb2.time > 1 detects any SMB or SMB2 request that took more than 1 second to receive a response. (4) Only Packet 132 matched this filter in the tr-smb-slow.pcapng file. (5) This technique helps identify performance bottlenecks in file sharing traffic.
🧠 Quick Revision Questions
- What two Wireshark filter fields are used to measure SMB and SMB2 response times?
- What is the exact filter string used to detect SMB response times greater than 1 second?
- Which packet in the tr-smb-slow.pcapng file matched the filter for delayed SMB responses?
- How do you save a display filter as a button in Wireshark?
- What is the purpose of creating a button for this type of filter?
📘 Lecture 137 — Wireshark Lab 44
📖 Overview: This lecture demonstrates how to plot Server Message Block (SMB) response times using Wireshark’s IO Graph feature. It explains the step-by-step process to visualize SMB performance, which is crucial for diagnosing network latency issues in file-sharing environments.
🗂️ Topics Covered
The lecture covers the complete procedure for plotting SMB response times in Wireshark, including opening the appropriate packet capture file, configuring the IO Graph with advanced Y-axis settings, selecting the correct calculation field (smb.time), and addressing the need for separate graphs for SMB and SMB2 protocols due to different delta time fields.
📝 Lecture Summary
Plotting SMB Response Times in Wireshark
To begin analyzing SMB performance, open the provided packet capture file tr-smb-slow.pcapng. Navigate to the Statistics menu and select IO Graph. In the Y Axis Unit area, choose Advanced... to access more graphing options. Set Graph 1 Calc to MAX(*) and enter smb.time in the Calc area. Click the Graph 1 button to plot the SMB response times on the graph.
📌 Example: If a sequence of SMB requests shows response times increasing from 2 ms to 150 ms over 10 seconds, the MAX(*) calculation will plot the single highest response time per interval, highlighting the slowest transactions.
Handling SMB and SMB2 Time Fields
Because SMB and SMB2 use different delta time fields, a single graph cannot capture both. You must create two separate graphs: one for SMB (using smb.time) and another for SMB2 (using its respective time field, such as smb2.time). This ensures each protocol’s response time is accurately plotted.
🔑 Definition — delta time: The time difference between a request and its corresponding response in a protocol exchange. 💡 Why this matters: Incorrectly graphing both protocols on one axis would mix incompatible time measurements, producing misleading results.
⭐ Key Takeaways
SMB response time plotting in Wireshark requires careful configuration using the IO Graph with the MAX(*) calculation on the smb.time field. Because SMB and SMB2 protocols use different delta time fields, you must create separate graphs for each to accurately visualize performance. This technique is essential for identifying slow file transfers and network bottlenecks in Windows-based file sharing environments.
🧠 Quick Revision Questions
- What packet capture file is used to plot SMB response times?
- Which Wireshark menu contains the IO Graph feature?
- What calculation option should be selected for Graph 1 Calc?
- Why must separate graphs be created for SMB and SMB2?
- What field name is entered in the Calc area for plotting SMB response times?
📘 Lecture 138 — Wireshark's Expert Infos System
📖 Overview: This lecture covers Wireshark's Expert Infos System, a tool that automatically generates alerts about network concerns and packet comments in trace files. It helps both novice and expert users quickly identify probable network problems without manually scanning the packet list.
🗂️ Topics Covered
The lecture introduces the Expert Infos button and the three columns in Wireshark's Status Bar, the six categories of information classified by the Expert system (Errors, Warnings, Notes, Chats, Details, and Packet Comments), and how to open and use the Expert Infos window by clicking the button in the bottom left corner of the Status Bar.
📝 Lecture Summary
Topic 138: Wireshark's Expert Infos System
This topic provides an overview of Wireshark’s Expert Infos System. There are two buttons and three columns in Wireshark’s Status Bar. The first button is named the Expert Infos button. Wireshark generates alerts for you to numerous network concerns seen in the trace file as well as packet comments in the Expert Infos window. Expert infos are only a hint and help both novice and expert users to find probable network problems a lot faster, compared to scanning the packet list “manually”. The Expert classifies information into 6 categories:
- Errors: red
- Warnings: yellow
- Notes: cyan
- Chats: blue
- Details: grey
- Packet Comments: green
When you click the Expert Infos button in the bottom left corner of the Status Bar, the Expert Infos window will open.
🔑 Definition — Expert Infos System: Wireshark's automatic alert generation system that classifies network concerns and packet comments into six color-coded categories (Errors, Warnings, Notes, Chats, Details, Packet Comments) to help users quickly identify probable network problems.
💡 Why this matters: The color coding allows users to instantly prioritize issues — red Errors are critical, yellow Warnings need attention, while blue Chats and grey Details are informational and can be ignored in most troubleshooting scenarios.
⭐ Key Takeaways
The Expert Infos System automatically generates alerts for network concerns and packet comments, classifying them into six color-coded categories: Errors (red), Warnings (yellow), Notes (cyan), Chats (blue), Details (grey), and Packet Comments (green). The Expert Infos button is located in the bottom left corner of the Status Bar, and clicking it opens the Expert Infos window. These infos serve as hints to help all users find probable network problems much faster than manual scanning. The system is designed to assist both novice and expert users in troubleshooting.
🧠 Quick Revision Questions
- Where is the Expert Infos button located in Wireshark’s interface?
- What are the six categories of information classified by the Expert Infos System, and what color is associated with each?
- What is the primary purpose of the Expert Infos System?
- What happens when you click the Expert Infos button?
- How does the Expert Infos System help both novice and expert users compared to manual scanning?
📘 Lecture 139 — Wireshark's Packet Loss Detection
📖 Overview: This lecture explains how Wireshark detects packet loss by analyzing TCP sequence numbers. Understanding packet loss causes and detection methods is critical for network troubleshooting and performance analysis.
🗂️ Topics Covered
The lecture covers three main areas: what causes packet loss in networks, how Wireshark uses TCP sequencing to detect lost packets, and the different categories of Expert information (chats, notes, warnings) that help identify network issues. It also explains how to enable or disable packet loss detection in Wireshark's preferences.
📝 Lecture Summary
Causes of Errors, Warnings, and Notes
Understanding the causes of errors, warnings, and notes helps determine what is affecting network performance. The lecture provides examples of commonly occurring Expert information:
- Chats: information about usual workflow, e.g., a TCP packet with the SYN flag set
- Notes: notable things, e.g., an application returned an "usual" error code like HTTP 404
- Warnings: e.g., an application returned an "unusual" error code like a connection problem
💡 Why this matters: These categories help network analysts prioritize issues — chats are normal, notes are notable but expected, while warnings indicate real problems.
What Causes Packet Loss
Most of the time packets are dropped by interconnecting devices such as a switch, a router, a firewall — i.e., anything that makes forwarding decisions. The common reasons for packet loss include:
- A switch or router is overloaded
- The device is unable to keep up with the required packet forwarding rate
- The device is simply faulty
🔑 Definition — Packet loss: the failure of one or more transmitted packets to arrive at their destination, typically caused by network congestion or faulty hardware
📌 Example: A switch handling 10,000 packets per second but receiving 15,000 packets per second will drop 5,000 packets per second due to overload.
How Wireshark Detects Packet Loss
The TCP sequencing process is used by Wireshark to detect lost packets. Wireshark analyzes the sequence numbers in TCP packets to identify gaps where packets should have arrived but did not.
🔑 Definition — TCP sequence numbers: numbers that TCP assigns to each byte of data to ensure reliable delivery and proper ordering of packets
📐 Formula: Packet loss detection → Wireshark compares expected sequence numbers with received sequence numbers; gaps indicate potential packet loss
You can also turn off this feature by disabling the Analyze TCP Sequence Numbers TCP Preference setting. To do this:
- Click the Preferences button
- Expand Protocols
- Choose TCP
- Disable the "Analyze TCP Sequence Numbers" option
💡 Why this matters: Disabling this feature may be useful in certain scenarios, such as when analyzing non-standard TCP implementations or reducing processing overhead.
⭐ Key Takeaways
The most critical points to remember are that packet loss is primarily caused by overloaded or faulty network devices like switches and routers, not by the end hosts. Wireshark detects packet loss using TCP sequence numbers by looking for gaps in the expected data stream. Network experts categorize issues into chats (normal), notes (notable but expected), and warnings (unusual problems). The packet loss detection feature can be toggled in Wireshark's TCP preferences. Understanding these concepts is essential for accurate network troubleshooting.
🧠 Quick Revision Questions
- What are the three categories of Expert information in Wireshark, and what does each represent?
- What are the three common causes of packet loss mentioned in the lecture?
- How does Wireshark detect lost packets at the TCP level?
- Where in Wireshark's settings can you disable the packet loss detection feature?
- Give an example of a "Notes" level event that Wireshark might report.
📘 Lecture 140 — Packet Loss Recovery Methods
📖 Overview: This lecture examines the two primary methods TCP uses to recover from packet loss: Fast Recovery and Retransmission Timeout (RTO). Understanding these mechanisms is critical because they determine how reliably data travels across networks and explain why some applications choose TCP over UDP.
🗂️ Topics Covered
The lecture begins by explaining how Wireshark calculates the Next Sequence Number (nextseq) field to detect packet loss. It then introduces two transport layer protocols—TCP and UDP—and categorizes applications based on their tolerance for data loss. The two main packet loss recovery methods are explained in detail: Fast Recovery (using duplicate acknowledgments) and Retransmission Timeout (RTO) (using a sender-side timer).
📝 Lecture Summary
Wireshark's nextseq Value
Wireshark creates a value called nextseq (displayed in the Next Sequence Number field). Its value is determined by adding together the Sequence Number field value of each packet to the number of data bytes in it. Therefore, the next expected sequence number from the sender is available in nextseq. Wireshark assumes that one or more packets have been lost when it sees a sequence number jump beyond the nextseq value.
🔑 Definition — nextseq: The value Wireshark computes by adding the Sequence Number of a packet to the number of data bytes it contains, representing the next expected sequence number from the sender.
Transport Layer Protocol Choices
An Internet application developer has two choices for the transport layer protocol: Transmission Control Protocol (TCP), or User Datagram Protocol (UDP). TCP provides a packet loss recovery mechanism while UDP does not. Based on this feature, there are applications which can and which cannot tolerate data loss. File transfer, e-mail, and Web documents, instant messaging are examples of those applications which cannot tolerate loss. Loss-tolerant apps include real-time audio/video, stored audio/video, and interactive games.
💡 Why this matters: The choice between TCP and UDP directly affects application reliability—loss-intolerant apps must use TCP's recovery methods.
Packet Loss Recovery Method #1 — Fast Recovery
This method can be used only if the receiver supports Fast Recovery. In this method, when the receiver observes a jump in the sequence number value, it will immediately begin sending Duplicate Acknowledgments. Upon receipt of four identical ACKs (the original and three Duplicate ACKs), the sender will retransmit the packet that has been lost.
🔑 Definition — Duplicate Acknowledgment: An ACK sent by the receiver when it detects a gap in sequence numbers, signaling that a packet may be lost. 📌 Example: If packet 100 arrives, then packet 102 arrives (skipping 101), the receiver sends three duplicate ACKs for packet 100. Upon receiving the fourth ACK (original + three duplicates), the sender retransmits the lost packet 101.
Packet Loss Recovery Method #2 — Sender Retransmission Timeout (RTO)
In this method, a sender maintains a timer for a packet. If the packet has not been acknowledged within Retransmission Timeout (RTO) value, the sender retransmits the packet.
🔑 Definition — Retransmission Timeout (RTO): A timer value maintained by the sender for each transmitted packet; if no acknowledgment is received before the timer expires, the sender retransmits the packet. 💡 Why this matters: RTO acts as a safety net—even if the receiver does not support Fast Recovery, the sender will eventually recover lost packets through timeout-based retransmission.
⭐ Key Takeaways
TCP provides two distinct packet loss recovery methods: Fast Recovery (triggered by duplicate ACKs from the receiver) and RTO (triggered by sender-side timers). Fast Recovery requires receiver support and activates after three duplicate ACKs (four identical ACKs total), allowing faster retransmission without waiting for a timeout. The RTO method is a universal fallback—if no acknowledgment arrives within the timeout period, the sender retransmits the lost packet. Wireshark detects potential packet loss by monitoring gaps between the Sequence Number field and the computed nextseq value. These recovery mechanisms explain why TCP is essential for loss-intolerant applications like file transfer, email, and web browsing, while UDP suffices for loss-tolerant applications like streaming media.
🧠 Quick Revision Questions
- How does Wireshark calculate the nextseq value, and what does a jump beyond it indicate?
- What is the difference between TCP and UDP regarding packet loss recovery?
- How many identical ACKs must the sender receive before triggering Fast Recovery retransmission?
- What triggers a retransmission in the RTO method?
- Name two applications that cannot tolerate data loss and two that can.
📘 Lecture 141 — Wireshark Lab 45
📖 Overview: This lecture demonstrates how to use a Wireshark display filter to detect packet loss in a TCP trace file. It shows how to identify “Previous Segment Not Captured” warnings, count occurrences of lost segments, and explains the role of TCP Sequence Numbers in detecting missing packets.
🗂️ Topics Covered
Opening a .pcapng trace file in Wireshark and applying the display filter tcp.analysis.lost_segment. Understanding the “Previous Segment Not Captured” warning message and how Wireshark uses TCP Sequence Numbers to detect packet loss. Interpreting the Status Bar count to determine how many times loss was detected, and clearing the filter after analysis.
📝 Lecture Summary
Step 1: Open Trace File
Open the file tr-general101d.pcapng in Wireshark. This trace file contains network traffic that will be analyzed for packet loss.
Step 2: Apply the Filter
In the display filter area, enter the filter tcp.analysis.lost_segment and click Apply. This filter tells Wireshark to show only packets where it detected a missing segment in the TCP stream.
🔑 Definition — tcp.analysis.lost_segment: A Wireshark display filter that shows packets flagged because a previous TCP segment was not captured or was lost.
📌 Example: After applying the filter, the Status Bar shows “Displayed: 5”. This means Wireshark has detected packet loss five times in this trace file. The Info column displays the warning “Previous Segment Not Captured” for each of these packets.
💡 Why this matters: This warning means Wireshark did not see the previous packet(s) in a TCP communication. Wireshark keeps track of packet ordering using TCP Sequence Numbers, and from this, it can easily detect when packets are missing.
Step 3: Clear the Filter
After finishing analysis of the trace file, click Clear to remove the filter. This resets the display to show all packets.
📌 Example: By applying the filter tcp.analysis.lost_segment on the traffic of a trace file, we easily found that packet loss is occurring. However, to determine how many packets were actually lost, we need to examine the TCP sequence numbers more closely.
⭐ Key Takeaways
The filter tcp.analysis.lost_segment is a quick tool to detect packet loss events in a Wireshark trace. The Status Bar shows the total number of times loss was detected. The “Previous Segment Not Captured” warning in the Info column indicates missing segments. Wireshark relies on TCP Sequence Numbers to determine ordering and detect gaps. To find the exact number of lost packets, you must manually analyze TCP sequence numbers rather than relying solely on the filter count.
🧠 Quick Revision Questions
- What is the exact display filter used to detect lost TCP segments in Wireshark?
- What warning message appears in the Info column when a packet is flagged by the lost segment filter?
- How many times did Wireshark detect packet loss in the trace file
tr-general101d.pcapng? - What mechanism does Wireshark use to determine packet ordering and detect missing packets?
- Why is the filter count not sufficient to determine the exact number of packets lost?
📘 Lecture 142 — Wireshark Lab 46
📖 Overview: This lecture introduces a practical Wireshark lab that adds TCP sequencing columns to a trace file. The goal is to help students understand TCP sequencing behavior and determine how many packets are actually lost when Wireshark displays the “Previous Segment Not Captured” message. This matters because it clarifies a common point of confusion in TCP analysis.
🗂️ Topics Covered
The lecture covers opening a specific trace file (tr-general101d.pcapng), expanding the TCP header in Packet 1, and adding a Sequence Number column by right-clicking on the field and selecting “Apply as Column.” It then explains renaming the column to SEQ# by editing column details, and repeats this process for the Acknowledgment Number and Next Sequence Number fields.
📝 Lecture Summary
Step 1: Open tr-general101d.pcapng
The first step is to open the trace file named tr-general101d.pcapng in Wireshark. This file contains network traffic that will be analyzed for TCP sequencing patterns.
Step 2: Expand the TCP header in Packet 1
Navigate to Packet 1 in the capture and expand the TCP header section to reveal all relevant fields, including sequence numbers and acknowledgment numbers.
Step 3: Add and rename the Sequence Number column
Right-click on the Sequence Number field and select Apply as Column from the context menu. This creates a new column in the packet list pane. Then, right-click on the new column header, select Edit Column Details, and rename the column to SEQ#. This column will display the raw sequence number for each TCP segment.
🔑 Definition — Sequence Number (SEQ#): A 32-bit number in the TCP header that identifies the byte position of the first data byte in the segment relative to the beginning of the data stream.
📐 Formula: SEQ# = Initial Sequence Number (ISN) + offset for each subsequent segment → Shows the position of data in the TCP flow.
📌 Example: In a TCP handshake, Packet 1’s SEQ# is the ISN (e.g., 0 relative to the SYN flag). After renaming the column, all packets will display their actual sequence numbers, making it easy to track gaps.
💡 Why this matters: Adding the SEQ# column allows you to quickly see sequence number progression and detect missing segments indicated by “Previous Segment Not Captured.”
Step 4: Repeat for Acknowledgment Number and Next Sequence Number
The same process is applied to the Acknowledgment Number field (rename to ACK#) and the Next Sequence Number field (rename to Next SEQ#). These columns provide additional context for understanding TCP flow control and retransmissions.
🔑 Definition — Acknowledgment Number (ACK#): The next sequence number the receiver expects to receive, confirming receipt of all bytes up to that point.
🔑 Definition — Next Sequence Number: The sequence number that will be used in the next segment after the current one (calculated as SEQ# + payload length).
📌 Example: If Packet 1 has SEQ# = 1000 and carries 200 bytes of data, then Next SEQ# = 1200. If the next received packet has SEQ# = 1200, no loss occurred. If it has SEQ# = 1400, a gap exists.
💡 Why this matters: The combination of SEQ#, ACK#, and Next SEQ# columns enables you to manually calculate data loss by comparing expected and actual sequence numbers.
⭐ Key Takeaways
A student must remember that three key columns (SEQ#, ACK#, and Next SEQ#) can be added to Wireshark by right-clicking on the TCP header fields and applying them as columns. Renaming these columns (SEQ#, ACK#, Next SEQ#) makes trace analysis intuitive. The SEQ# column reveals where data starts in each segment, while Next SEQ# shows where the next segment should start. By comparing actual Next SEQ# values with the next packet’s SEQ#, you can determine exactly how many bytes were lost (e.g., a gap of 1460 bytes = one lost full-sized segment). This lab directly addresses the “Previous Segment Not Captured” message by replacing guesswork with precise byte-count loss detection.
🧠 Quick Revision Questions
- What is the first trace file used in this lab exercise?
- Which TCP header field do you right-click to create the SEQ# column?
- What should you rename the Sequence Number column to?
- Besides SEQ#, what two other columns are recommended to add for TCP sequencing analysis?
- How does the Next SEQ# column help determine packet loss?
📘 Lecture 143 — Wireshark Lab 47
📖 Overview: This lecture demonstrates how to build and use the Bad TCP filter expression in Wireshark to quickly identify key TCP problems in a trace file. It provides step-by-step instructions for creating a reusable button that displays problematic packets, helping analysts efficiently diagnose network issues. Understanding this filtering technique is crucial for anyone performing network troubleshooting with Wireshark.
🗂️ Topics Covered
The lecture walks through creating a button using the tcp.analysis.flags && !tcp.analysis.window_update filter expression, saving it as a button named "Bad TCP," and activating it to view TCP problems. It revisits the concept of Previous Segment Not Captured from Topic 142, using packet 10417 as an example to illustrate how Wireshark detects mismatched sequence numbers and calculates lost bytes and packets.
📝 Lecture Summary
Wireshark Lab 47 — Building a Bad TCP Filter
We build a Bad TCP filter expression in Wireshark. The goal is to create a button which, when clicked once, will view many of the key TCP problems in a trace file.
Step 1: Open tr-general101d.pcapng.
Step 2: Type the following expression in the display filter area: tcp.analysis.flags && !tcp.analysis.window_update. Click the Coloring Rules button and look for the Bad TCP coloring rule. The filter expression we typed in Step 2 is the same as the Bad TCP coloring rule string.
Step 3: Click Save on the display filter toolbar to create a new button. Name this new button Bad TCP.
Step 4: Click the newly created Bad TCP button.
Review from Topic 142 (Packet 10417): When examining a specific packet (e.g., packet 10417) tagged with Previous Segment Not Captured, we access the display via NEXTSEQ# and SEQ# columns:
- NEXTSEQ#: the expected sequence number for the next packet from a given IP (in this example,
9,164,761for the next packet from10.9.9.9) - SEQ#: the actual sequence number in the arriving packet (
9,175,321)
A mismatch occurs: 9,175,321 - 9,164,761 = 10,560 bytes have been lost. The TCP header of packet 10,417 indicates it contains 1,320 bytes of data. Assuming all lost packets were 1,320 bytes long, 10,560 / 1,320 = 8 packets were lost prior to packet 10,417.
🔑 Definition — Bad TCP Filter: tcp.analysis.flags && !tcp.analysis.window_update — a display filter expression that isolates TCP packets flagged by Wireshark with analysis issues (like retransmissions, duplicate ACKs, lost segments) while excluding window updates, which are not considered problems.
📐 Formula for lost bytes: Expected Next Sequence Number − Actual Sequence Number = Lost Bytes
📐 Formula for lost packets: Lost Bytes ÷ Bytes per Packet = Lost Packets
📌 Example: For packet 10,417:
- NEXTSEQ# = 9,164,761
- SEQ# = 9,175,321
- Lost bytes =
9,175,321 − 9,164,761 = 10,560 - Data per packet = 1,320 bytes
- Lost packets =
10,560 ÷ 1,320 = 8 packets
💡 Why this matters: The Bad TCP button allows you to instantly surface all problematic TCP packets across a trace file, saving time by not manually scanning each packet for errors.
⭐ Key Takeaways
The Bad TCP filter expression tcp.analysis.flags && !tcp.analysis.window_update is the exact string used by Wireshark's built-in Bad TCP coloring rule. Saving this expression as a button creates a one-click diagnostic tool to view all major TCP problems in a trace file. The Previous Segment Not Captured error is triggered by a mismatch between the NEXTSEQ# (expected sequence number) and SEQ# (actual sequence number). Calculating lost bytes (NEXTSEQ# − SEQ#) and dividing by the segment size (data bytes per packet) yields an estimate of the number of lost packets. This technique is essential for efficient network troubleshooting.
🧠 Quick Revision Questions
- What is the exact display filter expression used to create the Bad TCP button?
- Why is the
!tcp.analysis.window_updatepart included in the filter expression? - In the example, how many lost bytes were detected between the NEXTSEQ# and the SEQ# for packet 10,417?
- Assuming all lost segments are 1,320 bytes long, how many packets were estimated lost prior to packet 10,417?
- What does the Previous Segment Not Captured Expert indication in Wireshark signify?
📘 Lecture 144 — Wireshark Lab 48
📖 Overview: This lecture teaches how to find packet loss counts using the Expert Infos feature in Wireshark. It demonstrates the practical steps to analyze network traces and interpret Wireshark's built-in diagnostic tools for identifying potential network problems.
🗂️ Topics Covered
The lecture covers opening a specific trace file (tr-general101d.pcapng), using the Expert Infos button on the Status Bar, interpreting the Errors tab (which shows no serious problems), and examining the Warnings tab to detect packet losses based on sequence number jumps. It also mentions that Wireshark detected 5 packet losses due to sudden jumps in sequence numbers, and notes that Wireshark does not take into account certain factors when counting losses.
📝 Lecture Summary
Step 1: Opening the Trace File
Open the file tr-general101d.pcapng in Wireshark. This is a pre-captured network traffic file that will be analyzed for packet loss.
Step 2: Accessing Expert Infos
Click the Expert Infos button located on the Status Bar of Wireshark. This opens a diagnostic window that provides automated analysis of the captured traffic.
Step 3: Interpreting Expert Infos Results
The Expert Infos title bar shows 1,616 Expert Infos items in the trace file. Under the Errors tab, there are no entries because Wireshark could not detect any serious problem in the trace file. 💡 Why this matters: This means the trace file has no malformed packets or protocol violations.
When you click the Warnings tab, Wireshark has observed 5 packet losses. This detection is based on sudden jumps in sequence numbers in the TCP traffic. Wireshark does not take into account all factors when counting losses — it only flags losses based on sequence number discontinuities.
📘 Lecture 145 — Wireshark Lab 49
📖 Overview: This lecture teaches how to identify where packets are being dropped in a network using Wireshark’s Expert Infos feature. By analyzing warnings like “Previous segment not captured” and observing Duplicate ACKs, network engineers can pinpoint packet loss locations and troubleshoot performance issues.
🗂️ Topics Covered
Opening a trace file and accessing the Expert Infos window. Navigating the Warnings tab to find “Previous segment not captured” entries. Jumping to a specific packet (e.g., Packet 10,417) that indicates the first hint of loss. Observing the subsequent Duplicate ACKs that confirm the packet was dropped.
📝 Lecture Summary
Topic 145: Wireshark Lab 49
This topic shows how to use Wireshark’s Expert Infos feature to detect where packets are being dropped in a TCP flow. The process begins with opening trace file tr-general101d.pcapng and clicking the Expert Infos button on the Status Bar. Inside the Expert Infos window, you click the Warnings tab to see all captured warnings.
From the Previous segment not captured (common at capture start) section, you can see the exact instances of Out-of-Order segments. The trace in this lecture contains 8 such instances. To analyze a specific problem, expand the section and click on a listed packet — Wireshark will jump to that packet in the Main window.
🔑 Definition — Out-of-Order segment: a TCP segment that arrives at the receiver before a previous segment (that was expected first), typically due to packet loss or reordering.
🔑 Definition — Duplicate ACK: a TCP acknowledgment sent by the receiver when it receives an out-of-order segment, informing the sender that it is still waiting for the missing segment.
📌 Example: Packet 10,417 is identified as the first packet after the loss point. After clicking it in the Expert Infos listing, Wireshark jumps to that packet in the main trace. Examining the surrounding traffic reveals numerous Duplicate ACKs following the missing packet indication, confirming that the packet at that position (or just before it) was dropped and never reached the destination.
💡 Why this matters: By identifying the exact packet number where the loss is first detected, you can then examine the actual contents of surrounding packets to determine why the drop occurred — whether due to network congestion, a faulty link, or a misconfiguration.
⭐ Key Takeaways
To locate packet drops in Wireshark, always start by opening the Expert Infos window from the Status Bar and clicking on the Warnings tab. Look for “Previous segment not captured” entries; these mark the first sign of missing data. Clicking on any listed packet instantly jumps to that location in the Main window. After identifying the loss point, immediately check for Duplicate ACKs — their presence confirms that the packet was truly dropped and not just delayed. This method works across any .pcapng trace file and is the standard approach for diagnosing TCP retransmission events.
🧠 Quick Revision Questions
- What is the first step to locate a packet drop using Wireshark’s Expert Infos?
- On which tab of the Expert Infos window do you find “Previous segment not captured” warnings?
- How many instances of Out-of-Order segments are noted in the Warnings tab for this trace?
- After jumping to a packet that indicates loss, what type of TCP packet confirms the drop?
- What is the practical benefit of clicking a packet listed in the Expert Infos Warnings tab?
📘 Lecture 146 — Duplicate ACKs and their Causes
📖 Overview: This lecture explains what duplicate ACKs are, why they are generated, and how they serve as signals for packet loss or out-of-order packet delivery. Understanding duplicate ACKs is essential for diagnosing TCP performance issues and network congestion.
🗂️ Topics Covered
The lecture covers how duplicate ACKs are used to inform the sender about packet loss, how they can also indicate out-of-order packets, under what conditions a host generates duplicate ACKs (when it supports Fast Recovery and detects a packet with sequence number beyond expected), and how to analyze packet capture to determine if packet loss or retransmission is occurring upstream or downstream.
📝 Lecture Summary
Duplicate ACKs and Packet Loss Detection
Duplicate ACKs are used to inform the sender about packet loss. Each duplicate ACK acts as a request for a specific sequence number. For instance, in the example, the receiver at 10.10.10.10 supports Fast Recovery using duplicate ACKs. Each duplicate ACK is a request for sequence number 9,164,761, as seen in the Acknowledgment Number field. The sender uses these duplicate ACKs to detect that a packet has been lost and that retransmission is needed.
🔑 Definition — Duplicate ACK: An acknowledgment packet sent by a receiver that requests the same sequence number as a previous ACK, indicating that the receiver has not yet received the expected packet.
📐 Formula: No formula — the concept is based on sequence number tracking.
📌 Example: In the packet capture, the missing packet has sequence number 9,164,761. By filtering with tcp.seq==9164761, you can see whether the capture contains both the original packet and the retransmission, or just the retransmission. This determines whether you are upstream or downstream from the point of packet loss.
Determining Capture Position (Upstream vs. Downstream)
To diagnose packet loss, it is crucial to determine where the packet capture was made relative to the point of loss. If you see both the original packet and the Retransmission, the capture is upstream from the point of packet loss (closer to the sender). If you see only the Retransmission, the capture is downstream (closer to the receiver). In this example, entering tcp.seq==9164761 in the display filter area showed only the Retransmission, indicating downstream capture. Packet loss always degrades network performance; locate it and investigate its cause.
🔑 Definition — Upstream capture: Capturing traffic closer to the data sender than the point of packet loss, allowing both original and retransmitted packets to be seen.
🔑 Definition — Downstream capture: Capturing traffic closer to the receiver than the point of packet loss, where only retransmitted packets are visible (the original was lost before the capture point).
📌 Example: Using display filter tcp.seq==9164761 for the missing sequence number, if the filter shows only one packet (the retransmission), you are downstream. If it shows two packets (original and retransmission), you are upstream.
💡 Why this matters: Knowing whether you are upstream or downstream helps pinpoint where packet loss is occurring in the network path.
Causes of Duplicate ACKs and Fast Recovery
Duplicate ACKs can also be an indication of out-of-order packets, not just packet loss. A host generates duplicate ACKs if it supports Fast Recovery and notices that a packet has arrived with a sequence number beyond the calculated next sequence number. When the receiver expects a particular sequence number but receives a higher one, it sends a duplicate ACK for the missing sequence number. Details of Fast Recovery are found in RFC 5681, "TCP Congestion Control." To determine whether an ACK is a duplicate ACK, check the Acknowledgment Number field; if it repeats the same value as a previous ACK, it is a duplicate.
🔑 Definition — Fast Recovery: A TCP congestion control mechanism defined in RFC 5681 that allows a sender to retransmit a lost packet without waiting for a timeout, triggered by receiving three duplicate ACKs.
📌 Example: If the receiver expects sequence number 1000 but receives packet with seq=1200, it generates a duplicate ACK for seq=1000. Repeated duplicate ACKs for the same sequence number tell the sender that packet 1000 was likely lost or delayed.
⭐ Key Takeaways
Duplicate ACKs serve as a signal for TCP to detect packet loss when the receiver supports Fast Recovery. They are generated when a packet arrives with a sequence number beyond the expected next sequence number. To diagnose network issues, capture location relative to packet loss (upstream or downstream) determines whether you see original and retransmitted packets or only the retransmission. Packet loss always degrades network performance, so locating and analyzing the point of loss is critical. Out-of-order packet delivery can also cause duplicate ACKs, so this must be considered when interpreting network captures.
🧠 Quick Revision Questions
- What is the primary purpose of duplicate ACKs in TCP?
- How can you determine if your packet capture is upstream or downstream from the point of packet loss?
- What display filter would you use to check for a specific missing sequence number in Wireshark?
- Under what condition does a host generate duplicate ACKs (besides packet loss)?
- Which RFC defines the Fast Recovery mechanism mentioned in this lecture?
📘 Lecture 147 — Wireshark Lab 50
📖 Overview: This lecture demonstrates how to use Wireshark to analyze TCP retransmission behavior, specifically by counting Duplicate ACKs. It teaches the practical application of display filters to identify network packet loss and retransmission patterns, which is essential for network troubleshooting.
🗂️ Topics Covered
This lecture covers the definition and detection of Duplicate ACKs in Wireshark, the criteria for marking packets as Out-of-Order vs. Retransmissions, the use of specific display filters (tcp.analysis.duplicate_ack and tcp.analysis.out_of_order), and a step-by-step lab exercise to count Duplicate ACKs and identify the missing packet they request.
📝 Lecture Summary
Duplicate ACKs in Wireshark
Wireshark uses Data bytes, Window Size, Sequence Number, and ACK Number fields to identify duplicate acknowledgments. When two or more packets with identical values in all these fields arrive at a host from the same source, Wireshark marks the second and subsequent packets as duplicates of the first ACK. In Duplicate ACKs, the ACK Number field value indicates the requested sequence number — the packet that the receiver is still waiting for. A TCP host continues sending Duplicate ACKs until it receives the missing packet.
🔑 Definition — Duplicate ACK: A packet with the same Data bytes, Window Size, Sequence Number, and ACK Number as a previous ACK, indicating the receiver has not yet received the expected packet.
Out-of-Order vs. Retransmission
When a receiver receives a packet with an incoming sequence number that jumps higher than the expected value, it cannot immediately determine if the packet is lost or merely out of order and arriving soon. Wireshark applies a 3 ms threshold to distinguish between these cases:
- If the missing sequence number packet arrives within 3 ms, Wireshark marks it as Out-of-Order.
- If it arrives later than 3 ms, Wireshark marks it as Retransmission or Fast Retransmission.
🔑 Definition — Out-of-Order: A packet whose missing sequence number arrives within 3 ms, indicating a reordering event rather than packet loss. 🔑 Definition — Retransmission/Fast Retransmission: A packet whose missing sequence number arrives more than 3 ms after the gap was detected, indicating probable packet loss.
💡 Why this matters: The 3 ms threshold helps network engineers distinguish between harmless packet reordering (common in load-balanced networks) and actual packet loss (which degrades TCP performance).
Wireshark Filters for ACK Analysis
Wireshark provides two key display filters for analyzing TCP acknowledgment behavior:
tcp.analysis.duplicate_ack— used to determine the number of duplicate ACKs in a capture.tcp.analysis.out_of_order— used to keep a record of Out-of-Order packets.
📐 Formula: tcp.analysis.duplicate_ack → counts all packets Wireshark identifies as duplicate ACKs.
📐 Formula: tcp.analysis.out_of_order → counts all packets Wireshark identifies as out-of-order.
Lab: Counting Duplicate ACKs
Step 1: Open the trace file tr-general101d.pcapng.
Step 2: Enter the filter tcp.analysis.duplicate_ack in the display filter area and click Apply. From the Status Bar, Wireshark displays it has detected 1,019 Duplicate ACKs.
Step 3: Expand the TCP header of a packet. Click on the Acknowledgment Number field and select Apply as Column. Name this column ACK# by right-clicking on the column header and selecting Edit Column Details. When scrolling through the trace file, you will observe that all these Duplicate ACKs are requests for a single missing packet whose sequence number is 9,164,761.
📌 Example: In tr-general101d.pcapng, after applying the tcp.analysis.duplicate_ack filter, Wireshark shows 1,019 Duplicate ACKs. By adding the ACK Number as a column, we see all these ACKs request sequence number 9,164,761, indicating that one packet is lost and the receiver is repeatedly asking for it.
⭐ Key Takeaways
The most critical point from this lecture is that Wireshark identifies Duplicate ACKs by matching four identical fields (Data bytes, Window Size, Sequence Number, ACK Number) from the same source. The 3 ms threshold distinguishes Out-of-Order packets from Retransmissions — packets arriving within 3 ms of the gap are considered reordered, while those arriving later are considered lost. The display filter tcp.analysis.duplicate_ack can count all Duplicate ACKs in a capture, and the ACK Number field reveals which specific packet is being requested. A single missing packet can generate over 1,000 Duplicate ACKs, demonstrating how aggressively TCP requests retransmission. Always extract the ACK Number as a column to identify the exact missing sequence number.
🧠 Quick Revision Questions
- What four fields does Wireshark use to identify Duplicate ACKs?
- What is the time threshold (in milliseconds) Wireshark uses to distinguish Out-of-Order packets from Retransmissions?
- What does the ACK Number field in a Duplicate ACK indicate?
- How many Duplicate ACKs were detected in the
tr-general101d.pcapngtrace file? - What is the sequence number of the missing packet that all 1,019 Duplicate ACKs are requesting?
📘 Lecture 148 — Wireshark Lab 51
📖 Overview: This lecture demonstrates how to identify and analyze Duplicate ACKs in a network trace file using Wireshark's Expert Infos feature. It explains how to count and interpret Duplicate ACKs, which are critical for diagnosing packet loss and understanding TCP Fast Recovery behavior.
🗂️ Topics Covered
The lecture covers finding Duplicate ACKs using Expert Infos in Wireshark, opening the trace file tr-general101d.pcapng, examining Notes tab problems, grouping of Duplicate ACKs based on their number, interpreting multiple occurrences of Duplicate ACKs indicating Fast Recovery launches, and identifying an out-of-order packet situation near Packet 3,217.
📝 Lecture Summary
Topic 148: Wireshark Lab 51
This topic finds Duplicate ACKs using Expert Infos in Wireshark. Duplicate ACKs are requests for a single missing packet whose sequence number is 9,164,761. The host continues sending Duplicate ACKs until the missing sequence number is resolved.
To hide the ACK# column from view, right-click the ACK# column and select Hide Column. Click Clear to remove the display filter.
Step 1: Open tr-general101d.pcapng. Step 2: Click the Expert Infos button on the Status Bar.
Step 3: Examine problems in this trace file by clicking the Notes tab. Count the Duplicate ACKs. Wireshark does not count all Duplicate ACKs together; it groups Duplicate ACKs based on their number.
In a trace file, assume packet loss occurs twice. Both times the original ACK, Duplicate ACK#1, Duplicate ACK#2, and Duplicate ACK#3 were sent. Wireshark will list 3 Duplicate ACKs with an indication that each occurred twice.
Duplicate ACK (#1) occurs 5 times, i.e., the Fast Recovery process was launched 5 times. The 4 Duplicate ACK (#2) indications mean in one case the receiver only had to send the first Duplicate ACK and then it recovered.
Probably, the one out-of-order packet situation in the trace file occurs near Packet 3,217.
Step 4: Scroll to the end of the Notes section.
💡 Why this matters: Understanding how Wireshark groups and displays Duplicate ACKs helps network analysts quickly identify the severity of packet loss events and determine whether Fast Recovery mechanisms are successfully resolving them.
⭐ Key Takeaways
The key takeaways are that Duplicate ACKs indicate missing packets and trigger Fast Recovery in TCP. Wireshark's Expert Infos Notes tab groups Duplicate ACKs by number and shows how many times each group occurred. Multiple occurrences of Duplicate ACK (#1) indicate multiple Fast Recovery launches. One out-of-order packet situation was identified near Packet 3,217. The ACK# column can be hidden to simplify analysis.
🧠 Quick Revision Questions
- What Wireshark feature is used to find Duplicate ACKs in a trace file?
- How does Wireshark group Duplicate ACKs?
- What does it indicate when Duplicate ACK (#1) occurs 5 times?
- Near which packet number does the out-of-order packet situation occur?
- How can you hide the ACK# column in Wireshark?
📘 Lecture 149 — Wireshark Lab 52
📖 Overview: This lecture teaches how to determine if Selective ACK (SACK) is in use by examining Duplicate ACKs in Wireshark. Understanding SACK is critical for network troubleshooting, as it distinguishes between efficient retransmissions (only missing packets) and wasteful retransmissions (all data from the lost point forward), helping engineers diagnose TCP performance issues.
🗂️ Topics Covered
The lecture covers the concept of SACK in TCP, how missing packet recovery differs with and without SACK, and a practical three-step Wireshark lab using tr-general101d.pcapng. It explains how to locate Duplicate ACKs via the Expert Infos window and use them to infer SACK usage when handshake packets are unavailable.
📝 Lecture Summary
Determining if SACK is in Use by Examining Duplicate ACKs in Wireshark
When two TCP hosts communicate and are using SACK, only the missing packets are retransmitted. If SACK is not in use, many unnecessary retransmissions will be generated — the sender retransmits every data packet starting from the missing sequence number. If the TCP handshake packets are not captured, we can examine duplicate ACKs to determine if SACK is enabled on the connection.
💡 Why this matters: SACK saves network bandwidth and reduces retransmission overhead. Without it, a single lost packet causes the sender to resend all subsequent data, even if only one segment was lost.
🔑 Definition — Selective ACK (SACK): A TCP mechanism that allows the receiver to acknowledge non-contiguous data blocks, enabling the sender to retransmit only the missing segments rather than everything after the loss.
Step 1: Open tr-general101d.pcapng
This step involves loading the capture file tr-general101d.pcapng in Wireshark.
Step 2: Click the Expert Infos Button on the Status Bar
The Expert Infos button is located on the Status Bar at the bottom of the Wireshark window. Clicking it opens a diagnostic window that analyzes the capture for notable events.
Step 3: Duplicate ACKs Can Be Located by Clicking on the Notes Tab
In the Expert Infos window, click the Notes tab. This tab displays a list of all noted events, including Duplicate ACKs. The text mentions that in one example, the TCP receiver requested a missing packet 809 times, indicating a packet was lost and recovery took significant time due to path latency or network disconnect. Finally, close the Expert Infos window after inspection.
⭐ Key Takeaways
The fundamental difference between SACK and non-SACK TCP retransmission behavior is critical: with SACK only the missing packet is resent, without SACK all data from the missing sequence number must be retransmitted. When handshake packets are not available, you must examine Duplicate ACKs in the Expert Infos Notes tab to infer SACK usage. A high count of duplicate ACKs (e.g., 809 times) suggests either SACK is not in use or there is severe path latency/disconnect. Always use the Expert Infos button on the Status Bar to access diagnostic information.
🧠 Quick Revision Questions
- What is the key benefit of SACK compared to non-SACK retransmission?
- How can you determine if SACK is enabled when the TCP handshake packets are missing?
- Where is the Expert Infos button located in Wireshark, and which tab shows Duplicate ACKs?
- What does it imply when the TCP receiver reports a missing packet 809 times?
- What happens to retransmissions if SACK is NOT in use?
📘 Lecture 150 — Out-of-Order Packets and their Causes
📖 Overview: This lecture examines the phenomenon of out-of-order packet delivery in TCP/IP networks, where packets arrive at the destination in a different sequence than they were sent. Understanding the causes and detection of out-of-order packets is critical for diagnosing network performance issues and troubleshooting application delays, as TCP cannot deliver data to the application until all bytes are correctly sequenced.
🗂️ Topics Covered
The lecture covers the definition and implications of out-of-order packets, the use of selective acknowledgments (SACK) with left edge (SLE) and right edge (SRE) information to identify missing or misordered segments, and a detailed step-by-step analysis in Wireshark to locate and interpret these TCP header fields for diagnosing such conditions.
📝 Lecture Summary
Out-of-Order Packets and their Causes
On a receiving host, the transmission control protocol (TCP) layer cannot pass the received data up to the application layer until all bytes are in the correct order. When packets arrive out of sequence — for example, packet 5 arrives before packet 4 — TCP must hold the later-arriving data in its buffer, waiting for the missing segments. This condition, termed out-of-order delivery, can be caused by network load balancing over multiple paths, router queuing variations, or parallel processing in high-speed switches.
💡 Why this matters: Out-of-order packets force TCP to use acknowledgment mechanisms (like duplicate ACKs or SACK) to request retransmission of missing data, increasing latency and reducing throughput for the application.
🔑 Definition — Out-of-Order Packet: A packet that arrives at the destination with a sequence number that is not the next expected sequence number, forcing TCP to buffer it until missing bytes are recovered.
📐 Formula: Sequence Number Order → Correct: [SEQ=100, SEQ=200, SEQ=300]; Out-of-Order: [SEQ=100, SEQ=300, SEQ=200] → Receiver holds SEQ=300 buffer until SEQ=200 arrives.
📌 Example: In Wireshark, when analyzing a TCP stream, if packet 10,420 arrives with a sequence number indicating it is not the next expected byte, the Info column will show SACK Left Edge (SLE) and SACK Right Edge (SRE) values. Expanding the TCP header in packet 10420 under the Options area reveals the exact SLE and RLE values, which specify the byte range of missing data the receiver is acknowledging.
⭐ Key Takeaways
Students must remember that out-of-order packets prevent TCP from delivering data to the application layer immediately, causing buffering delays. The primary tool for identifying out-of-order segments in Wireshark is the Selective Acknowledgment (SACK) option, which uses SACK Left Edge (SLE) and SACK Right Edge (SRE) fields to indicate which byte ranges have been received out of order. To analyze this, expand the Duplicate ACK packet (e.g., packet 10,420) and locate the SLE/SRE values in the TCP header's Options area. The lecture's step-by-step procedure for Wireshark is critical for practical network troubleshooting.
🧠 Quick Revision Questions
- Why can the TCP layer not pass received data to the application layer when packets arrive out of order?
- What does SACK stand for, and what information does it convey in the TCP header?
- In Wireshark, which field in the Info column indicates the presence of out-of-order packet data?
- What are SLE and RLE, and where exactly in the packet structure are they found?
- Name two common causes of out-of-order packet delivery in modern networks.
📘 Lecture 151 — Wireshark Lab 53
📖 Overview: This lecture examines the phenomenon of out-of-order packet delivery in TCP networks. It explains the causes of out-of-order packets, how Wireshark identifies them, and provides a hands-on lab exercise to detect and count these packets using Wireshark's display filter.
🗂️ Topics Covered
The lecture begins by defining out-of-order packets and the specific conditions Wireshark uses to label them as such. It then covers the primary causes of out-of-order delivery, including multiple speed paths, poor queuing configuration, and asymmetric routing. The second half of the lecture provides a step-by-step Wireshark lab exercise to filter and count out-of-order packets in a sample capture file.
📝 Lecture Summary
Let’s assume a scenario where two packets arrive at a host in reverse order
Out-of-order packet delivery occurs when packets arrive at a destination in a different sequence than they were sent. The lecture presents a scenario where two packets arrive within 1 ms in reverse order, noting that this is unlikely to cause performance problems. A small time gap between expected and actual arrival of out-of-order packets generally does not affect performance.
🔑 Definition — Out-of-Order Packet: A packet that Wireshark labels as out-of-order if it meets three conditions: (a) contains data, (b) does not advance the sequence number value, and (c) arrives within 3 ms of the highest sequence number seen.
💡 Why this matters: Wireshark's 3 ms threshold means not every out-of-sequence packet is flagged — only those arriving near the expected time are labeled, reflecting real-world tolerance for minor reordering.
Causes of Out-of-Order Packets
The lecture identifies three primary causes of out-of-order packet delivery:
- A stream using multiple different speed paths to reach the target, where packets take different routes with varying transmission speeds
- A poorly configured queuing along a path, where the queuing device does not forward packets in first-in/first-out (FIFO) order
- Asymmetric routing, where packets in the same stream travel different paths to the destination
🔑 Definition — Asymmetric routing: A network condition where packets in the same TCP stream take different paths to reach the destination, potentially causing out-of-order arrival.
📌 Example: If a queuing device processes packets in a non-FIFO order (e.g., prioritizing certain packets regardless of arrival sequence), packets that were sent later may arrive before earlier packets, causing out-of-order delivery at the receiving host.
Topic 151: Wireshark Lab 53
This section provides a hands-on lab exercise to count out-of-order packets using a Wireshark display filter. The lab uses a sample capture file to demonstrate the detection process.
Step 1: Open the capture file tr-general101d.pcapng.
Step 2: Enter the expression tcp.analysis.out_of_order in the display filter area and click Apply.
📐 Formula: tcp.analysis.out_of_order → [This is a pre-defined Wireshark display filter that shows only packets flagged as out-of-order based on the three conditions described above]
📌 Example: After applying the filter to tr-general101d.pcapng, Wireshark detected 8 Out-of-Order packets as indicated by the Status Bar. Examining the packet numbers revealed specific packets were flagged, though the exact numbers are not specified in the lecture.
⭐ Key Takeaways
Out-of-order packets occur when packets arrive in a different sequence than sent, and Wireshark flags them only if they contain data, don't advance the sequence number, and arrive within 3 ms of the highest sequence number. The three main causes are multiple speed paths, non-FIFO queuing, and asymmetric routing. A small timing difference between expected and actual arrival (within 1 ms) is unlikely to affect performance. Wireshark's specific filter tcp.analysis.out_of_order can detect and count these packets, as demonstrated in the lab where 8 out-of-order packets were found in the sample capture. Understanding these conditions is essential for network troubleshooting and performance analysis.
🧠 Quick Revision Questions
- What three conditions must a packet meet for Wireshark to label it as out-of-order?
- Name the three primary causes of out-of-order packet delivery.
- In the lab exercise, how many out-of-order packets did Wireshark detect in the tr-general101d.pcapng file?
- What does "asymmetric routing" mean in the context of out-of-order packets?
- Why might a small time gap (like 1 ms) between expected and actual arrival of out-of-order packets not cause performance problems?
📘 Lecture 152 — Wireshark Lab 54
📖 Overview: This lecture teaches how to identify out-of-order packets using Wireshark's Expert Infos feature and manual analysis of sequence numbers. It covers the practical steps for detecting packet loss patterns when multiple out-of-order packets appear in close proximity, which indicates retransmissions.
🗂️ Topics Covered
The lecture covers two main activities: using Wireshark's Expert Infos to find out-of-order packets and setting up custom columns (SEQ#, NEXTSEQ#, ACK#) for deeper packet analysis. It explains the significance of out-of-order packets appearing in close proximity as an indicator of packet loss and retransmissions.
📝 Lecture Summary
Step 1: Open the capture file
Open the file tr-general101d.pcapng in Wireshark.
Step 2: Access Expert Infos
On the Status Bar, click the Expert Infos button. This opens the Expert Infos dialog window.
💡 Why this matters: Expert Infos provides a summary of all Wireshark-detected anomalies, including out-of-order packets, without manually scanning the packet list.
Step 3: Find Out-of-Order Warnings
Click the Warnings tab. Expand the Out-of-Order segment section to see all out-of-order packets.
🔑 Definition — Out-of-Order segment: A packet whose Sequence Number (SEQ#) is lower than the Expected Sequence Number (i.e., the Next Sequence Number of the previous packet), or whose SEQ# is less than previously seen SEQ# values.
Click on the first entry — Packet 4,206. Then click the Close button to return to the main Wireshark window.
📌 Example: In this capture, Packet 4,206 and Packet 32,018 are identified as out-of-order packets. The remaining 6 packets belong to a group of out-of-order packets in close proximity.
Interpreting Out-of-Order Proximity
If you find multiple Out-of-Order packets in close proximity, then it is likely that a set of packets have been lost. These packets are Retransmissions that arrived within 3 ms.
💡 Why this matters: A cluster of out-of-order packets within a short time window (~3 ms) strongly suggests packet loss followed by rapid retransmission, not just network reordering.
Step 4: Create Custom Columns
If you have previously created SEQ#, NEXTSEQ#, and ACK# columns, right-click on any column heading and display them. Otherwise, create them as follows:
- Select the Sequence number field in the TCP header of any packet.
- Right-click and choose Apply as a Column.
- Rename the column as SEQ# by right-clicking on the column and selecting Edit Column Details.
📌 Example: Creating the SEQ# column allows you to manually verify out-of-order conditions by comparing the SEQ# of each packet against the NEXTSEQ# of the previous packet.
Step 5: Clear the filter
When you are done analyzing, click the Clear button to remove the filter.
⭐ Key Takeaways
Out-of-order packets in Wireshark are detected through Expert Infos under the Warnings tab, specifically in the Out-of-Order segment section. Multiple out-of-order packets appearing in close proximity (within 3 ms) strongly indicate actual packet loss, where the out-of-order packets are retransmissions of lost packets. To manually verify this, you must create SEQ#, NEXTSEQ#, and ACK# columns using the Apply as a Column feature on TCP header fields. The key diagnostic pattern is a cluster of out-of-order packets rather than isolated ones.
🧠 Quick Revision Questions
- What is the first step to find out-of-order packets in Wireshark?
- In which tab of the Expert Infos dialog do you find Out-of-Order segments?
- What does it mean if multiple out-of-order packets appear in close proximity (within 3 ms)?
- How do you create a custom SEQ# column in Wireshark?
- Which two packet numbers are specifically identified as out-of-order in this lecture?
Here is the summary of Lecture 154, formatted exactly as requested.
📘 Lecture 154 — Wireshark Lab 55
📖 Overview: This is a hands-on lab lecture where students learn how to use Wireshark to identify and count fast retransmission packets. The lecture reinforces the theory of fast retransmissions by applying a specific display filter to a real packet capture file, teaching students how to diagnose packet loss from a network analysis perspective.
🗂️ Topics Covered
This lecture guides students through a single, practical Wireshark exercise. The topics covered are opening a specific packet capture file (tr-general101d.pcapng) and applying the display filter tcp.analysis.fast_retransmission to isolate and count fast retransmission packets. The core skill being taught is how to translate theoretical knowledge about fast retransmissions into a practical network analysis technique.
📝 Lecture Summary
Topic 154: Wireshark Lab 55
This topic provides step-by-step instructions for a lab exercise to identify fast retransmission packets using Wireshark. The goal is to put into practice the concepts of fast retransmissions and duplicate ACKs by analyzing a real network capture.
Step 1: Open tr-general101d.pcapng.
The first step is to load the provided packet capture file into Wireshark. This file contains the network traffic that will be analyzed.
Step 2: Enter the filter tcp.analysis.fast_retransmission in the display filter area. Click Apply.
The core of the lab is to use Wireshark’s expert analysis feature. The tcp.analysis.fast_retransmission filter is a built-in Wireshark display filter that is not a simple protocol field value, but rather an expert indicator. When applied, Wireshark will automatically evaluate all TCP segments in the capture and only show those that it identifies as a fast retransmission. This allows the user to count the number of packets suspected to be part of a fast retransmission event.
🔑 Definition — Fast Retransmission (Wireshark context): A packet identified by Wireshark's expert analysis engine based on the presence of at least three duplicate ACKs and a retransmitted segment that matches the sequence number of the missing segment. 💡 Why this matters: This lab transforms the theoretical cause of fast retransmissions (three duplicate ACKs) into a practical, verifiable, and countable event in network traffic, which is a critical skill for network troubleshooting.
⭐ Key Takeaways
The single, critical task in this short lab is learning to use the Wireshark display filter tcp.analysis.fast_retransmission to automatically detect and isolate fast retransmission packets. This filter is an expert analysis tool that leverages Wireshark’s internal logic, not a simple packet header field match. Applying this filter is the primary method for counting fast retransmission events in a capture file. For the exam, you must know this specific filter and its function to identify packet loss as seen by the sender.
🧠 Quick Revision Questions
- What is the exact display filter used in this lab to find fast retransmission packets?
- What is the name of the packet capture file used in this lab?
- Is
tcp.analysis.fast_retransmissiona simple field filter or an expert analysis filter? - What network event do fast retransmission packets indicate?
- After applying the filter, what is the main action a Wireshark user can perform to analyze the results?
📘 Lecture 155 — Wireshark Lab 56
📖 Overview: This lecture demonstrates how to identify and analyze Fast Retransmission packets using Wireshark's Expert Infos feature. It is critical for understanding TCP retransmission behavior and troubleshooting network performance issues.
🗂️ Topics Covered
The lecture covers detecting Fast Retransmissions via the Wireshark Status Bar, expanding the [SEQ/ACK analysis] section (cyan color), understanding that Fast Retransmission is a subset of Retransmission in Expert Infos, clearing filters after analysis, opening the trace file tr-general101d.pcapng, and navigating the Expert Infos Notes tab to locate Fast Retransmission entries starting at Packet 12,035.
📝 Lecture Summary
Detecting Fast Retransmissions in the Status Bar
In the trace file, Wireshark detects two Fast Retransmissions as indicated by the Status Bar. This is the first visual clue that TCP is retransmitting segments before the retransmission timer expires.
🔑 Definition — Fast Retransmission: A TCP mechanism that triggers retransmission of a lost segment after receiving three duplicate ACKs, without waiting for the retransmission timeout. 💡 Why this matters: Fast Retransmission speeds up recovery from packet loss, improving TCP throughput.
Expanding the [SEQ/ACK analysis] Section
Step 3 instructs to expand the [SEQ/ACK analysis] section on one of the Fast Retransmission packets. Wireshark colors this area cyan, matching the color of the Expert Infos Notes. There are two Expert Infos indications marked on this single packet: the frame is labeled both a Fast Retransmission and a Retransmission — meaning Fast Retransmission is a specific type of Retransmission.
📌 Example: Packet marked as both "Fast Retransmission" and "Retransmission" — the former is a subset of the latter.
Clearing the Filter
Step 4: Click the Clear button to remove any applied filter after finishing the analysis. This ensures the display returns to all packets.
Opening the Trace File and Using Expert Infos
Topic 155: Wireshark Lab 56 — This topic focuses on finding fast retransmission packets with Expert Infos in Wireshark.
Step 1: Open tr-general101d.pcapng.
Step 2: Click the Expert Infos button on the Status Bar.
Step 3: Click the Notes tab. Scroll through the list. As you find the Fast Retransmissions section, expand it and click on the first entry, Packet 12,035. This navigates directly to the first Fast Retransmission packet in the trace.
⭐ Key Takeaways
Fast Retransmissions are detectable through Wireshark's Status Bar and Expert Infos Notes tab. Each Fast Retransmission packet has two Expert Infos labels: "Fast Retransmission" and "Retransmission," with the former being a subset of the latter. The [SEQ/ACK analysis] section is color-coded cyan for these events. The trace file for this lab is tr-general101d.pcapng, and the first Fast Retransmission packet is Packet 12,035. Always remember to clear filters after analysis.
🧠 Quick Revision Questions
- What two Expert Infos indications are marked on a Fast Retransmission packet?
- What color does Wireshark use for the [SEQ/ACK analysis] section in Fast Retransmissions?
- Which trace file is used in this lab?
- What is the packet number of the first Fast Retransmission entry in the Notes tab?
- Why is it important to click the Clear button after analyzing filters?
📘 Lecture 156 — Causes of Retransmissions
📖 Overview: This lecture examines how Wireshark identifies retransmissions and their underlying causes. It uses a detailed packet capture analysis to show the relationship between duplicate ACKs, fast retransmission, and the timing involved in TCP recovery. Understanding these mechanisms is critical for diagnosing network performance issues.
🗂️ Topics Covered
The lecture covers the observation of 808 Duplicate ACKs before Fast Retransmission, how to display SEQ#, NEXTSEQ#, and ACK# columns in Wireshark, the TCP Delta column showing retransmission timing within 20 ms of the last Duplicate ACK, and the definition of what Wireshark considers a Retransmission packet.
📝 Lecture Summary
We can observe that there are 808 Duplicate ACKs before the Fast Retransmission packet. Return to the main Wireshark window after clicking the Close button. Step 4: If you have created SEQ#, NEXTSEQ# and ACK# columns, then you can display them by right-clicking on a column and selecting them from Displayed Columns.
The packet capture analysis reveals 808 Duplicate ACKs were sent before the Fast Retransmission occurred. After closing the dialog box, you return to the main Wireshark window. To view key TCP sequence numbers, you can create SEQ#, NEXTSEQ#, and ACK# columns by right-clicking on an existing column and selecting them from the Displayed Columns menu.
From the TCP Delta column, we can see that the Fast Retransmission occurred within 20 ms of the last Duplicate ACK. If you consider time, you will find that only about 465 ms have passed between when packet with sequence number 9,164,761 went missing and when Fast Retransmission was initiated. Although there were 808 Duplicate ACKs, but this ½–second delay would be unnoticeable by the user.
The TCP Delta column shows the Fast Retransmission occurred within 20 ms of the last Duplicate ACK. Only about 465 ms elapsed between the loss of packet with sequence number 9,164,761 and the initiation of Fast Retransmission. Despite the 808 Duplicate ACKs, this half-second delay would be unnoticeable to the user. 💡 Why this matters: This demonstrates that even a large number of duplicate ACKs can result in a very short, user-transparent recovery time.
Topic 156: Causes of Retransmissions
This topic describes retransmissions and their causes.
Wireshark considers a packet to be a Retransmission if the segment contains data or has the SYN or FIN bits set to 1. Sequence number is not advanced by the segment.
Wireshark identifies a packet as a Retransmission when the segment either contains data or has the SYN or FIN bits set to 1. Crucially, the sequence number is not advanced by the segment — meaning it carries the same sequence number as a previously transmitted packet.
🔑 Definition — Retransmission: A packet that Wireshark labels as a retransmission if the segment contains data, or has the SYN or FIN bit set to 1, and the sequence number is not advanced by the segment.
📐 Formula: Retransmission detection condition: (segment contains data OR SYN=1 OR FIN=1) AND (sequence number not advanced)
📌 Example: Packet with sequence number 9,164,761 was lost. The receiver sent 808 Duplicate ACKs for this missing sequence number. The sender then retransmitted packet with sequence number 9,164,761 within 20 ms of the last Duplicate ACK, and about 465 ms after the original packet was lost.
⭐ Key Takeaways
Wireshark identifies retransmissions by checking if a segment contains data or has SYN/FIN bits set to 1, with no advancement of the sequence number. In the example, 808 Duplicate ACKs were sent before Fast Retransmission was triggered, yet only 465 ms passed from packet loss to recovery. The TCP Delta column shows the retransmission occurred within 20 ms of the last Duplicate ACK. This half-second delay is imperceptible to the user, proving TCP's fast recovery is effective. You can display SEQ#, NEXTSEQ#, and ACK# columns by right-clicking and selecting from Displayed Columns.
🧠 Quick Revision Questions
- What criteria does Wireshark use to identify a packet as a Retransmission?
- How many Duplicate ACKs were observed before the Fast Retransmission in the example?
- What does the TCP Delta column reveal about the timing of the Fast Retransmission relative to the last Duplicate ACK?
- How much time elapsed between the loss of packet sequence number 9,164,761 and the Fast Retransmission?
- Why is the half-second delay from packet loss to retransmission considered unnoticeable to the user?
📘 Lecture 157 — Wireshark Lab 57
📖 Overview: This lecture explains the role of the Retransmission Time Out (RTO) timer in TCP and how standard retransmissions differ from fast retransmissions. It then provides a practical Wireshark lab to filter and count retransmission packets, with guidance on excluding fast retransmissions to isolate standard ones.
🗂️ Topics Covered
The lecture begins by distinguishing when duplicate ACKs do not trigger retransmission, leading to an RTO. It defines the RTO timer, its calculation based on round-trip time, and its purpose to ensure data delivery even if the TCP peer stops ACKing. Next, it describes what causes retransmissions when the RTO expires. Finally, it presents Wireshark Lab 57, including steps to apply the tcp.analysis.retransmission filter and exclude fast retransmissions.
📝 Lecture Summary
Why Duplicate ACKs Have Not Triggered Retransmission
Duplicate ACKs have not triggered a retransmission. The segment arrives more than 3 ms later than the previous packet with a higher sequence number. A Retransmission Time Out (RTO) at a sender triggers Standard Retransmissions. The RTO timer is used to ensure data delivery continues even if the TCP peer stops communicating (with ACKs). Each TCP host calculates and maintains an RTO timer. This timer value is based on the round trip time learned through previous data transmissions and related acknowledgments. The RTO value consistently changes through the conversation.
💡 Why this matters: The RTO is a dynamic timer that adapts to network conditions, and understanding when it fires (instead of fast retransmit) helps diagnose network delays or complete communication failures.
🔑 Definition — Retransmission Time Out (RTO): A timer calculated by each TCP host based on observed round-trip times; if it expires without receiving an ACK for a sent data packet, the sender retransmits the unacknowledged packet.
What Causes Retransmissions?
A TCP host begins counting down the RTO when it sends a data packet. The sender retransmits the unacknowledged data packet if the RTO timer expires without receiving an ACK for that data packet. The sender has no idea whether the original packet was lost or the acknowledgment was lost. The sender just knows that there is some problem because it did not receive an ACK within the RTO.
📐 Concept: RTO expiration → Standard Retransmission. The sender cannot distinguish between a lost data packet and a lost ACK.
Topic 157: Wireshark Lab 57
This topic uses a filter to count retransmission packets in Wireshark. Applying tcp.analysis.retransmission in Wireshark as a filter for Retransmissions will also display Fast Retransmissions. You need to exclude Fast Retransmissions in the filter if you are interested in seeing packets that are only labeled as standard Retransmissions.
Step 1: Open tr-general101d.pcapng.
Step 2: Enter the filter tcp.analysis.retransmission in the display filter area. Click Apply.
🔑 Important Distinction: The tcp.analysis.retransmission filter shows both standard and fast retransmissions. To see only standard retransmissions, you must explicitly exclude fast retransmissions from the filter.
⭐ Key Takeaways
The RTO timer is a critical fallback mechanism that ensures data delivery when TCP’s fast retransmit mechanism (triggered by duplicate ACKs) fails to act. An RTO expires when no ACK is received within a dynamically calculated time window, and the sender blindly retransmits without knowing whether the data or ACK was lost. In Wireshark, the tcp.analysis.retransmission filter captures all retransmissions, so isolating standard RTO-triggered ones requires removing fast retransmissions. For the exam, remember that RTO is based on round-trip time measurements, that it constantly changes, and that it is the last-resort mechanism to recover lost segments.
🧠 Quick Revision Questions
- What event at the sender triggers a standard retransmission?
- What information does the sender lack when an RTO expires?
- Why does the RTO timer value change throughout a TCP conversation?
- What Wireshark filter displays both standard and fast retransmissions?
- How can you modify the display filter to show only standard retransmissions (excluding fast retransmissions)?
📘 Lecture 158 — Wireshark Lab 58
📖 Overview: This lecture demonstrates how to identify and filter retransmission packets using Wireshark's Expert Infos feature. It explains how to distinguish between regular retransmissions and Fast Retransmissions, and how to analyze sequence numbers to understand the timing of retransmission events.
🗂️ Topics Covered
The lecture covers detecting retransmissions from the Status Bar, filtering between retransmissions and Fast Retransmissions, using the Expert Infos dialog to explore retransmission packets, creating and using SEQ# columns, and setting time references to analyze packet timing relative to retransmissions.
📝 Lecture Summary
Retransmission Detection from Status Bar
The Status Bar in Wireshark provides a quick overview of detected retransmissions. In the trace file, Wireshark detected 580 Retransmissions, which includes two Fast Retransmissions.
🔑 Definition — Retransmission: A packet that is sent again because the original packet was lost or corrupted in transmission. 🔑 Definition — Fast Retransmission: A retransmission that occurs before the normal retransmission timer expires, triggered by receiving duplicate ACKs.
📌 Example: Filter tcp.analysis.retransmission && !tcp.analysis.fast_retransmission shows 578 packets — removing the two Fast Retransmissions from the view.
💡 Why this matters: Distinguishing between regular retransmissions and Fast Retransmissions helps diagnose different types of network problems (e.g., packet loss vs. out-of-order delivery).
Finding Retransmission Packets with Expert Infos
The Expert Infos dialog provides a structured view of Wireshark's analysis of the trace file, including retransmission events.
Step 1: Open tr-general101d.pcapng.
Step 2: Click the Expert Infos button on the Status Bar.
Step 3: Click the Notes tab, scroll through the list, expand the Retransmissions section, and click on Packet 12,259. This navigates to the Main window.
Step 4: Close the Expert Infos dialog.
Creating SEQ# and ACK# Columns
To analyze retransmission timing, you need to create columns for Sequence Number (SEQ#) and Next Sequence Number (NEXTSEQ#).
Step 1: Right-click on any column heading and display SEQ#, NEXTSEQ#, and ACK# columns if previously created. Otherwise, create them. Step 2: Select the Sequence number field in the TCP header of a packet. Step 3: Right-click and select Apply as a Column. Step 4: Rename the column as SEQ# by right-clicking on the column and selecting Edit Column Details.
🔑 Definition — Set Time Reference (toggle): A Wireshark feature that sets the selected packet as time zero (0.000), making it easier to measure relative times of subsequent packets.
📌 Example: Scroll up to find Packet 12,246 — a data packet from 10.9.9.9 with the highest Sequence No. field value at that point in the trace. Right-click on Packet 12,246 and select Set Time Reference (toggle) to make it the reference point.
💡 Why this matters: Setting a time reference on the packet with the highest sequence number before the retransmission helps calculate how quickly the retransmission occurred, which is crucial for understanding network performance.
⭐ Key Takeaways
The most critical skills from this lecture are: (1) using the Status Bar to quickly see retransmission counts; (2) filtering retransmissions to exclude Fast Retransmissions for more accurate analysis; (3) navigating to retransmission packets through Expert Infos for detailed inspection; (4) creating and using SEQ#, NEXTSEQ#, and ACK# columns to analyze sequence numbers; (5) setting time references to measure relative timing of retransmission events. Students must be able to distinguish between regular retransmissions and Fast Retransmissions, and explain why a packet with the highest sequence number is chosen as the time reference point.
🧠 Quick Revision Questions
- How many total Retransmissions are detected in the Status Bar, and how many of these are Fast Retransmissions?
- What filter removes Fast Retransmissions from the display, and how many packets match this filter?
- Which packet in the Expert Infos Notes tab is selected to navigate to the Main window?
- What is the purpose of setting a time reference on Packet 12,246?
- Why is Packet 12,246 chosen as the reference packet rather than a later or earlier packet?
📘 Lecture 159 — Causes of ACKed Unseen Segments
📖 Overview: This lecture explains the concept of ACKed Unseen Segments in Wireshark, a condition where Wireshark observes an acknowledgment (ACK) but did not capture the corresponding data packet being acknowledged. Understanding this phenomenon is crucial for network troubleshooting, as it often indicates packet loss or capture problems rather than actual network errors.
🗂️ Topics Covered
The lecture defines what an ACKed Unseen Segment is, explains how Wireshark tracks sequence numbers and acknowledgment numbers to detect missing packets, and then covers the primary cause of this condition: problems during the capture process, specifically when a switch is oversubscribed during switch port spanning.
📝 Lecture Summary
Topic 159: Causes of ACKed Unseen Segments
What is ACKed Unseen Segment? When Wireshark sees an ACK, but it did not see the data packet that is being acknowledged, it calls it an ACK Unseen Segment. For each host, Wireshark keeps a track of sequence number, next sequence number, and acknowledgment number values. Wireshark also keeps a track of a "Maximum Sequence Number to be ACKed" (maxseqtobeacked) value. This value gets updated as data is received. If Wireshark sees an ACK to acknowledge a data packet that has a higher Sequence Number field value than maxseqtobeacked, then it shows that it has missed the data packet that is being ACKed. For example, let's assume that Wireshark is running on a client which is communicating with a server. An ACK being sent to acknowledge all sequence numbers up to 9,380 has been captured.
🔑 Definition — ACKed Unseen Segment: A Wireshark indicator that appears when an acknowledgment packet is captured, but the data packet being acknowledged was not captured.
💡 Why this matters: This condition does not necessarily mean the data packet was lost on the network; it often means Wireshark never received it due to capture limitations.
Causes of ACKed Unseen Segment: Problems occurring during the capture process can cause ACKed Unseen Segments. If the switch is oversubscribed when you are using switch port spanning, then it is dropping packets that should have been forwarded to Wireshark.
📐 Formula: Cause → Switch oversubscription + Switch port spanning → Dropped packets → Wireshark misses data packets → ACKed Unseen Segment
💡 Why this matters: The root cause is typically a capture infrastructure problem, not a network communication failure.
⭐ Key Takeaways
ACKed Unseen Segments occur when Wireshark sees an acknowledgment for a data packet it never captured. Wireshark detects this by comparing the acknowledgment's sequence number against its internally tracked "Maximum Sequence Number to be ACKed" (maxseqtobeacked) value. The primary cause discussed in this lecture is problems during the capture process, specifically when a switch becomes oversubscribed while using switch port spanning, causing it to drop packets before they reach Wireshark.
🧠 Quick Revision Questions
- What does Wireshark call it when it sees an ACK but not the corresponding data packet?
- What internal value does Wireshark track to detect that it missed a data packet being acknowledged?
- What is the main cause of ACKed Unseen Segments discussed in this lecture?
- How does a switch being oversubscribed lead to ACKed Unseen Segments when using switch port spanning?
- Does an ACKed Unseen Segment always mean the data packet was lost on the network?
📘 Lecture 160 — Wireshark Lab 59
📖 Overview: This lecture demonstrates how to use a specific Wireshark display filter to identify and count ACKed Unseen Segment warnings in a packet capture. It explores the cause of this warning, focusing on asymmetric routing as a key network phenomenon. Understanding this filter is crucial for diagnosing network performance issues where data and acknowledgments travel different paths.
🗂️ Topics Covered
This lecture covers the concept of ACKed Unseen Segments in Wireshark, the role of asymmetric routing in causing these warnings, and a step-by-step lab procedure to apply the tcp.analysis.ack_lost_segment filter and view the count in the Status Bar.
📝 Lecture Summary
B) Asymmetric routing can cause ACKed Unseen Segments
Asymmetric routing occurs when data is transmitted along one network path while the corresponding ACKs (acknowledgments) travel along a different path. In this scenario, Wireshark captures the ACKs but fails to capture the original data segments they acknowledge. This results in a warning that the segments were "unseen" or lost from the capture’s perspective, even though they may have actually reached the destination via an alternate route.
💡 Why this matters: Asymmetric routing is common in complex networks and can generate false positive warnings in Wireshark, making it important to recognize this cause before diagnosing actual packet loss.
🔑 Definition — Asymmetric routing: A network condition where data packets and their corresponding acknowledgment packets traverse different paths between source and destination.
Step 1: Open tr-badcapture.pcapng
The lab begins by opening the provided capture file named tr-badcapture.pcapng. This file contains network traffic that is expected to produce ACKed Unseen Segment warnings.
Step 2: Enter the filter expression
The student enters the display filter expression tcp.analysis.ack_lost_segment into the Wireshark display filter area and clicks Apply. This filter isolates all packets that are associated with the ACKed Unseen Segment warning.
📐 Formula: tcp.analysis.ack_lost_segment → This filter shows only packets where Wireshark detected an acknowledgment for a segment that was not seen in the capture.
📌 Example: After applying the filter to tr-badcapture.pcapng, the Wireshark Status Bar displays the message "Displayed: 24 packets (24…)". This confirms that Wireshark detected exactly 24 ACKed Unseen Segments in the capture.
⭐ Key Takeaways
The critical point is that ACKed Unseen Segments do not always indicate actual packet loss; they can result from asymmetric routing where data and ACKs take different network paths. The specific filter tcp.analysis.ack_lost_segment is used to isolate these warnings, and the count appears in the Wireshark Status Bar. In this lab, exactly 24 such segments were identified. Recognizing asymmetric routing as a common cause helps avoid misinterpreting the warning as real data loss.
🧠 Quick Revision Questions
- What does the Wireshark filter
tcp.analysis.ack_lost_segmentspecifically detect? - How does asymmetric routing cause an ACKed Unseen Segment warning?
- In the lab, what was the exact number of ACKed Unseen Segments displayed after applying the filter?
- Where in the Wireshark interface does the count of filtered packets appear?
- Why might an ACKed Unseen Segment warning be a false positive for actual packet loss?
📘 Lecture 161 — Wireshark Lab 60
📖 Overview: This lecture demonstrates how to identify ACKed Unseen Segment indications in Wireshark using the Expert Infos tool. It provides a step-by-step procedure to locate packets where an acknowledgment (ACK) refers to a segment that was not captured, which is common at capture start. Understanding this helps in diagnosing packet capture issues and validating TCP sequence analysis.
🗂️ Topics Covered
The lecture covers opening a bad capture file (tr-badcapture.pcapng), accessing the Expert Infos button on the Status Bar, navigating to the Warnings tab to find "ACKed segment that wasn't captured" entries, and examining Packet 15 while displaying SEQ#, NEXTSEQ#, and ACK# columns for analysis.
📝 Lecture Summary
Using Expert Infos to Find ACKed Unseen Segments
In this step, you open a specific capture file and use the Expert Infos feature to locate warnings about ACKed Unseen Segments. These are packets where an acknowledgment references a data segment that Wireshark did not capture. The procedure ensures you can identify such anomalies quickly.
🔑 Definition — ACKed Unseen Segment: A TCP packet that acknowledges a sequence number belonging to a segment that was not captured in the trace, often occurring at the start of a capture when a connection was already established.
Step 1: Open tr-badcapture.pcapng.
Step 2: Click the Expert Infos button on the Status Bar.
Step 3: Click the Warnings tab. Expand the section with title ACKed segment that wasn't captured (common at capture start).
Step 4: Click on the first entry, Packet 15, and then click the Close button. Now go to the main Wireshark window. Display the SEQ#, NEXTSEQ#, and ACK# columns.
📌 Example: In the provided capture, Packet 15 is identified as the first occurrence of an ACKed Unseen Segment warning. After closing Expert Infos, you would see the sequence numbers: SEQ# (the segment's own sequence number), NEXTSEQ# (the next expected sequence number), and ACK# (the acknowledgment number pointing to the unseen segment).
💡 Why this matters: ACKed Unseen Segments are common at capture start because the capture begins after the TCP handshake. Recognizing them prevents false conclusions about missing retransmissions or duplicate ACKs.
⭐ Key Takeaways
Students must remember that the Expert Infos tool provides a quick summary of packet anomalies, including warnings. For this lecture, the critical skill is locating ACKed Unseen Segment warnings under the Warnings tab, expanding the specific entry, and selecting the first packet (Packet 15) for detailed analysis. Displaying SEQ#, NEXTSEQ#, and ACK# columns is essential to visually confirm the acknowledgment sequence numbers. This warning is normal at capture start and indicates the capture began after the connection was established, not a network error.
🧠 Quick Revision Questions
- What is the file name used in this lecture’s lab?
- Which tab in Expert Infos contains the “ACKed segment that wasn’t captured” warning?
- What packet number is identified as the first entry of this warning?
- After closing Expert Infos, which three columns must be displayed to examine the TCP sequence numbers?
- Why is an ACKed Unseen Segment considered common at capture start?
📘 Lecture 163 — Wireshark Lab 61
📖 Overview: This is a hands-on lab that teaches you how to use a Wireshark display filter to identify and count Keep Alive and Keep Alive ACK packets in a packet capture file. Understanding how to filter these packets is essential for troubleshooting dead TCP connections and analyzing idle connection behavior.
🗂️ Topics Covered
This lab focuses on a single practical exercise: using the display filter tcp.analysis.keep_alive || tcp.analysis.keep_alive_ack on the provided tr-keepalives.pcapng capture file to isolate and count Keep Alive related packets in Wireshark.
📝 Lecture Summary
Wireshark Lab 61: Filtering Keep Alive Packets
This is a step-by-step lab that demonstrates how to apply a specific display filter in Wireshark. The goal is to count Keep Alive and Keep Alive ACK packets within a given trace file. You must follow the exact steps in order.
Step 1: Open the file tr-keepalives.pcapng in Wireshark.
Step 2: In the display filter area (the bar at the top of the main window), enter the following filter expression exactly:
tcp.analysis.keep_alive || tcp.analysis.keep_alive_ack
Step 3: Click the Apply button (or press Enter) to execute the filter. Wireshark will then show only the packets that are either Keep Alives or Keep Alive ACKs. The status bar at the bottom of the Wireshark window will display the total count of packets matching this filter.
🔑 Definition — Keep Alive Probe: An ACK packet (empty or with 1 byte of data) used to detect dead connections. Its sequence number is 1 less than the next expected sequence number. 🔑 Definition — Keep Alive ACK: The acknowledgment packet sent in response to a Keep Alive probe. 📌 Example: If the current Sequence Number is 100, a Keep Alive packet will have SEQ=99. The recipient's ACK for that probe is the Keep Alive ACK. 💡 Why this matters: Filtering these packets allows you to quickly identify all Keep Alive activity in a capture, helping you diagnose why a connection is being kept alive or if a peer is unresponsive.
⭐ Key Takeaways
The most critical thing to remember is the exact display filter syntax: tcp.analysis.keep_alive || tcp.analysis.keep_alive_ack. You must use the double pipe (||) to include both packet types. The lab uses the file tr-keepalives.pcapng. The filter directly counts all Keep Alive probes and their corresponding ACKs in one view. This is a practical skill for network troubleshooting — knowing how to isolate these small, periodic packets helps identify dead peer detection and connection keep-alive behavior.
🧠 Quick Revision Questions
- What is the exact display filter used in Lab 61 to count Keep Alive and Keep Alive ACK packets?
- What is the name of the pcapng file that must be opened for this lab?
- In Wireshark, where do you type the display filter?
- After applying the filter, what does the status bar at the bottom of Wireshark show?
- What does the double pipe (
||) operator do in the display filter for this lab?
📘 Lecture 164 — Wireshark Lab 62
📖 Overview: This lecture explores how to identify Keep Alive and Keep Alive ACK packets in Wireshark, both by filtering and through the Expert Infos tool. Understanding these packets is essential for network troubleshooting, as they maintain idle TCP connections and prevent timeouts.
🗂️ Topics Covered
The lecture begins with a filtering method to isolate Keep Alive packets using a display filter, followed by examining the TCP Delta column to verify Keep Alive Time values. It then demonstrates using Expert Infos to locate Keep Alives and Keep Alive ACKs, explaining their purpose in checking for dead TCP peers and avoiding connection timeouts.
📝 Lecture Summary
Find Keep Alive Packets with a Filter
We can see that only two packets match the filter. Step 3: Display TCP Delta column if it is hidden. Otherwise, create it. If you look at the TCP Delta before Packet 61, then you can see that 10.2.122.80 has a 300 second Keep Alive Time value. Packet 62 is the Keep Alive ACK packet. Step 4: Remove the filter by clicking the Clear button.
🔑 Definition — Keep Alive Packet: A TCP packet sent to check if a peer is still reachable and to prevent idle connections from timing out. 🔑 Definition — Keep Alive ACK: The acknowledgment sent in response to a Keep Alive packet, confirming the peer is still alive.
📌 Example: Packet 61 is a Keep Alive packet from 10.2.122.80. The TCP Delta before this packet shows a 300 second Keep Alive Time. Packet 62 is the corresponding Keep Alive ACK.
💡 Why this matters: Keep Alives and Keep Alive ACKs are normal behavior — they are not indications of problems — but they help prevent unnecessary disconnections of idle TCP sessions.
Topic 164: Wireshark Lab 62
In this topic, we find Keep Alive/Keep Alive ACK Packets with Expert Infos in Wireshark. Keep Alives and Keep Alive ACKs are typically used to check for dead TCP peers and avoid time out of idle connections. They are not indications of problems.
Step 1: Open tr-keepalives.pcapng. Step 2: Click the Expert Infos button on the Status Bar. Step 3: Click the Notes tab. You can see Keep Alives and Keep Alive ACKs. Expand the Keep Alive and Keep Alive ACK lines. You can see Packets 61 and 62 listed.
⭐ Key Takeaways
Keep Alives and Keep Alive ACKs are normal TCP packets used to verify peer liveliness and prevent idle connection timeouts — they are not error indicators. In Wireshark, you can find them either by applying a display filter and checking the TCP Delta column for the Keep Alive Time value (e.g., 300 seconds), or by using Expert Infos → Notes tab, which conveniently lists all such packets. Only two packets (61 and 62) are typically involved: the Keep Alive and its ACK.
🧠 Quick Revision Questions
- What is the primary purpose of Keep Alive and Keep Alive ACK packets?
- What value in the TCP Delta column is associated with Packet 61 in this lab?
- How many packets match the filter for Keep Alives in this capture?
- Which tab under Expert Infos displays Keep Alive and Keep Alive ACK packets?
- Are Keep Alives an indication of network problems? Why or why not?
📘 Lecture 165 — Wireshark Lab 63
📖 Overview: This lecture demonstrates how to identify TCP Keep Alive packets used in Zero Window Conditions using Wireshark. It explains the relationship between the Window Size field, Zero Window conditions, and the role of Keep Alive packets when a receiver’s buffer is full.
🗂️ Topics Covered
This lecture covers identifying Keep Alive packets in a Zero Window condition using Wireshark’s Expert Infos and packet analysis. It explains how the Window Size field can drop to zero when a receiving application is slow, and how hosts use Keep Alives instead of Window Zero Probes. The lecture also shows that Keep Alive ACK responses are absent in this scenario, and walks through opening a specific pcapng file, accessing the Notes tab, and expanding the Keep-Alive section to locate the first Keep Alive packet.
📝 Lecture Summary
Step 4: Click on the Keep Alive entry (Packet 61)
After following Steps 1-3 from the previous section, you click on Packet 61 in the Keep-Alive section of the Expert Infos window. This takes you to the main Wireshark window where you close the Expert Infos window. You then display the SEQ#, NEXTSEQ#, and ACK# columns. For Packet 61, you observe that the Sequence Number field value has been decremented by 1 — from 10,943 to 10,942.
💡 Why this matters: The decremented sequence number is a key signature of a Keep Alive packet — it “pretends” to retransmit the last byte to check if the peer’s window has reopened.
Topic 165: Wireshark Lab 63
This topic focuses on identifying Keep Alive Packets used in Zero Window Conditions in Wireshark. The two sides of a TCP conversation advertise their receive buffer space in the Window Size Value field. This is a 2-byte field whose maximum value can be 65,535 bytes. Over today’s high-speed links, if a receiving application is slow in pulling data out of the receive buffer, it’s not unusual that the advertised Window Size value can drop to zero — a Zero Window Condition. Hosts can send TCP Keep Alives in place of Window Zero Probes. When a TCP host sends a Keep Alive to a peer that is advertising a Zero Window condition, you will not see Keep Alive ACK responses.
🔑 Definition — Zero Window Condition: A TCP condition where the advertised Window Size field drops to zero because the receiving application is slow in pulling data out of the receive buffer. 🔑 Definition — Keep Alive Packet: A TCP packet sent by a host to check if a peer’s window has reopened, used in place of Window Zero Probes. 📌 Example: In the tr-youtubebad.pcapng capture (Step 1), Packet 61 shows a Keep Alive where the Sequence Number is decremented from 10,943 to 10,942, indicating the attempt to probe the Zero Window condition.
Step 1: Open tr-youtubebad.pcapng
Open the provided capture file tr-youtubebad.pcapng in Wireshark.
Step 2: Click the Expert Infos button on the Status Bar and then click the Notes tab
Click the Expert Infos button on the Status Bar and then click the Notes tab. During a successful keep alive process, hosts exchange Keep Alives and Keep Alive ACKs. In this case, either the peer is dead or this is not a standard keep alive process.
Step 3: Expand the Keep-Alive section
If you expand the Keep-Alive section, you will find Packet 2,721, the first Keep Alive listed. Click on it and then click the Close button to return to the main Wireshark window.
🔑 Definition — Keep Alive ACK: The acknowledgment response expected during a successful keep alive process — absent in this capture. 📌 Example: In Packet 2,721, the first Keep Alive in the capture, no Keep Alive ACK is observed, indicating either the peer is dead or a non-standard keep alive process.
⭐ Key Takeaways
The key takeaway is that Keep Alive packets in Wireshark are identified by a decremented Sequence Number (e.g., from 10,943 to 10,942), distinguishing them from normal retransmissions. These packets are used in Zero Window Conditions where the Window Size field drops to zero due to a slow receiving application. Unlike successful keep alive processes, in this scenario no Keep Alive ACK responses are seen, suggesting the peer may be dead or the process is non-standard. The lecture demonstrates practical Wireshark steps — opening tr-youtubebad.pcapng, using the Expert Infos Notes tab, and expanding the Keep-Alive section to locate Packet 2,721. Remember that Keep Alives replace Window Zero Probes when a host probes a receiver with a zero window.
🧠 Quick Revision Questions
- What field in the TCP header advertises the receive buffer space, and what is its maximum value in bytes?
- What happens to the Sequence Number field in a TCP Keep Alive packet, as seen in Packet 61 of this lecture?
- In a Zero Window condition, what do hosts send in place of Window Zero Probes?
- What is missing from this capture that would be present in a successful keep alive process?
- Which specific packet (number) is the first Keep Alive listed in the capture’s Keep-Alive section?
📘 Lecture 166 — Causes of Reused Ports
📖 Overview: This lecture explains the concept of reused ports in TCP communications. It clarifies when port reuse is harmless versus when it causes significant communication delays, focusing on the critical condition that the previous TCP connection must be properly terminated.
🗂️ Topics Covered
The lecture covers the definition of reused ports, the distinction between problematic and non-problematic reuse scenarios, and the essential condition of proper TCP connection termination (via FINs or RSTs). It also references previous content about Keep Alive timers to clarify their purpose.
📝 Lecture Summary
Topic 166: Causes of Reused Ports
Reused ports occur when a client attempts to establish a new TCP connection using the same source port number as a previous connection. The critical factor determining whether this causes problems is whether the previous TCP connection was properly terminated.
When a previous connection is terminated (through TCP FINs or RSTs), reusing the port number is generally harmless. For example, a client establishes a TCP connection with a server using source port 1026 and destination port 80. After that connection properly closes, establishing a new connection with the same source port 1026 is not an issue.
However, reused ports become a significant problem when the previous connection has not been terminated. In the same example, if the client tries to establish a new connection with source port 1026 while the original connection to port 80 is still active, this creates confusion and can cause significant delays in communications.
🔑 Definition — Reused Ports: The use of the same source port number for a new TCP connection before the previous connection using that port has been properly terminated via TCP FINs or RSTs.
📐 Concept: Proper termination required → A port can be safely reused only after the previous TCP connection using that port has been fully closed.
📌 Example: Client uses source port 1026 → Server port 80 (1st connection). If client tries to open new connection with source port 1026 to server port 80 while 1st connection still active → reused port problem. If 1st connection was terminated first → no problem.
⭐ Key Takeaways
Reused ports are not inherently problematic. They become a serious issue only when a previous TCP connection using that same port has not been properly terminated through TCP FINs or RSTs. Students must remember that the termination status of the prior connection is the decisive factor. Attempting to reuse a port while a previous connection is still active causes confusion and can introduce significant communication delays. The Keep Alive timer mentioned at the start of the lecture is used to check for Window Updates, not for detecting dead peers.
🧠 Quick Revision Questions
- What is the primary condition that makes reused ports a problem?
- How must a previous TCP connection be terminated for safe port reuse?
- What port numbers are used in the example scenario (client and server ports)?
- What is the Keep Alive timer used for in this context?
- Can reused ports ever be harmless? Explain briefly.
📘 Lecture 167 — Wireshark Lab 74
📖 Overview: This lecture explains the concept of reused ports in TCP communications, how Wireshark detects them, and the common causes. It provides a hands-on lab exercise to filter and analyze reused port packets in a Wireshark trace file, helping students diagnose potential source port exhaustion issues.
🗂️ Topics Covered
The lecture covers the definition of reused ports as detected by Wireshark's Expert Analysis, three common causes of reused ports including static source ports and rapid port cycling, and a step-by-step lab exercise using the display filter tcp.analysis.reused_ports on the tr-reusedports.pcapng trace file to identify and examine a reused port packet.
📝 Lecture Summary
When Wireshark Detects Reused Ports
When Wireshark detects a previous SYN packet using the same IP address/port number combination in a trace file, it marks SYN packets with the Reused Ports Expert Analysis definition.
🔑 Definition — Reused Ports: A Wireshark Expert Info event that occurs when a SYN packet uses the same source IP address and source port number combination as a previous SYN packet in the same trace file.
What Causes Reused Ports?
Reused ports can be seen if:
- A) An application defines a static source port number
- B) An application uses a very small range of source port numbers
- C) A host is going through a lot of source port numbers very quickly
💡 Why this matters: Reused ports indicate that a client is reusing source ports before previous connections have fully closed, which can lead to data corruption or connection confusion if packets from the old connection still exist in the network.
Lab Steps: Counting Reused Port Packets
Step 1: Open tr-reusedports.pcapng.
Step 2: Type the filter tcp.analysis.reused_ports in the display filter area. Click Apply. In this trace file, Wireshark has detected one Reused Port as indicated by the Status Bar.
Step 3: Expand the [SEQ/ACK analysis] section of the reused port packet whose number is 317. This area is colored cyan. Wireshark associates cyan with Expert Infos Notes.
📐 Formula: The display filter → tcp.analysis.reused_ports shows only packets flagged as having reused ports.
📌 Example: In the trace file, packet number 317 is identified as the reused port packet. Expanding its [SEQ/ACK analysis] section reveals the cyan-colored Expert Info Note confirming the reuse.
⭐ Key Takeaways
Students must remember that reused ports are flagged by Wireshark when a SYN packet reuses an IP/port combination seen earlier in the trace. The three main causes are static source ports, narrow source port ranges, and rapid port cycling. The filter tcp.analysis.reused_ports isolates these events, and the Expert Info area (colored cyan) in the [SEQ/ACK analysis] section provides the specific note. Reused ports can indicate potential connection issues.
🧠 Quick Revision Questions
- What does Wireshark's "Reused Ports" Expert Analysis definition detect?
- Name two causes of reused ports in network communications.
- What display filter would you use to count reused port packets in Wireshark?
- What color does Wireshark use to indicate Expert Info Notes?
- In the lab exercise, what is the packet number of the reused port packet?
📘 Lecture 168 — Wireshark Lab 75
📖 Overview: This lab demonstrates how to detect reused TCP ports in network traffic using Wireshark's Expert Infos feature. It matters because port reuse can indicate connection issues, retransmissions, or potential security concerns in network communications.
🗂️ Topics Covered
The lecture covers opening a specific PCAP file (tr-reusedports.pcapng), accessing the Expert Infos window, navigating to the Notes tab to find warnings about reused ports, expanding the relevant warning section, examining the specific packet, and identifying the reused IP address and port number.
📝 Lecture Summary
Step 1: Open the Capture File
Open the file tr-reusedports.pcapng in Wireshark. This capture contains network traffic where the same TCP ports have been reused in a new session.
Step 2: Access Expert Infos
Click the Expert Infos button located on the Status Bar at the bottom of the Wireshark window. This opens the Expert Infos dialog, which provides automatic analysis of the capture.
Step 3: Examine the Notes Tab
Click the Notes tab inside the Expert Infos window. This tab displays informational messages, including warnings about reused ports. Expand the section titled "A new tcp session is started with the same ports as an earlier session in this trace".
🔑 Definition — Reused Ports: When a new TCP session starts using the same source and destination ports as a previous session that is still in the TCP TIME_WAIT state. This can cause confusion or connection issues.
📌 Example: In this lab, the warning points to Packet 317. Click on Packet 317 in the Expert Infos list. Then close the Expert Infos window by clicking Close. Wireshark will automatically navigate to the main window and highlight Packet 317.
Step 4: Identify the Reused Ports
As expected, the Reused Ports packet is a SYN packet — the first packet of a new TCP connection. This packet uses:
- IP address:
192.168.1.44 - Port:
59319
💡 Why this matters: The SYN packet with reused ports indicates that a new connection attempt is using port 59319 from IP 192.168.1.44, which was previously used in an earlier session. This can lead to delayed connections or incorrect data delivery if the earlier session's packets still arrive.
⭐ Key Takeaways
The Expert Infos feature is essential for quickly identifying network anomalies like reused ports without manually scanning packets. When a TCP session reuses the same ports as a prior session, Wireshark flags it as a Note (not an error or warning) under the Notes tab. The flagged packet will always be a SYN packet initiating the new connection. In this capture, IP address 192.168.1.44 and port 59319 are being reused. After clicking on the flagged entry in Expert Infos, Wireshark automatically navigates to the correct packet in the main window.
🧠 Quick Revision Questions
- What button on the Status Bar opens the Expert Infos dialog?
- Under which tab (Error, Warning, Note, or Chat) are reused port messages found?
- What type of packet (SYN, SYN-ACK, ACK, or FIN) is the reused ports packet?
- What IP address and port number are identified in the reused ports packet?
- After clicking on a packet in Expert Infos and closing the window, where does Wireshark take you?
📘 Lecture 169 — Causes of Checksum Errors
📖 Overview: This lecture explains checksum errors, their causes, and how to configure Wireshark to validate checksums for TCP, UDP, and IPv4. Understanding checksum validation is essential for network troubleshooting, as checksum errors indicate data corruption during transmission.
🗂️ Topics Covered
The lecture covers the definition and purpose of checksums in error detection, the default Wireshark behavior of not performing checksum validation, and step-by-step instructions for enabling checksum validation for IPv4, TCP, and UDP in Wireshark’s Preferences. It also includes discussion of how to interpret checksum validation results.
📝 Lecture Summary
Checksum Validation in Wireshark
A checksum is used to detect errors (e.g., flipped bits) in a transmitted segment. In the TCP/IP model, UDP, TCP, IPv4, and link-layer protocols check against errors using a checksum. By default, Wireshark does not perform TCP, UDP, or IPv4 checksum validation. Wireshark’s Checksum validation processes can be enabled/disabled easily using the Preference settings.
🔑 Definition — Checksum: A value computed from a data segment used to detect errors (e.g., flipped bits) during transmission.
📐 Formula: Checksum = (sum of all 16-bit words in the header/data) → Compare computed checksum with received checksum to detect errors.
📌 Example: To enable checksum validation for IPv4, TCP, and UDP:
- Select the Preferences button on the Main Toolbar.
- Expand the Protocols section and select IPv4.
- Check the Validate the IPv4 checksum if possible preference setting.
💡 Why this matters: Enabling checksum validation helps identify packets corrupted during transmission, which is critical for diagnosing network problems like noisy lines or faulty hardware.
⭐ Key Takeaways
Checksums detect errors like flipped bits in transmitted segments, and multiple protocols (UDP, TCP, IPv4, link-layer) use them. Wireshark disables checksum validation by default to avoid false positives on hardware-offloaded checksums. Enabling validation in Preferences under Protocols (IPv4, TCP, UDP) allows Wireshark to flag corrupted packets. Interpreting checksum validation results helps identify real transmission errors versus hardware offloading artifacts. Students must remember the default off state and how to toggle it for accurate analysis.
🧠 Quick Revision Questions
- What does a checksum detect in a transmitted segment?
- Which protocols in the TCP/IP model use checksums for error detection?
- Is checksum validation enabled or disabled by default in Wireshark?
- How can a user enable IPv4 checksum validation in Wireshark?
- Why might Wireshark disable checksum validation by default?
📘 Lecture 170 — Wireshark Lab 76
📖 Overview: This lecture explains the causes of checksum errors in network packets, focusing on faulty hardware and task offloading issues. It provides a hands-on lab demonstration of how to detect and visualize checksum errors using Wireshark's Expert Infos feature.
🗂️ Topics Covered
The lecture first explains the two main causes of checksum errors: faulty Network Interface Cards (NICs) and task offloading on capturing devices. It then provides a step-by-step lab procedure (Steps 1-6) showing how to enable checksum validation for IPv4, TCP, and UDP in Wireshark, and how to use the Expert Infos panel to detect checksum errors.
📝 Lecture Summary
Causes of Checksum Errors
A faulty Network Interface Card (NIC) or any device that alters the content of the packets along the path can cause checksum errors. On a capturing device, Task Offloading is another major cause. By task offload, we mean that numerous processes are offloaded to a network interface card to free up a host's CPU for other tasks. Assume you are capturing your own traffic to and from your machine on which Wireshark is running. You would see Checksum Errors on all outbound traffic if (a) Task offloading is enabled on that host, and (b) Wireshark checksum validation processes are enabled.
🔑 Definition — Task Offloading: The process of offloading numerous processes to a network interface card to free up a host's CPU for other tasks.
📐 Formula: Checksum Error Detection Condition → If (task offloading is enabled on the host) AND (Wireshark checksum validation is enabled), then all outbound traffic will show checksum errors when capturing from the same machine.
Step 1: Open the Capture File
Open tr-checksums.pcapng.
Step 2: Enable Checksum Validation
To enable checksum validation for IPv4, TCP, and UDP, select the Preferences button on the Main Toolbar.
Step 3: Enable IPv4 Checksum Validation
Expand the Protocols section and select IPv4. Check the Validate the IPv4 checksum if possible preference setting.
Step 4: Enable TCP Checksum Validation
Repeat step 3 for TCP.
Step 5: Enable UDP Checksum Validation
Repeat step 3 for UDP. Click OK to save these preference settings. You will see that the coloring in the Packet List pane changes. Packets from 192.168.1.72 have a black background and red foreground.
Step 6: Examine Expert Infos
Click the Expert Infos button on the Status Bar.
💡 Why this matters: The color change (black background, red foreground) visually indicates packets with checksum errors, making them easy to identify in a large capture.
⭐ Key Takeaways
The two main causes of checksum errors are faulty NICs/hardware and task offloading. When capturing traffic on the same machine running Wireshark, task offloading combined with enabled checksum validation will produce checksum errors on all outbound packets. The lab demonstrates how to enable checksum validation for IPv4, TCP, and UDP via Preferences, and how the Packet List pane color coding (black background, red foreground for packets from 192.168.1.72) visually indicates errors. The Expert Infos button on the Status Bar provides a detailed summary of all detected checksum errors.
🧠 Quick Revision Questions
- What are the two main causes of checksum errors in network packets?
- What is task offloading and how does it relate to checksum errors in Wireshark?
- Under what two conditions will you see checksum errors on all outbound traffic when capturing on the same machine running Wireshark?
- Which three protocols require enabling checksum validation via the Preferences menu in this lab?
- What color change in the Packet List pane indicates packets with checksum errors, and what IP address is associated with these packets in the lab?
📘 Lecture 171 — Wireshark Lab 77
📖 Overview: This lecture demonstrates how to use DNS error filters in Wireshark to quickly identify DNS problems in network traffic. It shows a practical method for creating a custom filter button and applying columns to analyze the specific DNS queries that generate error responses.
🗂️ Topics Covered
The lecture covers the two most common DNS errors (Server Failure and Non-Existent Domain), demonstrates how to analyze a trace file containing these errors, shows how to create a custom filter button for DNS errors (using dns.flags.rcode > 0), and teaches how to apply columns to identify the domain names generating the DNS errors.
📝 Lecture Summary
Step 7: Identifying Checksum Errors (Context from prior lab continuation)
Go to the Errors tab. You can see 68 bad IPv4 checksums, 6 bad UDP checksums and 62 bad TCP checksums. Expand the TCP Bad Checksum section.
🔑 Definition — Checksum: A value calculated from a data packet used to detect errors during transmission; a bad checksum indicates corruption.
📐 Formula: Checksum = algorithm-specific sum of packet bytes → if the received checksum doesn't match the recalculated value, the packet is corrupt.
📌 Example: Packet 5 is the first TCP Bad Checksum entry. Clicking on it in the main Wireshark window shows packets from 192.168.1.72 when arrived at the target do not contain error — the target acknowledged receipt, processed them, and replied. Host 192.168.1.72 is configured to use task offloading.
Step 9: Disable Checksum Validation Settings
Disable IPv4, UDP and TCP checksum validation settings to avoid false positive bad checksum reports.
Topic 171: Wireshark Lab 77 — Setting up DNS Filter
This topic uses DNS errors Filter in Wireshark. 🔑 Definition — DNS errors: Two most common are 1) a Server Failure (Reply Code 2), and 2) a Name Error / Non-Existent Domain (Reply Code 3). To quickly identify DNS errors in a trace file, create a button.
Step 1-2: Opening the Trace File and Identifying First DNS Error
Step 1: Open tr-dnserrors.pcapng. Step 2: Packet 5 is the first DNS response — from the Info column we can see it is a Server Failure reply.
🔑 Definition — Server Failure (Reply Code 2): A DNS response code indicating that the DNS server encountered an internal error and could not process the query.
📐 Formula: DNS Reply Code = field in the Flags section of a DNS response → values > 0 indicate error, value 2 = Server Failure, value 3 = Non-Existent Domain.
📌 Example: In Packet 5, the Info column shows "Server Failure" – the DNS server could not resolve the requested domain due to an internal error.
Step 3-4: Expanding Subtrees and Preparing a Filter
In Packet 5, right-click on the Domain Name System (response) line and select Expand Subtrees. The DNS Reply Code field is found inside the Flags section. Right-click on the Reply code field and select Prepare a Filter | Selected.
💡 Why this matters: This exact filter will locate Server Failures specifically, but to create a button displaying ALL DNS errors, all packets with values larger than 0 in the dns.flags.rcode field need to be included.
Step 5: Creating a Custom Filter Button
Type dns.flags.rcode > 0 and click the Save button. Rename the button's name to DNS Errors and click OK.
🔑 Definition — Custom Filter Button: A saved display filter in Wireshark that can be activated with one click to show only packets matching the filter criteria.
📐 Formula: dns.flags.rcode > 0 → any DNS response packet with a non-zero reply code (indicating an error).
📌 Example: Instead of typing dns.flags.rcode == 2 or dns.flags.rcode == 3 each time, one click on the "DNS Errors" button shows all Server Failures and Non-Existent Domain responses.
Step 6-7: Applying the Filter and Adding Columns
Step 6: Click the new DNS Errors button — you will find eight DNS error responses in this trace file. Step 7: Expand the Queries section in Packet Details pane of a response. Right-click on the Name field and Apply as Column — this will determine what name(s) generated these responses.
🔑 Definition — Apply as Column: A Wireshark feature that adds a custom column showing a specific field value for each packet in the packet list.
📌 Example: After applying the Name field as a column, each DNS error response now displays the queried domain name (e.g., nonexistent.example.com) directly in the packet list, allowing easy identification of problematic domains.
⭐ Key Takeaways
DNS errors are identified by the dns.flags.rcode field, where any value greater than 0 indicates a problem (value 2 = Server Failure, value 3 = Non-Existent Domain). Creating a custom filter button (dns.flags.rcode > 0) with a descriptive name (e.g., "DNS Errors") saves time during analysis. After filtering, applying the Name field from the Queries section as a column allows immediate identification of which domain names caused the errors. Task offloading on hosts can cause false positive bad checksum reports, so checksum validation settings should be disabled when analyzing such captures. The lecture demonstrates a complete workflow from opening a trace file to creating reusable analysis tools.
🧠 Quick Revision Questions
- What Wireshark filter would you use to display both Server Failure and Non-Existent Domain DNS responses in one view?
- How many DNS error responses were found in the
tr-dnserrors.pcapngtrace file? - What steps are needed to add a custom column showing the domain name queried in each DNS response?
- What is the difference between Reply Code 2 and Reply Code 3 in DNS responses?
- Why might a packet show a "bad TCP checksum" in Wireshark even though the receiving host processes it without error?
📘 Lecture 172 — Wireshark Lab 78
📖 Overview: This lecture demonstrates how to create a custom Wireshark button to quickly filter for HTTP errors in network trace files. Students learn to use the http.response.code display filter to identify HTTP error responses, specifically 404 “Not Found” errors, and how to save this filter as a reusable button.
🗂️ Topics Covered
This lecture covers the creation of a custom Wireshark display filter button for HTTP errors, the use of the http.response.code >= 400 filter to capture all HTTP error responses, and the practical application of this filter on a sample trace file to identify two 404 Not Found errors. It also explains that such errors can occur when a server upstream from the local server is not responding to recursive DNS queries.
📝 Lecture Summary
Creating an HTTP Errors Filter Button
The topic focuses on building a quick-access button in Wireshark that identifies HTTP errors in trace files. This saves time by eliminating the need to type the filter each time. The process involves opening a trace file, entering the filter expression, saving it as a named button, and then clicking that button to apply the filter.
🔑 Definition — HTTP error response: An HTTP status code in the 4xx or 5xx range, indicating that the server could not fulfill a valid request. Common examples include 404 (Not Found) and 500 (Internal Server Error).
📐 Formula: http.response.code >= 400 → This filter displays all packets with HTTP response codes of 400 or higher, capturing all client and server errors.
📌 Example: In the trace file tr-chappellu.pcapng, applying the HTTP Errors filter reveals two 404 “Not Found” error responses (Step 3). These errors can arise because a server upstream from the local server is not responding to recursive DNS queries.
💡 Why this matters: Quickly identifying HTTP errors in network traces is essential for troubleshooting web server issues, identifying broken links, and diagnosing problems with upstream DNS resolution.
⭐ Key Takeaways
The most critical point from this lecture is how to create a custom Wireshark filter button using http.response.code >= 400 to instantly isolate HTTP error packets. You must remember to save the filter with a descriptive name (like “HTTP Errors”) for easy reuse. The example trace file contained two 404 errors, which may be caused by upstream DNS failures. This technique transforms a complex filter into a one-click troubleshooting tool. Finally, understanding that error codes start at 400 helps you capture both client errors (4xx) and server errors (5xx) with a single filter.
🧠 Quick Revision Questions
- What display filter expression is used in this lab to identify HTTP errors?
- After creating the HTTP Errors button, how many error responses were found in the trace file
tr-chappellu.pcapng? - What specific HTTP error codes were identified in the example trace file?
- According to the lecture, what is one possible cause of these HTTP error responses?
- What is the purpose of clicking the “Save” button after typing the filter expression?
📘 Lecture 173 — Introduction to Packet Tracer
📖 Overview: This lecture introduces Packet Tracer, Cisco's network simulator tool. It demonstrates how Packet Tracer allows users to interact with Cisco technologies without needing physical hardware, enabling complex network design, simulation, and troubleshooting. A practical step-by-step example using Follow TCP Stream shows how to analyze network conversations.
🗂️ Topics Covered
The lecture covers identifying and following a TCP stream in Packet Tracer; removing filters after analysis; the overall purpose and capabilities of Packet Tracer; and the available devices and topologies within the simulator, including switches, routers, PCs, servers, and wireless devices.
📝 Lecture Summary
Step 4: Follow TCP Stream
Right-click on Packet 61 and select Follow TCP Stream. This action applies a filter based on the Stream Index number. A new window opens showing the full conversation between devices, stripped of all protocol headers. This helps you figure out what item was not found on the server by reading the plain-text data exchange.
🔑 Definition — Follow TCP Stream: A feature in Wireshark/Packet Tracer that filters and displays the application-layer data of a TCP connection from one side to the other, removing all lower-layer headers for easier readability. 📌 Example: In Packet Tracer, after selecting Packet 61 and choosing Follow TCP Stream, the resulting window shows only the actual text or data exchanged (e.g., an HTTP request/response) allowing you to see exactly which file or object was requested and what error was returned (like "404 Not Found").
Step 5: Remove the Filter
Click Clear to remove the Follow TCP Stream filter. This restores the full packet list display, allowing you to continue analyzing other parts of the capture without the stream-specific limitation.
💡 Why this matters: Clearing the filter is essential to avoid missing other packets or conversations that are not part of the previously selected TCP stream.
Topic 173: Introduction to Packet Tracer
Packet Tracer is a network simulator from Cisco. It allows you to get a taste of everything in Cisco without needing to purchase real hardware. With Packet Tracer, complex topologies involving tens of Cisco devices can be designed and troubleshot. You can also watch packets moving between them visually. A wide range of Cisco switches and routers, several end devices such as PCs and servers, and wireless devices from Linksys are available in the tool.
🔑 Definition — Packet Tracer: A network simulation tool developed by Cisco Systems that allows users to create network topologies, configure devices, simulate traffic, and troubleshoot network issues without physical hardware. 📐 Formula: Simulator = (Virtual Topology) + (Logical Configuration) + (Packet Flow Visualization) 📌 Example: A student can build a 20-device topology in Packet Tracer consisting of Cisco 2960 switches, Cisco 2811 routers, a server, and several PCs, then configure OSPF routing and watch an ICMP ping packet travel hop-by-hop across the simulated network.
⭐ Key Takeaways
Packet Tracer is Cisco's powerful free simulator that eliminates the need for physical equipment while providing realistic device configuration and packet-level visualization. The Follow TCP Stream feature is invaluable for isolating and reading application-layer conversations by filtering on the Stream Index number. After analyzing a stream, always click Clear to remove the filter and return to the full packet list. The simulator includes Cisco switches, routers, PCs, servers, and Linksys wireless devices, allowing the design of complex topologies with tens of devices.
🧠 Quick Revision Questions
- What is the primary purpose of Packet Tracer according to this lecture?
- What action does "Follow TCP Stream" perform on the displayed packet data?
- After analyzing a TCP stream, what must you click to restore the full packet list?
- Name three types of devices available in Packet Tracer.
- How does Packet Tracer help with troubleshooting compared to using real hardware?
📘 Lecture 174 — Packet Tracer’s Interface Overview
📖 Overview: This lecture provides an introduction to Cisco Packet Tracer, a network simulation tool. It covers the two primary workspaces (logical and physical), the two operating modes (real-time and simulation), and provides a detailed tour of the user interface, explaining the function of each major component like the menu bar, toolbars, and network component box.
🗂️ Topics Covered
The lecture begins by defining the two Packet Tracer workspaces (logical and physical) and the two operating modes (real-time and simulation). It then details the installation source. The core of the lecture is an interface overview, breaking down the layout into eight distinct components: Menu bar, Main toolbar, Physical/Logical workspace tabs, Common tools bar, Workspace, Real-time/Simulation tabs, User-created packet box, and Network component box.
📝 Lecture Summary
Packet Tracer Workspaces
Two workspaces are supported; logical and physical. In the logical workspace, we can build logical network topologies by placing, connecting, and clustering virtual network devices. The physical workspace provides a sense of scale and placement in how network devices such as routers, switches, and hosts would look in a real environment.
Packet Tracer Modes
It supports two operating modes—real-time mode and simulation mode. In real-time mode, all network activities take place with immediate real-time response. The simulation mode allows a user to control time intervals, and the propagation of data across a network.
Installation of Packet Tracer
You can download the latest version of Packet Tracer for free from www.netacad.com/about-networking-academy/packet-tracer.
Topic 174: Packet Tracer’s Interface Overview
This topic has a look at the Interface of Packet tracer. The layout of Packet Tracer can be divided into several components.
Menu bar: This is a commonly found menu. It is used to open, close, print, save, change preferences, and so on.
Main toolbar: This bar contains shortcut icons to menu options that are frequently accessed. For example, open, save, zoom, undo, and redo.
Physical/Logical workspace tabs: These tabs allow you to choose between the Logical and Physical work areas.
Common tools bar: With help of this toolbar, we can manipulate topologies. For example, select, move layout, place note, delete, resize shape, add simple/complex Protocol data unit (PDU).
Workspace: Here, we create topologies and display simulations.
Real-time/Simulation tabs: With these tabs, the operating mode can be switched between the real and simulation modes. Buttons are also provided to control the time.
User-created packet box: From this area, you can create highly-customized packets in order to test your topology.
Network component box: All of the network and end devices available in Packet Tracer are listed in this component. It can be sub-divided into two areas.
⭐ Key Takeaways
For the exam, you must remember that Packet Tracer has two distinct workspaces (logical for creating topologies, physical for real-world scale) and two operating modes (real-time for immediate response, simulation for controlled data propagation). The interface is split into eight main components, each with a specific function. The Common tools bar is crucial for manipulating topologies and adding PDUs for testing. The Network component box is where you find all devices, and the User-created packet box allows for custom packet creation. Finally, remember the free download source is from the NetAcad website.
🧠 Quick Revision Questions
- What are the two workspaces in Packet Tracer, and what is the primary purpose of each?
- What is the key difference between the real-time mode and the simulation mode?
- Where can you download Cisco Packet Tracer for free?
- Which toolbar allows you to add a simple or complex Protocol Data Unit (PDU) to test your network?
- In which component of the interface are all network devices like routers, switches, and end devices listed?
📘 Lecture 175 — Creating a Simple topology
📖 Overview: This lecture provides a step-by-step hands-on guide to creating the first simple network topology in Packet Tracer. It focuses on the practical process of selecting devices, connecting them with the appropriate cable type, and performing basic IP configuration on end devices, establishing a foundation for network simulation.
🗂️ Topics Covered
The lecture covers the process of launching Packet Tracer, using the Device-type and Device-specific selection boxes to add end devices (a PC and a laptop), selecting and applying Copper Cross-Over connections, verifying link status via the LED, and navigating to the Desktop tab to configure IP addressing on a PC.
📝 Lecture Summary
Step 1: Run Packet Tracer
Launch the Packet Tracer application on your computer to begin building the topology.
Step 2: Add End Devices
Click End Devices in the Device-type selection box. This selects the end devices category, which then populates the Device-specific selection box with available device models. Drag-and-drop a Generic PC icon and a Generic laptop icon into the Workspace.
Step 3: Connect Devices with Copper Cross-Over
Click Connections in the Device-type selection box. Then, click Copper Cross-Over in the Device-specific selection box. Now, click on PC0, and select FastEthernet. Click on Laptop0 and select FastEthernet. When the link is up, the color of the link status LED becomes green.
Step 4: Configure IP Address on PC
Click on the PC, and go to the Desktop tab. Click on IP Configuration and enter an IP address and subnet mask. No information is required for a default gateway and DNS server. Close the window.
⭐ Key Takeaways
The key steps for creating a simple topology in Packet Tester are: selecting the correct device categories, dragging end devices into the workspace, using the Copper Cross-Over cable for direct PC-to-laptop connections, and verifying a successful connection by checking the green link status LED. A successful link turns the status LED green. Remember to configure an IP address and subnet mask on the PC via the Desktop tab, leaving the default gateway and DNS server blank for this simple two-device network.
🧠 Quick Revision Questions
- Which device category must be selected first in the Device-type selection box to add a PC?
- What type of connection is used to directly connect a PC to a Laptop in this topology?
- What visual indicator confirms that a link is successfully up between two devices?
- In which tab on the PC do you find the IP Configuration option?
- For a simple two-device network, what information is not required when configuring IP Configuration?
📘 Lecture 176 — Introduction to Cisco and PT devices
📖 Overview: This lecture introduces Cisco and Packet Tracer (PT) devices available in the Packet Tracer simulation environment. It covers the key characteristics of various router and switch models, helping students understand which device to select for different networking scenarios and labs.
🗂️ Topics Covered
The lecture covers routers in Packet Tracer, including Cisco 1841, 1941, 2620XM, 2621XM, 2811, 2901, 2911, and Generic Router. It then examines switches in Packet Tracer, including Cisco 2950-24, 2950T-24, 2960-24TT, 3560-24PS, Bridge PT, Generic Switch PT, and Hub PT.
📝 Lecture Summary
Topic 176: Introduction to Cisco and PT devices
Network devices form the core of networking. Routers and switches are used to interconnect end devices such as PCs, laptops, and servers.
To examine Cisco and Generic routers, select Routers in the device-type selection box, then go to the device-specific selection box.
- Cisco 1841: An Integrated Service Router (ISR). Contains two Fast Ethernet ports, two slots for High Speed WAN Interface Cards (HWICs), and one slot for Advanced Integration Module (AIM).
- Cisco 1941: Similar to Cisco 1841 but runs on Cisco IOS Version 15. Has two ports that operate at Gigabit Ethernet speeds.
- Cisco 2620XM: A multiservice router. Contains one Fast Ethernet port, two slots for WAN interface cards, and one slot for AIM.
- Cisco 2621XM: Similar to Cisco 2620XM, except it has two Fast Ethernet ports.
- Cisco 2811: An ISR router with two Fast Ethernet ports, four WIC slots, and a dual slot for AIM.
- Cisco 2901: Two Gigabit Ethernet ports, four WIC slots, and two Digital Signal Processor (DSP) slots. Runs on Cisco IOS Version 15.
- Cisco 2911: Three Gigabit Ethernet ports and all other features of Cisco 2901.
- Generic Router: Contains 10 slots, and is a custom router running on Cisco IOS.
To examine Cisco and Generic switches, select Switch in the device-type selection box, then go to the device-specific selection box.
- Cisco 2950-24: A managed switch with 24 Fast Ethernet ports.
- Cisco 2950T-24: Has two Gigabit Ethernet ports in addition to 24 Fast Ethernet ports.
- Cisco 2960-24TT: Contains 24 ports and has Small Form-factor Pluggable (SFP) modules.
- Cisco 3560-24PS: A layer 3 switch that performs both routing and switching. The suffix PS means it supports Power over Ethernet (PoE). It can power up IP phones without using power adapters.
- Bridge PT: A device used to segment a network with only two ports.
- Generic Switch PT: A customizable Packet-Tracer switch with 10 slots and several modules, running on Cisco IOS.
- Hub PT: A Packet Tracer device with 10 slots, representing the oldest way to connect end devices.
⭐ Key Takeaways
Routers interconnect networks and are available in various models with different port speeds—Fast Ethernet (100 Mbps) versus Gigabit Ethernet (1000 Mbps)—and slot types (HWIC, WIC, AIM, DSP). Switches connect end devices within a network, with models differing in port count, speed, and advanced features. Key distinctions include the Cisco 3560-24PS being a layer 3 switch with PoE capability, the Generic Router and Generic Switch PT being customizable with 10 slots, and the Hub PT being the most basic connectivity device. Students must match the correct device to lab requirements—for example, choosing a router with Gigabit ports for high-speed connectivity or a PoE switch for IP phones.
🧠 Quick Revision Questions
- What is the difference between the Cisco 1841 and Cisco 1941 routers?
- Which Cisco switch model supports Power over Ethernet (PoE) and is also a layer 3 switch?
- How many Fast Ethernet ports does the Cisco 2620XM have?
- What does the suffix "T" indicate in the Cisco 2950T-24 switch model?
- What is the main purpose of a Bridge PT device?
📘 Lecture 177 — Customizing Devices with Modules
📖 Overview: This lecture explains how to customize network devices by adding and removing hardware modules in Packet Tracer (PT). It also covers the naming conventions for router and switch interfaces, which are essential for configuring and identifying network connections.
🗂️ Topics Covered
The lecture covers hardware modules like the HWIC-4ESW, how to add and remove modules by powering off the device, naming conventions for router interfaces (including slot and port numbering), and naming conventions for switch interfaces (including module and port numbering).
📝 Lecture Summary
Repeater PT and Coaxial Splitter PT
A Repeater PT is used to boost the signal on a wire when the distance between two points is high. A Coaxial Splitter PT is used to split a single coaxial connector into two. It contains three coaxial ports.
Customizing Devices with Modules
In this topic, we customize devices with modules and learn naming conventions in PT. A piece of hardware that contains several device interfaces, e.g. HWIC-4ESW (High-Speed WAN Interface Card), is a module having four Ethernet (10 MBps) ports. There is a power switch located on the right-hand side of each device. If you see a green LED on the power switch, then it indicates that device is powered up. If you want to add a module, you need to click on this switch to turn the device off. This is similar to a real router/switch. Drag a module from the modules list and drop it onto an empty slot. The module will automatically return to the module list, in case it does not fit into that slot.
A module can be removed by first, powering off the device and then, dragging it from the slot back to the module list. 💡 Why this matters: Properly adding and removing modules is a fundamental skill for configuring real network hardware, ensuring you don't damage components.
Naming convention for Interfaces
Router Interfaces can be identified by their names. The interfaces can be broadly grouped as:
- Fixed ports are labeled according to their type and a number, e.g., FastEthernet0/0. For example, a router might have its built-in FastEthernet ports labeled GigabitEthernet0/0 and 0/1.
- Module ports use a slot/port format, e.g., Serial0/1/0. Here, the first number is the slot number, the second is the subslot number (often 0 for single-width modules), and the third is the port number on that subslot. For example, a WIC-2T module in slot 1 would have ports Serial1/0/0 and Serial1/0/1.
🔑 Definition — Fixed ports: Ports that are built into the router chassis and cannot be removed. 🔑 Definition — Module ports: Ports on a removable hardware module that is inserted into a slot.
Switch Naming Convention
Switch interfaces follow a similar structure:
- Switch module numbering uses the format: Module_Number/Port_Number. For example, in a 2960 switch, FastEthernet ports might be numbered FastEthernet0/1 through FastEthernet0/24, indicating Module 0 and port numbers 1-24.
- When adding a module like the HWIC-4ESW, the ports will be named according to the module slot. For example, if inserted in slot 1, ports might be FastEthernet1/0 through FastEthernet1/3.
📌 Example: A 2960-24TT switch has 24 FastEthernet ports and 2 GigabitEthernet ports. The FastEthernet ports are FastEthernet0/1 to 0/24. The two GigabitEthernet uplink ports are GigabitEthernet0/1 and GigabitEthernet0/2.
⭐ Key Takeaways
You must remember that devices must be powered off before adding or removing modules to prevent damage. Routers use a slot/subslot/port format for modular interfaces (e.g., Serial0/1/0), while their fixed ports use a port number format (e.g., FastEthernet0/0). Switches typically use a module/port format (e.g., FastEthernet0/1), where module 0 often refers to the built-in ports. The HWIC-4ESW module adds four 10 Mbps Ethernet ports to a device. Always check the power LED (green) to confirm a device is powered on.
🧠 Quick Revision Questions
- What is the first step you must take before adding or removing a module from a router or switch in Packet Tracer?
- What does the interface name "Serial0/1/0" tell you about the location of that port?
- How many Ethernet ports does an HWIC-4ESW module provide, and at what speed?
- On a typical 2960 switch, what does the "0" represent in the interface name "FastEthernet0/1"?
- What is the purpose of a Repeater PT versus a Coaxial Splitter PT?
📘 Lecture 178 — Accessing CLI of a Device
📖 Overview: This lecture describes how to access the Command Line Interface (CLI) of a device in Packet Tracer. It covers the two primary methods for accessing the CLI and provides context on identifying different interface types on network modules. Understanding CLI access is fundamental for configuring network devices in simulated environments.
🗂️ Topics Covered
The lecture begins by reviewing various Cisco interface types and their module identifiers, including Copper Ethernet, Fiber Ethernet, Serial, and Modem interfaces. It then details the process for saving customized devices. The main focus is on accessing the Command Line Interface (CLI) of a device through the CLI Tab, explaining how to use it for configuration tasks like assigning IP addresses.
📝 Lecture Summary
Copper Ethernet Interface
A Copper Ethernet Interface is a normal LAN interface that employs an RJ-45 connector with a copper cable. These interfaces support speeds of Ethernet (10 MBps), FastEthernet (100 MBps), and GigabitEthernet (1000 MBps). Modules are identified using a number followed by E, FE, CE, CFE, or CGE. Modules that provide switching features on routers are identified by SW.
🔑 Definition — Copper Ethernet Interface: A standard LAN interface using an RJ-45 connector and copper cable for Ethernet, FastEthernet, or GigabitEthernet connections.
📌 Example:
- HWIC-4ESW: Provides four Ethernet switching ports
- WIC-1ENET: Provides a single Ethernet port
- NM-1E: Provides a single Ethernet port
- NM-1FE-TX: Provides a single Fast Ethernet port
Fiber Ethernet Interface
A Fiber Ethernet Interface is similar to a Copper Ethernet Interface but employs fiber cables instead of copper.
📌 Example:
- NM-1FE-FX: Provides a single Fast Ethernet fiber media port
Serial Interface
Serial Interfaces are identified by different codes: T indicates synchronous modules while A/S indicates asynchronous modules.
📌 Example:
- WIC-1T: Provides a single synchronous serial port
Modem Interface
Modem Interfaces consist of RJ11 ports with analog telephone cables and are identified by AM.
📌 Example:
- WIC-8AM: Provides eight RJ11 ports
Saving Customized Devices
If you have created a customized device with a set of modules, you can save it for future use. The process involves: drag-and-drop a network device into the work area, turn the device off, add modules to it, click Tools | Custom Devices Dialog, click Select then click on the customized device, provide a name, and click Add and Save. The device is saved with a .ptd extension.
Topic 178: Accessing CLI of a Device
This topic describes how to access the Command Line Interface (CLI) of a device in Packet Tracer. There are two ways to access the CLI.
The CLI Tab
The CLI Tab can be used to configure devices, for example, you can assign IP addresses to router interfaces. You can use Paste and Copy buttons to copy text to and from the command line. To access the CLI, click on a network device and go to the CLI tab to access the Cisco IOS command line interface, where you can enter commands as on a real device (router).
💡 Why this matters: The CLI Tab provides the most direct and realistic method for configuring network devices in Packet Tracer, simulating the exact command-line experience of real Cisco equipment.
You should refer to the HELP files which list the IOS commands supported by Packet Tracer.
⭐ Key Takeaways
You must remember that Cisco interfaces are identified by specific codes: Copper Ethernet (E, FE, CE, CFE, CGE), Fiber Ethernet, Serial (T for synchronous, A/S for asynchronous), and Modem (AM). The CLI Tab in Packet Tracer is the primary method for accessing the Cisco IOS command line interface on network devices, allowing configuration tasks like assigning IP addresses. Customized devices can be saved with a .ptd extension after configuring modules. The HELP files should be consulted to identify which IOS commands are supported in Packet Tracer.
🧠 Quick Revision Questions
- What does the code "SW" indicate when found on a network module?
- How do you identify a synchronous serial interface module versus an asynchronous one?
- What is the file extension used when saving a customized device in Packet Tracer?
- Name the two ways to access the Command Line Interface of a device in Packet Tracer.
- What can you use to copy text to and from the command line in the CLI Tab?
📘 Lecture 179 — Configuring Devices with Config Tab
📖 Overview: This lecture demonstrates how to configure Cisco routers and switches in Packet Tracer using the Config tab's Graphical User Interface (GUI). This method allows network configuration without entering a single command, making it accessible for beginners while simultaneously displaying the equivalent Cisco IOS commands.
🗂️ Topics Covered
The lecture covers connecting devices via console port in Packet Tracer (though noting it is identical to the CLI tab method), then focuses on the three main configuration levels available in the Config tab: Global Settings, Interface Settings, and Routing Settings. It explains how to change device names, configure IP addresses, manage port status, and set up both static and dynamic routing protocols.
📝 Lecture Summary
The Console port: No difference with respect to CLI tab method
The console port method makes the topology resemble real-world networking environments. To connect via console:
- Click End Devices and drag a PC/laptop to the workspace
- Add a router (e.g., 2621 XM)
- Click Connections and select console port
- Connect the console cable to the RS-232 port of the PC/laptop
- Click the PC/laptop, go to Desktop tab, open Terminal, and click OK with default settings to view the router's console
💡 Why this matters: This method simulates real-world network console connections, but the lecture emphasizes that it produces no functional difference compared to using the CLI tab method.
Configuring Devices with Config Tab
The Config tab contains Graphical User Interface (GUI) options for the most common configurations. As you modify settings through the GUI, the equivalent Cisco IOS commands are displayed simultaneously.
There are 3 general levels of configurations: Global, Routing, and Interface.
Global Settings
You can change the router's name — this can also be done directly in the workspace. The configuration file of a device can be saved, erased, or exported.
🔑 Definition — Global Settings: The top-level device configuration that affects the entire router or switch operation.
Global's Algorithm Settings
These are meant for advanced users. You can minutely tweak your device to see how it responds to certain situations.
Interface Settings
The IP address, MAC address, and subnet mask can be entered here. To view the port status, you need to check the "On" setting of "Port status".
🔑 Definition — Interface Settings: Configuration level that allows modification of individual port or interface parameters such as IP addressing and operational status.
📌 Example: To enable an interface, navigate to Interface Settings and click "On" under Port status. If left unchecked, the interface will remain administratively down.
Routing Settings
There are two options for configuring static and dynamic routing.
For static routing configuration: enter network address, net mask, and its next hop address, then click Add.
For dynamic routing such as Routing Information Protocol (RIP): configure by adding only the network IP.
🔑 Definition — Routing Settings: Configuration level that manages how the device forwards packets between networks, supporting both manually configured static routes and automatically learned dynamic routes.
📐 Formula (Static Route): Network Address + Net Mask + Next Hop Address → Route Added 📐 Formula (RIP): Network IP → Route Automatically Advertised
⭐ Key Takeaways
The Config tab provides a GUI-based alternative to command-line configuration in Packet Tracer, automatically generating the equivalent Cisco IOS commands as you make changes. The three essential configuration levels are Global (device name and file management), Interface (IP, MAC, subnet mask, and port status), and Routing (static routes require network, mask, and next hop; RIP requires only the network IP). The console port method for accessing devices is functionally identical to the CLI tab method but provides a more realistic topology representation. Understanding the Config tab is crucial for Packet Tracer network simulations, especially for those transitioning from GUI to command-line configuration.
🧠 Quick Revision Questions
- What are the three general levels of configuration available in the Config tab?
- How do you enable a port/interface using the Config tab's Interface Settings?
- What information is required to configure a static route via the GUI?
- How does configuring RIP differ from configuring a static route in the Routing Settings?
- What is displayed in the Config tab as you make changes through the GUI?
📘 Lecture 180 — Generic IP End Devices in PT
📖 Overview: This lecture describes the various types of generic IP end devices available in Packet Tracer (PT), focusing on clients and servers. It explains the different network interface modules that can be added to these devices, their specific functions, and configurations, which is essential for building and simulating complex network topologies.
🗂️ Topics Covered
This lecture categorizes end devices into clients, servers, and other devices. It details the modules available for desktops and laptops, including wireless, Ethernet, and fiber interfaces, and compares the module options for servers. The lecture also notes that some modules have no associated functionality in Packet Tracer.
📝 Lecture Summary
Generic IP End Devices in PT
Network devices such as switches and routers are the core of a network. End devices (PCs, servers) are the ones that use this core. Packet Tracer offers a wide range of end devices, including PCs, laptops, tablets, personal digital assistants (PDAs), and TVs. They can be grouped into:
- A) Clients
- B) Servers
- C) Other devices
🔑 Definition — End Devices: Devices such as PCs and servers that use the network core (switches and routers) to communicate.
A) Clients
Desktops and laptops are the most usable and highly configurable client devices. As far as usability is concerned, there is no difference between them. The addition and removal of a module require a device to be switched off.
The following modules are available for desktops and laptops:
- Linksys-WMP300N: Through this wireless interface, you can configure a WLAN.
- PC-HOST-NM-1AM: It can be used as a modem as it provides an RJ11 interface.
- PC-HOST-NM-1CE, PC-HOST-NM-1CFE, PC-HOST-NM-1CGE: Through these modules, Ethernet, FastEthernet, and GigabitEthernet connections are provided respectively.
- PC-HOST-NM-1FFE, PC-HOST-NM-1FGE: These are the fiber version of the previous modules.
- PC-HOST-NM-1W, PC-HOST-NM-1W-A: These are wireless interfaces for WLAN. The first has a frequency of 2.4 GHz and the second has 5 GHz.
- PC-HEADPHONE, PC-MICROPHONE, PC-CAMERA, PC-USB-HARD-DRIVE: No functionality is associated with these modules.
📌 Example: To connect a laptop to a wireless network, you would need to add the Linksys-WMP300N or a PC-HOST-NM-1W module to the laptop while it is switched off.
B) Servers
Servers have space for two network interfaces. The modules available for servers are the same as PC modules, except for the PC-HOST-NM-1AM module.
🔑 Definition — Server Module Limitation: Servers cannot use the PC-HOST-NM-1AM modem module.
⭐ Key Takeaways
The most critical thing a student must remember is that end devices in Packet Tracer are divided into clients (like desktops and laptops) and servers, each with specific, configurable network interface modules. Clients require a module to be installed while the device is powered off. It is essential to know the function of each module, such as the Linksys-WMP300N for WLAN or the PC-HOST-NM-1CFE for FastEthernet, and to note that some modules (like PC-CAMERA) have no functionality. Finally, a key difference is that servers cannot use the PC-HOST-NM-1AM modem module.
🧠 Quick Revision Questions
- What are the two main categories of end devices described in this lecture?
- What must be done to a client device before adding or removing a network module?
- Which module provides an RJ11 interface for modem functionality?
- What is the difference between the PC-HOST-NM-1W and PC-HOST-NM-1W-A modules?
- Which module available for PC clients is not available for servers?
📘 Lecture 181 — Configuring End Devices in PT
📖 Overview: This lecture focuses on configuring end devices in Packet Tracer, covering various services available for servers and the utilities accessible through the Desktop tab. Understanding these configurations is essential for testing and debugging network setups in a simulated environment.
🗂️ Topics Covered
The lecture begins by detailing services available for servers, including HTTP/HTTPS, DHCP, DNS, AAA, NTP, Email, FTP, and Firewall services. It then transitions to configuring end devices in Packet Tracer, covering the Desktop tab utilities such as IP Configuration, Dial-up, Terminal, and Command Prompt, along with specific commands available for network testing.
📝 Lecture Summary
Services Available for Servers
Various services can be supported by servers in Packet Tracer. HTTP service supports both HTTP and HTTPS protocols, which can be hosted by a web server, allowing for the creation and editing of static HTML pages. DHCP service can assign IP addresses to routers, and you can create and edit DHCP pools of IP addresses; the default pool is called serverPool, which cannot be removed or edited. DNS service resolves domain names to IP addresses. AAA service provides Authentication, Authorization, and Accounting, supporting RADIUS and TACACS authentication protocols. NTP (Network Time Protocol) ensures that the clocks of all devices are synchronized properly. Email services support SMTP and POP3 protocols. FTP services allow users to be created and permissions granted to them. Firewall allows you to configure rules based on source/destination IP addresses and source/destination port numbers, enabling connections to be allowed or denied.
💡 Why this matters: Knowing these services is critical for configuring servers to support network functions like web hosting, dynamic IP assignment, name resolution, and security.
Configuring End Devices in PT
Click on an end device in the workspace, then go to the Desktop tab. A lot of utilities are available here, which can be used for testing and debugging the network.
Desktop Tab Utilities
IP Configuration: With this utility, you can assign a dynamic or static IP address to an end device. If you choose to enter a static IP address, the Subnet Mask field gets filled according to the class of the IP address. To have devices obtain an IP dynamically, choose DHCP here and configure DHCP on Server-PT.
🔑 Definition — Dynamic IP: An IP address assigned automatically by a DHCP server. 🔑 Definition — Static IP: A manually assigned, fixed IP address.
Dial-up: End devices such as PC-PT and Laptop-PT have the PC-HOST-NM-1AM interface. This utility allows you to simulate a modem dialer.
Terminal: This utility can be used for accessing the CLI (Command Line Interface) through the console port. The Server-PT device does not have this utility as it does not have an RS-232 interface.
Command Prompt: It simulates the command line offered by Windows OS. Commands available include: arp, delete, dir, ftp, help, ipconfig, netstat, nslookup, ping, ssh, telnet, and tracert.
💡 Why this matters: These utilities are essential for network testing and troubleshooting, allowing you to verify connectivity, resolve names, and manage configurations directly from end devices.
⭐ Key Takeaways
A student must remember that end devices in Packet Tracer are configured through the Desktop tab, which provides essential utilities for network testing and debugging. The IP Configuration utility allows for both static and dynamic IP assignment, while Dial-up simulates modem connections, Terminal provides CLI access via the console port (only for devices with an RS-232 interface), and Command Prompt simulates a Windows command line with key networking commands like ping, ipconfig, and tracert. Additionally, servers offer various services like HTTP, DHCP, DNS, AAA, NTP, Email, FTP, and Firewall, with specific features such as the default DHCP pool (serverPool) that cannot be edited.
🧠 Quick Revision Questions
- What is the default DHCP pool called in Packet Tracer, and can it be edited or removed?
- List the two authentication protocols supported by the AAA service.
- Which Desktop tab utility allows you to assign a static or dynamic IP address to an end device?
- Why does the Server-PT device not have the Terminal utility?
- Name three commands available in the Command Prompt utility that are used for network testing.
📘 Lecture 182 — Packet Tracer's Simulation Mode
📖 Overview: This lecture introduces Packet Tracer's simulation mode, a powerful tool for observing and analyzing network traffic as packets flow between devices. Understanding simulation mode is essential for network troubleshooting, protocol analysis, and visualizing how data moves through a network at each TCP/IP layer.
🗂️ Topics Covered
This lecture covers the Packet Tracer simulation mode interface and its capabilities for observing packet flow between devices. It includes a step-by-step laboratory exercise demonstrating how to configure a simple network with a PC and server, enable simulation mode, and capture ICMP packets. The lecture explains how to interpret the event list and view detailed packet information across TCP/IP layers using the Outbound PDU Details tab.
📝 Lecture Summary
Packet Tracer's Simulation Mode
In Packet Tracer's simulation mode, you can observe packets flowing from one device to another. When you click on a packet (represented by an envelope icon), you can see detailed information about the TCP/IP layers. This mode provides a visual, step-by-step view of network communication.
💡 Why this matters: Simulation mode is essential for understanding how protocols work at each layer, diagnosing connectivity issues, and learning how packets are encapsulated and decapsulated as they travel through a network.
Step-by-Step Laboratory Exercise
Step 1: Open Packet Tracer. Step 2: Add a PC and a server to the workspace. Step 3: Connect the two devices with a copper crossover cable. Step 4: Assign IP addresses:
- PC: 192.168.0.1 with subnet mask 255.255.255.0
- Server: 192.168.0.2 with subnet mask 255.255.255.0
Both devices are in the same subnet.
Step 5: Click on the Real Time / Simulation tab and switch to simulation mode. Step 6: Click on the Auto Capture / Play button. Packet capture begins. Step 7: From the Common Tools Bar, click on the closed envelope icon (the Add Simple PDU tool). Click on the PC first, then on the server.
In the event list, you will observe three entries:
- Creation of an ICMP packet
- ICMP echo sent
- ICMP reply received
To view a packet's TCP/IP layers information, click on a packet (the envelope icon). The Outbound PDU Details tab lists each layer's information.
🔑 Definition — ICMP (Internet Control Message Protocol): A network-layer protocol used for sending error messages and operational information, such as the echo request and echo reply used by the Ping command.
📐 Formula: IP addressing configuration → both devices must be in the same subnet for direct communication
- PC: 192.168.0.1/255.255.255.0
- Server: 192.168.0.2/255.255.255.0
- Subnet mask 255.255.255.0 means both addresses are in the 192.168.0.0/24 network
📌 Example: When the PC (192.168.0.1) sends a Ping to the server (192.168.0.2):
- A ICMP packet is created
- The ICMP echo (request) is sent from PC to server
- The ICMP reply is received by PC from server
- The event list shows these three entries
- Clicking on the envelope icon reveals TCP/IP layer information in the Outbound PDU Details tab
⭐ Key Takeaways
Packet Tracer's simulation mode allows you to observe packet-by-packet communication between devices at each TCP/IP layer. To use it, you must add devices, connect them with appropriate cabling, assign IP addresses in the same subnet, and switch to simulation mode before capturing traffic. The event list records packet creation and transmission events, such as ICMP echo and reply. Clicking on a packet opens the Outbound PDU Details tab, which displays layer-specific information. This tool is fundamental for understanding how protocols like ICMP operate and for troubleshooting network connectivity issues.
🧠 Quick Revision Questions
- What are the three entries you will observe in the event list when a PC pings a server in simulation mode?
- What tab do you click on to view detailed TCP/IP layer information for a captured packet?
- What IP addresses and subnet masks should be assigned to the PC and server in the laboratory exercise?
- What type of cable is used to connect the PC directly to the server in this exercise?
- What is the purpose of the "Auto Capture / Play" button in simulation mode?
📘 Lecture 183 — Connecting Devices and Link Status
📖 Overview: This lecture explains how to physically connect network devices using various cable types in Packet Tracer, and how to interpret link status indicators. Understanding cable selection and link status is essential for building functional network topologies and troubleshooting connectivity issues.
🗂️ Topics Covered
The lecture covers the simulation control buttons (Back, Auto Capture/Play, Capture/Forward), then introduces the Connections icon and device-specific cable selection. It explains seven cable types: Automatically choose connection type, Console, Copper straight-through, Copper cross-over, Fiber, Phone, and Serial DCE/DTE. Finally, it describes how link status lights at cable ends indicate connection state.
📝 Lecture Summary
Simulation Mode Control Buttons
Before connecting devices, Packet Tracer provides simulation controls. Back moves the simulation one step back each time it is clicked. Auto Capture/Play continuously captures network traffic when pressed. Capture/Forward moves a packet from one place to another each time the button is pressed.
Connecting Devices and Link Status
This topic discusses how to connect devices and to check the link status in Packet Tracer. In Packet Tracer, there are a number of cables available to connect devices. Click Connections icon from the device-type selection box. Now, you can view the various cables in device-specific selection box.
Automatically Choose Connection Type
If you have no idea which cable to use, this option automatically allows two devices to get connected with the best cable.
Console
The console port of a network device can be connected to the RS-232 port on a PC/laptop. This allows you to view the network device's console from a PC/laptop.
Copper Straight-Through
It is a standard Ethernet cable that connects devices operating in different layers of the OSI model. For example, hub to router, switch to PC.
Copper Cross-Over
This Ethernet cable connects devices such as hub to hub, PC to PC, PC to router, and PC to printer i.e. devices operating in the same OSI layer.
Fiber
Connects Fast Ethernet and Gigabit Ethernet ports of a fiber port.
Phone
RJ11 cable. It connects the analog phone to a VoIP phone. Also, modem interface of routers can be connected.
Serial DCE and DTE
Serial cables connect routers together. There is a clock symbol on the Data Circuit-terminating Equipment (DCE) end. If you have selected Serial Data Terminal Equipment (DTE), the DTE end will be the first device connected with this cable and the DCE end will be the next. In case of the Serial DCE cable, just the opposite happens.
Link Status
Once you have connected devices together, you will find a light, at each end of the cable. The light indicates the state of the connection.
🔑 Definition — Link Status Light: The light at each end of a network cable that indicates the connection state (typically green for active, red for inactive or error).
🔑 Definition — Data Circuit-terminating Equipment (DCE): The device at the serial cable end that provides clocking (synchronization) signals, identified by a clock symbol.
🔑 Definition — Data Terminal Equipment (DTE): The device at the serial cable end that receives clocking signals from the DCE. In Packet Tracer, the first device connected using a Serial DTE cable becomes the DTE end.
⭐ Key Takeaways
The lecture distinguishes cable types by the OSI layers of the devices they connect: straight-through connects different layer devices (e.g., switch to PC), while cross-over connects same layer devices (e.g., PC to PC). The Console cable allows PC access to a network device's command-line interface. For serial connections between routers, the DCE end provides clocking and displays a clock symbol, while DTE receives it. Link status is indicated by lights at each cable end, providing immediate visual feedback on connection health. The Auto Choose option simplifies cable selection for beginners.
🧠 Quick Revision Questions
- What is the difference between Copper Straight-Through and Copper Cross-Over cables in terms of the devices they connect?
- Which cable type would you use to connect a PC directly to a router?
- On a serial cable, how can you identify the Data Circuit-terminating Equipment (DCE) end?
- What happens when you click the "Capture/Forward" button in simulation mode?
- What does the light at each end of a connected cable indicate?
📘 Lecture 184 — Testing Connectivity with PDUs
📖 Overview: This lecture explains how to test connectivity between devices in a Packet Tracer network topology using Protocol Data Units (PDUs). It covers both simple and complex PDU methods, providing step-by-step examples to verify network communication. Understanding these testing techniques is essential for network troubleshooting and verification.
🗂️ Topics Covered
The lecture covers the interpretation of switch port LED colors (bright green, blinking green, red, amber), then explains testing connectivity using Simple PDUs which rely on ICMP, and Complex PDUs which offer more detailed control. A step-by-step topology creation and testing procedure is provided for each PDU type.
📝 Lecture Summary
Topic 184: Testing Connectivity with PDUs
In this topic, we test connectivity with Protocol Data Units (PDUs) in Packet Tracer. When you have created a topology in Packet Tracer, then you would like to test connectivity between devices. Connectivity can be tested by: using either simple or complex Protocol Data Units (PDUs), or pinging devices from their command-line interface. For large topologies, the PDU option is quicker.
Simple PDU
The Add Simple PDU tool relies on Internet Control Message Protocol (ICMP). Let's create a simple topology to demonstrate the working of simple PDU.
Step 1: Add a PC and a server to the workspace and connect them using a copper crossover cable.
Step 2: Click on PC and use IP configuration. Type: 192.168.0.1/255.255.255.0. Do the same for the server and type: 192.168.0.2/255.255.255.0.
Step 3: Go to the common tools bar, click on the closed envelope icon or simply press key P. Click the envelope symbol on PC first and then on the server. Then, look at the User Created Packet box.
Complex PDU
We use the previous example to understand working of Complex PDU.
Step 1: Click on the open envelope icon or press C.
🔑 Definition — Simple PDU: A testing tool in Packet Tracer that uses ICMP to quickly check connectivity between two devices by sending a single packet.
🔑 Definition — Complex PDU: A testing tool in Packet Tracer that provides more detailed control over the test packet, allowing customization of protocol type, source/destination ports, and other parameters.
💡 Why this matters: In real-world network troubleshooting, the ability to quickly test and verify connectivity between devices is fundamental. Simple PDUs offer a rapid check, while Complex PDUs allow for more granular testing of specific applications and services.
⭐ Key Takeaways
The most critical concepts from this lecture are: understanding that switch port LED colors indicate specific link states (bright green for up, blinking green for activity, red for down, amber for STP); recognizing that Simple PDUs use ICMP to test connectivity quickly; mastering the steps to create a simple topology with IP configuration on PC and server; knowing how to access the Simple PDU tool via the closed envelope icon or key P; and differentiating between Simple and Complex PDUs, with Complex PDUs (opened via the open envelope icon or key C) offering advanced customization for detailed testing scenarios.
🧠 Quick Revision Questions
- What does a bright green LED on a switch port indicate?
- Which protocol does the Simple PDU tool rely on for testing connectivity?
- What are the two methods to activate the Simple PDU tool in Packet Tracer?
- What IP addresses and subnet mask were assigned to the PC and server in the example topology?
- How do you activate the Complex PDU tool in Packet Tracer?
📘 Lecture 185 — Clustering a Topology
📖 Overview: This lecture teaches how to cluster devices in Cisco Packet Tracer to simplify large network topologies. Clustering groups multiple devices into a single cloud icon, making complex designs easier to view and manage. The lecture provides step-by-step instructions for creating clusters of switches and PCs, and explains how to expand and view clustered devices.
🗂️ Topics Covered
The lecture first covers creating a topology with three switches and nine PCs using Copper Straight-through and cross-over cables. It then explains how to select and combine groups of PCs and switches using the New Cluster button. Finally, it describes how to double-click a cluster to expand it and view its internal devices.
📝 Lecture Summary
Clustering a Topology
When large topologies are created, understanding them becomes difficult. Clustering combines several devices that you choose into a single cloud icon. Upon double-clicking the cluster, it will get expanded and will display the devices normally.
🔑 Definition — Clustering: Combining multiple selected network devices into a single cloud icon to simplify the display and management of large topologies.
Step 1: Create a topology with three switches and nine PCs. Select End Devices in the device-type selection box. From the Device-specific selection box, drag-and-drop 9 PCs in the workspace. Select Switches in the device-type selection box. From the Device-specific selection box, drag-and-drop three 2950-24 switches in workspace. Select Connections in the device-type selection box. From the Device-specific selection box, drag-and-drop Copper Straight-through cable in workspace. Connect a PC with a switch. Use copper cross-over cables to connect the switches.
💡 Why this matters: Proper cabling (straight-through for PC-to-switch, cross-over for switch-to-switch) is critical for functional connectivity before clustering.
Step 2: Combine PC0, PC1, PC2 and Switch0. Select PC0, PC1, PC2, and Switch0 by clicking on whitespace. Click on the New Cluster button on the top-right corner.
Step 3: Form a group of PC3, PC4, PC5 and Switch1. Click on whitespace next to PC3. Drag your mouse to select PC3, PC4, PC5, and Switch1. Click on the New Cluster button on the top-right corner.
Step 4: Repeat the same procedure done in Steps 2 and 3 for combining PC6, PC7, PC8 and Switch2.
Double-clicking on a cluster expands it and displays only the devices within it.
🔑 Definition — Expanding a cluster: Double-clicking the cloud icon to display only the internal devices of that cluster, hiding all other devices in the topology.
📌 Example: After creating three clusters (each containing one switch and three PCs), double-clicking on Cluster0 would display only Switch0, PC0, PC1, and PC2, while hiding the other six PCs and two switches.
⭐ Key Takeaways
Clustering is a powerful organization tool in Packet Tracer used to manage large topologies by grouping devices into cloud icons. The process requires selecting multiple devices (e.g., PCs and a switch) and clicking the New Cluster button. Cabling must be done correctly before clustering: use Copper Straight-through for PC-to-switch connections and copper cross-over cables for switch-to-switch connections. Double-clicking a cluster expands it to show only its internal devices, simplifying navigation. Remember that only selected devices are clustered — devices outside the selection remain separate.
🧠 Quick Revision Questions
- What is clustering in Packet Tracer and why is it useful?
- What type of cable is used to connect a PC to a switch in this lecture?
- What type of cable is used to connect one switch to another switch?
- How do you select multiple devices to form a cluster?
- What happens when you double-click on a cluster icon?
📘 Lecture 186 — Creating Cities, Offices & Wiring Closets
📖 Overview: This lecture explains how to create cities, offices, and wiring closets in Packet Tracer's physical workspace. It demonstrates how to give logical topologies a physical dimension, making network simulations more realistic and practical.
🗂️ Topics Covered
This lecture covers the four environments available in Packet Tracer's physical workspace: Intercity, City, Building, and Wiring Closet. It explains the hierarchy and relationships between these environments, including how to create and rename cities, buildings, and wiring closets. The lecture also provides step-by-step instructions for physically moving devices between different locations using the navigation and move object tools.
📝 Lecture Summary
Creating Cities, Offices & Wiring Closets
Packet Tracer can simulate environments both logically and physically. In the physical workspace, it gives logical topology a physical dimension, making logical topologies more realistic. There are 4 environments available in the physical workspace:
- Intercity
- City
- Building
- Wiring closet
1-Intercity: Being the largest environment, it consists of cities. You can create cities, buildings, and wiring closets in this layer.
2-Cities: Buildings and wiring closets are part of it. The default city name is Home City. You can drag and place cities anywhere on the intercity map.
3-Buildings: It contains only wiring closets. Corporate Office is the default name.
4-Wiring closet: This layer contains only devices. Default name is Main Wiring Closet.
💡 Why this matters: Understanding this hierarchy is essential for organizing network devices across different physical locations in real-world network deployments.
Moving Devices Physically
Packet Tracer places all devices that are used in the logical workspace in Main Wiring Closet. The lecture provides step-by-step instructions for moving them:
Step 1: Create a topology consisting of two PCs in the logical workspace.
Step 2: As Ethernet has distance restrictions, switch off both the PCs and replace their default modules with PT-HOST-NM-1FGE.
Step 3: Connect both of the PCs with a fiber cable and assign IP addresses.
Step 4: Switch to the physical view, and click on the New City button. Rename it Lahore. Click on this city and create a new building, and then create a new wiring closet within this building.
Step 5: Use the NAVIGATION button and go to Home City | Corporate Office | Main Wiring Closet. Both the PCs we inserted in the logical workspace are located here. Jump to their location.
Step 6: Use the Move Object button and move one of the PCs to Lahore| Office Building | Wiring Closet.
🔑 Definition — PT-HOST-NM-1FGE: A fiber gigabit Ethernet network module for hosts in Packet Tracer used to overcome Ethernet distance restrictions by using fiber optic cabling. 📌 Example: Two PCs connected with fiber cable in a topology where default modules are replaced with PT-HOST-NM-1FGE to handle distance limitations.
⭐ Key Takeaways
The physical workspace in Packet Tracer has four hierarchical environments: Intercity (largest, containing cities), City (containing buildings and wiring closets), Building (containing only wiring closets), and Wiring Closet (containing only devices). When devices are created in the logical workspace, they automatically appear in the Home City | Corporate Office | Main Wiring Closet. To simulate real-world network layouts, you can create new cities (like Lahore), buildings, and wiring closets, then use the Move Object tool to relocate devices between different physical locations. The PT-HOST-NM-1FGE module is used to replace default modules when fiber connections are needed to overcome Ethernet distance restrictions.
🧠 Quick Revision Questions
- What are the four environments available in Packet Tracer's physical workspace, and what does each contain?
- Where are devices automatically placed when created in the logical workspace?
- What module should replace the default module when connecting devices with fiber cable, and why?
- How do you create a new city and building in Packet Tracer's physical view?
- What tool is used to move a device from one wiring closet to another in the physical workspace?
📘 Lecture 187 — Managing Cables and Distances
📖 Overview: This lecture explains how to manage cables and distances within the physical space of Packet Tracer. It demonstrates how cable length affects network connectivity, specifically focusing on the 100-meter limitation of standard copper Ethernet cables. The practical steps show how to move devices between different physical locations and observe connection failures due to excessive distance.
🗂️ Topics Covered
The lecture covers measuring cable distances in Packet Tracer's physical view, the 100-meter maximum length for standard copper Ethernet cables, creating cities and buildings in the physical workspace, moving devices between different physical locations, and testing how distance causes network connections to fail.
📝 Lecture Summary
Managing Cables and Distances in Packet Tracer
In Packet Tracer, we can manage cables and distances in physical space. When two cities are created, each containing a PC connected via fiber, we can measure a cable's distance by placing the pointer on the cable in the physical view.
The length of Standard copper Ethernet cables can extend up to 100 meters. The lecture provides a step-by-step test to demonstrate that a connection fails due to excessive distance.
Steps to test the 100-meter limit:
- Step 1: Create a topology consisting of two PCs in the logical workspace.
- Step 2: Connect both PCs with a copper cable and assign IP addresses.
- Step 3: Switch to the physical view, click on the New City button, rename it "Lahore". Click on this city, create a new building, and then create a new wiring closet within this building.
- Step 4: Use the NAVIGATION button to go to "Home City | Corporate Office | Main Wiring Closet". Both PCs inserted in the logical workspace are located here. Jump to their location.
- Step 5: Use the Move Object button and move one of the PCs to "Lahore | Office Building | Wiring Closet".
🔑 Definition — Standard copper Ethernet cable: A type of network cable (typically Cat5e, Cat6, etc.) that uses copper wires to transmit data and has a maximum effective distance of 100 meters.
📐 Formula: Maximum copper cable distance = 100 meters → Copper Ethernet cables cannot reliably transmit data beyond 100 meters without signal degradation.
📌 Example: Two PCs are connected via copper cable. After moving one PC to a different city (Lahore), the distance between them likely exceeds 100 meters. The connection between the two PCs will go down, demonstrating the physical limitation of copper cabling.
💡 Why this matters: Network engineers must consider physical distances when designing networks. Exceeding the 100-meter copper limit requires using repeaters, switches, or fiber optic cabling for longer distances.
⭐ Key Takeaways
The maximum reliable distance for standard copper Ethernet cables is 100 meters, and exceeding this limit causes the network connection to fail. Packet Tracer's physical view allows you to create cities, buildings, and wiring closets to simulate real-world network topologies. Using the Move Object tool, you can relocate devices between different physical locations to test distance-related connectivity issues. When a PC is moved to a different city, the copper cable connecting it to another PC may exceed the 100-meter limit, causing the link to go down. This demonstrates why fiber optic cabling or network switches are needed for longer-distance connections in real-world deployments.
🧠 Quick Revision Questions
- What is the maximum length of a standard copper Ethernet cable?
- Which button in Packet Tracer's physical view is used to move a device to a different location?
- What happens to the connection when a PC is moved to a different city via copper cable?
- How can you measure a cable's distance in Packet Tracer's physical view?
- What is the purpose of creating a wiring closet within a building in Packet Tracer's physical workspace?
📘 Lecture 188 — Static Routing with GUI
📖 Overview: This lecture demonstrates how to configure static routing using the Graphical User Interface (GUI) in Packet Tracer. Understanding GUI-based static routing is essential for network administrators who prefer visual configuration over CLI, and it reinforces the concept that static routes change slowly due to human intervention.
🗂️ Topics Covered
The lecture covers the step-by-step process of setting up static routing through the GUI in Packet Tracer, starting with placing four routers in a ring topology, configuring IP addresses on interfaces, and then adding static routes using the ROUTING section’s Static option. It also includes cable manipulation techniques for better visual organization in the physical view.
📝 Lecture Summary
Static Routing with GUI
This topic configures static routing with GUI in Packet Tracer. In static routing algorithms, routes change very slowly over time, often as a result of human intervention. A human manually edits a router’s forwarding table. The lecture demonstrates this using a network consisting of four routers in a ring topology, with no PCs or loopback interfaces.
🔑 Definition — Static routing: A routing method where routes are manually configured by a network administrator and do not change automatically in response to network topology changes.
Step 1: Drag and drop 4 routers in the workspace. Step 2: Click on a router icon, go to the Config tab, select an interface, and configure the IP address. Check the On checkbox to bring the port status up. Step 3: Now go to the ROUTING section, and click on Static. The settings used for configuring static routing using the GUI are shown next.
💡 Why this matters: GUI-based configuration provides a visual alternative to CLI, making it easier for beginners to understand the relationship between interfaces, IP addresses, and routing tables.
Cable Manipulation
As the number of devices increases, it becomes confusing to see which cable connects to what. This confusion can be reduced by adding colors to cables. In the physical view, click on a wire and then choose Color Cable. Pick a color from the Select Color dialog box.
🔑 Definition — Cable manipulation: The process of visually organizing network connections in Packet Tracer by assigning distinct colors to cables for easier identification and troubleshooting.
⭐ Key Takeaways
Static routing requires manual human intervention to edit a router’s forwarding table, meaning routes change very slowly over time. The GUI method in Packet Tracer involves accessing the Config tab to enable interfaces and set IP addresses, then navigating to the ROUTING section’s Static option to add routes. The ring topology example uses four routers with no PCs or loopback interfaces, emphasizing pure router-to-router connectivity. Visual organization of cables through color-coding helps manage complex networks by reducing confusion about which cable connects to what.
🧠 Quick Revision Questions
- What is the primary difference between static routing and dynamic routing in terms of how routes are updated?
- In Packet Tracer’s GUI, which tab do you access to configure a router’s interface IP address and enable the port?
- How many routers are used in the ring topology example for static routing with GUI?
- What specific setting must be checked to bring the port status up when configuring an interface?
- How can you visually distinguish different cables in Packet Tracer’s physical view?
📘 Lecture 189 — Static Routing with CLI
📖 Overview: This lecture teaches how to configure static routing using the Command Line Interface (CLI) in Packet Tracer. It demonstrates the step-by-step process of setting up interfaces, assigning IP addresses, and configuring static routes across four routers in a ring topology, enabling practical understanding of how network traffic is manually directed between different subnetworks.
🗂️ Topics Covered
Setting up a four-router ring topology in Packet Tracer, accessing and using the CLI tab on each router, assigning IP addresses to FastEthernet interfaces with subnet masks and no shutdown commands, repeating the configuration for all four routers with specific IP assignments, and finally configuring static routes using the ip route command with destination network, subnet mask, and next-hop IP address.
📝 Lecture Summary
Configuring Static Routing with CLI
This topic teaches how to configure static routing using the CLI (Command Line Interface) feature in Packet Tracer. A static route is a manually configured path that tells a router how to reach a specific destination network by specifying the next-hop IP address. This is essential for small networks where administrators want full control over routing decisions, though it does not adapt to network changes automatically.
🔑 Definition — Static Routing: A type of routing where a network administrator manually configures the routes a router will use to send packets to specific destination networks. The route remains fixed unless manually changed.
Step 1: Setup the Network Topology
To learn the CLI usage, assume a network consisting of four routers in a ring topology with no PCs or loopback interfaces. Drag and drop 4 routers into the Packet Tracer workspace.
Step 2: Access the CLI Tab
Click on a router icon and go to the CLI tab. As the device boots up, you will see the prompt (e.g., Router> or Router#). This is where you will enter all configuration commands.
Step 3: Assign IP Addresses to Router Interfaces
Enter configuration mode and assign IP addresses to R1's interfaces:
R1(config)#interface FastEthernet0/0R1(config-if)#ip address 192.168.10.1 255.255.255.0R1(config-if)#no shutdownR1(config-if)#exitR1(config)#interface FastEthernet0/1R1(config-if)#ip address 192.168.20.1 255.255.255.0R1(config-if)#no shutdownR1(config-if)#exit
📌 Example: For R1, interface FastEthernet0/0 is assigned IP 192.168.10.1 with subnet mask 255.255.255.0, and interface FastEthernet0/1 is assigned IP 192.168.20.1 with the same mask. The no shutdown command activates the interface.
💡 Why this matters: Each interface must be configured with an IP address and enabled (no shutdown) before it can forward traffic.
Step 4: Repeat IP Configuration for Remaining Routers
Repeat Step 3 for the remaining routers (R2, R3, R4) with the following configurations for their interfaces:
- [The textbook does not provide explicit IP assignments for R2, R3, and R4, but the ring topology implies sequential IP addressing for their respective FastEthernet interfaces based on the next steps' static route configuration.]
Step 5: Configure Static Routing
Enter the global configuration mode on each router and use the ip route command to configure static routes. The syntax is: ip route [destination-network] [subnet-mask] [next-hop-ip]
For R1:
R1(config)#ip route 192.168.30.0 255.255.255.0 192.168.10.2R1(config)#ip route 192.168.40.0 255.255.255.0 192.168.20.2
🔑 Definition — Next-hop IP address: The IP address of the directly connected router interface that a packet must be sent to next in order to reach the destination network.
📐 Formula: ip route [destination-network] [subnet-mask] [next-hop-ip] → This command tells the router: "To reach the [destination-network], send packets to [next-hop-ip]."
📌 Example: For R1, the first static route says: to reach network 192.168.30.0/24, send packets to the next-hop 192.168.10.2 (which is likely R2's FastEthernet0/0 interface). The second route says: to reach network 192.168.40.0/24, send packets to the next-hop 192.168.20.2 (which is likely R4's FastEthernet0/1 interface).
💡 Why this matters: In a ring topology, each router needs at least two static routes — one for the network behind the neighbor on one side and one for the network behind the neighbor on the other side — to ensure all destinations are reachable.
Repeat Step 4 for Remaining Routers
Repeat Step 4 (the static routing configuration) for the remaining routers (R2, R3, R4) using the configuration shown next in the original text. The specific commands for each router are not detailed in the provided excerpt but follow the same pattern: each router will have static routes pointing to networks it does not directly connect to, using the appropriate next-hop IP addresses.
⭐ Key Takeaways
Static routing with CLI requires entering the global configuration mode on each router, assigning IP addresses to interfaces with the ip address command and enabling them with no shutdown, and then manually configuring routes using the ip route [destination-network] [subnet-mask] [next-hop-ip] syntax. In a ring topology with four routers, each router must have static routes to reach the two networks it is not directly connected to, using the appropriate neighbor interface IP as the next-hop. The key command to master is ip route, which forms the basis for static routing in small, stable networks where manual control is preferred.
🧠 Quick Revision Questions
- What is the purpose of the
no shutdowncommand when configuring a router interface? - In the command
ip route 192.168.30.0 255.255.255.0 192.168.10.2, what does192.168.10.2represent? - How many static routes are minimally required on each router in a four-router ring topology to reach all other networks, and why?
- What is the first step after accessing a router's CLI to begin configuring static routing?
- Why is static routing generally not suitable for large or dynamically changing networks?
📘 Lecture 190 — Configuring RIP with GUI
📖 Overview: This lecture explains how to configure the Routing Information Protocol (RIP) using the graphical user interface (GUI) in Packet Tracer. It demonstrates the process of setting up dynamic routing on a ring topology of four routers, making routing configuration more accessible without using the command line.
🗂️ Topics Covered
This lecture covers the nature of dynamic routing protocols, the specific features of RIP as a dynamic routing protocol, and provides a step-by-step GUI configuration process in Packet Tracer. It includes setting up a four-router ring topology, configuring IP addresses on interfaces through the Config tab, and enabling RIP by entering the network IP addresses of each router's directly connected interfaces.
📝 Lecture Summary
Dynamic Routing Protocols
Dynamic Routing Protocols automatically form "neighbor ships" with other routers and send them the directly-connected routes along with other learned routes. These protocols also send out updates when a topology change occurs. The lecture introduces the Routing Information Protocol (RIP) as a dynamic routing protocol that can be configured via a GUI in Packet Tracer.
🔑 Definition — Dynamic Routing Protocol: A protocol that automatically forms neighbor relationships with other routers and exchanges routing information, including directly-connected routes and routes learned from other routers.
🔑 Definition — RIP (Routing Information Protocol): A dynamic routing protocol that can be configured through a GUI in Packet Tracer to automatically exchange routing information between routers.
Step-by-step Configuration
The lecture uses a network consisting of four routers arranged in a ring topology with no PCs or loopback interfaces.
Step 1: Drag and drop 4 routers into the workspace.
Step 2: Click on a router icon, go to the Config tab, select an interface, and configure the IP address.
Step 3: Click on RIP in the Config tab. Enter the Network IP of the router's own interfaces to enable RIP on those networks.
📌 Example — RIP Configuration Steps:
- Place 4 routers in a ring topology on the workspace
- For each router: Click the router → Config tab → select the interface → enter the IP address
- For each router: Click RIP in the Config tab → enter the network IP addresses of all directly connected interfaces
- Finally, test connectivity between all routers using a Simple PDU by clicking on one router and then another, and checking the User Created Packet box
💡 Why this matters: The GUI method makes RIP configuration more visual and accessible, especially for beginners who may find command-line routing configuration challenging. Understanding this GUI-based approach is foundational before moving to CLI-based routing configuration.
⭐ Key Takeaways
The lecture demonstrates that dynamic routing protocols like RIP form neighbor relationships and automatically exchange routing information, including updates when topology changes occur. The GUI configuration process involves three main steps: placing routers in the workspace, assigning IP addresses to interfaces through the Config tab, and enabling RIP by entering the network IPs of each router's own interfaces. The final step is verifying connectivity between all routers using a Simple PDU test. This lecture establishes the fundamental workflow for GUI-based dynamic routing configuration in Packet Tracer.
🧠 Quick Revision Questions
- What two main functions do dynamic routing protocols perform regarding router relationships and route sharing?
- How many routers are used in the ring topology example for this RIP configuration?
- Under which tab in the router configuration interface would you find the option to configure IP addresses?
- What specific information must be entered when configuring RIP in the GUI for each router?
- How can a user test connectivity between routers after completing the RIP configuration?
📘 Lecture 191 — Configuring RIP with CLI
📖 Overview: This lecture explains how to configure Routing Information Protocol (RIP) using the Command Line Interface (CLI) in Packet Tracer. It demonstrates a hands-on approach to building a ring topology of four routers, assigning IP addresses, enabling RIP, and testing connectivity. Understanding CLI-based RIP configuration is essential for network troubleshooting and for passing CCNA-level exams.
🗂️ Topics Covered
The lecture covers: building a four-router ring topology in Packet Tracer; assigning IP addresses via the CLI; enabling RIP routing protocol; entering network statements; testing connectivity with simple PDUs; and verifying the routing table and path selection. A quick deletion simulation is used to demonstrate RIP’s ability to find alternate routes when a link fails.
📝 Lecture Summary
Step 1: Build Topology & Assign IPs
Four routers are placed in a ring topology. For each router, the CLI is used to assign IP addresses to its FastEthernet interfaces. The no shutdown command enables the interface. For R1, interface FastEthernet0/0 receives 192.168.10.1/24 and FastEthernet0/1 receives 192.168.20.1/24. This process is repeated for the remaining routers with their respective network ranges.
🔑 Definition — RIP (Routing Information Protocol): A distance-vector routing protocol that uses hop count as its metric. It automatically updates routing tables by exchanging routing information with neighboring routers.
📐 Formula: RIP uses hop count metric → lower hop count = better path. Maximum hop count is 15 (16 is considered unreachable).
📌 Example: For R1, the CLI commands are:
R1> enable
R1# configure terminal
R1(config)# interface FastEthernet0/0
R1(config-if)# ip address 192.168.10.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface FastEthernet0/1
R1(config-if)# ip address 192.168.20.1 255.255.255.0
R1(config-if)# no shutdown
Step 2: Enable RIP and Advertise Networks
After all IPs are configured, RIP is enabled globally using the command router rip. Then, each directly connected network is advertised using the network command. For R1, this means:
R1(config)# router rip
R1(config-router)# network 192.168.10.0
R1(config-router)# network 192.168.20.0
🔑 Definition — network statement in RIP: This command tells the router to send and receive RIP updates on interfaces belonging to that network, and to include that network in routing advertisements.
💡 Why this matters: Without the correct network statements, RIP will not propagate routing information, and routers will not learn about remote networks, causing connectivity failures.
Step 3: Test Connectivity
After configuration, use Simple PDU in Packet Tracer to test connectivity between any two routers. Click on the source router, then the destination router. The User Created Packet box shows whether the packet was successfully delivered. If it fails, use Simulation Mode (Step 5) to trace the packet’s path.
Step 4: Verify Alternate Routing
Using the delete tool, remove one link — for example, the link between R1 and R2. Still in Simulation Mode, send another Simple PDU from R1 to R2. The packet will now take the alternate, longer route (through the ring) and successfully reach the destination. This demonstrates RIP’s ability to dynamically adapt to topology changes.
📌 Example: With the link between R1 and R2 removed, the packet from R1 to R2 will travel: R1 → R3 → R4 → R2 (hop count = 3) instead of the original 1-hop path.
⭐ Key Takeaways
A student must remember that configuring RIP via CLI involves three core steps: assigning IP addresses to interfaces, enabling router rip, and advertising all directly connected networks with the network command. Testing with Simple PDU verifies connectivity, and Simulation Mode reveals the path each packet takes. When a link fails, RIP automatically recalculates the best path based on the lowest hop count. The maximum hop count of 15 is critical — networks farther than 15 hops away are unreachable. Always ensure no shutdown is applied to every interface.
🧠 Quick Revision Questions
- What is the purpose of the network command in RIP configuration?
- After assigning an IP address to a FastEthernet interface, what command must be entered to make the interface operational?
- In the ring topology example, if the link between R1 and R2 is removed, how many hops will a packet travel from R1 to R2?
- What is the maximum hop count for a route in RIP before it is considered unreachable?
- Which Packet Tracer tool is used to visualize the exact path a packet takes after a link failure?
📘 Lecture 192 — Load Sharing
📖 Overview: This lecture explains how load sharing works in Packet Tracer when a source router has multiple paths to a destination with equal metrics. It provides a step-by-step lab demonstration to configure and observe automatic load balancing using RIP across a four-router ring topology.
🗂️ Topics Covered
The lecture covers load sharing concepts, configuring IP addresses on routers in a ring topology, creating a loopback interface on Router 4, setting up RIP routing, and using simulation mode to observe how traffic alternates between two equal-cost paths (R1-R2-R4 and R1-R3-R4).
📝 Lecture Summary
Load Sharing in Packet Tracer
When a source router has multiple paths to a target network, it can load balance traffic across them. If multiple paths exist from a source to a network destination with the same metric, then RIP automatically balances the traffic between them.
🔑 Definition — Load Sharing: The process of distributing network traffic across multiple equal-cost paths to a destination to optimize bandwidth usage and redundancy.
📌 Example: Assume a network that consists of four routers in a ring topology with no PCs.
Step 1: Drag and drop 4 routers in the workspace.
Step 2: Configure the IP address on each router's interfaces.
Step 3: Configure Network IP of its own interfaces using RIP.
Step 4: On Router 4, add a loopback interface (a virtual interface that works like a real interface and needs an IP address). Go to the CLI tab of R4 and enter:
• R4(config)#interface loopback 0
• R4(config-if)#ip address 192.168.100.0 255.255.255.0
Step 5: Go to the RIP config mode and enter the network IP for this loopback interface:
• R4(config)#router rip
• R4(router-if)#network 192.168.100.0
Step 6: Create a complex PDU that is sent every two seconds to generate traffic.
Step 7: Turn on the simulation mode. You will find that the first packet takes the R1-R2-R4 route while the second takes the R1-R3-R4 route.
💡 Why this matters: This demonstrates how RIP automatically alternates traffic between equal-cost paths, providing load balancing without manual intervention.
⭐ Key Takeaways
Load sharing in RIP occurs automatically when multiple paths have the same metric to a destination network. In the ring topology lab, traffic alternates between two paths (R1-R2-R4 and R1-R3-R4) because both routes have equal hop counts. The loopback interface on Router 4 serves as the destination network, and the complex PDU sent every two seconds allows observation of the load balancing behavior in simulation mode.
🧠 Quick Revision Questions
- What condition must be met for RIP to automatically perform load sharing?
- In the ring topology lab, which two paths does traffic alternate between?
- What command is used to create a loopback interface on Router 4?
- What is the purpose of the complex PDU sent every two seconds?
- Does RIP load balance across paths with different metrics?