
Explore the tcp/ip model from bottom to top, detailing network access, internet, transport (tcp or udp), and application layers, and how headers encapsulate data across ethernet networks.
Explore the ethernet header: destination and source MACs in a 14-byte frame, a two-byte type field for the next layer (e.g., 0x0800), and vendor and device MAC addressing.
Explore the IP header fields for IPv4 and IPv6, including version, header length, and 20 to 60 byte headers. Examine how the type of service and QoS prioritize traffic.
Explore IP fragmentation across networks with varying MTU sizes, where packets exceed the MTU and are fragmented, with more fragments, don't fragment flags, and data offset guiding reassembly.
Explains how IP header time to live limits packet hops by decrementing at each hop and discarding the packet at zero, with protocol field routing to TCP or UDP.
Learn how the IP header checksum ensures packet integrity by summing header fields and applying a ones' complement. Receivers verify the checksum and discard corrupted packets to prevent tampering.
Explore how the IP header routes and fragments packets across networks, using source and destination addresses, MAC addresses, private versus public IPs, MTU limits, and fragment reassembly.
Explore UDP header fields, including source port, destination port, length, and checksum, and see how the IP protocol directs packets to UDP, delivering DNS traffic to port 53.
Explore tcp concepts and header structure, including ports, sequence and acknowledgment numbers, header length, and flags, plus the connection-oriented handshake, reliability, and flow control via window size and buffering.
Explore how TCP mechanisms establish a connection via a three-way handshake, using header flags and sequence numbers to enable reliable, windowed data transfer and orderly disconnection.
Explore how devices communicate with sockets and ports, how the operating system assigns port numbers, and how clients and servers use well-known ports like 80 and 53.
Explore sending a DNS packet with Python by using the socket module to craft a UDP DNS query to port 53 and inspect the resulting response.
Learn to build a client-server conversation in Python using sockets, including creating, binding, listening, accepting, connecting, and sending and receiving data, and compare sockets to raw sockets.
Explore using Python's struct module to pack and unpack binary data for raw sockets, encoding IP and TCP headers and handling big and little endian formats.
Master converting between hex, decimal, and binary with binascii, ord, chr, int, hex, and bin, and translate between characters and ASCII code points using practical examples.
Explains arp packets in detail, showing how devices use ip addresses and mac addresses, broadcast requests, and the arp protocol to resolve a destination mac and enable raw packet sending.
This lecture introduces crafting and injecting ARP packets with raw sockets, explaining ethernet frames, broadcasting with MAC addresses, and the role of network interface cards.
Learn to craft and inject arp packets with python using raw sockets, binding to a network interface, and broadcasting arp requests to resolve mac addresses.
in this course first the TCP/IP model has been discussed and then main protocols in different layers are explained in detail so that you could understand them better when we enter python world. then using the knowledge from last lectures we start creating packets using a high level and then at the lowest level possible in python which is python raw sockets. after we inject and send and receive them on different system we analyze all packets in the communication by wireshark.