Networking Concepts with Socket Programming – Academic Level

Networking Concepts with Socket Programming – Academic Level

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 23 Hours | 9.36 GB

Networking course with socket programming concepts in depth with TCP/UDP/HTTP Socket Programming for beginners to expert

This course is about strengthening the Networking concepts and fundamentals with assignments side by side with theory. Through this course you will be able to :

1. Understand the Functioning of TCP/IP Stack (OSI Model). Understand the function of each layer in TCP/IP stack in good detail.

2. Explain the L2 routing concepts – Mac Addresses and ARP

3. Explain the L3 routing concepts – IP Addresses and IP protocol

4. Understand the procedure of Dynamic construction of L3 Routing Table

5. Understand various ways to design a Linux TCP/UDP server program in C

6. Understand Socket programming in C

7. Understand the Networking devices functioning – L2 switch and L3 router

8. Understand packet Journey through the layers of TCP/IP stack

9. Design and implement HTTP Webservers from scratch

10. Read and manufacture the network packets from scratch

11. Understand the concept of TLVs

12. Concept of packet Encapsulation

13. Understand Domain Name System (DNS)

14. Virtual LANs (VLANs) and Routing in VLANs

15. Broadcast Domain and Collision Domain

We Understand – Networking by its nature is inclined towards being a theoretical subject of study. To arouse the interest of the students ,we elaborate each and every topic of this course through an assignment or project.

This course is thorough. We explain the design, discuss the code flow and then guide the audience how to implement the particular concept design in detail in a step by step manner. All you need is a Linux OS running on your system to do this course.

Who should do this course ?

This course is meant for UG Computer science students, job seekers and professional developers. This is MUST do course for those who want to join MNCs as a developer. The topics covered in this course are of utmost importance from interviews aspects and students graduating in computer science and looking to seek an opportunity in MNCs as a developer should have Networking concepts at his/her finger tips. Better to have done Networking under graduate course, not mandatory. Job seekers trying for the position of Networking developers in product based MNCs System software development including Networking is an evergreen area. Internet will not going to be doomed ever.

Pre-requisite

There is no pre-requisite for this course, however, it shall be advantage if you know a little of C. We designed this course assuming student is a complete beginner in Networking and we raise the level of course gradually as we move from Basic to advance Networking concepts.

Also, Please just do not sit and watch my codes. Write your own codes, even if it is same as mine !

We have a strong reasons to choose C as a language for this course:

1. The entire core networking development work is being done in C in industry. So, this reason alone is good enough that you should learn network development in C if you are aiming to join industry as a network protocol developer.

2. Network equipment need to interact with underlying hardware – the ASIC chips. What could be a better language other than C when it comes to interact and program the hardware.

3. C is middle level language – not as low as assembly, neither as high as Java/Python. In C, its the programmer’s responsibility to write every line of code to get the task done, unlike Java/Python which provides rich rest of libraries to do the most tasks for you. Using High Level Languages for learning network programming would obscure the low level details of networking – that is what is going behind the scenes. If you are are beginner in network programming, you must learn things from scratch and only C provides you the opportunity to do that. So, you must do all your assignments in C.

4. Networking is all about cooking up the packets and sending it out of wire. C will allow you to cook packets exactly the same way as you would like them to appear on wire. Lot of Bit level programming.

5. If you are a beginner in Networking, pls refrain from learning network programming in High Level Languages such as Java Or Python. It is not job oriented thing to do in networking domain.

No Third Party libraries

Whatever logic you implement, you need to implement it from scratch. This course do not suggest taking help of any third party library to get the jobs done. Use of external libraries completely defeats the purpose of the course. However, it is recommended to use third party libraries for commonly used data structures such as linked lists/Trees/Queues etc which saves a lot of time implementing these data structures.

What you’ll learn

  • Confident at Answering Networking Related Question
  • Open up opportunities to Networking/System programming Companies
  • Get familiar with Linux and Learn Linux System programming side by side
  • Build Github portfolio, strengthen your employability
  • Decorate your Resume with projects done in this Course
  • Learn Networking concepts at all Layers of OSI Model
  • Course content has been designed keeping the MNCs interviews in Mind
  • Coding Assignments and Projects
  • Become a Networking professional Developer
  • Master designing and Writing TCP/UDP Servers in Linux environment
  • Build & Decode the complete packet from scratch
  • Concept of Packet Encapsulation
  • L2 and L3 Routing, Vlan based Routing
