{"id":950,"date":"2021-08-03T11:45:59","date_gmt":"2021-08-03T09:45:59","guid":{"rendered":"https:\/\/il-mio-ip.it\/?page_id=950"},"modified":"2021-08-03T22:31:49","modified_gmt":"2021-08-03T20:31:49","slug":"la-modalita-di-connessione","status":"publish","type":"page","link":"https:\/\/il-mio-ip.it\/?page_id=950","title":{"rendered":"La modalit\u00e0 di connessione"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull has-background-dim has-parallax has-background-gradient\" style=\"background-image:url(https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/servizi.jpg);min-height:380px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__gradient-background\" style=\"background:linear-gradient(100deg,rgb(21,50,67) 0%,rgb(26,108,122) 100%)\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<h1 class=\"has-text-align-center has-white-color has-text-color wp-block-heading\"><strong>La modalit\u00e0 di connessione<\/strong><\/h1>\n<\/div><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"color: #0693e3;\" class=\"ugb-highlight\"><strong><strong><strong>Le connessioni nel livello Transport<\/strong><\/strong><\/strong><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Essendo un protocollo connection oriented, TCP si occupa di stabilire una connessione tra i due host prima di iniziare qualsiasi attivit\u00e0 di trasmissione o controllo. La connessione tra mittente e destinatario si realizzare attraverso la definizione di un socket, ovvero una coppia di indirizzi IP (quello del mittente e quello del destinatario) e la porta attraverso la quale avverr\u00e0 la comunicazione (ad esempio la porta 80 del protocollo HTTP).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La connessione TCP ha quindi come obiettivo quello di consentire il corretto scambio di informazioni tra risorse a livello applicativo che si trovano su due host diversi, ad esempio Client e Server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alla fine dello scambio di messaggi, TCP effettua esplicitamente la chiusura della connessione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Apertura di una connessione \u2013 Three Way Handshake<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La procedura utilizzata per creare una connessione TCP affidabile tra due host si chiama three-way handshake, ovvero, letteralmente, stretta di mano in 3 passaggi. Questa locuzione deriva dal fatto che il protocollo ha necessit\u00e0 di effettuare uno scambio di 3 messaggi tra host mittente e host destinatario per garantire che la connessione sia stata effettuata correttamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consideriamo un host A che vuole aprire una connessione TCP con un altro host B. I passaggi da seguire sono i seguenti:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"345\" src=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/25-Apertura-di-una-connessione-Three-Way-Handshake-1024x345.png\" alt=\"Figura 25: Three Way Handshake\" class=\"wp-image-952\" srcset=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/25-Apertura-di-una-connessione-Three-Way-Handshake-1024x345.png 1024w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/25-Apertura-di-una-connessione-Three-Way-Handshake-300x101.png 300w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/25-Apertura-di-una-connessione-Three-Way-Handshake-768x259.png 768w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/25-Apertura-di-una-connessione-Three-Way-Handshake.png 1323w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em><strong>Figura 25: Three Way Handshake<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passaggio 1<\/strong>: A invia a B un segmento SYN; il flag SYN viene impostato a 1 e il campo Sequence number contiene il valore x che specifica l&#8217;Initial Sequence Number di A;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passaggio 2<\/strong>: B invia ad A un segmento SYN\/ACK; i flag SYN e ACK sono impostati a 1, il campo Sequence number contiene il valore y che specifica l&#8217;Initial Sequence Number di B e il campo Acknowledgment number contiene il valore x+1, confermando cos\u00ec la ricezione da parte di B dell&#8217;Initial Sequence Number inviato da A;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passaggio 3:<\/strong> A invia a B un segmento ACK; il flag ACK \u00e8 impostato a 1 e il campo Acknowledgment number contiene il valore y+1 confermando la ricezione da parte di A dell&#8217;Initial Sequence Number inviato da B.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Teoricamente il terzo segmento non sarebbe necessario per la corretta apertura della connessione, dal momento che gi\u00e0 dopo la ricezione da parte di A del secondo segmento, entrambi gli host hanno espresso la loro disponibilit\u00e0 all&#8217;apertura della connessione. Tuttavia, esso risulta necessario al fine di permettere anche all&#8217;host B una corretta stima del timeout iniziale, ovvero del tempo intercorso tra l&#8217;invio di un segmento e la ricezione del corrispondente ACK.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il flag SYN risulta utile nell&#8217;implementazione pratica del protocollo, e nella sua successiva analisi da parte dei firewall: infatti nel traffico TCP i segmenti SYN stabiliscono nuove connessioni, che quindi potrebbe essere necessario filtrare o controllare, mentre quelli con il flag non attivo appartengono a connessioni gi\u00e0 instaurate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I segmenti utilizzati durante il Three Way Handshake di solito sono composti solo dai dati header, e non da dati veri e propri. In questa fase infatti il campo \u201cDati\u201d pu\u00f2 tranquillamente restare vuoto, trattandosi solo di una fase preparatoria e propedeutica all\u2019instaurarsi di una connessione tra i due host e non finalizzata allo scambio di dati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il sistema del three-way handshake si rende necessario in quanto la sequenza numerica (ISN) non \u00e8 legata ad un clock generale della rete, ed inoltre ogni pacchetto IP potrebbe avere il proprio modo di calcolare l&#8217;Initial Sequence Number. Infatti, alla ricezione del primo SYN non \u00e8 possibile sapere se la sequenza ricevuta appartenga ad un ritardo dovuto ad una precedente connessione o si tratta di una trasmissione vera a proprio. Tuttavia, dal momento che l&#8217;ultima sequenza usata nella connessione viene memorizzata, sar\u00e0 possibile effettuare una richiesta all\u2019host mittente affinch\u00e9 verifichi il flag SYN appartenente alla vecchia connessione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Chiusura di una connessione &#8211; Doppio two-way handshake<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta che la connessione TCP \u00e8 stata stabilita, non \u00e8 considerata come una singola connessione bidirezionale, ma come l\u2019interazione di due connessioni monodirezionali, quindi ognuno dei due host coinvolti nella connessione dovr\u00e0 provvedere a chiuderla. In questo modo si possono verificare condizioni di connessioni chiuse a met\u00e0, ovvero da parte di uno solo dei due host. Infatti, si pu\u00f2 verificare l\u2019evenienza in cui uno degli host ha chiuso, non avendo nient\u2019altro da trasmettere, ma l\u2019altro host ha lasciato la propria connessione attiva, dal momento che potrebbe ancora aver bisogno di ricevere informazioni da parte dell\u2019altro host.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel protocollo TCP la chiusura della connessione si pu\u00f2 effettuare in due modi: con un single way handshake [25] o con un two way handshake [26]. Nel primo caso i due host chiudono le proprie connessioni contemporaneamente, nel secondo caso invece le connessioni vengono chiuse in momenti diversi.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"346\" src=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/26-Chiusura-di-una-connessione-single-way-handshake-1024x346.png\" alt=\"Figura 26: Chiusura con single way handshake\" class=\"wp-image-953\" srcset=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/26-Chiusura-di-una-connessione-single-way-handshake-1024x346.png 1024w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/26-Chiusura-di-una-connessione-single-way-handshake-300x101.png 300w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/26-Chiusura-di-una-connessione-single-way-handshake-768x259.png 768w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/26-Chiusura-di-una-connessione-single-way-handshake.png 1323w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><strong><em>Figura 26: Chiusura con single way handshake<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/27-Chiusura-di-una-connessione-two-way-handshake-1024x585.png\" alt=\"Figura 27: Chiusura con two way handshake\" class=\"wp-image-954\" srcset=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/27-Chiusura-di-una-connessione-two-way-handshake-1024x585.png 1024w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/27-Chiusura-di-una-connessione-two-way-handshake-300x171.png 300w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/27-Chiusura-di-una-connessione-two-way-handshake-768x439.png 768w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/27-Chiusura-di-una-connessione-two-way-handshake.png 1323w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><strong><em>Figura 27: Chiusura con two way handshake<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Il single way handshake ha un funzionamento simile al suo omologo che si occupa dell\u2019apertura della connessione, con la differenza che il flag utilizzato sar\u00e0 in FIN anzich\u00e9 il SYN. In questa modalit\u00e0 un host mittente invia ad un host destinatario un segmento con la richiesta FIN: il destinatario risponder\u00e0 con FIN + ACK. A questo punto il mittente invia un ultimo ACK e la connessione viene chiusa da entrambi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con l\u2019handshake a 2 vie invece la chiusura della connessione avviene in tempi differenti per i due host. In questo&nbsp; caso l\u2019host mittente invia la richiesta di FIN e attende l\u2019ACK dal destinatario. Il destinatario a sua volta far\u00e0 altrettanto, inviando anche lui un FIN e restando in attesa della risposta di ACK. Questo processo generer\u00e0 quindi 4 segmenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In alternativa \u00e8 possibile chiudere la connessione in maniera pi\u00f9 brutale settando il flag di Reset nel segmento e quindi interrompendo la connessione in entrambe le direzioni.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#f3f9fb\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/il-mio-ip.it\/guida-al-networking\/tcp-transmission-control-protocol\/\" data-type=\"page\" data-id=\"944\">&lt;&lt; <strong><strong>TCP \/ Transmission Control Protocol<\/strong><\/strong><\/a><\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"has-text-align-right wp-block-heading\"><a href=\"https:\/\/il-mio-ip.it\/guida-al-networking\/multiplexing-e-demultiplexing\/\" data-type=\"page\" data-id=\"956\"><strong><strong><strong><strong><strong>Multiplexing e Demultiplexing<\/strong><\/strong><\/strong><\/strong><\/strong> >><\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Le connessioni nel livello Transport Essendo un protocollo connection oriented, TCP si occupa di stabilire una connessione tra i due host prima di iniziare qualsiasi attivit\u00e0 di trasmissione o controllo. La connessione tra mittente e destinatario si realizzare attraverso la definizione di un socket, ovvero una coppia di indirizzi IP (quello del mittente e quello [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":647,"menu_order":44,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"right-sidebar","site-content-layout":"plain-container","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[10],"tags":[],"class_list":["post-950","page","type-page","status-publish","hentry","category-guida-al-networking"],"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":""},"post_excerpt_stackable_v2":"<p>La modalit\u00e0 di connessione Le connessioni nel livello Transport Essendo un protocollo connection oriented, TCP si occupa di stabilire una connessione tra i due host prima di iniziare qualsiasi attivit\u00e0 di trasmissione o controllo. La connessione tra mittente e destinatario si realizzare attraverso la definizione di un socket, ovvero una coppia di indirizzi IP (quello del mittente e quello del destinatario) e la porta attraverso la quale avverr\u00e0 la comunicazione (ad esempio la porta 80 del protocollo HTTP). La connessione TCP ha quindi come obiettivo quello di consentire il corretto scambio di informazioni tra risorse a livello applicativo che si&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/il-mio-ip.it\/?cat=10\" rel=\"category\">Guida al Networking<\/a>","author_info_v2":{"name":"admin","url":"https:\/\/il-mio-ip.it\/?author=1"},"comments_num_v2":"0 commenti","_links":{"self":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=950"}],"version-history":[{"count":3,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/950\/revisions"}],"predecessor-version":[{"id":975,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/950\/revisions\/975"}],"up":[{"embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/647"}],"wp:attachment":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}