Monday, March 9, 2009
SQL Server Configuration Manager
O SQL Server Configuration Manager permite a configuração de serviços e protocolos de rede que serão utilizados pelo SQL Server, gerenciando a configuração de conectividade dos computadores clientes do SQL Server.
O Microsoft SQL Server Surface Area Configuration
O Surface Area Configuration permite que se configure serviços do SQL Server, assim como se defina a conectividade do banco de dados em relação a computadores remotos.
O Surface Area Configuration é dividido em duas seções:
- Surface Area Configuration for Services and Connections: Onde é possível iniciar, parar, pausar, habilitar e desabilitar serviços, assim como configurar a conectividade destes serviços a computadores remotos;
- Surface Area Configuration for Features: Permite habilitar e desabilitar recursos do SQL Server.
Os serviços que podem ser configurados através do SQL Server Configuration Manager:
- Database services;
- Analysis Services;
- Report Services;
- Full-text search;
- SQL Server Agent;
- Notification Services;
- Integration Services;
- SQL Server Browser
Visual Studio no SQL Server 2005
O Microsoft SQL Server 2005 traz uma versão reduzida do Microsoft Visual Studio 2005. O propósito desta versão é permitir:
- Geração de relatórios;
- Programação em CLR - Common Runtime Language ( programação no banco de dados com linguagens da plataforma .NET);
- Serviços de análise de dados.
Sunday, March 8, 2009
Ferramentas de produtividade no Microsoft SQL Server 2005
Monitor de desempenho: Permite visualizar o uso de CPU e memória;
Network Monitor: Permite analisar o uso da rede;
Upgrade Advisor: permite calcular o impacto do processo de migração do banco de dados.
Network Monitor: Permite analisar o uso da rede;
Upgrade Advisor: permite calcular o impacto do processo de migração do banco de dados.
Arquivos de banco de dados SQL Server
Qualquer banco de dados do Microsoft SQL Server pode possuir três tipos de arquivos:
Primary Data File (.mdf): É o arquivo principal do banco de dados e armazena informações a respeito dele, bem como informações sobre outros arquivos que façam parte deste banco.
Secondary Data File (.ndf): São arquivos secundários de dados, que permitem que um banco de dados do SQL Server seja particionado em vários arquivos.
Log Data File (.ldf): São arquivos de log do banco de dados.
Primary Data File (.mdf): É o arquivo principal do banco de dados e armazena informações a respeito dele, bem como informações sobre outros arquivos que façam parte deste banco.
Secondary Data File (.ndf): São arquivos secundários de dados, que permitem que um banco de dados do SQL Server seja particionado em vários arquivos.
Log Data File (.ldf): São arquivos de log do banco de dados.
Microsoft SQL Server 2005: Bancos de dados do sistema
O Microsoft SQL Server 2005 cria automaticamente, para cada nova instância, quatro bancos de dados para uso do sistema.
master: Armazena informações a respeito da instância do SQL Server. Não se deve alterar este banco de dados, visto que falhas neste banco de dados impedem o funcionamento de toda a instância do SQL Server;
msdb: Este banco de dados armazena informações a respeito do SQL Server Agent, como tarefas agendadas, backups, informações de auditoria, etc.
model: O model é um modelo para a criação de novos bancos de dados na instância do SQL Server. Caso altere propriedades do model, os novos bancos de dados criados herdarão as novas propriedades.
tempdb: O tempdb armazena informações temporárias de consultas.
master: Armazena informações a respeito da instância do SQL Server. Não se deve alterar este banco de dados, visto que falhas neste banco de dados impedem o funcionamento de toda a instância do SQL Server;
msdb: Este banco de dados armazena informações a respeito do SQL Server Agent, como tarefas agendadas, backups, informações de auditoria, etc.
model: O model é um modelo para a criação de novos bancos de dados na instância do SQL Server. Caso altere propriedades do model, os novos bancos de dados criados herdarão as novas propriedades.
tempdb: O tempdb armazena informações temporárias de consultas.
Marcadores:
master,
model,
msdb,
sql server 2005,
tempdb
Componentes do Microsoft SQL Server 2005
SQL SERVER DATABASE SERVICES
ANALYSIS SERVICES
REPORTING SERVICES
NOTIFICATION SERVICES
INTEGRATION SERVICES
WORKSTATION COMPONENTS, BOOKS E DEVELOPMENT TOOLS
ANALYSIS SERVICES
REPORTING SERVICES
NOTIFICATION SERVICES
INTEGRATION SERVICES
WORKSTATION COMPONENTS, BOOKS E DEVELOPMENT TOOLS
Marcadores:
componentes,
sql server 2005
Serviços do Microsoft SQL Server 2005
SQL SERVER: Sistema Gerenciador de Banco de Dados;
SQL SERVER AGENT: Responsável pela auditoria do sistema gerenciador de banco de dados, execução e agendamento de tarefas.
ANALYSIS SERVICES: Análise de dados, OLAP
REPORT SERVICES: Geração de relatórios
SQL SERVER BROWSER: Responsável por gerenciar a forma com que o servidor se conecta aos clientes e faz a resolução de nomes.
SQL SERVER AGENT: Responsável pela auditoria do sistema gerenciador de banco de dados, execução e agendamento de tarefas.
ANALYSIS SERVICES: Análise de dados, OLAP
REPORT SERVICES: Geração de relatórios
SQL SERVER BROWSER: Responsável por gerenciar a forma com que o servidor se conecta aos clientes e faz a resolução de nomes.
Instâncias do SQL Server
Cada instalação do Microsoft SQL Server é chamada de Instância e é totalmente independente das outras instalações.
A primeira instância pode ser considerada padrão e seu nome será MSSQLSERVER. Para acessar a instância padrão em uma máquina, basta especificar apenas o nome da máquina na rede.
As demais instâncias devem ser nomeadas no momento da instalação e deverão ser acessadas pelo nome da máquina / nome da instância.
Cada instância do Microsoft SQL Server tem os seguintes serviços:
Database Engine: Banco de dados Microsoft SQL Server;
Analysis Services: OLAP / Análise de dados
Reporting Services: Componentes para a geração de relatórios.
A primeira instância pode ser considerada padrão e seu nome será MSSQLSERVER. Para acessar a instância padrão em uma máquina, basta especificar apenas o nome da máquina na rede.
As demais instâncias devem ser nomeadas no momento da instalação e deverão ser acessadas pelo nome da máquina / nome da instância.
Cada instância do Microsoft SQL Server tem os seguintes serviços:
Database Engine: Banco de dados Microsoft SQL Server;
Analysis Services: OLAP / Análise de dados
Reporting Services: Componentes para a geração de relatórios.
Licenças do Microsoft SQL Server 2005
As licenças para o Microsoft SQL Server 2005 podem ser adquiridas de diversas formas:
Por processador: Cada processador utilizado pelo Sistema Gerenciador de Banco de Dados paga por um valor de licença;
Por usuário: Para cada usuário que estará conectado ao SQL Server 2005, é pago um valor, independentemente da quantidade de dispositivos que ele conecte simultaneamente ao banco de dados. É indicada quando um mesmo usuário acessa o banco de dados por meio de diversos dispositivos.
Por dispositivo: O valor de licença é cobrado sobre cada dispositivo que acessa o banco de dados Microsoft SQL Server. É indicado quando vários usuários diferentes acessam o banco de dados através dos mesmos dispositivos.
Por processador: Cada processador utilizado pelo Sistema Gerenciador de Banco de Dados paga por um valor de licença;
Por usuário: Para cada usuário que estará conectado ao SQL Server 2005, é pago um valor, independentemente da quantidade de dispositivos que ele conecte simultaneamente ao banco de dados. É indicada quando um mesmo usuário acessa o banco de dados por meio de diversos dispositivos.
Por dispositivo: O valor de licença é cobrado sobre cada dispositivo que acessa o banco de dados Microsoft SQL Server. É indicado quando vários usuários diferentes acessam o banco de dados através dos mesmos dispositivos.
Características das versões do Microsoft SQL Server 2005
Microsoft SQL Server 2005 Express Edition
Número máximo de CPUs: 1
Tamanho máximo da memória: 1 GB
Tamanho máximo do banco de dados: 4 GB
Suporte a 64 bits: Emulado
Microsoft SQL Server 2005 Workgroup Edition
Número máximo de CPUs: 2
Tamanho máximo da memória: 3 GB
Tamanho máximo do banco de dados: Ilimitado
Suporte a 64 bits: Emulado
Microsoft SQL Server 2005 Standart Edition
Número máximo de CPUs: 4
Tamanho máximo da memória: Limitado pelo sistema operacional
Tamanho máximo do banco de dados: Ilimitado
Suporte a 64 bits: Nativo
Microsoft SQL Server 2005 Enterprise Edition
Número máximo de CPUs: Limitado pelo sistema operacional
Tamanho máximo da memória: Limitado pelo sistema operacional
Tamanho máximo do banco de dados: Ilimitado
Suporte a 64 bits: Nativo
Número máximo de CPUs: 1
Tamanho máximo da memória: 1 GB
Tamanho máximo do banco de dados: 4 GB
Suporte a 64 bits: Emulado
Microsoft SQL Server 2005 Workgroup Edition
Número máximo de CPUs: 2
Tamanho máximo da memória: 3 GB
Tamanho máximo do banco de dados: Ilimitado
Suporte a 64 bits: Emulado
Microsoft SQL Server 2005 Standart Edition
Número máximo de CPUs: 4
Tamanho máximo da memória: Limitado pelo sistema operacional
Tamanho máximo do banco de dados: Ilimitado
Suporte a 64 bits: Nativo
Microsoft SQL Server 2005 Enterprise Edition
Número máximo de CPUs: Limitado pelo sistema operacional
Tamanho máximo da memória: Limitado pelo sistema operacional
Tamanho máximo do banco de dados: Ilimitado
Suporte a 64 bits: Nativo
Sistemas Operacionais Compatíveis com o Microsoft SQL Server 2005 (por versão)
Microsoft SQL Server Express Edition
Microsoft SQL Server Workgroup Edition
- Windows 2000 Professional SP4;
- Windows 2000 Server SP4
- Windows XP Home Edition SP1
- Windows XP Professional SP1
- Windows Server 2003 SP1
- Windows Server 2008
- Windows XP Media Center
- Windows Table PC
Microsoft SQL Server Workgroup Edition
- Windows 2000 Professional SP4;
- Windows 2000 Server SP4
- Windows XP Professional SP1
- Windows Server 2003 SP1
- Windows Server 2008
- Windows XP Media Center
- Windows Table PC
- Windows 2000 Professional SP4;
- Windows 2000 Server SP4
- Windows XP Professional SP1
- Windows Server 2003 SP1
- Windows Server 2008
- Windows XP Media Center
- Windows Table PC
- Windows 2000 Professional SP4;
- Windows 2000 Server SP4
- Windows XP Home Edition SP1
- Windows XP Professional SP1
- Windows Server 2003 SP1
- Windows Server 2008
- Windows XP Media Center
- Windows Table PC
- Windows 2000 Server SP4
- Windows Server 2003 SP1
- Windows Server 2008
Marcadores:
sistema operacional,
sql server 2005,
versões,
windows
Instalação do Microsoft SQL Server 2005 - Requisitos Mínimos de Software
Antes de iniciar sua instalação, o Microsoft SQL Server 2005 executa uma varredura no computador a fim de verificar se todos os componentes necessários para sua execução estão instalados.
Caso não estejam, para alguns componentes, como o Framework .NET 2.0, a instalação será feita pelo próprio instalador do SQL Server. Para outros softwares, como o IIS, será solicitado ao usuário que providencie a instalação necessária.
Os softwares requeridos para a instalação do Microsoft SQL Server 2005 são:
Caso não estejam, para alguns componentes, como o Framework .NET 2.0, a instalação será feita pelo próprio instalador do SQL Server. Para outros softwares, como o IIS, será solicitado ao usuário que providencie a instalação necessária.
Os softwares requeridos para a instalação do Microsoft SQL Server 2005 são:
- Microsoft .NET Framework versão 2.0 ou superior;
- Microsoft Internet Explorer 6.0 ou superior;
- Internet Information Services (IIS);
- Windows Installer 3.1;
- Microsoft Data Access Components (MDAC) 2.8 SP1 ou superior;
Marcadores:
engenharia de software,
instalação,
microsoft,
sql server requisitos
Instalação do Microsoft SQL Server 2005 - Requisitos Mínimos de Hardware
Para fazer a instalação mínima do Microsoft SQL Server 2005, deve contar com um processador Intel Pentium de 600 MHz ou superior, com no mínimo 512 MB de memória RAM.
Contudo, caso se esteja instalando a versão Express, é possível realizar a instalação com apenas 192 MB de memória principal.
O espaço em disco para a instalação dependerá dos componentes adicionais que forem adicionados. O menor espaço possível para uma instalação mínima do Microsoft SQL Server 2005 é de 150 MB em disco rígido. O tamanho máximo que a instalação poderá atingir, com todos os componentes instalados, é de 746 MB.
Para uma instalação padrão, o tamanho médio é de 637 MB.
Contudo, caso se esteja instalando a versão Express, é possível realizar a instalação com apenas 192 MB de memória principal.
O espaço em disco para a instalação dependerá dos componentes adicionais que forem adicionados. O menor espaço possível para uma instalação mínima do Microsoft SQL Server 2005 é de 150 MB em disco rígido. O tamanho máximo que a instalação poderá atingir, com todos os componentes instalados, é de 746 MB.
Para uma instalação padrão, o tamanho médio é de 637 MB.
Aplicativos em camadas e sistemas gerenciadores de bancos de dados
É louvável o desenvolvimento de aplicativos em camadas, tendo em vista a manutebilidade e a divisão de responsabililidades no contexto da aplicação.
A divisão clássica em camadas estabelece que se divida o código da seguinte maneira:
Assim sendo, com o uso de sistemas gerenciadores de bancos de dados, parte - ou grande parte - da regra de negócios da aplicação poderá estar implementada no próprio sistema gerenciador de banco de dados, fazendo uso dos diversos recursos que são oferecidos para esta finalidade.
A divisão clássica em camadas estabelece que se divida o código da seguinte maneira:
- Camada de Apresentação: responsável pela interface de contato com o usuário;
- Camada de Regra de Negócio: Responsável por implementar as regras e todo o controle da aplicação;
- Camada de Dados: Responsável pelo armazenamento dos dados.
Assim sendo, com o uso de sistemas gerenciadores de bancos de dados, parte - ou grande parte - da regra de negócios da aplicação poderá estar implementada no próprio sistema gerenciador de banco de dados, fazendo uso dos diversos recursos que são oferecidos para esta finalidade.
História dos sistemas gerenciadores de banco de dados
Os primeiros bancos de dados tinham um papel bastante restritivo no contexto da aplicação: eles apenas armazenavam dados.
Todo o controle e a manipulação desses dados deveria ser implementado pela aplicação que estava sendo escrita sobre eles, o que, além de tornar o desenvolvimento do aplicativo mais lento, tornava o sistema mais sujeito a erros e poderia facilmente levar a uma inconsistência nos dados.
Aos sistemas gerenciadores de bancos de dados, não bastaria apenas armazenar os dados. Seria necessário uma linguagem que permitisse a manipulação e a navegação por esses dados. A partir dessa necessidade, surgiu a linguagem SQL - Structured Query Language, ou linguagem estruturada de consultas, em português.
A partir da SQL, surgiram diversos dialetos, que são linguagens derivadas a partir da original. No Microsoft SQL Server, banco de dados que será tratado ao longo destas postagens, é adotado o dialeto T-SQL, onde o T significa "Transact".
Agregada à linguagem de consultas, estão parsers, que são responsáveis por interpretar a correta escrita da linguagem, assim como possíveis otimizadores de consultas, que fazem com que o objetivo a ser alcançado com o código escrito pelo usuário seja alcançado da maneira mais eficaz possível. No Microsoft SQL Server, existe o Query Optimizer.
Estruturas dos aplicativos de bancos de dados
Nos primeiros aplicativos com acesso a dados, todos os dados necessários eram codificados juntamente com o próprio aplicativo. Assim sendo, a cada vez que os dados fossem alterados, seria necessário recompilar o aplicativo inteiro. Por conseqüência, o grau de compartilhamento dos dados era muito pequeno, sendo restrito apenas ao próprio aplicativo que os acessava. Estes aplicativos são conhecidos como monolíticos com dados embutidos no código do aplicativo.
Na seqüência, foi possível extrair os dados do código-fonte da aplicação e colocá-los em um arquivo separado. A partir deste momento, os dados eram independentes e qualquer alteração não demandava a recompilação de todo o programa. Caso este arquivo de dados fosse armazenado em uma localidade acessada por vários usuários, estes poderiam compartilhar estes dados. Todavia, nenhum mecanismo gerenciava o acesso a estes dados, o que tornava o compartilhamento muito arriscado em relação à corrupção destes dados pelo seu uso concorrente.
Como solução para este problema de compartilhamento, foram desenvolvidos aplicativos em que o controle do acesso aos dados era feito por um aplicativo servidor. Assim, caso todos os aplicativos que necessitassem acessar os dados o fizessem através do servidor, este gerenciaria o acesso concorrente e garantiria a correta manipulação desses dados.
Porém, caso fosse necessário alterar o tipo de servidor de banco de dados, seria necessário reescrever grande parte da aplicação, cujo propósito era se conectar apenas a um sistema de banco de dados específico. Diante disso, após acordos na indústria de software, surgiram interfaces específicas que poderiam oferecer à aplicação um acesso genérico aos dados, independentemente de qual sistema gerenciador de banco de dados fosse utilizado. Alguns desses padrões são:
ODBC = Open Database Connectivity;
OLE DB = Object-Linking Embedding Database
ADO.NET = Provedor de dados gerenciados
Por exemplo, para um provedor de dados como o OLE DB, cada aplicativo pode ser conectar ao provedor de forma idêntica, independentemente do sistema gerenciador de banco de dados que é utilizado. Todavia, o cada sistema gerenciador de banco de dados requer do OLE DB um provedor específico para a conexão.
Por outro lado, o padrão ADO.NET oferece em alguns sistemas gerenciadores de bancos de dados uma interface nativa que dispensa o uso de drivers externos.
No Microsoft SQL Server 2005, o recurso SQL Server Native Client possibilita uma conexão direta com o banco de dados, oferecendo interfaces ODBC e OLE DB.
Todo o controle e a manipulação desses dados deveria ser implementado pela aplicação que estava sendo escrita sobre eles, o que, além de tornar o desenvolvimento do aplicativo mais lento, tornava o sistema mais sujeito a erros e poderia facilmente levar a uma inconsistência nos dados.
Aos sistemas gerenciadores de bancos de dados, não bastaria apenas armazenar os dados. Seria necessário uma linguagem que permitisse a manipulação e a navegação por esses dados. A partir dessa necessidade, surgiu a linguagem SQL - Structured Query Language, ou linguagem estruturada de consultas, em português.
A partir da SQL, surgiram diversos dialetos, que são linguagens derivadas a partir da original. No Microsoft SQL Server, banco de dados que será tratado ao longo destas postagens, é adotado o dialeto T-SQL, onde o T significa "Transact".
Agregada à linguagem de consultas, estão parsers, que são responsáveis por interpretar a correta escrita da linguagem, assim como possíveis otimizadores de consultas, que fazem com que o objetivo a ser alcançado com o código escrito pelo usuário seja alcançado da maneira mais eficaz possível. No Microsoft SQL Server, existe o Query Optimizer.
Estruturas dos aplicativos de bancos de dados
Nos primeiros aplicativos com acesso a dados, todos os dados necessários eram codificados juntamente com o próprio aplicativo. Assim sendo, a cada vez que os dados fossem alterados, seria necessário recompilar o aplicativo inteiro. Por conseqüência, o grau de compartilhamento dos dados era muito pequeno, sendo restrito apenas ao próprio aplicativo que os acessava. Estes aplicativos são conhecidos como monolíticos com dados embutidos no código do aplicativo.
Na seqüência, foi possível extrair os dados do código-fonte da aplicação e colocá-los em um arquivo separado. A partir deste momento, os dados eram independentes e qualquer alteração não demandava a recompilação de todo o programa. Caso este arquivo de dados fosse armazenado em uma localidade acessada por vários usuários, estes poderiam compartilhar estes dados. Todavia, nenhum mecanismo gerenciava o acesso a estes dados, o que tornava o compartilhamento muito arriscado em relação à corrupção destes dados pelo seu uso concorrente.
Como solução para este problema de compartilhamento, foram desenvolvidos aplicativos em que o controle do acesso aos dados era feito por um aplicativo servidor. Assim, caso todos os aplicativos que necessitassem acessar os dados o fizessem através do servidor, este gerenciaria o acesso concorrente e garantiria a correta manipulação desses dados.
Porém, caso fosse necessário alterar o tipo de servidor de banco de dados, seria necessário reescrever grande parte da aplicação, cujo propósito era se conectar apenas a um sistema de banco de dados específico. Diante disso, após acordos na indústria de software, surgiram interfaces específicas que poderiam oferecer à aplicação um acesso genérico aos dados, independentemente de qual sistema gerenciador de banco de dados fosse utilizado. Alguns desses padrões são:
ODBC = Open Database Connectivity;
OLE DB = Object-Linking Embedding Database
ADO.NET = Provedor de dados gerenciados
Por exemplo, para um provedor de dados como o OLE DB, cada aplicativo pode ser conectar ao provedor de forma idêntica, independentemente do sistema gerenciador de banco de dados que é utilizado. Todavia, o cada sistema gerenciador de banco de dados requer do OLE DB um provedor específico para a conexão.
Por outro lado, o padrão ADO.NET oferece em alguns sistemas gerenciadores de bancos de dados uma interface nativa que dispensa o uso de drivers externos.
No Microsoft SQL Server 2005, o recurso SQL Server Native Client possibilita uma conexão direta com o banco de dados, oferecendo interfaces ODBC e OLE DB.
Marcadores:
ado,
ado.net,
história,
microsoft,
native client,
oledb,
sgbd,
sistemas gerenciadores de bancos de dados,
sql server 2005
Sistemas Gerenciadores de Bancos de Dados (SGBDs)
Partindo do princípio de que os componentes básicos do armazenamento de dados são:
surgiram os sistemas gerenciadores de bancos de dados, que são ferramentas que automatizam muitas tarefas no processo de armazenamento, manipulação e recuperação de dados.
Os primeiros sistemas de banco de dados organizavam os dados criando índices de forma em que fosse possível responder a perguntas de um caráter específico. Caso fosse necessário obter respostas a outras perguntas, seria necessário rever a organização do índice da aplicação.
Ao desenvolver um banco de dados relacional a ser implementado em um sistema gerenciador de banco de dados, o projetista deve levar em consideração, no momento do projeto, os seguintes fatores:
- Os dados;
- A estrutura aplicada sobre os dados;
- A tecnologia empregada para armazenar e recuperar esses dados
surgiram os sistemas gerenciadores de bancos de dados, que são ferramentas que automatizam muitas tarefas no processo de armazenamento, manipulação e recuperação de dados.
Os primeiros sistemas de banco de dados organizavam os dados criando índices de forma em que fosse possível responder a perguntas de um caráter específico. Caso fosse necessário obter respostas a outras perguntas, seria necessário rever a organização do índice da aplicação.
Ao desenvolver um banco de dados relacional a ser implementado em um sistema gerenciador de banco de dados, o projetista deve levar em consideração, no momento do projeto, os seguintes fatores:
- As entidades que compõe o negócio;
- Os atributos para cada entidades;
- Os papéis dos atributos dentro do contexto do negócio;
- Os relacionamentos entre as diversas entidades;
- O comportamento de entidade e atributos quando os dados se alteram.
Marcadores:
armazenamento,
dados,
informação,
sistemas gerenciadores de bancos de dados,
sql,
tecnologia
A necessidade de armazenar dados
Desde os tempos mais remotos o homem busca forma de armazenar dados. Inicialmente, os dados eram escritos em papiros, papeis, pedras ou madeira, e constituiam grandes blocos de informaçao nao-estruturada, cuja atividade de pesquisa sobre estes dados seria extremamente dificultosa.
Percebeu-se, com o passar do tempo, que para armazenar dados de uma maneira eficiente, algumas regras minimas deveriam ser cumpridas, como:
Visando alcançar estes objetivos, surgiram os SGBD's, Sistemas Gerenciadores de Bancos de Dados, assunto que será tratado nas próximas postagens deste blog.
Percebeu-se, com o passar do tempo, que para armazenar dados de uma maneira eficiente, algumas regras minimas deveriam ser cumpridas, como:
- Os dados devem ser armazenados de forma que possam ser acessados compartilhadamente por todos que possam utiliza-lo;
- Devem ser armazenados de forma que todos possam entendê-los;
- Devem ser estruturados a fim de permitir a pesquisa de informações específicas;
- Devem haver formas de garantir a integridade destes dados;
- A situação atual em que se encontram os dados;
- Os objetivos futuros da aplicação que utilizará os dados;
- O desempenho passado;
- A realidade do negócio em que os dados serão utilizados;
Visando alcançar estes objetivos, surgiram os SGBD's, Sistemas Gerenciadores de Bancos de Dados, assunto que será tratado nas próximas postagens deste blog.
Sunday, February 1, 2009
Plugins interessantes para interface com Jquery
http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding
http://plugins.jquery.com/project/jquery_fancy_zoom
http://interface.eyecon.ro/
http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding
http://plugins.jquery.com/project/jquery_fancy_zoom
http://interface.eyecon.ro/
Wednesday, January 28, 2009
Ótima ferramenta para testes de sites em diversos navegadores
Este site permite ver como ficará o layout do seu site em diversos navegadores, de diversas plataformas.
http://browsershots.org
http://browsershots.org
Thursday, November 20, 2008
Bibliotecas Javascript para trabalhar com Imagens
http://odyniec.net/projects/imgareaselect/examples.php
http://www.defusion.org.uk/demos/060519/cropper.php?demoType=ratioFourThree&image=castle&formSubmit=Load+demo
http://www.defusion.org.uk/demos/060519/cropper.php?demoType=ratioFourThree&image=castle&formSubmit=Load+demo
Classes de endereços IPv4
Os endereços IPv4 são padronizados pelo instituto Iana, e são divididos em algumas classes bem definidas:
Classe A: De 1.0.0.0 a 126.0.0.0
Classe B: De 128.0.0.0 até 191.255.0.0
Classe C: De 192.0.0.0 até 223.255.255.254
Classe D: De 224.0.0.0 até 239.255.255.255
Classe E: De 240.0.0.0 até 255.255.255.255
Alguns endereços reservados:
10.0.0.0
14.0.0.0
39.0.0.0
127.0.0.0
172.16.0.0
192.168.0.0
169.254.0.0
191.255.0.0
191.88.99.0
Classe A: De 1.0.0.0 a 126.0.0.0
Classe B: De 128.0.0.0 até 191.255.0.0
Classe C: De 192.0.0.0 até 223.255.255.254
Classe D: De 224.0.0.0 até 239.255.255.255
Classe E: De 240.0.0.0 até 255.255.255.255
Alguns endereços reservados:
10.0.0.0
14.0.0.0
39.0.0.0
127.0.0.0
172.16.0.0
192.168.0.0
169.254.0.0
191.255.0.0
191.88.99.0
Remontagem
Devido à comutação de pacotes, os dados que são enviados por um emissor a um receptor tendem a percorrer caminhos diferentes para chegar ao mesmo destino.
Assim, cabe ao receptor realizar a remontagem destes pacotes, seguindo algumas regras:
- Há um tempo limite para realizar a remontagem;
- Caso os pacotes já tenham sido recebidos e, ainda assim, falte um pacote para completar a remontagem, caso o tempo limite expire, o receptor enviará ao emissor destes pacotes uma ICMP de time exceeded.
A remontagem de pacotes exige processamento e consumo de memória por parte do receptor.
Assim, cabe ao receptor realizar a remontagem destes pacotes, seguindo algumas regras:
- Há um tempo limite para realizar a remontagem;
- Caso os pacotes já tenham sido recebidos e, ainda assim, falte um pacote para completar a remontagem, caso o tempo limite expire, o receptor enviará ao emissor destes pacotes uma ICMP de time exceeded.
A remontagem de pacotes exige processamento e consumo de memória por parte do receptor.
Fragmentação
Cada padrão de rede possui um MTU (Maximum Transfer Unit) próprio.
Assim sendo, caso um datagrama seja maior que o MTU da rede, este será fragmentado, de forma que seus fragmentos compartilhem o mesmo cabeçalho (com o valor de alguns campos alterados) e cada um receba uma porção de seus dados.
Assim sendo, caso um datagrama seja maior que o MTU da rede, este será fragmentado, de forma que seus fragmentos compartilhem o mesmo cabeçalho (com o valor de alguns campos alterados) e cada um receba uma porção de seus dados.
Frame IP
O frame utilizado no protocolo IP possui uma grande quantidade de campos, que serão detalhados nesta postagem.
Version: Campo de 4 bits que especifica a versão do frame;
HLEN: Campos que definem propriedades sobre o tamanho do cabeçalho. Indicam o tamanho em quantidade de palavras de 32 bits.
Service Type: Informações sobre precedência, confiabilidade, atraso e throughput;
Total Length: Tamanho da do cabeçalho mais a área de dados;
ID: identificador único do pacote IP;
Flags: reserved, more fragmented, no fragmented;
Fragment Ouset: Número de 13 bits múltiplo de byte;
Time to Live: Tempo de vida do pacote. Se o pacote entrar em ciclo (looping infinito), o TTL é decrementado a cada salto e quando chega a zero, o pacote é expirado e o roteador o elimina da rede, não o passando para frente.
Protocolo: Indica qual o protocolo superior de transporte utilizado (TCP/UDP);
Header checksum: Campo de 16 bits que permite verificar a integridade dos dados do cabeçalho;
Endereços de origem e destino: De onde o pacote partiu e onde quer chegar;
Padding: Ajuste técnico, para compensar a conversão do sinal, pois, quando surgiram os primeiros protocolos, o tamanho do frame era variável. Com isso, não se otimizavam os buffers, pois se perdia o sinal quando não era possível alocar um buffer. O padding permite que o buffer seja feito em múltiplos de 4. O protocolo IPv6 dispensa seu uso, pois ao invés de utilizar tamanhos variáveis e múltiplos de 4, faz o uso de octetos de tamanho fixo.
Data: São os dados transportados pelo pacote;
Time of Service (ToS):
T: Alto throughput;
D: Baixo atraso;
R: Elevada confiabilidade
Version: Campo de 4 bits que especifica a versão do frame;
HLEN: Campos que definem propriedades sobre o tamanho do cabeçalho. Indicam o tamanho em quantidade de palavras de 32 bits.
Service Type: Informações sobre precedência, confiabilidade, atraso e throughput;
Total Length: Tamanho da do cabeçalho mais a área de dados;
ID: identificador único do pacote IP;
Flags: reserved, more fragmented, no fragmented;
Fragment Ouset: Número de 13 bits múltiplo de byte;
Time to Live: Tempo de vida do pacote. Se o pacote entrar em ciclo (looping infinito), o TTL é decrementado a cada salto e quando chega a zero, o pacote é expirado e o roteador o elimina da rede, não o passando para frente.
Protocolo: Indica qual o protocolo superior de transporte utilizado (TCP/UDP);
Header checksum: Campo de 16 bits que permite verificar a integridade dos dados do cabeçalho;
Endereços de origem e destino: De onde o pacote partiu e onde quer chegar;
Padding: Ajuste técnico, para compensar a conversão do sinal, pois, quando surgiram os primeiros protocolos, o tamanho do frame era variável. Com isso, não se otimizavam os buffers, pois se perdia o sinal quando não era possível alocar um buffer. O padding permite que o buffer seja feito em múltiplos de 4. O protocolo IPv6 dispensa seu uso, pois ao invés de utilizar tamanhos variáveis e múltiplos de 4, faz o uso de octetos de tamanho fixo.
Data: São os dados transportados pelo pacote;
Time of Service (ToS):
T: Alto throughput;
D: Baixo atraso;
R: Elevada confiabilidade
IPv4 x IPv6
O IPv4 (RF791) é o protocolo mais utilizado para a camada de rede do modelo OSI. Entretanto, é um protocolo antigo, criado na década de 70, que deixa a desejar em diversos recursos, como, por exemplo, na implementação nativa do controle da qualidade do serviço.
Embora antigo, o protocolo IPv4 continua a ser utilizado em larga escala e não há previsões de que será atualizado pelo protocolo mais recente, o IPv6 (RF2460). Isto se deve ao fato de que a grande maioria das redes ainda utiliza IPv4 e a migração entre os protocolos exigiria investimentos demasiadamente grandes, uma vez que muitos computadores e roteadores não suportariam o protocolo mais atual.
Atualmente, o protocolo IPv6 tem sido utilizado apenas em backbones, sendo convertido para IPv4 antes de chegar até o usuário final.
O IPv6 utiliza o endereçamento de 128 bits, que permite que sejam endereçados 2^128 endereços, uma capacidade significantemente maior que a do IPv4, que utiiza 32 bits para endereçar, provendo até 2^32 endereços.
Embora antigo, o protocolo IPv4 continua a ser utilizado em larga escala e não há previsões de que será atualizado pelo protocolo mais recente, o IPv6 (RF2460). Isto se deve ao fato de que a grande maioria das redes ainda utiliza IPv4 e a migração entre os protocolos exigiria investimentos demasiadamente grandes, uma vez que muitos computadores e roteadores não suportariam o protocolo mais atual.
Atualmente, o protocolo IPv6 tem sido utilizado apenas em backbones, sendo convertido para IPv4 antes de chegar até o usuário final.
O IPv6 utiliza o endereçamento de 128 bits, que permite que sejam endereçados 2^128 endereços, uma capacidade significantemente maior que a do IPv4, que utiiza 32 bits para endereçar, provendo até 2^32 endereços.
IP - Internet Protocol: Características
O protocolo IP é o protocolo mais utilizado atualmente, correspondendo à camada de rede do modelo OSI.
Versões do protocolo:
IPv4 (RF791)
IPv6 (RF2460)
Suas principais características são:
Serviço de entrega best-effort: Pacotes não são descartados sumariamente, o que torna o protocolo confiável em condições adequadas; O protocolo se torna não-confiável apenas quando há exaustão de recursos;
Datagramas de tamanho variável: Desde que seja respeitado o limite de 64Kb.
Provimento de envio e recebimento;
ICMP (Internet Control Message Protocol): Em caso de erro na entrega, faz uso do ICMP para enviar um relatório dos erros ocorridos ao emissor dos pacotes.
Versões do protocolo:
IPv4 (RF791)
IPv6 (RF2460)
Suas principais características são:
Serviço de entrega best-effort: Pacotes não são descartados sumariamente, o que torna o protocolo confiável em condições adequadas; O protocolo se torna não-confiável apenas quando há exaustão de recursos;
Datagramas de tamanho variável: Desde que seja respeitado o limite de 64Kb.
Provimento de envio e recebimento;
ICMP (Internet Control Message Protocol): Em caso de erro na entrega, faz uso do ICMP para enviar um relatório dos erros ocorridos ao emissor dos pacotes.
Tunelamento (tunneling)
Tunnelamento é criar uma única rede virtual que atravesse mais de uma rede real.
Os roteadores das diversas redes estão sincronizados e os hosts podem interagir como se estivessem em uma mesma rede real, embora estejam em uma mesma rede virtual.
A Rede Privada Virtual (VPN) utiliza o tunelamento para estabelecer uma interface virtual criptografada entre dois roteadores.
Os roteadores das diversas redes estão sincronizados e os hosts podem interagir como se estivessem em uma mesma rede real, embora estejam em uma mesma rede virtual.
A Rede Privada Virtual (VPN) utiliza o tunelamento para estabelecer uma interface virtual criptografada entre dois roteadores.
Wednesday, November 19, 2008
NAT - Network Address Translation
Network Address Translation (NAT) é a tradução existente entre endereços internos da rede e endereços externos.
Como benefícios, o NAT proporciona uma economia na utilização de endereços IPs reais, visto que é possível que vários hosts saiam para a rede externa com o mesmo endereço IP. No mesmo sentido, a segurança proporcionada à rede interna também é significativamente maior, pois as conexões têm início no interior da rede.
Caso seja necessário explorar recursos presentes no interior da rede a partir de redes externas, será necessário um servidor virtual, também conhecido como NAT reverso.
Como benefícios, o NAT proporciona uma economia na utilização de endereços IPs reais, visto que é possível que vários hosts saiam para a rede externa com o mesmo endereço IP. No mesmo sentido, a segurança proporcionada à rede interna também é significativamente maior, pois as conexões têm início no interior da rede.
Caso seja necessário explorar recursos presentes no interior da rede a partir de redes externas, será necessário um servidor virtual, também conhecido como NAT reverso.
Moldagem de tráfego (traffic shapping)
O traffic shapping, ou moldagem de tráfego, consiste na adequação do tráfego da rede a fim de evitar ou amenizar futuros problemas de congestionamentos.
O traffic shapping pode ser realizado por pré-locação de buffers, descarte de pacotes ou pelo Algoritmo do Balde.
Pré-locação de buffers: Um pacote de sinalização é enviado sempre antes que um pacote de prioridade alta seja enviado, permitindo, deste modo, que o pacote prioritário encontre caminho livre para seguir seu caminho com maior velocidade.
Descarte de pacotes: Pacotes são sumariamente descartados.
Algoritmo do Balde: Há uma entrada de volume variável, um buffer de tamanho limitado e uma saída, que pode possui vazão constante (sem token) ou variável (com token), na qual há uma variação no valor do jitter.
O traffic shapping pode ser realizado por pré-locação de buffers, descarte de pacotes ou pelo Algoritmo do Balde.
Pré-locação de buffers: Um pacote de sinalização é enviado sempre antes que um pacote de prioridade alta seja enviado, permitindo, deste modo, que o pacote prioritário encontre caminho livre para seguir seu caminho com maior velocidade.
Descarte de pacotes: Pacotes são sumariamente descartados.
Algoritmo do Balde: Há uma entrada de volume variável, um buffer de tamanho limitado e uma saída, que pode possui vazão constante (sem token) ou variável (com token), na qual há uma variação no valor do jitter.
Redes de Computadores: Congestionamentos
Congestionamentos ocorrem em uma rede de computadores quando a quantidade de pacotes enviados é maior do que a quantidade de pacotes recebidos, degradando a qualidade do serviço e podendo condenar nós e subredes.
A prevenção de congestionamentos é realizada através do monitoramento da rede e da identificação de gargalos.
Políticas de prevenção de congestionamentos podem ser aplicadas às camadas de enlace, rede e transporte.
Enlace
Cache fora de ordem;
Confirmações;
Retransmissão;
Controle de fluxo;
Rede
Serviço de enfileiramento de pacotes;
Tempo de vida dos pacotes;
Destruição dos pacotes;
Algoritmos de roteamento;
Transporte
Controle de fluxo;
Retransmissão;
Cache fora de ordem;
Confirmação;
Determinação do time-out;
A prevenção de congestionamentos é realizada através do monitoramento da rede e da identificação de gargalos.
Políticas de prevenção de congestionamentos podem ser aplicadas às camadas de enlace, rede e transporte.
Enlace
Cache fora de ordem;
Confirmações;
Retransmissão;
Controle de fluxo;
Rede
Serviço de enfileiramento de pacotes;
Tempo de vida dos pacotes;
Destruição dos pacotes;
Algoritmos de roteamento;
Transporte
Controle de fluxo;
Retransmissão;
Cache fora de ordem;
Confirmação;
Determinação do time-out;
Quality of Service (QoS)
Algumas aplicações apresentam um certo grau de severidade em relação ao desempenho das redes de computadores para que funcionem corretamente.
É possível implementar no roteamento políticas que priorizem a passagem de pacotes considerados prioritários em relação aos demais. Estes pacotes de maior prioridade passam à frente dos demais e são despachados primeiro pelo roteador.
Algumas variáveis relacionadas à QoS:
Delay: Corresponde ao atraso que há entre o envio e o recebimento dos dados;
Jitter: É calculado a partir do delay, sendo um cálculo de desvio padrão.
Confiabilidade: É a garantia de que todos os pacotes que partem da origem serão entregues corretamente no destino.
É possível implementar no roteamento políticas que priorizem a passagem de pacotes considerados prioritários em relação aos demais. Estes pacotes de maior prioridade passam à frente dos demais e são despachados primeiro pelo roteador.
Algumas variáveis relacionadas à QoS:
Delay: Corresponde ao atraso que há entre o envio e o recebimento dos dados;
Jitter: É calculado a partir do delay, sendo um cálculo de desvio padrão.
Confiabilidade: É a garantia de que todos os pacotes que partem da origem serão entregues corretamente no destino.
Algoritmo Flooding
É um algoritmo muito simples, que consiste em um roteador repassar os dados que recebe para todos os seus roteadores vizinhos, exceto para aquele de quem recebeu o pacote.
É pouco utilizado em redes maiores, pois gera sobrecarga.
É pouco utilizado em redes maiores, pois gera sobrecarga.
Classificação de Algoritmos de Roteamento
Os algoritmos de roteamento são adotados pelos protocolos de roteamento, que podem optar em possuir um ou vários algoritmos para roteamento.
Os algoritmos de roteamento podem ser classificados em duas categorias:
Algoritmos de roteamento globais
Algoritmos de roteamento descentralizados
Os algoritmos de roteamento globais trabalham com o objetivo de determinar o menor caminho entre os nós de origem e de destino. Para que possam trabalhar, os algoritmos de roteamento globais devem ter pleno conhecimento da topologia da rede e seu enlace. O envio e recebimento de numerosa quantidade de mensagens em broadcast informando o estado dos roteadores é uma das principais características de seu funcionamento, o que o torna inadequado para redes maiores.
Um exemplo de algoritmo de roteamento global é o algoritmo de Dijkstra, que tem como objetivo determinar o menor caminho entre dois nós. Seu funcionamento constitui em uma etapa de inicialização seguida por um looping, o qual possui quantidade de iterações equivalente ao tamanho de hosts na rede. Ao seu término, é retornado o menor caminho possível entre dois nós.
Com freqüência, o roteador dispara mensagens em broadcast para os demais roteadores, informando sobre seu estado e também recebe informações sobre o estado de outros roteadores, a fim de atualizar suas tabelas de roteamento. Isso torna o algoritmo de Dijkstra inadequado para redes maiores, sendo utilizado apenas em segmentos menores da rede, em casos específicos.
Os algoritmos de roteamento descentralizados são algoritmos iterativos e distribuídos. O algoritmo Distance-Vector é um algoritmo dinâmico, distribuído e iterativo, utilizado em protocolos de roteamento como IPX, Apple Talk e RIP. Nele, os roteadores conhecem seus vizinhos imediatos e trocam tabelas de retardos entre si.
O algoritmo de Bellman-Ford é utilizado para calcular a distância métrica de Distance Vector.
Os algoritmos de roteamento podem ser classificados em duas categorias:
Algoritmos de roteamento globais
Algoritmos de roteamento descentralizados
Os algoritmos de roteamento globais trabalham com o objetivo de determinar o menor caminho entre os nós de origem e de destino. Para que possam trabalhar, os algoritmos de roteamento globais devem ter pleno conhecimento da topologia da rede e seu enlace. O envio e recebimento de numerosa quantidade de mensagens em broadcast informando o estado dos roteadores é uma das principais características de seu funcionamento, o que o torna inadequado para redes maiores.
Um exemplo de algoritmo de roteamento global é o algoritmo de Dijkstra, que tem como objetivo determinar o menor caminho entre dois nós. Seu funcionamento constitui em uma etapa de inicialização seguida por um looping, o qual possui quantidade de iterações equivalente ao tamanho de hosts na rede. Ao seu término, é retornado o menor caminho possível entre dois nós.
Com freqüência, o roteador dispara mensagens em broadcast para os demais roteadores, informando sobre seu estado e também recebe informações sobre o estado de outros roteadores, a fim de atualizar suas tabelas de roteamento. Isso torna o algoritmo de Dijkstra inadequado para redes maiores, sendo utilizado apenas em segmentos menores da rede, em casos específicos.
Os algoritmos de roteamento descentralizados são algoritmos iterativos e distribuídos. O algoritmo Distance-Vector é um algoritmo dinâmico, distribuído e iterativo, utilizado em protocolos de roteamento como IPX, Apple Talk e RIP. Nele, os roteadores conhecem seus vizinhos imediatos e trocam tabelas de retardos entre si.
O algoritmo de Bellman-Ford é utilizado para calcular a distância métrica de Distance Vector.
Princípio de otimização: árvore de escoamento
A árvore de escoamento é um princípio de otimização que define que a melhor rota de A até B também será a melhor rota de B até A.
Pelo fato de a Internet não ser uma malha regular, muitas vezes há a formação de loopings no roteamento dos dados.
Pelo fato de a Internet não ser uma malha regular, muitas vezes há a formação de loopings no roteamento dos dados.
Tabelas de roteamento
Nas tabelas de roteamento os roteadores armazenam as informações necessárias para realizarem seu trabalho.
Os campos presentes nas tabelas de roteamento variam de acordo com o protocolo de roteamento que está sendo utilizado. Todavia, os mais comumente encontrados são:
Destino: Para onde os dados irão;
Gateway: Por onde sairão da rede atual;
Saltos: Número de pulos para chegar até o destino;
Interface: Por qual interface os dados sairão do host (PC ou roteador) onde se encontram.
Os campos presentes nas tabelas de roteamento variam de acordo com o protocolo de roteamento que está sendo utilizado. Todavia, os mais comumente encontrados são:
Destino: Para onde os dados irão;
Gateway: Por onde sairão da rede atual;
Saltos: Número de pulos para chegar até o destino;
Interface: Por qual interface os dados sairão do host (PC ou roteador) onde se encontram.
Redes de computadores: Sistemas autônomos
Sistemas autônomos consistem em um grupo de redes e roteadores controlados por uma única autoridade administrativa.
Em um sistema autônomo, todos os roteadores seguem as mesmas "regras" de roteamento.
Os protocolos de roteamento aplicados variam de acordo com a atuação dos roteadores, que pode ser interna ou externa.
Para os roteadores internos, que são aqueles que se comunicam apenas com outros roteadores internos, são adotados protocolos de roteamento interiores IGP (Interior Gateway Protocol). Roteadores internos tendem a ser mais confiáveis quando se comunicam com outros roteadores internos.
Para os roteadores externos, também conhecidos como roteadores de borda, aplicam-se protocolos de roteamento externos, os EGP (Exterior Gateway Protocol), que são mais adequados para que estes roteadores se comuniquem com roteadores de outras redes.
Os roteadores de borda apresentam custo mais elevado e possibilitam que um sistema autônomo possua interfaces externas com outras redes.
Marcadores:
protocolos de roteamento,
roteadores,
sistemas autônomos
O que é roteamento? Quais os possíveis tipos de algoritmos de roteamento?
O roteamento é uma atividade realizada na camada de rede, cujo objetivo é definir qual será o caminho trilhado pelos dados (empacotados) até chegarem ao seu destino.
O dispositivo responsável por esta atividade é o roteador, que possui em sua memória tabelas com as informações necessárias para determinar o destino dos pacotes que recebe. As informações desta tabela variam de acordo com o protocolo de roteamento utilizado.
Os algoritmos de roteamento são a lógica aplicada pelos roteadores na definição do caminho pelo qual os pacotes seguirão. Os algoritmos utilizados nestes dispositivos podem ser divididos em duas categorias:
Algoritmos de roteamento estáticos ( ou não-adaptativos): são aqueles em que as tabelas de roteamento são definidas manualmente pelo administrador da rede. As rotas são fixas e não se alteram em virtude de qualquer fator que não seja a ação do administrador.
Algoritmos de roteamento dinâmicos (ou adaptativos): Os algoritmos de roteamento dinâmico definem as tabelas de roteamento através da utilização de protocolos de roteamento.
O dispositivo responsável por esta atividade é o roteador, que possui em sua memória tabelas com as informações necessárias para determinar o destino dos pacotes que recebe. As informações desta tabela variam de acordo com o protocolo de roteamento utilizado.
Os algoritmos de roteamento são a lógica aplicada pelos roteadores na definição do caminho pelo qual os pacotes seguirão. Os algoritmos utilizados nestes dispositivos podem ser divididos em duas categorias:
Algoritmos de roteamento estáticos ( ou não-adaptativos): são aqueles em que as tabelas de roteamento são definidas manualmente pelo administrador da rede. As rotas são fixas e não se alteram em virtude de qualquer fator que não seja a ação do administrador.
Algoritmos de roteamento dinâmicos (ou adaptativos): Os algoritmos de roteamento dinâmico definem as tabelas de roteamento através da utilização de protocolos de roteamento.
Marcadores:
algoritmos de roteamento,
redes,
roteamento
Redes de Computadores: Diferenças entre datagramas e circuitos virtuais
Na camada de rede, existem dois serviços possíveis para entregar os pacotes em seus respectivos destinos: datagrama e circuito virtual.
Um serviço de datagrama é aquele em que os diversos roteadores são autônomos ao decidir qual será o caminho adotado pelos pacotes. Cada pacote que parte de uma mesma origem para um mesmo destino pode seguir pode diferentes rotas. O serviço de datagrama dispensa a configuração de circuitos virtuais e, em caso de paralização de um roteador, os serviços mantêm-se ativos, sendo os pacotes desviados por outras rotas. Neste serviço, cada pacote traz em seu cabeçalho as informações sobre sua origem e seu destino e os roteadores não armazenam as informações das conexões que se mantém ativas. Em contrapartida, devido a sua autonomia ao decidir qual a rota aplicada a cada pacote, os roteadores necessitam de um maior processamento para executar seus algoritmos de roteamento. O controle da rede, em um serviço de datagrama, também é mais complexo, visto que a implementação de políticas de controle de congestionamento e Qualidade do Serviço (QoS) é mais complicada.
No serviço de circuito virtual, o primeiro passo a ser realizado é a configuração do circuito pelo qual os pacotes serão transportados. Cada pacote possui em seu cabeçalho a informação sobre a qual circuito pertence e, independentemente do seu ponto de partida, fará o mesmo caminho até chegar a um destino específico. As informações sobre conexões são mantidas em tabelas pelo roteador e, caso este pare de funcionar, todas as conexões que passam por ele também deixarão de funcionar. Como pontos positivos, os circuitos virtuais podem facilmente ter implementados mecanismos de controle de congestionamentos e Qualidade do Serviço (QoS). O processamento no processo de transporte dos pacotes também é inferior ao do datagrama, uma vez que não há preocupação sobre qual destino os pacotes tomarão.
Um serviço de datagrama é aquele em que os diversos roteadores são autônomos ao decidir qual será o caminho adotado pelos pacotes. Cada pacote que parte de uma mesma origem para um mesmo destino pode seguir pode diferentes rotas. O serviço de datagrama dispensa a configuração de circuitos virtuais e, em caso de paralização de um roteador, os serviços mantêm-se ativos, sendo os pacotes desviados por outras rotas. Neste serviço, cada pacote traz em seu cabeçalho as informações sobre sua origem e seu destino e os roteadores não armazenam as informações das conexões que se mantém ativas. Em contrapartida, devido a sua autonomia ao decidir qual a rota aplicada a cada pacote, os roteadores necessitam de um maior processamento para executar seus algoritmos de roteamento. O controle da rede, em um serviço de datagrama, também é mais complexo, visto que a implementação de políticas de controle de congestionamento e Qualidade do Serviço (QoS) é mais complicada.
No serviço de circuito virtual, o primeiro passo a ser realizado é a configuração do circuito pelo qual os pacotes serão transportados. Cada pacote possui em seu cabeçalho a informação sobre a qual circuito pertence e, independentemente do seu ponto de partida, fará o mesmo caminho até chegar a um destino específico. As informações sobre conexões são mantidas em tabelas pelo roteador e, caso este pare de funcionar, todas as conexões que passam por ele também deixarão de funcionar. Como pontos positivos, os circuitos virtuais podem facilmente ter implementados mecanismos de controle de congestionamentos e Qualidade do Serviço (QoS). O processamento no processo de transporte dos pacotes também é inferior ao do datagrama, uma vez que não há preocupação sobre qual destino os pacotes tomarão.
Marcadores:
circuito virtual,
datagrama,
redes
Subscribe to:
Posts (Atom)