Archive for December, 2008

IP Multicast Addressing

Internet Protocol multicast delivers UDP packets (data) to multiple receivers that have previously joined a multicast group, by efficiently routing and duplicating data at specific routers (chosen algorithmically depending on the particular scheme) that identify more than one receiver downstream in their tree. Receivers are arranged within a group, which is represented by an address, and anyone on the network can send data to that group address in order to send data to all of its members. Multicast is designed so that neither the sender nor any of the receivers take on the extra burden of making copies of the data; rather, the data is routed and duplicated at the router level, which makes it an extremely efficient form of data distribution from a source to many destinations. Multicast therefore is useful in a number of Internet applications, including video and audio conferencing, distance learning, distribution of software, stocks and quotes, and news.

TCP Protocol

The Transmission Control Protocol (TCP) provides fairly reliable transfers and it attempts to deliver the packets in order at their destination. This makes it very suitable for any application which would like to transfer a sequence of bytes (e.g., a file transfer, an e-mail or the Web) to its destination in a somewhat reliable and sequential fashion. TCP is the most ubiquitous protocol on today’s Internet and is used by many of the Internet applications that we use on an everyday basis. The Web is built on TCP/IP as HTTP uses TCP to manage the individual conversations between Web clients and Web servers by dividing the HTTP messages into smaller pieces and delivering them in order at the destination.

TCP employs the use of a number of events and controls to implement its behaviour and it is therefore far more complicated an implementation than UDP. Briefly, TCP therefore includes the following features:

1. Connection Oriented: When a TCP connection is created, the underlying protocol implemented a handshake mechanism in order to establish a TCP connection. TCP connections therefore have state and have a lifetime until they are disconnected. The procedure is broadly as follows. A client sends a SYN packet to the desired location, the TCP server, which is a minimal 40-byte packet which contains the sender’s and destination addresses. When the server receives this packet it will respond with an ACK packet, which is an acknowledgement of the server’s willingness to accept the connection.

2. Multiple TCP Connections: The connection request at the server is implemented using an accept() method. A TCP server can block an accept call or use an asynchronous event to indicate that the server should accept the connection. Once accepted, the server typically spawns a new thread and creates a socket to manage this new connection. A server therefore generally acts as a listener and multi-plexor for managing multiple TCP connections and brokers these requests to actual TCP sockets that create a one-to-one TCP relationship with the client.

3. Data Control Mechanisms: attempt to deliver data in a reliable in-order fashion and therefore employ the use of ACKs to acknowledge delivery of packets as and when they arrive. The TCP receiver also implements a buffer that is used to slot the packets in the correct order before data is delivered to the application. Therefore, even though data might arrive in the incorrect order in the first instance, the packets are re-ordered before being passed to the application.

4. TCP Events: Most C++ TCP implementations allow an application to attach itself as a listener to a socket.4 Since sockets can be senders and/or receivers of information, clients and servers receive events based on their role in the TCP connection. A client TCP socket (or the socket that is brokered to deal with the incoming connection at the server) therefore can receive Connect, Send, Receive and Disconnected events. Briefly, a client is notifed of a Connect event, when it receives an ACK back from the server indicating that the server has accepted the connection request. A Send event is passed to the client when the data has been sent to the server (either using edge- or level-trigger mechanisms) and after a connect event has been received. A Receive event is received by the client when data has arrived and is ready for collection (for asynchronous notifcation) and a Disconnected event means that the connection has been terminated. A server in the TCP implementation generally acts as a broker to create new sockets for dealing with new connections and therefore it is typically only interested in receiving Accept and Receive events. When a client has requested a connection (by sending a SYN packet), the server passes an Accept event to the listener for server connections. The application can use this event in order to call the accept() socket method in order to accept this connection (however, in Java this behaviour is implemented through a blocking call to the ServerSocket accept method). Thereafter, a server socket can be notifed with a Receive event when data has arrived and is ready for collection.

User Datagram Protocol (UDP)

The User Datagram Protocol (UDP) was proposed in 1980 and is one of the core protocols of the Internet protocol suite. Distributed applications send messages, called datagrams, to one another by specifying a destination address in the IP header. UDP is connectionless, meaning that prior relationships between nodes do not have to be set up beforehand in order to send UDP packets, as in TCP. Packets are sent out to the network and the IP routing ensures delivery to its destination if the links are congestion free. If there is congestion, packets are simply dropped. The UDP protocol therefore has no control mechanisms for guaranteeing reliability or for sequencing the ordering of the arrival of packets. Datagrams can arrive in any order or go missing enroute without notice. However, the simplicity of the protocol makes it very efficient can be far faster than TCP and for some applications, therefore, it is preferred.

An example of a range of applications that use UDP would be those situations where time-sensitive data is more important than guaranteed delivery; that is, it is better for a packet to be dropped than to be delayed. Streaming audio or video applications (e.g., Voice over IP (VoIP) or IPTV) therefore will often base their implementations on UDP. Another example concerns networks of extremely low bandwidth where TCP’s control mechanisms can be too severe and restrict the full utilisation of the network bandwidth. In such cases, UDP is often used and can be integrated with reliability at the application level also if that is desirable. Lastly, and most importantly from a discovery perspective, UDP is the basis for the multicast protocol. UDP is supported in most programming languages. For example, in the Java programming language UDP connections are implemented in java.net and are called DatagramSocket.

Nikon D3X DSLR PhotoCamera

Nikon D3X

Nikon D3X

Nikon made a new professional DSLR-camera D3X. Nikon D3X has full-motion sensor with 24,5 Mpx. Matrix photosensitivity may vary within the limits of ISO 100-1600. And in expanded mode it is available ISO 50 and ISO 6400. New D3X can shoot with the speed of 5 frames per second. Even if you choose 10 MPx resolution you can shoot with the speed of 7 frames per second. Turning on time is 0,12 sec., and the delay time of shutter hauling down is 0,04 sec. Autophocus works under control of the Multi-CAM3500FX system. Bright view finder includes 100% of the frame. 3 inches display supports Live View modes: hand and tripod. And there are a lot of new and powerfull features inside the Nikon D3X photocamera.

Google Android will be supported by 14 more companies

G1 - Google Android

Open Handset Alliance (OHA) created to promote Google Android system on basis of Linux included more 14 members (companies).

Members of OHA became: ARM, Asustek Computer, Sony Ericsson и Toshiba. There are also AKM Semiconductor, Atheros Communications, Borqs, Ericsson, Garmin International, Huawei Technologies, Omron Software, Softbank Mobile Corporation, Teleca AB and Vodafone companies.

Those companies will create new devices working under Android and new services.

It is expected to rise Android’s share of mobile market.

Today you may buy G1 mobile phone (under Android) for 180USD but you have to sign a contract with T-Mobile to use it. However you may order G1 without a contract for 400USD, but this option is available for users who are registered as Android developers. This registration costs 25$.

Windows 7 Beta – Next Month Release

windows-7-beta

Microsoft is going to show its Windiws 7 beta version in the next month (January 2009).
Beta version will be shown at the MSDN Developer Conference. There will be much more features than in Vista. It was told that Windows 7 will be less depended on hardware.

Release date is the beginning of the 2010 year.

Advertisement

Friends: