Вы находитесь на странице: 1из 11

INSTITUTOSUPERIORDAMAIA

RCTRedesdeComunicaoeTelecomunicaes

TrabalhoapresentadonombitodacadeiradeProtocolosdeComunicao

Maia,Janeiro2010

INSTITUTOSUPERIORDAMAIA

RCTRedesdeComunicaoeTelecomunicaes

Trabalhorealizadoparaadisciplinade:
ProtocolosdeComunicao
Leccionadapelo:
ProfessorLusMoreira
Trabalhorealizadopelosalunos:
AntnioMagalhes,n16684
LusCunha,n16488
NunoCampos,n17171
PedroLeito,n17175
VtorSilva,n18822
Maia,Janeiro2010

P.C.

ndice
1.1 ProjectoCHATROOM....................................................................................................4
1.2 ApresentaodoProjecto..............................................................................................4
2.

InterfaceGrfico............................................................................................................5

3.

ImplementaoModeloTerico..................................................................................6

3.1 AnnciosdeCliente.......................................................................................................6
3.2 AnnciosdeServidor.....................................................................................................7
4.

ArquitecturadomodeloTerico....................................................................................8

4.1 ClienteServidor.........................................................................................................8
4.2 ServidorCliente.........................................................................................................8
5.

Implementao..............................................................................................................9

6.

Dificuldades.................................................................................................................10

7.

Concluso....................................................................................................................11

ndicedeFiguras
Ilustrao1Login..........................................................................................................................5
Ilustrao2JaneladeMensagens.................................................................................................5
Ilustrao3JaneladevisualizaodoServidor............................................................................5
Ilustrao4Modelo......................................................................................................................6

3
3 Ano RCT Projecto CHAT ROOM

P.C.

1. EnquadramentodoProjecto
O presente projecto surge como proposta da cadeira de Protocolos de
Comunicao,comafinalidadedecriarumaaplicaoondepossaserimplementado
umprotocolodecomunicao.FoisugeridoquesecriasseumServidoreumcliente,a
fimdeseimplementarumprotocolodecomunicaoentreambos.

1.1

ProjectoCHATROOM

Um dos projectos propostos foi a criao de um Chat Room onde se pudesse


verificaraimplementaodoprotocolo.

1.2

Implementaodeumservidor
Implementaodevriosclientes
Protocolodeligao,UDP

ApresentaodoProjecto

Duranteoprojectoforamsurgindoalgumasdificuldadeseresolvidasdeacordo
com as necessidades. Uma das dificuldades detectada inicialmente foi o facto de
termosoptadopeloprotocolodeconexoTCP,autilizaodesteprotocoloimpunha
uma programao orientada s THREADS, sendo os nossos conhecimentos de
programao limitados ao tempo de pesquisa necessrio para aplicar as mesmas.
DestaformapassamosautilizaroprotocolodecomunicaoUDP.
Sabendo que este protocolo apresenta uma lacuna ao nvel da segurana,
pretendemos no decurso deste projecto implementar criptografia associada s
mensagensenviadas,estepassoentranumasegundafaseassimqueaaplicaoesteja
afuncionardeacordocomadefinioprotocolardaaplicao.

4
3 Ano RCT Projecto CHAT ROOM

P.C.

2. InterfaceGrfico
Ointerfacecriadoparaestaaplicaodivideseem2partesdistintas,Servidor
ecliente.Nainterfacecliente,aqueapresentaumcontactodirectocomoutilizador,
surgeumajaneladeacolhimentoondesolicitadoquesecoloqueoIPdoservidoreo
nomedoclienteaseradicionadoaoChat.
Teoricamenteesteprocessodeveriaserautomtico,aparecendoapenasparao
clienteumalistadeservidoresqueforneamosserviosrequeridos.

Ilustrao1Login

ApsoLogindoutilizador,lheapresentadaajaneladecomunicaodoChat,
ondeaparece,umajaneladasmensagenspublicadas,umalistadosclientesqueesto
presentementenoChat,eumcampodeinserodetextoaenviar.

Ilustrao2JaneladeMensagens

Na mquina onde corre o servidor apenas surge uma janela onde podem ser
visionadostodasasmensagensgeradaspelosclienteseservidor.

Ilustrao3JaneladevisualizaodoServidor

5
3 Ano RCT Projecto CHAT ROOM

P.C.

3. ImplementaoModeloTerico
Paraestaaplicaovamosusaraporta1000paraescutareenviar.

Ilustrao4Modelo

3.1

AnnciosdeCliente

#1.1ProcuroServidorChat[COMANDO]

Inicialmente o cliente faz uma busca rede por Servidores que possam
forneceroqueestepretende.
#2.1NovoClienteChat[COMANDO],[UTILIZADOR]

Neste caso o cliente j tem ligao com o servidor pretendido e est em


condiesdevalidarnoservidor.
#3.1LoginnoservidorChat[COMANDO],[UTILIZADOR]

Depois de estar em ligao com o servidor solicitado que o cliente faa o


Login.
#4.1EstadodoServidor[COMANDO],[UTILIZADOR]

Regularmenteoclienteverificaoestadodosservios,(Polling),fornecidospelo
Servidor.
#5.1EnviodeMensagensparaoChat[COMANDO],[UTILIZADOR]

Oclientedepoisdedevidamentevalidadonoservidor,podementocomeara
enviarmensagensparaoservidor,paraqueesteaspublique.

6
3 Ano RCT Projecto CHAT ROOM

P.C.

#6.1LogoutnoservidorChat[COMANDO],[UTILIZADOR]

OclientequandooentendaenviaoLogoutparaoservidorparaqueestefaoo
anncioaosdiversosclientes.

3.2

AnnciosdeServidor

