2. Networking Terminologies

2. Common Networking Terminologies

Let's quickly go through the frequently used terminologies along with their meanings which are very important for network programming. In case you already know about them, then quickly go through them, and do let us know if we missed any point.

Internet Protocol

These are the set of procedures or rules which govern the flow of data, format of data over the internet.
Let's understand this using a simple example: Suppose there are two friends A and B. If A wants to send a letter to B. What would he do? A will go to the Post Office(kind of a communnication network), put the letter in the envelop and submit it in the Post Office for delivery to B. Now, it's the responsibility of the Post Office to safely deliver the letter to B. Now suppose, A wants to send a script, comprising of 20 pages to B. Since there is a constraint that one envelop can fit at most one page so, A will have to post all the 20 pages in separate envelops, one by one. Now what is the guarantee that the Post Office will deliver the letters in the same order as they were supposed to be? Here comes the Internet Protocols.
Mainly, we will be dealing with two major protocols over the internet:
  • User Datagram Protocol(UDP)
  • Transmission Control Protocol(TCP)

User Datagram Protocol (UDP)

UDP is a connectionless protocol. In this protocol data is sent over the internet as datagrams. In the previous example, 20 pages may refer to 20 datagrams. Let's have a look at some properties of the UDP protocols.
  • Unreliable: When a UDP message is sent, there is no way to know if it will reach its destination or not; it could get lost along the way. In UDP, there is no concept of acknowledgment, retransmission, or timeout (as in TCP).
  • Not ordered: If two messages are sent to the same recipient, the order in which they arrive cannot be predicted.
  • Lightweight: There is no ordering of messages, no tracking connections, etc. Hence UDP messages are used when the rate of data transmission required is more and relibility is not important.
  • Datagrams: Packets are sent individually and are checked for integrity only if they arrive.
Let's say that in the example above, B receives all the pages, except the envelope number 13. He can then ask A to resend envelope number 13, but then how would B know, when to request for the missing envelop? It is possible, that as soon as B sends a request to A, to resend the envelope number 13, the post office delivers the missing envelope. There can be many reasons for the delayed delivery. But because in UDP, there is no concept of acknowledgement or retransmission, hence, the only way is to wait, and then ask for the lost datagram again.
So we need a better way to make sure that B receives all the data properly. Fortunately, in computer networking, UDP is not the only protocol to send data amongst computers.

Transmission Control Protocol (TCP)

In TCP there is a concept of handshake. So, What is a handshake? It's a way to ensure that the connection has been established between interested hosts and therefore data transfer can be initiated.
In simple terms, when you make a phone call to someone you first say "Hello", and in return the person replies with a "Hello". This ensures that the connection has been established between both the parties and data(voice in this case)transfer can begin now. This is, for sure, the simplest example of handshake.
Unlike UDP, TCP protocol requires that you establish a connection first. So if A is to send a letter using TCP protocol to B, he has to first establish a connection with B. Once a connection is established, A can then send the first envelope and wait for B to acknowledge that he has received it. Once A gets the acknowledgment from B that the envelope 1 is safely received, A can send envelope 2. The process repeats until A tells B that he has sent all the envelopes.
On the basis of the above example we can device the properties of TCP:
  • Reliable: TCP manages message acknowledgment, retransmission and timeout. Multiple attempts to deliver the message are made. If it gets lost along the way, the server will re-request the lost part.
  • Ordered: The messages are delivered in a particular order in which they were meant to be.
  • Heavyweight: TCP requires three packets to set up a socket connection, before any user data can be sent. The three packets are: SYNSYN+ACK and ACK.

 

IP Addressess and Ports

IP addressess are the addressess which helps to uniquely identify a device over the internet and Portis an endpoint for the communication in an operating system. Confused! Let's try to make it simple to understand.
In the above example where A sends a letter to BA needs to know the postal address of B in order to successfully deliver the package. This postal address is unique and hence the mail man delivers the letter successfully. IP address is like the postal address. Now, suppose that B has a bunglow of 5 rooms and in each room a relative of B resides. One of the relative of B orders a pizza. Now when the pizza boy arrives to the given address, how will he come to know who ordered pizza amongst the 5 relatives? So in order to uniquely identify the person who ordered the pizza, the delivery boy needs room number. This room number is Port number in computer networks.
A system might be running thousands of services but to uniquely identify a service on a system the application requires a port number. There are total of 0 – 65535 ports on a system.
Port numbers are sometimes seen in web or other uniform resource locators (URLs) as well. By default, HTTP uses port 80 and HTTPS uses port 443, but a URL like http://www.example.com:8080/path/ specifies that the web browser connects instead to port 8080 of the HTTP server.
Some common ports are:
  • 22: Secure Shell(SSH)
  • 23: Telnet Remote Login Service
  • 25: Simple Mail Transfer Protocol(SMTP)
  • 53: Domain Name System(DNS) Service
  • 80: Hyper Text Transfer Protocol(HTTP) used in the World Wide Web

 

Now, coming up is some more detail about the IP addressess. IP address is of two types:
  1. Private IP address: Ranges from (192.168.0.0 – 192.168.255.255), (172.16.0.0 – 172.31.255.255) or (10.0.0.0 - 10.255.255.255)
  2. Public IP address: A public IP address is an IP address that your home or business router receives from your ISP(Internet Service Provider).

Firewall

The firewall monitors the incoming and outgoing network traffic based on predefined security rules like scanning digital signature, checking for valid file formats etc. It establishes a barrier between a trusted, secure internal network and another outside network, such as the Internet, that is assumed to be not secure or trusted.

 

Why Python for Network Programming?

There are several reasons for using Python for this course. The simplicity of python makes it the most powerful language. Python is syntactically simplest to implement amongst it's counterparts.
Also, you can do almost everything with python. 'Ohh.. Almost everything, Can we make a website using python? Can we make face detection application using python? can we make our own personal assistant using python? Can we make a penetration testing tool using python?
The answer to all of the above questions is a big YES!
The third party libraries support provided by python makes it limitless. There is a proper documentation for the third party libraries as well, hence using them in your application becomes easier.
Lastly, python is powerful enough to make websites like Quora and provide the backbone for the Google search engine, so yes, python is the perfect choice for network programming.
# Table of Contents:
28. Changing User Agent

# Ebooks for Network Programming with Python



Categories

