dimanche 1 décembre 2013

Nouvelles tendances

Bitcoin :
La valeur de  1 Bitcoin est plus de 1000 dollars
4G (LTE):

Déploiement encours en  France et dans presque tout le monde,
nouvelle type d'application  ,plus gourmande en bande passante est plus riche en  fonctionnalité

Réalité augmenté:
C'est le future Microsoft , google mise sur ça
il reste qu' a voir un Hardware capable de supporter tout ce monde.

Google Glass :
La nouvelle vague de techno et nouvellles perspective pour les appli.

Mobile dev:
Un marché presque saturé mais en toujours promoteur et cache des belles surprise.  

lundi 30 septembre 2013

La monnaie alternative Bitcoin




Le Bitcoin 


-Le Bitcoin (http://bitcoin.org/) est une monnaie 100% virtuelle,

-Il s’échange en août 2013 pour environ 105 dollars.

-l’Allemagne lui donne le statut de monnaie officielle.

-En France, les Juifs  Jacques Attali et Pierre Moscovici ont tué par son lobby journalistique le Bitcoin. 






lundi 3 juin 2013

Pipe vs message queues

Message queues:

*Taille limité : int msgmax, int msgmnb
*Nombre d'entrée limitée : msgmap
*Il faut indiqué la taille des données a envoyé.
*Possède des timeouts pour l'envoie et la réception.
*Comportement de datagramme : lire une entrée supprime de la file d'attente. Si vous ne lisez pas l'ensemble des données, le reste est perdu. Par exemple : envoyer un message de 20 octets, mais le destinataire lit 10 octets. Les 10 octets restants sont perdus.
*Taille de la mémoire de la file d'attente crée a l'initialisation.

Pipes:
*Aucune limitation de taille.
* Les pipes sont dans une couche supérieur au message queues.
* Utilise les descripteurs de fichier.
* L'envoie et la réception sont bloquantes.
 
 

Unix soket VS Pipe

Unix socket VS pipe


Pipe : 

* un canal unidirectionnel de données pour créer une communication bidirectionnel il faut créer deux pipe. 
* Avec le pipe on peut seulement faire des flux d'octets.
* Simple a utilisé.
*Communication entre deux processus.

* Plus rapide que les sockets entre 12 et 15%. http://www.opendmx.net/index.php/Pipe_vs_Unix_Socket_Performance
* Plus fiable.
 


Unix Sockets :

*un canal  bidirectionnel de données.
*Unix domain sockets offrent flux d'octets et datagramme.
*Plus compliqué a utilisé que les pipes.
*Communication entre plusieurs processus.
*Envoi et reception de descricpteur de fichier entre processus : recvmsg(),recv(), sendmsg(), send(), sendto(), et sendmsg().
* Moins rapide que les pipes. http://www.opendmx.net/index.php/Pipe_vs_Unix_Socket_Performance

*Plus flexible

vendredi 31 mai 2013

Unix Socket

  • Unix Socket



  
Dans le user space il y a les couches : application, présentation et session.

Les sockets font l'interface entre les application et le réseau elles se situent au-dessus de la couche transport,  dans les couches session, présentation et application.

Création d'un Socket :
Sous linux tout est traité  comme fichier, après la création d'une socket (socket()) dans le user space on obient un nouveau file descriptor associé a cette socket iSockfd .

Prototype : int socket (int domain, int type, int protocol) ; 

Domain :  AF_UNIX protocoles internes d’UNIX.

Adressage :  pour Unix c'est le nom d'un fichier, la structure est dans le fichier /usr/include/sys/un.h 
struct sockaddr_un {
short sun_family; /* AF_UNIX */
char sun_path[108]; /* path name */
};

Pour chaque socket créé linux lui associe une structure struct socket au niveau user space (8 membres) et  struct sock au niveau kernel.


Type:
SOCK_STREAM et SOCK_DGRAM  sont  les plus utilisés :
-SOCK_STREAM : mode connecté  pour  TCP, SCTP, BLUETOOTH..
-SOCK_DGRAM: mode non connecté UDP.
-SOCK_RAW: for RAW sockets.


Connexion :
int connect (int sockfd, struct sockaddr *servaddr, int addrlen) ;
sockfd : est le file descriptor par socket() ;
servaddr : est un pointeur sur une structure d’adresse sockaddr_un qui indique
l’adresse de destination.
addrlen : taille de la structure d’adresse.

Commandes : 
Désactiver ou activer le bind local  echo "1" >  /proc/sys/net/ipv4/ip_nonlocal_bind

Statistique sur les sockets : netstat -ae
Les sockets attachés a un processus : ls -l /proc/[pid]/fd|grep socket|cut -d: -f3|sed 's/\[//;s/\]//' 

jeudi 30 mai 2013

TCP/IP Sockets VS Unix Sockets -- Différence entre TCP/IP Sockets et Unix Sockets

 Unix Sockets

Unix Sockets est un IPC socket (inter-process communication socket)  il est conçu pour les communications entre processus au sein d'un même système d'exploitation.

Son fonctionnement est similaire au pipe mais ayant la particularité d'avoir un mode de connexion (SOCK_STREAM or SOCK_SEQPACKET)
 

Son API ( Berkeley Sockets Interface) est très similaire au   TCP/IP Sockets néanmoins elle n'utilise pas de couche pour la communication réseau.


TCP/IP Sockets: un cas particulier des internet sockets

TCP/IP Sockets est un mécanisme qui permet la communication entre deux processus dans un réseau.
Ici contrairement au  Unix Sockets les TCP/IP Sockets se branchent sur le protocole TCP/IP.