#1.2ForneceserviosdeChat[COMANDO],[NOME]

O servidor responde a pedidos de clientes, anunciandose como servidor de


Chat.
#2.2Clienteexiste?No.RegistaroCliente[COMANDO],[NOME]

Casooclientenoestejaaindaregistadonoservidor,estedeveadicionarse
listadeclientesdoservidor.Oservidorregistaumnovocliente.
#3.2Clienteexiste?Sim.FazLogin[COMANDO],[NOME]

Neste caso e uma vez que o cliente j existe nas tabelas do servidor, este
apenassolicitaqueoclientefaaLogin.
#4.2EstadodoCliente[COMANDO],[NOME],[ESTADO]

O servidor anuncia aos outros clientes o estado de determinado utilizador, o


servidor verifica sem que o cliente envie qualquer comando, para o cliente este
processo transparente, o servidor verifica quanto tempo o cliente est sem se
comunicar,(Ausente).IndicaaindaoestadodeLogoffquandooclientesedesliga.
#5.2PublicaodeMensagens[COMANDO],[NOME],[MENSAGEM]

Oservidorrecebeasmensagensdeclientesepublicaas,indicandoonomede
quemaspublica.
#6.2EstadodoServidor[COMANDO],[NOME],[MENSAGEM]

Quando o cliente procura um servidor este recebe mensagens do estado dos


servidores, pode fornecer estados de fora de servio por manuteno, nmero de
participantes,quantosacessosteveataomomento.

7
3 Ano RCT Projecto CHAT ROOM

P.C.

4 Arquittecturad
4.
domodelo
oTerico
o
4
4.1

Clie
enteSe
ervidor

4
4.2

Serv
vidorCliente

8
3 Ano RCT Projecto CHAT ROO
OM

P.C.

5. Implementao
Na implementao do protocolo de comunicao nesta aplicao foram
enumeradososseguintescomandos:
//comandos utilizados
enum Command
{
Login,
Logout,
Message,
List,
Null
}

Oscomandosassentamnumaconversodevalores,devolvidospeloservidore
pelosclientes,emBytes.EstaainformaoqueenviadapelaligaoUDP.
Esteprocessoaplicadonosdois extremos,nomomentodarecepodestes
pacotes estes so reconvertidos e analisados para se proceder s respectivas
operaes.
//Converso dos comandos utilizados
...
clientSocket.EndReceive(ar);
Data msgReceived = new Data(byteDados);
switch (msgReceived.cmdCommand)
{
case Command.Login:
lstChatters.Items.Add(msgReceived.strNome);
break;
case Command.Logout:
lstChatters.Items.Remove(msgReceived.strNome);
break;
case Command.Message:
break;
case Command.List:
lstChatters.Items.AddRange(msgReceived.strMensag.Split('*'));
lstChatters.Items.RemoveAt(lstChatters.Items.Count - 1);
txtChatBox.Text += "<<<" + strNome + " juntou-se a sala>>>\r\n";
break;
...

Assim como o idioma de um determinado povo, que compreendido pelos


nativos,omesmosepassacomosprotocolos,contudoestespodemseraprendidose
passadosdemaneiraaquetodosseentendam,assimcomoosidiomas.
Paraquehajacomunicaonecessrioquetodosfalemomesmo,idioma,
Istooprotocolo,quenosacompanhadesdequeexistimos.

9
3 Ano RCT Projecto CHAT ROOM

P.C.

6. Dificuldades
Durante o desenvolvimento deste projecto fomonos deparando com vrios
nveis de dificuldade, inicialmente com a plataforma de ligao Cliente Servidor.
Comeamospordefinircomprotocolodeligaoo,(TCP),queoqueserevelapara
ns o melhor para este tipo de comunicao. Contudo a manipulao de threads
requeria algum cuidado mais especializado, desta forma optamos pela utilizao do
protocoloUDPparaefectuaraligaoentreServidorCliente.
Outradasdificuldadesencontradaduranteestesemestrefoiagestodotempo
paradedicaraesteprojecto,estagestoapenasseprendeucomofactodeestarmos
toabsorvidospeloprojectoquenosesquecemosdereunircomosoutrosgruposde
trabalhoparaquesepudessedefinirumprotocolodeligaoquefosseigualemtodos
osprojectos.
Relativamente criptografia no nos foi possvel implementar, pois esta no
apresentavaoefeitoquesepretendia.Opretendidoeradeseencriptaramensagem
para que esta no fosse capturada por ningum, visto que o protocolo de ligao
escolhido,(UDP),transportatudosclaras.

10
3 Ano RCT Projecto CHAT ROOM

P.C.

7. Concluso
O presente projecto apesar de apresentar algumas lacunas como o caso da
criptografia, implementao em TCP, e uso de Threads, apresenta um nvel de
satisfaopositivo.
Com este projecto pudemos verificar na prtica o que andamos a falar e a
discutir acerca de protocolos. O protocolo criado at ser publicado encontrase num
estadoproprietrio.Ofactodenotermosinteractividadecomoutrasaplicaesdo
mesmotipoassimorevela.
Pensamos que no futuro estas plataformas possam ser facultadas aos alunos
para que estas venham a evoluir. Este um projecto que pode ter continuidade ao
longodosanos,tantocomoapoiodeoutroscursos,SIS,ondeestespodemaplicaros
seus conhecimentos e em conjunto com RCT se possam de facto implementar estes
protocolosdecomunicao,acesdesegurana,eoutros.
Apesar das situaes de constrangimento que nos deparamos retiramos um
saldopositivo,estassosituaesecasosquesaexperinciaeconstanteevoluo
podemmelhorar.

11
3 Ano RCT Projecto CHAT ROOM

Вам также может понравиться