[ Video ] CNC Programming (2) [Apps] F# Programming Tutorial (1) 100 ebooks for engineers (2) 2048 GAME (1) AC Circuits (1) AC Circuits Tutorial (1) AC Circuits Tutorials (2) Accounting Basics (1) Activities Manual to accompany Programmable Logic Controllers (1) Adeept Ultimate Starter Kit for Arduino (1) Adobe Photoshop CC (1) Advanced Business Application Programming (1) Advanced Excel Charts Tutorial (1) Alarm (1) Amazon App store (165) amazon ebook (86) Amazon Web Services (1) Amazon Web Services Tutorials (1) Amplifiers (1) Amplifiers tutorial (3) and Design (2) android game (17) Animal Connect (1) Apache Flume Tutorial (1) Apache Kafka Tutorial (1) Apache Pig Tutorial (1) Apache Solr Tutorial (1) Apache Storm Tutorial (1) Apex Programming (2) App Android (157) Apple Books (3) Applications (8) Applied Petroleum Reservoir Engineering (1) Apps (197) Apps Android (15) appstore (14) Appstore For Android (1) Arduino (1) Artificial Intelligence (1) Assembly Code Examples (1) Assembly Programming (2) Assembly Programming Tutorial (2) Attenuators Tutorial (2) Attract Wealth Hypnosis PRO (1) AutoCAD For Dummies (1) AutoCAD Tutorial (1) Awk Programming Tutorial (1) AWS (1) BABY LEARN TO ALPHABET (1) Basic Electricity (1) Basic Electronics (1) Basics of Mechanical Engineering (1) Beetle Run (1) Best Apps (52) Best Apps Android 2017 (6) Best games (19) Big Data Analytics with R (1) Binary Numbers (1) Binary Numbers Tutorial (1) Block Puzzle (1) Body Language (1) Boiler House (1) Books list for engineer (1) Boolean Algebra (1) Boolean Algebra Tutorial (6) Boost Your Productivity Quickly (1) Bottle Shooting (1) Build Your Own CNC Machine (Technology in Action) (1) Business Negotiation Skills (2) C Programming (1) C Programming Code Examples (1) C Programming Langguage (1) C Standard Library (2) C# (1) C# programming Examples (1) C# Tutorial (1) C++ Primer (1) C++ Programming (1) C++ Programming Standard Library (1) C++ Programming Tutorial FULL (1) C++ Tutorial (1) Catch Duck (1) Caveman Run (1) Clean Architecture (1) Clojure Programming Tutorial (1) CNC Books (42) CNC Control Setup for Milling and Turning (1) CNC G-Code (9) CNC G-Code tutorial (4) CNC Lathe Machine Programming (1) CNC M-Code Tutorial (2) CNC Machine Tutorial (7) CNC Milling Machine CNC Program Examples (4) CNC programming (60) CNC Programming Basics (7) CNC Programming Examples (40) CNC Programming Handbook (2) CNC Programming Reference (1) CNC Programming using Fanuc Custom Macro B (1) CNC Programming: Basics & Tutorial Textbook (1) CNC Tips (4) COBOL Programming (2) Code Examples (1) Compass (1) Complete Electronics Self-Teaching Guide with Projects (1) Computer Fundamentals (1) Computer programming (1) Computer programming ebooks (1) Control Theory Tutorial (1) CouchDB Tutorial (1) Critical Thinking (1) Crystal Reports (1) Csharp (1) Dart Programming Language (1) Dart Programming Tutorial (1) Delft Pneumatic Bipeds (1) Demon Jump (1) Digital Signal Processing (1) Diodes (1) DISCOVER THE SCIENCE AND TECHNOLOGY OF THE FUTURE (1) Drill CNC (1) Drilling CNC Program (1) ebook (81) ebook kindle amazon (66) ebook Kobo (15) eBooks (187) Elasticsearch Tutorial (1) Electrical Transformers And Rotating Machines (1) Electricity and Magnetism (1) Electromagnetism (1) Electronic Systems (1) Electronic Transformers (1) Electronics DC Circuit (1) Electronics Filters (1) Electronics from the Ground Up (1) Electronics Inductors (1) Electronics Oscillator (1) Electronics Resistors (1) Elenco AM/FM Radio Kit (Combines ICs & Transistors) (1) Elenco Practical Soldering Project Kit (1) Elixir Language (1) Elixir Tutorial (1) Embedded Systems (1) Embedded systems C++ programming Tutorial (3) Embedded Systems Tutorial (1) Erlang Programming (1) Erlang Programming Tutorial (1) Euphoria Programming Language (1) Excel Formulas and Functions (1) Excel Functions & Formulas (1) Excel VBA (1) F# Programming (1) Facebook Advertising For Dummies (1) Facebook Marketing (1) Final Mission Game (1) Flag Game (1) Fortran Programming Tutorial (1) Funny jokes (1) Fuzzy Logic Tutorial (1) G-Code and M-Code (1) G-Code Reference (1) G-Code Tutorials (1) Games (18) Getting Started with 3D Printing (1) Go Programming Language (1) GOLD MINER+ (1) Good book about President Trump * Donald Trump Books * (1) Groovy Tutorial (1) Guide To 3D Printing (2) Guide To Accounting Basics (1) Guide to Amazon Marketplace (1) Guide To Anger Management (1) Guide To Arduino (2) Guide To Artificial Intelligence (1) Guide To Artificial Neural Networks (1) Guide To Assertiveness (1) Guide To AWS (2) Guide To Basic Electronics (1) Guide To Bitcoin (1) Guide To Business Negotiation Skills (1) Guide To Business Writing Skills (1) Guide To CNC Programming (2) Guide To Critical Thinking (1) Guide To Digital Circuits (1) Guide To Digital Electronics (1) Guide To Food and Beverages Services (1) Guide to Java Persistence API (1) Guide To Java XML (1) Guide To Java.io package (1) Guide To jMeter (1) Guide To JPA (1) Guide To JSoup (1) Guide To Make money online (1) Guide To MS Project (1) Guide To Neo4j (1) Guide To Photoshop (1) Guide to Pinterest Marketing (1) Guide To PyQt (1) Guide To Python (3) Guide To Rust Programming (2) Guide To SAP BODS (1) Guide To SAP BW on HANA (1) Guide to Snapchat (1) Guide To Solidworks (2) Guide To Spring Web Services (1) Guide To Struts 2 (1) Guide To SWING (1) Guide To T-SQL (1) Guide To Tcl- Tk (1) Guide To TestNG (1) Guide To Wireless Communication (1) Guide To WordPress (1) Guide To Xamarin (1) Guide To XPath (1) Guide To XSLT (1) Handbook of Natural Gas Transmission and Processing (1) Harmony - Hypnosis Meditation (1) Haskell Programming (1) Hibernate Tutorial (1) Hostinger Tutorials (1) How to Learn Microsoft Access VBA Programming Quickly (1) How to learn Microsoft Office Powerpoint Quickly! (2) How To R Programming (2) How to Use Snapchat (1) ibooks (3) Inter Process Communication (IPC) (1) Internet of Things Tutorial (1) Introducing Arduino (1) Introducing AWK (1) Introducing Boiler House (1) Introducing Clojure (2) Introducing Hibernate (1) Introducing Neo4j (1) Introducing OBIEE (1) Introducing RC Networks (1) Introducing SAP MM (1) Introducing SAP Payroll (1) Introducing Transistors (1) Introducing XPath (1) Introducing XSLT (1) Introduction to Cgi/Perl (1) Java 8 (1) JavaFX tutorial (2) JCL Tutorial (1) Job Control Language (1) Joyo ZOMBIE 20 Watt Mini Tube Head in new banTamp Series New and Nice! (1) JSP Tutorial (1) Jump and Fly (1) Jumping Penguin (1) KDB (1) KDB+ Tutorial (1) Kill Zombies Game (1) Kindle Amazon (3) Kindle Books (3) kindle ebook (19) kit (3) Lathe CNC (1) Learn C++ Standard Library (1) Learn Apache Spark (1) Learn Apache Tajo (1) Learn Apex Programming (1) Learn Avro (1) Learn Basics of Computers (1) Learn Big Data (1) Learn C Programming (1) Learn Cassandra (1) Learn COBOL (1) Learn Computer Programming (1) Learn Crystal Reports (1) Learn D Programming (1) Learn Data Mining (1) Learn Data Structure and Algorithms (1) Learn Database Management System (1) Learn Digital Image Processing (1) Learn Diodes (1) Learn Electronics (1) Learn Electronics and Digital Electronics by GoLearningBus (1) Learn Electronics with Arduino (1) Learn Euphoria (1) Learn Food Production Operations (1) Learn Genetic Algorithms (1) Learn Go Programming (1) Learn Haskell Programming (1) Learn How to Make Money with a Success Mindset (1) Learn Interpersonal skills (1) Learn Java.langPackage (1) Learn Java.util package (1) Learn LISP (1) Learn Objective-C on the Mac (1) Learn RC Networks (1) Learn SAP ABAP (1) Learn SAP Payroll (1) Learn Scala Programming (1) Learn Scripts (1) Learn Social Intelligence (1) Learn Social Media Marketing (1) Learn Swift (1) Learn VB.net By Examples (1) Learn Windows 10 (1) Learning Perl (1) Lignocellulose Biorefinery Engineering: Principles and Applications (1) LISP Programming Language (1) Logic Gates (1) Logic tutorials (1) Logo Programming (1) Logo programming language (1) LOLCODE Programming Language (1) Make Money Online Tutorial (1) Make: Electronics: Learning Through Discovery (1) Mastering Node.js (1) MathTeX: LaTeX Mathematics (1) MATLAB for Beginners (1) Microsoft Project Standard 2016 (1) MILLIONAIRE FREE (1) Miscellaneous Circuits (1) MongoDB (1) MongoDB Tutorial (1) Move The Fruit (1) MySQL (1) MySQL Tutorial (2) NAO robot course (1) Network Programming with Python (1) Node.js (1) NumPy Tutorial (1) OAuth 2.0 (1) OAuth 2.0 Tutorial (1) OBIEE Tutorial (1) Objective-C Programming Language (1) Operational Amplifiers (1) Parrot Programming (1) Parrot Programming Tutorial (1) PHP 7 Tutorial (1) Pipe Drafting and Design (1) PL/SQL Tutorial (1) Power Electronics (1) Power Electronics: Converters (2) Power Supplies (1) Programming Groovy (1) Programming of CNC Machines (2) Programming Rust: Fast (1) Programming with MATLAB for Beginners (1) Python (2) Python 3 Tutorial (2) Python Pandas Tutorial (1) Python Programming For Beginners (1) Python Tutorial (2) R Programming (2) R Programming Examples (1) Reasoning Web. Semantic Interoperability on the Web (1) Reference books ICT (1) Report Studio Developer (1) Rexx Tutorial (1) Robot Programming (1) robotics tutorials (1) RoutCad de Luxe CAD-CAM Software CNC Mill (1) Rust Programming (1) Rust Programming Tutorial (1) Safe Systems Development (1) Safety Valve (1) Salesforce Tutorial (1) SAP Advanced Planning and Optimization (1) SAP Basis Tutorial (1) SAP BO Analysis Edition For OLAP (1) SAP Business Explorer (1) SAP Business Planning and Consolidation (1) SAP Business Workflow (1) SAP BW on HANA (1) SAP MM - Tutorial (1) SAP_GRC Tutorial (1) Schaum's Outline of Basic Circuit Analysis (1) Script Programming Tutorials (1) Scripts (1) Sematic web (1) Sequential Logic (1) Sign Language ASL | BSL (1) Sinusoidal Oscillators and Waveform Generators (1) SnapChat (1) Snapchat Tutorials (1) Socket.IO Tutorial (1) Software (3) Solidworks tutorials (2) SOLISWORKS (2) SOLISWORKS ebooks (1) SOLISWORKS Tutorials (2) Spring Batch Tutorial (1) Spring Framework (1) Spring MVC Tutorial (1) Spring Tutorial (1) SQL Fundamentals Certification tutorial (1) STATUS AND QUOTES (1) Steam Engineering Principles and Heat Transfer (1) Steam trapping and air venting (1) TestNG Tutorial (1) The Best Apps for Tutorials (1) The best Kindle (1) The CNC Cookbook (1) The complete guide to Arduino for beginners (1) The Essential Guide to Digital Signal Processing (1) Third Edition (1) Tips (33) Tips and Tricks (3) Tips for CNC Users (33) Top 10 best sellers on the Amazon Kindle (1) Turtle Run and Jumper (1) Tutorials (312) Understanding Hot Water Heating Systems (1) VB.Net Programming Tutorial (1) VBA Tutorial (1) Video (1) Waveform Generators (1) Ways To Make Money - Work At Home (1) WordPress Tutorial (1) Write DAX (1) Xamarin Tutorial (1) XML (1) XML Technologies (1) XML Technologies Tutorial (1) YouTube Marketing (1)