Tech Notes

What is IPv4 vs IPv6?

IPv4 is 32 bit IP and is written in decimal as four numbers separated by periods. Each number can be zero to 255. For example, could be an IP address.

IPv6 addresses are 128-bit IP address written in hexadecimal and separated by colons. An example IPv6 address could be written like this: 3ffe:1900:4545:3:200:f8ff:fe21:67cf.

Vint Cerf explains at Google

Benefits of Content Distribution Network

From Akamai

A content distribution network provides substantial benefits to web users, content and application owners, and network service providers:

    • For users: Users of websites and web applications delivered through a CDN experience faster page loads and faster transactions than they would in the absence of the CDN.
    • For content owners: For content and application owners such as ecommerce sites, media properties, and cloud computing companies, using a content distribution network to improve end users’ experience can lower abandonment rates, increase ad impressions, improve conversion rates, and strengthen customer loyalty. Using a CDN can also make an important contribution to web security, for instance by helping to absorb and mitigate a denial of service attack.
  • For network service providers: With the explosive growth of online streaming and other rich media services, and higher user expectations about web performanceacross multiple device types, today’s network service providers are finding it necessary to deploy their own content distribution networks. For network operators, deploying a CDN can reduce subscriber churn, facilitate the development of value-added services, reduce traffic on the core network, and enable operators to sell CDN services to enterprises and third-party content owners.
DDOS – Denial of service

A Distributed Denial of Service (DDoS) attack is an attempt to make an online service unavailable by overwhelming it with traffic from multiple sources. They target a wide variety of important resources, from banks to news websites, and present a major challenge to making sure people can publish and access important information. Understanding DDOS here and here.

What are different network layers?

Layer 7- Application layer eg: HTTP

Layer 6- Presentation layer eg: JPEG,ASCII,MPEG. This is the syntax layer which transforms data into a format the application layer can accept. By using Common data representation formats, or the use of standard image, sound, and video formats, enable the interchange of application data between different types of computer systems.

Layer 5- Session layer eg: SQL, Netbios. Helps set up, coordinate, and terminate conversations, exchanges, and dialogues between the applications at each end.

Layer 4- Transport layer eg: TCP. Helps make sure data transfer is complete.Flow control manages data transmission between devices so that the transmitting device does not send more data than the receiving device can process. Multiplexing enables data from several applications to be transmitted onto a single physical link. Virtual circuits are established, maintained, and terminated by the transport layer. Error checking involves creating various mechanisms for detecting transmission errors, while error recovery involves taking an action, such as requesting that data be retransmitted, to resolve any errors that occur.

Layer 3- Network layer: eg: IP. Helps connect multiple data layers to form a network. Performs routing, addressing, forwarding functions.

Layer 2- Data Link layer: eg:IEEE 802.5/ 802.2, IEEE 802.3/802.2. Data gets converted to bits here. Data layer provides reliable transfer of data and helps computers connect and access data. Different data link layer specifications define different network and protocol characteristics, including physical addressing, network topology (how devices are to be physically connected), error notification, sequencing of frames, and flow control(moderates traffic).

Layer 1- Physical layer: eg: Ethernet. Bits get converted to electrical signals or light here. The physical layer defines the electrical, mechanical, procedural, and functional specifications for activating, maintaining, and deactivating the physical link between communicating network systems.

What are websockets?

from twilio.

WebSockets are available on many platforms, including the most common browsers and mobile devices. They’re often applied to solve problems of millisecond-accurate state synchronization and publish-subscribe messaging, both of which leverage Websockets’ provision for downstream pushes. WebSockets establish TCP-style connections in a browser-compatible fashion using HTTP during initial setup. Messages over websockets can be provided in any protocol, freeing the application from the sometimes unnecessary overhead of HTTP requests and responses (including headers, cookies, and other artifacts). But most critical is the ability to deliver downstream (server-to-client) messages to connected clients. In the browser, for instance, the same thing was once only possible by polling a server resource, which is a comparatively racy, high-latency, and bandwidth-intensive affair.

compare websocket implementations.


Load balancing is a key component of highly-available infrastructures commonly used to improve the performance and reliability of web sites, applications, databases and other services by distributing the workload across multiple servers. Core load balancing capabilities include:

Layer 4 (L4) load balancing – the ability to direct traffic based on data from network and transport layer protocols, such as IP address and TCP port

Layer 7 (L7) load balancing and content switching – the ability to make routing decisions based on application layer data and attributes, such as HTTP header, uniform resource identifier, SSL session ID and HTML form data

Global server load balancing (GSLB) – extends the core L4 and L7 capabilities so that they are applicable across geographically distributed server farms

read more here and here


Comparison and ranking of databases at DB Engine.

Oracle vs MongoDB – The main difference between the two databases is that Oracle Database has relations between the tables. Those relations can be one to one or one to many or many to many. With these relations you can join tables and make complex queries. The main problem with the Oracle Database is the replication. You cannot copy the database so easily as in MongoDB. You have tools which do that but aren’t so fast. It is a much slower database in
comparison with MongoDB. Read more…

MongoDB all use cases and  use cases in ebay – good read

Cassandra vs MongoDB -If write scalability is your thing, Cassandra is a better fit for you.If you need 100% uptime Cassandra is a better fit for you.If your application needs secondary indexes and needs flexibility in the query model then MongoDB is a better fit for you. Read more…


Trie – Applications include dictionary, autocomplete and spell checking. We use a trie to store pieces of data that have a key (used to identify the data) and possibly a value (which holds any additional data associated with the key). explained pretty well.

Algorithms in Python

All algorithms implemented in Python (for education). These are for demonstration purposes only. There are many implementations of sorts in the Python standard library that are much better for performance reasons.

Recent Posts