Coder Social home page Coder Social logo

omrikaduri / networks-explained Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 10 KB

Computer networks abstraction layers explained to programmers through Object Oriented code and examples

Java 100.00%
networking-stack computer-networking network-architecture

networks-explained's Introduction

Networking abstraction explained by oo paradigm

Have you ever thought about all those conceptual models of computer networks but couldn't really grasp the idea? Wondered what is it really means that HTTP is built over TCP? Amazed by the fact that you can just use networking libraries at your program, and you can talk over the internet through all kinds of media - from twisted pairs, through telephone lines and even sattelite communication - without worry about any of this?

Well, it is time to get a simplified view of how all this sorcery becomes reality.

Let's code our own network stack!

application = new WebApplication(
  new HTTP(
    new TCP(
      new IP(
        new TwistedPair(CATEGORY.FIVE)
      )
    )
  )
);
application.GET('/a').......... 

Layers

TODO - brief overview of two main models (TCP/IP and OSI) and the importance of layers architecture.

Physical layer interfaces

  1. BitSender - Transmitting raw bits over a communication channel.

Data link layer interfaces

  1. MAKEUPANAME - Break the packet from the network layer to data frames and transmit them using the physical layer.
  2. MAKEUPANAME - Recieve packets from sender (at order, with error detection & flow control options).

Should maintain the order of packets sent from the sender's network layer to the reciever's network layer.

Network layer

The network layer is the first layer that is end-to-end, and deals with routing packets all the way from the source of the packet to its intended destination.

  1. PacketSender - Controls the routing of packets from source to destination. The packet is built first by the upper layers (Application and Transport) and then sent over the wire on the Link layer.

Transport Layer

Application Layer

TODO - brief overview of the entities for each layer (new TwistedPair, etc.)

What's next?

Computer Networks book by Andrew S. Tanenbaum is a great source of knowledge, which I recommend strongly.

networks-explained's People

Contributors

adamgs avatar omrikaduri avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

adamgs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.