Table of Contents

Introduction
1 Table Of Contents
2 Join Telegram Group
3 Setting Up Linux Development Environment
4 OSI Model Introduction
5 OSI Model Layers Functions
6 TCP IP Stack real World Analogy
7 Data Encapsulation and Decapsulation – Introduction
8 Data Encapsulation
9 Data Decapsulation
10 Data Encapsulation and Decapsulation on Forwarding nodes
11 A Big Picture

MultiNode Topology
12 Local And Remote Subnets
13 L3 Routing Information
14 L3 Routes

Networking Labs
15 What in this Section
16 Objective and Goals
17 Mininet Installation Procedure
18 Extra Tools Installation
19 Launching Mininet
20 Mininet TreeTopologies

IP Subnet
21 Subnetting Part 1
22 Subnetting Part 2
23 Data Delivery
24 Mac and IP Address
25 Network ID
26 Broadcast Addresses
27 Max Value and Control Bits
28 IP Address Configuration
29 Point to Point Links Mask
30 Broadcast Addresses In Detail
31 IP Maths Coding Assignments

Layer 2 Routing
32 L2 Routing Introduction
33 L2 Routing – Basics
34 Ethernet Header format
35 How Layer 2 Routing is done
36 ARP Goals
37 ARP Standard Message Format
38 Address Resolution Protocol Part 1
39 Address Resolution Protocol part 2
40 Address Resolution Protocol Demonstration
41 Layer 2 Switch Concept
42 L2 Switch Functioning
43 Layer 2 Switch Example
44 Lab Session
45 Test Topology Description
46 L2 Topology Demo
47 L2 Topology Assignment

Layer 3 Routing
48 Layer 3 Routing Overview
49 Why we need L3 Routes
50 Semantics of Layer 3 Routes
51 Routing table Look up
52 L3 Routing Topology
53 Layer 3 Operations and Flowchart
54 Layer 3 Routing Example
55 Loopback interfaces – Introduction
56 Loopback interfaces – properties
57 Routing using Loopback IP Address as Destination Address
58 Lab Session on L3 Routing
59 L3 Topology Construction and Demo

Dynamic Construction of Layer 3 Routing Table
60 Introduction
61 Goals and Problem Statement
62 Routing Table Entry Format
63 ECMP – Equal Cost Multiple Path
64 L3 Device Collaboration
65 Generic Steps to Build Routing Table

Part2 – Dynamic Construction of Layer 3 Routing Table
66 Phases of This Section
67 Phase 1 – 4 Steps
68 Phase 1 – Step 1 and 2
69 Phase 1 – Steps 3 and 4
70 Phase 2 – Spf Algorithm
71 Phase 2 – Spf Algo Example 1
72 Phase 2 – Spf Algo Rules
73 Phase 2 – Spf Algo Example 2
74 Phase 3 – Final Routing Table Computation
75 Loop Free is Guaranteed
76 Convergence – Nodelink Failures
77 Summary

Broadcast Domain and Collision Domain
78 BD and CD – Introduction
79 Collision Domain reduction by L2 Switches – Example1
80 Broadcast Domain reduction by L3 router – Example2

LANs and VLANs
81 What are LANs and Use Cases
82 LANs Problem 1 – Immobility
83 LANs Problem 1 – Immobility Real World Example
84 LANs Problem 2 – Security Issues
85 Introducing VLANs
86 Access and Trunk Ports of L2 Switch
87 Q VLAN Header
88 VLAN Tagging Rules
89 VLAN L2 Routing Example – Part1
90 VLAN L2 Routing Example – Part2
91 VLAN L2 Routing Example – Part3
92 VLAN Benefit 1 – Segmentation
93 VLAN Benefit 2 – Resolve Thrashing
94 VLAN Benefit 3 – Reduced Broadcast Domain
95 VLAN Benefit 4 – Mobility
96 VLANs Additional Reading

