Monthly Archives: March 2011
IPv6 Client , IPv4 Server Interoperability
Just in case you conflicted this topic with the previous one ( IPv4 Client and IPv6 Server Interopertability )…. Well guess u knew the difference 🙂 this is the opposite operation of the previous post..And it would be preferred if you read the previous article before this one 🙂
Alright Let’s get to the points..
Here we have an IPv6 Client on a dual-stack host , an IPv4 Server on an IPv4 only host which has a listening socket.
the IPv6 client starts and calls getaddrinfo* to get the IPv6 addresses, since the server is IPv4 only host. IPv4-mapped IPv6 address is returned to the IPv6 client..
then the IPv6 client asks to connect with the IPv4-mapped IPv6 address. so the kernel detects that IPv4-mapped IPv6 and sends and IPv4 SYN to the server.
and finally the server responds with and IPv4 SYN and ACK to the client and the connection is established..
to illustrate the interoperability this is what happens to the server in any connection type :-
- TCP IPv4 Client connects using IPv4 address or a UDP IPv4 Client sends a datagram using IPv4 address. the traditional operation happens.
- TCP IPv6 Client connects using IPv6 address or a UDP IPv6 Client sends a datagram using IPv6 address. also the traditional operation happens.
- TCP IPv6 Client connects using IPv4-mapped IPv6 address or a UDP IPv6 Client sends a datagram using IPv4-mapped IPv6 address. the kernel detects the mapped addresses and sends IPv4 packets instead of IPv6
- IPv4 client cannot connect using IPv6 because the IPv4 is less long than IPv6 which means you cannot map an IPv6 into IPv4
————————-
getaddrinfo(hostname, serviceName, passedAddressInfo, resultAdressInfo): this is a C system call which gets info for a specific host which is looked up by host name and service name might be passed as value or NULL and PassedAdressInfo is an addrinfo structure which is passed which represent flags and info about the service like ( Protocol , family, Socket type..etc) and resultAddressInfo (addrinfo structure) is the returned with more info about the host like the canonical name..
Google App Engine
Google App Engine is a platform for developing and hosting web applications in Google-managed data centers. It was first released as a beta version in April 2008. Google App Engine lets you run your web applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it’s ready to serve your users.
Google App Engine supports apps written in several programming languages. With App Engine’s Java runtime environment, you can build your app using standard Java technologies, including the JVM, Java servlets, and the Java programming language or any other language using a JVM-based interpreter or compiler, such as JavaScript or Ruby. App Engine also features a dedicated Python runtime environment, which includes a fast Python interpreter and the Python standard library. The Java and Python runtime environments are built to ensure that your application runs quickly, securely, and without interference from other apps on the system.
Google App Engine makes it easy to build an application that runs reliably, even under heavy load and with large amounts of data. App Engine includes dynamic web serving, with full support for common web technologies , persistent storage with queries, sorting and transactions , automatic scaling and load balancing , APIs for authenticating users and sending email using Google Accounts , a fully featured local development environment that simulates Google App Engine on your computer , task queues for performing work outside of the scope of a web request and scheduled tasks for triggering events at specified times and regular intervals
Your application can run in one of two runtime environments: the Java environment, and the Python environment. Each environment provides standard protocols and common technologies for web application development.
well , let me show you a video discussing what Google App Engine works
Developing and deploying an application on Google App Engine
Linux Kernel
Linux kernal
initially, we will define what is the mean of kernal ?
Kernal : is the central component of most computer operating system; it is a bridge between applications and the actual data processing done at the hardware level. It is -a program-
– If we can take a view on startup diagram we can view kernal position
We will see that kernal started after boot loader has finished its function .
When the user selects a Linux operating system in the boot loader, then the boot loader will
load the Linux kernel.
-Kernal function :
1- it detects all hardware .
2- switches the cpu to multitasking and multiuser mode.
(kernal view)
– The Linux kernel is compressed because it is just aprogram and we always see linux programs in compressed view.but has an uncompress program attached to it .The uncompress program uncompresses the Linux kernel and puts it into memory. Then, it
starts that kernel proper.
- While booting, the kernel generates a lot of messages which will scroll off the screen very fast. And since no filesystem is available to store these messages on, they kind of vanish. If you wish to retrieve these messages later however, you can run the dmesg command to see them.
- news about kernal
-First Version of the Linux kernel was 1.0 released on 14 March 1994.
I really need to remember the last kernal released it is the kernal that Linus Torvalds told us about , really it is great ….
Technology This Week
Chrome 11 Beta Released
Google has released Chrome 11 Beta for windows,mac &linux. Chrome 11 contains some great improvements including:
- HTML5 speech input API
- GPU-accelerated 3D CSS
- The brand new shiny Chrome icon
Firefox 4 was launched
Firefox 4 was launched last Tuesday 22 march , follow this link to get more information about firefox 4 >>http://www.mozilla.com/en-US/firefox/features/
Firefox 4 for Android launched
Firefox 4 is now available for android in the Android Market.
Samsung Announces The release of 10.1 & 8.9 inch tabs
The devices are extremely light. 10.1 inch weighing in at 595 grams and the 8.9 inch weighing in at 470 grams .
Other specs include:
- 3.0 Honeycomb OS with TouchWiz elements
- Dual-core 1 GHz processor
- Samsung Reader & Music Hubs
- built in 16, 32, or 64 Gig variants along with microSD slot
Twitter launched New Website
Twitter launched new website celebrating its 5th Birth Day >> http://discover.twitter.com/