<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michele Rizzi Web PageMichele Rizzi Web Page &#187; Telecomunications (3)</title>
	<atom:link href="https://www.rizzimichele.it/arguments/tlc/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.rizzimichele.it</link>
	<description>Passion of IT</description>
	<lastBuildDate>Mon, 05 Dec 2016 20:53:30 +0000</lastBuildDate>
	<language>en-GB</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>What is protocol?</title>
		<link>https://www.rizzimichele.it/what-is-protocol/</link>
		<comments>https://www.rizzimichele.it/what-is-protocol/#comments</comments>
		<pubDate>Sun, 21 Aug 2016 11:16:39 +0000</pubDate>
		<dc:creator><![CDATA[Michele Rizzi]]></dc:creator>
				<category><![CDATA[Telecomunications (3)]]></category>

		<guid isPermaLink="false">http://www.rizzimichele.it/?p=844</guid>
		<description><![CDATA[Protocol  is a set of rules or procedures for transmitting data between electronic devices, such as computers. In order for computers to exchange information, there must be a preexisting agreement as to how the information will be structured and how each side will send and receive it. The TCP IP communication is made of 4 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><b>Protocol </b> is a set of rules or procedures for transmitting data between electronic devices, such as computers. In order for computers to exchange information, there must be a preexisting agreement as to how the information will be structured and how each side will send and receive it.</p>
<p>The TCP IP communication is made of 4 layers, one on top of the others as you can see <a href="http://www.rizzimichele.it/networking-java-net/">here</a> and each layer has different protocols, for instance for the Internet layer there is IP (internet protocol) and ICMP (Internet control message protocol)</p>
<p>Each protocol adds its information to the message in its header as you can see below</p>
<p><a href="http://www.rizzimichele.it/wp-content/uploads/2016/08/slide_10.jpg"><img class="aligncenter size-full wp-image-845" alt="slide_10" src="http://www.rizzimichele.it/wp-content/uploads/2016/08/slide_10.jpg" width="960" height="720" /></a>and the final message is sent to the next host according to the IP destination address till it reaches the destination host as you can see below<a href="http://www.rizzimichele.it/wp-content/uploads/2016/08/350px-IP_stack_connections.svg_.png"><img class="aligncenter size-full wp-image-846" alt="350px-IP_stack_connections.svg" src="http://www.rizzimichele.it/wp-content/uploads/2016/08/350px-IP_stack_connections.svg_.png" width="350" height="414" /></a>The protocol is necessary for letting the receiver understanding the source information:</p>
<ul>
<li>the host A IP layer adds its header to the message</li>
<li>the message is sent to the Router 1</li>
<li>the router 1 IP layer reads the IP header of the message and it must be able to process it and to send it to the next router according on what is written on that header. <strong>All IP layers on the network all over the world must work with the same set of rule (same protocols).</strong></li>
</ul>
<p>Each protocol has to define several informations such as format of the addresses (source and destination), error checking, sequence control (because the information is split in several packets of fixed dimension).</p>
<p>Protocols are valid all over the world and are built by standard organizations such as IEEE (Institute of Electrical and Electronics Engineers), International Organization for Standardization (ISO), the International Telecommunication Union (ITU) and the Internet Engineering Task Force (IETF).</p>
<p><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fwhat-is-protocol%2F&amp;linkname=What%20is%20protocol%3F" title="Facebook" rel="nofollow" target="_blank"></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fwhat-is-protocol%2F&amp;linkname=What%20is%20protocol%3F" title="Twitter" rel="nofollow" target="_blank"></a><a class="a2a_button_google_plus" href="http://www.addtoany.com/add_to/google_plus?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fwhat-is-protocol%2F&amp;linkname=What%20is%20protocol%3F" title="Google+" rel="nofollow" target="_blank"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=https%3A%2F%2Fwww.rizzimichele.it%2Fwhat-is-protocol%2F&amp;title=What%20is%20protocol%3F" id="wpa2a_2"></a></p>]]></content:encoded>
			<wfw:commentRss>https://www.rizzimichele.it/what-is-protocol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GetUserMedia works only on HTTPS</title>
		<link>https://www.rizzimichele.it/html-webcam-available-only-on-https/</link>
		<comments>https://www.rizzimichele.it/html-webcam-available-only-on-https/#comments</comments>
		<pubDate>Sun, 07 Aug 2016 13:26:03 +0000</pubDate>
		<dc:creator><![CDATA[Michele Rizzi]]></dc:creator>
				<category><![CDATA[All articles (75)]]></category>
		<category><![CDATA[Operating systems and security (5)]]></category>
		<category><![CDATA[Programming languages (51)]]></category>
		<category><![CDATA[Telecomunications (3)]]></category>

		<guid isPermaLink="false">http://www.rizzimichele.it/?p=812</guid>
		<description><![CDATA[A new functionality provided by HTML5 is getUserMedia which allows to connect directly to the microphone and the webcam for either making videos or taking picture using the client browser and JavaScript without any additional library I tested this functionality on the 13/06/2015 and it was working fine. Today I tested again this functionality and it&#8217;s [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>A new functionality provided by HTML5 is getUserMedia which allows to connect directly to the microphone and the webcam for either making videos or taking picture using the client browser and JavaScript without any additional library</p>
<p><a href="http://www.rizzimichele.it/html5-input-from-webcam/">I tested this functionality on the 13/06/2015</a> and it was working fine.</p>
<p>Today I tested again this functionality and it&#8217;s not working anymore:</p>
<ul>
<li>With Microsoft edge, Microsoft internet explorer and Firefox it&#8217;s possible to see the input from the webcam but it&#8217;s not possible to capture the video</li>
<li>With google Chrome it&#8217;s not possible to see the input from the webcam.</li>
</ul>
<p>I&#8217;ve investigated a little bit more to understand why getUserMedia is not working anymore and I&#8217;ve seen the below message</p>
<p>&nbsp;</p>
<p><a href="http://www.rizzimichele.it/wp-content/uploads/2016/08/usermedia.png"><img class="aligncenter size-full wp-image-813" alt="usermedia" src="http://www.rizzimichele.it/wp-content/uploads/2016/08/usermedia.png" width="582" height="134" /></a></p>
<p>GetUserMedia is only available on HTTPS, which is HTTP with an encryption of the data using asymmetric keys</p>
<p>My website works on HTTP so getUserMedia is no longer working on my page.</p>
<p>&nbsp;</p>
<p>Making a website which uses HTTP protocol means getting a certificate and a couple public-key and private key:</p>
<ul>
<li>the public key is sent automatically to all client browsers from the server</li>
<li>the private key is secret.</li>
<li>The certificate is a proof that a HTTPS website is secure</li>
</ul>
<p>When the user connects to a website on HTTPS it obtains the certificate and it can accept to connect to this website.</p>
<p>After accepting it obtains the public key and it can communicate in a secure way with the server</p>
<ol>
<li>the client encrypts its message using the server public key and sends it to the server</li>
<li>the server decrypts the message using its private key,</li>
<li>the server processes the data and he got the response</li>
<li>the server encrypts the response using its private key</li>
<li>the client decrypts the response using the server public key</li>
</ol>
<p>&nbsp;</p>
<p>My website doesn&#8217;t require this complex and expensive technology and I won&#8217;t make working that project which will be shown in my webpage even if it&#8217;s not working.</p>
<p>Nothing changes from my side but I&#8217;ve understood that getusermedia is working only through HTTPS</p>
<p><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fhtml-webcam-available-only-on-https%2F&amp;linkname=GetUserMedia%20works%20only%20on%20HTTPS" title="Facebook" rel="nofollow" target="_blank"></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fhtml-webcam-available-only-on-https%2F&amp;linkname=GetUserMedia%20works%20only%20on%20HTTPS" title="Twitter" rel="nofollow" target="_blank"></a><a class="a2a_button_google_plus" href="http://www.addtoany.com/add_to/google_plus?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fhtml-webcam-available-only-on-https%2F&amp;linkname=GetUserMedia%20works%20only%20on%20HTTPS" title="Google+" rel="nofollow" target="_blank"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=https%3A%2F%2Fwww.rizzimichele.it%2Fhtml-webcam-available-only-on-https%2F&amp;title=GetUserMedia%20works%20only%20on%20HTTPS" id="wpa2a_4"></a></p>]]></content:encoded>
			<wfw:commentRss>https://www.rizzimichele.it/html-webcam-available-only-on-https/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCP-IP, Java.net</title>
		<link>https://www.rizzimichele.it/networking-java-net/</link>
		<comments>https://www.rizzimichele.it/networking-java-net/#comments</comments>
		<pubDate>Sat, 05 Jul 2014 20:04:07 +0000</pubDate>
		<dc:creator><![CDATA[Michele Rizzi]]></dc:creator>
				<category><![CDATA[All articles (75)]]></category>
		<category><![CDATA[Programming languages (51)]]></category>
		<category><![CDATA[Telecomunications (3)]]></category>

		<guid isPermaLink="false">http://www.rizzimichele.it/?p=287</guid>
		<description><![CDATA[These libraries allow to work with the lowest layer of the TCP-IP protocol in client-server applications, this layer is a little up the transport one. Internet is a wide network, when a computer is connected to the telephone line, this machine is connected to the ISP (internet service provider) and this ISP have all the tools to allows [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>These libraries allow to work with the lowest layer of the TCP-IP protocol in client-server applications, this layer is a little up the transport one.</p>
<p><a href="http://www.rizzimichele.it/wp-content/uploads/2014/07/imageview.php_.gif"><img class="aligncenter size-full wp-image-290" alt="imageview.php" src="http://www.rizzimichele.it/wp-content/uploads/2014/07/imageview.php_.gif" width="463" height="319" /></a></p>
<p>Internet is a wide network, when a computer is connected to the telephone line, this machine is connected to the ISP (internet service provider) and this ISP have all the tools to allows to interconnect it to the internet.</p>
<p>When you digit www.google.it your computer performs the following steps</p>
<ul>
<li>digit www.google.it press enter</li>
<li>your browser sends an http request of type get to the URL (uniform resource locator) www.google.it</li>
<li>this request is converted in electromagnetic wave and it is sent to the cable</li>
<li>this request goes to DNS (Domain name system) distributed database that converts alias name to ip-address, for example 233.233.233.233 on port 80 (standard http port)</li>
<li>your computer sends an http get request to an address http://233.233.233.233:80, this request is a simple http message that arrives to the host that is connected to yours. this host &#8220;decide&#8221; at which port forwarding the message (at this port is connected another computer) according to its MAC address (Media access control) the address of the network board</li>
<li>The message reaches the first router and is forwarded to another subnetwork using IP Address</li>
<li>the message go through a lot of computers, switches, routers before reaching google because for example the client may be located in Italy and the server in UK)</li>
<li>at the end the message arrives to the server that answers it and then the answer packet comes back o the client</li>
</ul>
<p>There are a lot of steps that are necessary to perform to allow the packet to arrive to the server.</p>
<p>For these reasons it is necessary that there is a structure composed by a lot of hierarchic layers and for these layers are known the interfaces. Each layer offers services at the upper layer using the interfaces of the lower layer.</p>
<p>These layers from up to downside are the following:</p>
<ul>
<li><strong>Application</strong>: the application in your PC: internet explorer or chrome (browser,  client HTTP), filezilla (client FTP) microsoft outlook (client SMTP-POP) etc</li>
<li><strong>Middleware</strong> (it is not a real layer, it is contained in the application layer but for my description I split it from application layer): it is the layer that allows the client and the server to ignore the problem of communication: the client call a method of the middleware and this method call the server and vice-versa. For this reason it allows to communicate software written in different languages.  An example is ejb,spring beans, rmi, rest services etc. The client calls with his smartphone a web service, this application sends a soap request to the server, the visual studio application receives these request written in SOAP (XML) and sends the response</li>
<li><strong> Transport layer: </strong>is the first layer that communicates with the destination (server), the address of this protocol is the port number, this number identifies that the application runs on the pc (for example there are two browsers connected to google, one is connected to www.google.it:80, the other to www.google.it:81, and the server can distinguish both requests ) this layer offers two services:
<ul>
<li><strong>TCP (transmission control protocol): reliable way</strong> sends all packets in order and if any packet is corrupted is sends again</li>
<li><strong>UDP (User datagram protocol): fast way </strong>if any packet (called datagram) doesn&#8217;t arrive to destination, it is lost because for example in a real time video or in a real time telephone call (VOIP) it is not necessary that everything arrives to the destination but is important the low latency</li>
</ul>
</li>
<li><strong>Network layer </strong>the address is IP, this level allows the packet to arrive to the server, this layer calculates the route for sending the packet to the destination, the devices that performs these operations are the routers</li>
<li><strong>Network interface: </strong>this level is the responsible for the communication from one host to the other that is interconnected to it. this layer checks that the message arrives in order and not corrupted. The address of this layer is MAC, the devices that works to this level are switch and bridge. Switch and bridge don&#8217;t know IP address of the destination, the only way to send the packet to the destination is using the mac address. The service that convert ip address in MAC is ARP (Address Resolution Protocol). This layer also converts the message in electromagnetic wave and send it to the transport (for example antenna or cable).</li>
</ul>
<h1>Java.net</h1>
<p>The libraries Java.net work on the low part of middleware layer, over the transport layer.</p>
<p>For example your browser communicates with the server web via HTTP protocol that have a standard set of instructions, if you want to create your personal protocol to communicate with other computer, for example for making your peer to peer/VOIP distributed application you can use the libraries Java.net</p>
<p>These libraries allow computer programmer to choose the type of the message to send to the server: either <strong>TCP or UDP.</strong></p>
<p>When you work with web services you use always TCP protocol and you send always XML message to the server, you cannot modify these parameters middleware, but if you know the socket libs <strong>you can create all type of web application.</strong></p>
<h1> My Example</h1>
<p><a href="http://www.rizzimichele.it/wp-content/uploads/2014/07/Screenshot-from-2014-07-05-205704.png"><img class="aligncenter size-full wp-image-289" alt="Screenshot from 2014-07-05 20:57:04" src="http://www.rizzimichele.it/wp-content/uploads/2014/07/Screenshot-from-2014-07-05-205704.png" width="1366" height="768" /></a>The server has a simple demon multithreading application that listens on local machine to the port number inserted in input</p>
<p>the client has two parameters port number and server address, when you don&#8217;t insert the second one, the default address is localhost.</p>
<p>The server is always on and when you activate the client the server answer it. The message is a simple greeting.</p>
<p><a href="http://www.rizzimichele.it/aboutMePHP/OtherMySW/SocketLibs.tar.gz">click here to download the file</a></p>
<p>to use it</p>
<p>&nbsp;</p>
<p>java -jar socketServer.jar &lt;port_number&gt;</p>
<p>java -jar socketClient.jar &lt;port_number&gt; &lt;ip_or_alias_of_server&gt;</p>
<p>Example:</p>
<p>java -jar socketServer.jar 4567</p>
<p>java -jar socketClient.jar 4567 localhost</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fnetworking-java-net%2F&amp;linkname=TCP-IP%2C%20Java.net" title="Facebook" rel="nofollow" target="_blank"></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fnetworking-java-net%2F&amp;linkname=TCP-IP%2C%20Java.net" title="Twitter" rel="nofollow" target="_blank"></a><a class="a2a_button_google_plus" href="http://www.addtoany.com/add_to/google_plus?linkurl=https%3A%2F%2Fwww.rizzimichele.it%2Fnetworking-java-net%2F&amp;linkname=TCP-IP%2C%20Java.net" title="Google+" rel="nofollow" target="_blank"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=https%3A%2F%2Fwww.rizzimichele.it%2Fnetworking-java-net%2F&amp;title=TCP-IP%2C%20Java.net" id="wpa2a_6"></a></p>]]></content:encoded>
			<wfw:commentRss>https://www.rizzimichele.it/networking-java-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