Router – Vlan Routing
97 Introduction and Problem Statement
98 Concept of SVIs
99 L3 Router Configuration for VLAN forwarding
100 Router to Vlan Forwarding – Example

Inter Vlan Routing
101 Problem Statement
102 Traditional L3 Routing – Recap
103 Default Routes and ARP Resolution in Vlan based Network – Recap
104 Inter Vlan Routing Basics
105 Inter Vlan Routing Example – Part1
106 Inter Vlan Routing Example – Part2
107 Summary
108 Exercises

Transport Layer
109 Transport Layer Introduction
110 Transport Layer Goals
111 User Datagram Protocol (UDP) – part1
112 User Datagram Protocol (UDP) – Part2
113 TCP Disclaimer
114 Transmission Control Protocol (TCP) – Connection Oriented
115 TCP – Stateful Protocol
116 TCP – Byte Oriented Protocol
117 TCP – Ordered Delivery
118 TCP – Reliable Delivery
119 TCP tools for for Lossy Networks
120 TCP Vs UDP
121 Header Stacking
122 Transport Layer Port Numbers
123 System Call Interface

Transport Layer – TCP Preliminaries
124 TCP Vs Other Protocols
125 TCP ARQ Challanges
126 TCP Byte Circular Buffers
127 Segments and Sequence Numbers – Part1
128 Segments and Sequence Numbers – Part2
129 TCP Hdr Sequence Number and Acknowledge Number
130 TCP Segments Type
131 TCP Reliable Data Delivery – Revisited
132 TCP Re-transmission Timer Illustration
133 Summary

Socket Programming
134 Introduction to Socket Programming
135 Server Designing
136 Accept system call
137 Select System Call
138 Implementing Multiplexing with Accept & Select System Calls
139 TCP Server Example – part 1
140 TCP Server Example – part 2
141 TCP Server Example – part 3
142 TCP Server Design Observation
143 TCP Client Design and Implementation
144 TCP Server Client Demonstration
145 TCP Server With Multiplexing – High Level Design – Part1
146 TCP Server With Multiplexing – Implementation – part 2
147 TCP Server With Multiplexing – Demonstration – part 3
148 Socket Programming Conclusion

The Application Layer
149 Application Layer Introduction
150 HTTP Server Design and Implementation from Scratch
151 HTTP Server Demonstration
152 HTTP Server Code Walk
153 HTTP Server Assignment

Socket Programming Project – Implement Distributed Transparent Memory
154 Project Goals
155 Project Deployment
156 Put Request Algorithm
157 Get Request Algorithm
158 Messages Types
159 Messages Processing
160 Project Pseudocode
161 Final Words before Coding

Domain Name System
162 DNS Agenda
163 DNS – Introduction
164 DNS – Problem Statement
165 What is DNS
166 DNS Architecture and Geographical Distribution
167 DNS – A Hierarchical and Decentralized System
168 DNS – Hosting your Own website
169 Website Domain Name and FQDN
170 Top Level Domain Servers Classification
171 DNS Resolver
172 DNS Query types
173 DNS Query – Recursive
174 DNS Query – Iterative
175 Reverse DNS Query
176 Summary

Packet Encapsulation
177 IP in IP Encapsulation – Introduction
178 What are Heterogeneous Networks
179 Scenario 1 – IPv6-in-IP Encapsulation Problem Statement
180 Scenario 1 – IPv6-in-IP Encapsulation Solution
181 Scenario 2 – IP Encapsulation Problem Statement and Solution
182 Scenario 2 – IP Encapsulation Practical Use case
183 IP Encapsulation Conclusion and Summary

Concept of TLVs – Type Length Value
184 TLVs – Introduction
185 Why we need TLVs
186 Why we need TLVs – Another scenario
187 Understanding TLVs
188 TLV Addressing the problem of Heterogeniety
189 TLV Addressing the problem of Software Upgrade

Interview Question on Data structures Algorithms OS and Networking
190 Bonus Lecture – Time to get some Candies !!
191 Interview Question on Data structures Algorithms OS and Networking

Homepage