Networking

 

 

  • Packet - most basic unit of that is transferred over a network, the envelopes that carry your data from one end point to the other

 

 

Connecting

In networking, a connection refers to pieces of related information that are transferred through a network.

  • LAN (Local Area Network) - A network or portion of a network that is not publicly accessible to the greater internet
  • WAN (Wide Area Network) - A network that is more extensive than a LAN

Networking Interface

A network interface may be associated with a physical device or virtual interface.

  • Port - An address on a single machine that can tied to a specific piece of software, allows your server to be able to communicate using more than one application
    • each computer can have many services
    • a port is a number between 1 and 65535 that differentiates among the services on a system
  • Firewall - A program that decides whether traffic coming into a server or going out should be allowed. Rules for which type of traffic is acceptable on which ports
  • NAT (Network Address Translation) - A way to translate requests that are incoming into a routing server to the relevant devices or servers that it knows about in the LAN
  • VPN (Virtual Private Network) - A way of connecting separate LANs through the internet, while maintaining privacy. A means of connecting remote systems as if they were on a local network, often for security reasons.

Protocols

A set of rules and standards that define a language that devices can use to communicate.

Any service can listen on any port, but there are customary ports for many protocols:

  • 21 - FTP (control port)
  • 22 - SSH
  • 25 - SMTP
  • 80 - HTTP
  • 443 - HTTPS
  • 3306 - MYSQL
  • 5432 - Postgresql
  • 5984 - CouchDB
  • 6667 - IRC

Ports

  • HTTP - browse web pages
  • HTTPS - browse web pages with encryption
  • SMTP - send and receive emails
  • IMAP, POP3 - load emails from an inbox
  • IRC - chat
  • FTP - file transfer
  • SSH - remote shell over an encrypted connection
  • SSL - low-level secure data transfer (used by HTTPS)

Protocols cont

the language that computer programs speak to each other with.

Some common protocols:

  • Media Access Control - A communications protocol that is used to distinguish specific devices
  • IP - One of the fundamental protocols that allow the internet to work. IP addresses are unique on each network and they allow machines to address each other across a network
  • ICMP (Internet Control Message Protocol) - Used to send messages between devices to indicate the availability or error conditions
  • TCP (Transmission Control Protocol) - Used to establish reliable connections and is implemented in the transport layer of the TCP/IP model
  • UDP (User Datagram Protocol) - Popular companion protocol to TCP and is also implemented in the transport layer
  • HTTP (Hypertext Transfer Protocol) - A protocol defined in the application layer that forms the basis for communication on the web
  • FTP (File Transfer Protocol) - In the application layer and provides a way of transferring complete files from one host to another
  • DNS (Domain Name System) - An application layer protocol used to provide a human-friendly naming mechanism for internet resources
  • SSH (Secured Shell) - An encrypted protocol implemented in the application layer than be used to communicate with a remote server in a secure way

Protocols cont

Networking works by piggybacking a number of different protocols on top of each other.

any networked computer can be a server

any networked computer can be a client

pieces of data, aka packets sent over the network

TCP - reliable transport, acknowledges packet

UDP - unreliable transport, packets sent but no confirmation

 

Title Text

Text

There are a multiple technologies and protocols that are built on top of each other in order for communication to function more easily. Each successive, higher layer abstracts the raw data a little bit more and makes it simpler to use for applications and users.

 

  • OSI Model
  • TCP/IP Model

Network Layers

Open Systems Interconnect

OSI Model

Seven separate layers:

  • Application - Layer where the users-applications most often interact with.
  • Presentation - Responsible for mapping resources and creating context
  • Session - Connection handler, creates, maintains and destroys connections between nodes in a persistent way
  • Transport - Responsible for handling the layers above it a reliable connection.
  • Network - Used to route data between different nodes on the network
  • Data Link - A method of establishing and maintaining reliable links between different nodes or devices on a network using existing physical connections
  • Physical - Responsible for handling the actual physical devices that are used to make a connection

Internet Protocol Suite, another layering model that is simpler and widely adopted

TCP/IP Model

Four separate layers:

  • Application - Responsible for creating and transmitting user data between applications
  • Transport - Responsible for communicating between processess
  • Internet - Used to transport data from node to node in a network
  • Link - Implements the actual topology of the local network that allows the internet layer to present an addressable interface

What is a Full Stack Developer?

Front End / Client Side

Back End / Server Side

HTTP Request

HTTP Response

  • HTML
  • CSS
  • Javascript
  • Front end frameworks (Angular, React)
  • Node.js
  • Express
  • SQL
  • Database
  • 100s - Informational (issued on a provisional basis while request processing continues)
  • 200s - Success (request was received, understood and accepted)
  • 300s - Redirection (client must take additional action to complete the request)
  • 400s - Client Errors (errors caused by the client)
  • 500s - Server Errors (server failed to fulfill a request)

HTTP Status Codes

Hypertext Transfer Protocol (HTTP) status codes are issued by the server in response to a client's request made to the server.

 

The Developer Toolkit

Your problem solving tools:

Chrome Browser

Built-In Developer Tools for Debugging

Text Editor

A text editor for code and markup.

Command Line 

Interacting with a computer program

Github

A code hosting platform for version control and collaboration, where developers can store and share their projects. 

 

What is Git?

A version control system created by Linus Torvalds that allows you and the team to keep track of every modification to the code and allows for easy collaboration with other developers.

Made with Slides.com