-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaplicacoes.html
304 lines (290 loc) · 14.2 KB
/
aplicacoes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
<!DOCTYPE HTML>
<!--
Synchronous by TEMPLATED
templated.co @templatedco
Released for free under the Creative Commons Attribution 3.0 license (templated.co/license)
-->
<html>
<head>
<title>CoAP</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<link href='http://fonts.googleapis.com/css?family=Lato:300,400,700,900' rel='stylesheet' type='text/css'>
<!--[if lte IE 8]><script src="js/html5shiv.js"></script><![endif]-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/skel.min.js"></script>
<script src="js/skel-panels.min.js"></script>
<script src="js/init.js"></script>
<script type="text/javascript">
function gerarLinkEmail(nome, usuario, dominio, assunto) {
document.write("<a href=\"mailto");
document.write(":" + usuario + "@");
document.write(dominio + "?subject=" + assunto + "\">" + nome + ' - ' + usuario + "@" + dominio + "<\/a>");
}
</script>
<noscript>
<link rel="stylesheet" href="css/skel-noscript.css" />
<link rel="stylesheet" href="css/style.css" />
</noscript>
<!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]-->
<!--[if lte IE 9]><link rel="stylesheet" href="css/ie/v9.css" /><![endif]-->
</head>
<body>
<div id="wrapper">
<!-- Header -->
<div id="header">
<div class="container">
<!-- Logo -->
<div id="logo">
<h1><a href="#">Constrained Application Protocol</a></h1>
<span><a href="#">(CoAP)</a></span>
</div>
<!-- Nav -->
<nav id="nav">
<ul>
<li><a href="index.html">Fundamentação Teórica</a></li>
<li><a href="funcionamento.html">Funcionamento do CoAP</a></li>
<li class="active"><a href="aplicacoes.html">Aplicações</a></li>
<li><a href="conclusao.html">Conclusão</a></li>
<br>
<li><a href="perguntas.html">Perguntas</a></li>
<li><a href="referencias.html">Referências bibliográficas</a></li>
</ul>
</nav>
</div>
</div>
<!-- /Header -->
<div id="page">
<div class="container">
<div class="row">
<div class="3u">
<section id="sidebard2">
<header>
<h2>3) Aplicações</h2>
</header>
<ul class="style1">
<li class="first"><span class="fa fa-check"></span><a href="#3.1">3.1 Mapeamento do HTTP para CoAP</a></li>
<li><span class="fa fa-check"></span><a href="#3.2">3.2 Descoberta de serviços</a>
<li><span class="fa fa-check"></span><a href="#3.3">3.3 Descoberta de recursos</a></li>
<li><span class="fa fa-check"></span><a href="#3.4">3.4 <italic>Multicast</italic> CoAP</a></li>
<li><span class="fa fa-check"></span><a href="#3.5">3.5 <italic>Multicast</italic> ao nível de mensagem</a></li>
<li><span class="fa fa-check"></span><a href="#3.6">3.6 <italic>Multicast</italic> ao nível de solicitação / resposta</a></li>
</ul>
</section>
</div>
<div class="9u skel-cell-important">
<section id="content">
<header>
<h2><a name="3.1">3.1 Mapeamento do HTTP para CoAP</a></h2>
</header>
<p>CoAP não foi apenas projetado para trabalhar em arquiteturas REST, mas também para implementar algumas
funcionalidades encontradas no protocolo HTTP. Consequentemente, isso facilita com que o CoAP interopere com HTTP, logo, o
mapeamento entre os dois protocolos torna-se direto.
</p>
<p>Esse mapeamento é benéfico para dispositivos que não conseguem operar ou entender o CoAP, permitindo que sensores
compartilhem informações com a web ou que até dispositivos mais inteligentes consigam interagir com esses sensores.
</p>
<figure>
<img src="images/ArquiteturaCoAP.png" alt="Arquitetura CoAP"/>
<figcaption><span>Figura 10:</span> Arquitetura do Protocolo da Camada de Aplicação CoAP.</figcaption>
</figure>
<p>
Existem duas possíveis direções para acessar um recurso via <italic>forward-proxy</italic>:
</p>
<p>
<li>
<strong>CoAP-HTTP <italic>Proxying</italic> :</strong> Permite acesso aos clientes CoAP de recursos de servidores HTTP através
de um intermediário. Isso é inicializado ao incluir <italic>Proxy-URI</italic> ou a opção <italic>Proxy-Scheme</italic> com uma
URI "http" ou "https" em um <italic>request</italic> CoAP a um CoAP-HTTP <italic>proxy</italic>.
</li>
<br>
<li>
<strong>HTTP-CoAP <italic>Proxying</italic> </strong> Permite acesso aos clientes HTTP de recursos de servidores CoAP através de um
intermediário. Isso é inicializado ao especificar uma URI "coap" ou "coaps" em uma <italic>request-line</italic>
de um <italic>request</italic> HTTP a um HTTP-CoAP <italic>proxy</italic>.
</li>
</p>
<header>
<h2><a name="3.2">3.2 Descoberta de serviços</a></h2>
</header>
<p>
Um servidor é descoberto por um cliente utilizando uma URI que faz referência à localização da sua porta UDP.
Alternativamente, clientes podem usar <italic>multicast</italic> CoAP para encontrar o endereço de mais de um servidor CoAP.
Caso a porta não seja especificada, assume-se que o servidor possa ser encontrado através da porta padrão 5683.
</p>
<header>
<h2><a name="3.3">3.3 Descoberta de recursos</a></h2>
</header>
<p>
A descoberta de recursos oferecida pelo <italic>endpoint</italic> do CoAP é extremamente importante em aplicações M2M
(<italic>Machine to Machine</italic>) em que não existem humanos, e interfaces estáticas resultam em um sistema mais vulnerável.
Essa descoberta é baseada em diretório de dispositivos.
</p>
<p>
A busca por serviços em CoAP pode ser realizada mediante a utilização de parâmetros adicionados à string de consulta por
dispositivos, enviada ao respectivo diretório de recursos.
</p>
<p>
Para maximizar interoperabilidade em um ambiente CoRE, um <italic>endpoint</italic> CoAP deve suportar o "CoRE
<italic>Link Format</italic>" de recursos descobertos, que tem como atributos o <italic>Resource Type
</italic>, o <italic>Interface Description</italic> e o <italic>Context Type</italic>.
<italic>O Resource Type</italic> é responsável por identificar a função de um dado recurso, como coletar dados
de temperatura, luminosidade, ou qualquer outro dado que seja; o <italic>Interface Description</italic>
indica os métodos que podem ser utilizados para a comunicação com esse recurso, como, por exemplo, GET, POST
e outros definidos pelo REST; o <italic>Context Type</italic> indica o formato dos dados fornecidos pelo recurso.
Esses são os atributos suportados por um <italic>endpoint</italic> CoAP, exceto quando configurações
completamente manuais são desejadas. Cabe ao servidor definir quais recursos são feitos detectáveis (se houver).
</p>
<header>
<h2><a name="3.4">3.4 Multicast CoAP</a></h2>
</header>
<p>
Comunicação <italic>multicast</italic> é uma relação de um para vários <italic>endpoints</italic>.
Dispositivos limitados podem ser associados tanto por sua posição ou propósito, e essas relações podem
tanto ser pré-configuradas ou configuradas durante as operações. Exemplo: um grupo de interruptores
CoAP onde um simples comando de comunicação para o grupo pode acender ou apagar todas as luzes de um andar
específico de um prédio.
</p>
<p>
A estrutura fundamental de uma comunicação do grupo CoAP são <italic>requests</italic> enviados via UDP
com um IP <italic>multicast</italic> e respostas usando UDP com um IP <italic>unicast</italic>.
Entretanto, para essa comunicação em grupo do CoAP ainda não foi definida uma medida de segurança
para IP <italic>multicast</italic>, pois DTLS não suporta comunicações <italic>multicast</italic>.
Portanto, CoAP opera no modo <italic>NoSec</italic> quando faz transmissões <italic>multicast</italic>.
</p>
<header>
<h2><a name="3.5">3.5 Multicast ao nível de mensagem</a></h2>
</header>
<p>
Mensagens <italic>multicast</italic> não requerem confirmação de recebimento, para isso, o servidor deve saber
que a mensagem foi recebida por um fluxo <italic>multicast</italic>, para evitar uma implosão de erros.
Caso o servidor não esteja ciente, ele deve retornar uma mensagem de RESET. Essa mensagem de RESET será idêntica
a uma mensagem <italic>unicast</italic> do remetente, portanto, este deve evitar usar um mesmo ID de mensagem
ativo num <italic>endpoint</italic> que tenha recebido a mensagem <italic>multicast</italic>.
</p>
<header>
<h2><a name="3.6">3.6 Multicast ao nível de solicitação / resposta</a></h2>
</header>
<p>
Caso um servidor queira responder uma mensagem <italic>multicast</italic>, deve escolher uma duração para
o período de tempo durante o qual pretende responder. Se mais respostas precisarem ser enviadas com base na
mesma associação de endereço <italic>multicast</italic>,
um novo período de espera (<italic>leisure period</italic>) começa imediatamente após o término do intervalo
de tempo de envio do primeiro. Esse tempo de espera depende da aplicação, mas pode ser modelado previamente como:
<div class="formula">
lb_Leisure = S * G / R
</div>
Em que S é o tamanho estimado de resposta (<italic>Response Size</italic>), G é o tamanho estimado do grupo
de envio (<italic>Group Size</italic>) e R, a taxa de transferência de dados (<italic>Data Transfer Rate</italic>).
</p>
</section>
<div style="text-align: center">
<a href="funcionamento.html" class="button" style="float: left"><< Anterior</a>
<a href="#" class="button">Topo</a>
<a href="conclusao.html" class="button" style="float: right">Próximo >></a>
</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<div id="footer">
<div class="container">
<div class="row">
<div class="3u">
<section id="box1">
<header>
<h2>Links úteis</h2>
</header>
<ul class="style3">
<li class="first">
<p class="linkButton"><a href="http://www.poli.ufrj.br/" target="_blank">Escola
Politécnica da UFRJ</a></p>
</li>
<li>
<p class="linkButton"><a href="https://www.gta.ufrj.br/" target="_blank">Grupo de
Teleinformática e Automação da UFRJ</a></p>
</li>
<li>
<p class="linkButton"><a href="https://www.del.ufrj.br/"
target="_blank">Departamento de Engenharia Eletrônica e de Computação da
UFRJ</a></p>
</li>
</ul>
</section>
</div>
<div class="6u">
<section id="box2">
<header>
<h2>Autores</h2>
<ul class="style1">
<li class="first">
<script type="text/javascript">
gerarLinkEmail('ARYANE BARROS MACIEL DA SILVA', 'ary.maciel', 'poli.ufrj.br', 'Feedback sobre o site do CoAP...');
</script>
</li>
<li>
<script type="text/javascript">
gerarLinkEmail('FELIPE FADUL DE CARVALHO', 'felipe.fadul', 'poli.ufrj.br', 'Feedback sobre o site do CoAP...');
</script>
</li>
<li>
<script type="text/javascript">
gerarLinkEmail('MARIANA DABUL NAZARIO', 'mariana.dabul', 'poli.ufrj.br', 'Feedback sobre o site do CoAP...');
</script>
</li>
<noscript>
<em>Endereço de email protegido por JavaScript. Por favor, ative o JavaScript
para visualizar o email.</em>
</noscript>
</ul>
</header>
<div style="text-align: justify">
<p>Este trabalho foi desenvolvido por alunos de graduação do curso de Engenharia
Eletrônica e de Computação da Universidade Federal do Rio de Janeiro para a
disciplina Redes de Computadores I durante o período de 2019.1. Compreende um estudo
sobre o protocolo CoAP, apresentando suas principais características, funcionamento
e aplicações.</p>
</div>
</section>
</div>
<div class="3u">
<section id="box3">
<header>
<h2>Contato</h2>
</header>
<div style="text-align: justify">
<p>
Fique à vontade para comentar sobre o trabalho enviando-nos um e-mail ou acessando-o no
<a href="https://github.com/felipefadul/CoAP" target="_blank">GitHub</a>.
</p>
</div>
</section>
</div>
<div style="text-align: justify">
"Este trabalho foi totalmente produzido pelos autores que declaram não terem violado os direitos
autorais de terceiros, sejam eles pessoas físicas ou jurídicas. Havendo textos, tabelas e
figuras transcritos de obras de terceiros com direitos autorais protegidos ou de domínio público
tal como ideias e conceitos de terceiros, mesmo que sejam encontrados na Internet, os mesmos
estão com os devidos créditos aos autores originais e estão incluídas apenas com o intuito de
deixar o trabalho autocontido. O(s) autor(es) tem(êm) ciência dos Artigos 297 a 299 do Código
Penal Brasileiro e também que o uso do artifício de copiar/colar texto de outras fontes e outras
formas de plágio é um ato ilícito, condenável e passível de punição severa. No contexto da
Universidade a punição não precisa se restringir à reprovação na disciplina e pode gerar um
processo disciplinar que pode levar o(s) aluno(s) à suspensão;"
</div>
</div>
</div>
</div>
<!-- Copyright -->
<div id="copyright">
<div class="container">
Design by <a href="http://templated.co" target="_blank">TEMPLATED</a> - Images: <a
href="http://unsplash.com" target="_blank">Unsplash</a> (<a href="https://unsplash.com/license"
target="_blank">CC0</a>)
</div>
</div>
</div>
</body>
</html>