• Viernes 8 de Noviembre de 2024, 21:52

Autor Tema:  Re: Protocolo Hdlc  (Leído 16162 veces)

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« en: Jueves 2 de Octubre de 2003, 19:32 »
0
HDLC

High level data Link Protocol, es un protocolo ampliamente usado hoy en día, es el protocolo sobre el que corre Ethernet, que es un protocolo usado en las tarjetas de red para redes IEEE 802.3. Este reto esta basado en una variación de HDLC.

HDLC está diseñado para comunicaciones sincroniaza nivel de bit, es decir la información esta formada por un “stream” de bits sincronizados mediante una señal de reloj que define los limites de cada bit.

Pero, cómo se definen los limites de cada byte?.
Hay varias estrategias, la usada en HDLC es elegir un carácter llamado “flag” (“bandera”) que define en donde empieza o termina una serie de bytes.(y de hecho delimita un frame)

El carácter bandera es 0x7E (binario 0111 1110). De tal forma que cuando el receptor encuentra esta cadena de caracteres en el “stream” sabe que inicia una cadena de bytes, cada uno de 8 bits. La cadena de datos terminará cuando aparece otra bandera 0x7E. Es importante tener en cuenta que entre dos  “frames” consecutivos debe haber una y solo una bandera y al finalizar la transmisión debe haber una bandera.

Pero que pasa si dentro del “stream” de datos aparece 0x7E?
Obviamente esto seria un problema.
La solución que se adopto fue la siguiente:

_Cuando el transmisor está en el proceso de transmitir un “frame” chequea cada bit transmitido. Si en un momento determinado aparecen 5 unos(1’s) consecutivos, se inserta un cero(0) extra después del quinto bit (A esto se le llama BitStufing) para evitar que se presente el patrón bandera.

Por supuesto el receptor tiene que estar preparado para recibir este tipo de “stream”: tiene que chequear el “stream” de bits. Cuando detecta una bandera, empieza a recoger los caracteres que conforman un “frame”. Pero si dentro del “frame” encuentra 5 unos (1’s) consecutivos, debe chequear el siguiente bit:
 
-Si es un 0, significa que recibió una bandera y por lo tanto que recibió el final del “frame”
-Si es un 1, es una secuencia de 6 o más unos, que es prohibida en el protocolo y que por lo tanto implica un error y el “frame” es abortado completamente. El receptor inicia de nuevo la búsqueda del siguiente carácter bandera.

Usted deberá escribir  un programa receptor y otro programa transmisor de esta variación de HDLC.

Entrada del transmisor

Leerá por un archivo de tipo texto a ser transmitido. Este archivo podrá contener únicamente secuencia de caracteres ‘1’ y ‘0’ que representan los byte a ser transmitidos. El orden de los bit dentro del cada byte es de más a menos significativo.

Salida Transmisor

El archivo de entrada deberá ser transmitido a stdout insertando un carácter de bandera entre cada “frame” y haciendo las operaciones necesarias de BitStufing. Por facilidad vamos a suponer que el tamaño del “frame” es fijo, de 128 bits de datos efectivos, es decir, sin incluir las banderas ni los bits insertados en el proceso de BitStufing, tenga en cuenta que el último frame puede ser de menos de 128 bit, puede asumir que el tamaño del archivo de entrada es múltiplo de 8.

Salida receptor

El archivo de salida deberá ser de tipo texto y contener los bytes transmitidos(expresados en secuencia de caracteres ‘1’ y ‘0’), cada uno con sus bits en orden de menos a más significativo.
El receptor realizara exactamente la labor contraria del transmisor, deberá detectar errores de protocolos e informarlos.

Ejemplos
 
Código: Text
  1.  
  2. Entradatransmisor: 00000000111100000101010100000000
  3. Salida transmisor: 011111100000000000001111100101010000000001111110
  4. Entrada receptor : 011111100000000000001111100101010000000001111110
  5. Salida receptor  : 00000000111100000101010100000000
  6.  
  7. Entradatransmisor: 000011111110000011001100
  8. Salidatransmisor : 0111111011110000000001110011001101111110
  9. Entradareceptor  : 0111111011110000000001110011001101111110
  10. Salidareceptor   : 000011111110000011001100
  11.  
  12. Entradareceptor  : 01100000111111011110000000001110011001101111110
  13. Salidareceptor   : 000011111110000011001100
  14.  
  15.  
Como se puede observar  en los ejemplos solo se lee un "frame" por vez, no es necesario implementar lectura de multiples frames.

Como no se especifican los nombres de archivo de entrada, es necesario que los programas recibanel nombre de archivo desde consola,  pero solo como argumento del ejecutable, ejemplo:

c:executable entrada.txt

La salida en ambos casos es por pantalla.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #1 en: Jueves 2 de Octubre de 2003, 22:43 »
0
Hola juank, muy buen reto, solo una duda, que manera el programa debe informar de los errores.

   Esa parte no la entiendo, si bien el transmisor toma el archivo, lo decodifica, lo envia al receptor, este lo toma y lo vuelve a decodificar, pero cuando y como presentara los errores, y que errores??

   Esto es realmente muy complicado :argh:, nos vas a sacar a todos ingenieros!!!... Bueno, Saludos y espero tu respuesta. :question: :ayuda:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #2 en: Jueves 2 de Octubre de 2003, 23:01 »
0
Bueno, no esta tan complicado.. ya veras que estaba mas dificil el de los gatos... jajaja.

Lo de los errores...
Toca controlar lo siguiente:
1- Todo lo referente al manejo de los archivo.. lectura, escritura etc.
2-Que posean el formato indicado, en el de entrada por ejemplo que sea de 1s y 0s y que sean bytes que es la unidad minima de infromacion... y más
3-En el de salida casi que los mismo pero validar que cumpla con las reglas de protocolo y más

Sere muy estricto con eso en este reto...
eso si si necesitan asesoria acerca de como hacer algo me avisan...

Como consejo:

Prueben todas las posibilidades que se les ocurra... hagan de cuenta que son un usuario que no tiene idea de computadores y hagan copn los archivos todas las barbaridades que se les ocurra...
Eso es lo que hay que controlar.

Como mostrar los errores..
cada uno de los programas tiene entrada por archivo y salida por pantalla.. los errores se muestran por pantalla, cuando el progframador lo considere necesario.. eso si hay que tratar de mostrarlos en el momento en que es de utilidad saberlo, y el error debe describir la situacion , de manera que el que lo lea pueda saber donde se origino el problema, ejemplo:
 
Código: Text
  1.  
  2. printf("nError de protocolo: Frame abortado :n%snEntrada no es una cadena de bytes.", frame);
  3.               return 0;
  4.             }
  5.  
  6.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #3 en: Viernes 3 de Octubre de 2003, 23:29 »
0
Hola juank, estoy con el reto a full, esta realmente bueno y no parece complicado ahora que lo estoy comenzando a entender, solo tengo una duda acerca de los dos programas que hay que hacer.

El primer programa toma los datos de un archivo, y lo codifica y lo imprime en pantalla, ahora bien aqui entra mi duda, el segundo programa como recibe los datos???
 
   Tengo que guardar en otro archivo la informacion codificada del primer programa???

   Bueno, aparte de esa duda tengo una ultima.

   El archivo de entrada en el transmisor debera ser de un frame de 128 bits, es decir 128 caracteres de 1's y 0's???

   Bueno, espero tu respuesta para terminar con estas dudas. Gracias de antemano y nuevamente GRACIAS. SALUDOS!!!
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #4 en: Domingo 5 de Octubre de 2003, 03:38 »
0
Muy bien por aceptar el reto!!!

El segundo programa debe leer los datos desde un archivo e imprimirlos en pantalla, es decir igual que el primer programa... no necesariamente s eprobara con los datos que arroje el primer programa.


El archivo de entrada es de una longitud indeterminada, pero siempre menor o igual a 128 bits.. es decir por lo menos tu programa debe soportar 128 bit, pero si soporta más no importa.

Entre las cosas que si debes evaluar es que la informacion este en bytes(es decir en octetos) por que esta es la unidad minima de informacion.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #5 en: Lunes 6 de Octubre de 2003, 14:52 »
0
Hola juank, bueno gracias por los comentarios anteriores, ahora tengo otra pequeña duda, quisiera saber si en este fragmento de texto que escribiste al publicar el reto hay un error o yo estoy equivocado:

Entradatransmisor: 00000000111100000101010100000000
Salida transmisor: 011111100000000000001111001010100000000001111110

Entrada receptor : 011111100000000000001111001010100000000001111110
Salida receptor  : 00000000111100000101010100000000

   Ya que me parece que hay un cero que no deberia estr, y deberia ser 1.

Entradatransmisor: 00000000111100000101010100000000
Salida transmisor: 011111100000000000001111001010100000000001111110

   No entiendo porque es un cero, por favor explicame si es un error tuyo o es algo que no entiendo de la explicacion del reto. Gracias y Saludos :adios:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #6 en: Lunes 6 de Octubre de 2003, 16:09 »
0
Es algo que no has entendido, o que no has leido bien.. yo se que es , pero no te lo voy a decir :P .

Suerte.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #7 en: Lunes 6 de Octubre de 2003, 16:26 »
0
Bueno, yo entiendo algo, que es lo  que esta en este fragmento:

_Cuando el transmisor está en el proceso de transmitir un “frame” chequea cada bit transmitido. Si en un momento determinado aparecen 5 unos(1’s) consecutivos, se inserta un cero(0) extra después del quinto bit (A esto se le llama BitStufing) para evitar que se presente el patrón bandera.

Por supuesto el receptor tiene que estar preparado para recibir este tipo de “stream”: tiene que chequear el “stream” de bits. Cuando detecta una bandera, empieza a recoger los caracteres que conforman un “frame”. Pero si dentro del “frame” encuentra 5 unos (1’s) consecutivos, debe chequear el siguiente bit:

-Si es un 0, significa que recibió una bandera y por lo tanto que recibió el final del “frame”
-Si es un 1, es una secuencia de 6 o más unos, que es prohibida en el protocolo y que por lo tanto implica un error y el “frame” es abortado completamente. El receptor inicia de nuevo la búsqueda del siguiente carácter bandera.

Pero no me cierra todo ya que no encuentro cual es el byte bandera, esa parte no la entiendo porque al principio dices que el Flag es 01111110, y en ese fragmento esta diciendo que el flag es 00111110 o cualquier byte que contenga 5 1's consecutivos, al final, creo que eso me costara entenderlo, por favor disculpame si mis dudas son un poco tontas, es que no puedo continuar con el programa sin antes eliminar esas dudas. Gracias  :question:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #8 en: Lunes 6 de Octubre de 2003, 17:46 »
0
Este ejercicio me lo pusieron en la maraton nacional de programación, y tambien tube muchas dudas.. eso si no respondieron ninguna...ya que una de las reglas que hay es que no se responde ninguna pregunta.. lo cual me parece muy tonto porque en particualr perdi mucho tiempo en este ejercicio por un error de redaccion, ya que daba para varias
interpretaciones, asi que no hay problema por preguntar.

Tu problema es que has interpretado de manera errada, ya que el texto dice:
 
Citar
_Cuando el transmisor está en el proceso de transmitir un “frame” chequea cada bit transmitido. Si en un momento determinado aparecen 5 unos(1’s) consecutivos, se inserta un cero(0) extra después del quinto bit (A esto se le llama BitStufing) para evitar que se presente el patrón bandera.

Por supuesto el receptor tiene que estar preparado para recibir este tipo de “stream”: tiene que chequear el “stream” de bits. Cuando detecta una bandera, empieza a recoger los caracteres que conforman un “frame”. Pero si dentro del “frame” encuentra 5 unos (1’s) consecutivos, debe chequear el siguiente bit:

-Si es un 0, significa que recibió una bandera y por lo tanto que recibió el final del “frame”
-Si es un 1, es una secuencia de 6 o más unos, que es prohibida en el protocolo y que por lo tanto implica un error y el “frame” es abortado completamente. El receptor inicia de nuevo la búsqueda del siguiente carácter bandera.

Lo primero indica que si esta transmitiendo y encuentra 5 unos, despues del quiento bit en uno agrega un cero.

Lo segundo, nos dice que en el receptor, si se reciben 5 unos, revisa el siguiente bit, si el siguiente bit despues de esos 5 unos es un cero entonces se descarta el cero y se continua leyendo los bIts, pero si es un uno es un error de protocolo porque el transmisor no pudo haber enviado más de 5 unos seguidos.

Lo del 00111110 es solo que has tenido un poco de dificultad con la interpretacion de este fragmento, nunca se dice de ningun modo ni explicita ni implicitamente que la bandera sea esa.. la bander unicamente es 01111110.

No estoy seguro si me he hecho entender, en todo caso si te quedan dudas me comentas, pues como ya te dije no hay ningun problema en preguntar.


Un saludo y suerte.!!!

Me cuentas como te fue.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #9 en: Lunes 6 de Octubre de 2003, 19:47 »
0
Bueno la pista que dare para este reto es que se fijen en esto:
 
Citar
Entrada del transmisor

Leerá por un archivo de tipo texto a ser transmitido. Este archivo podrá contener únicamente secuencia de caracteres ‘1’ y ‘0’ que representan los byte a ser transmitidos. El orden de los bit dentro del cada byte es de más a menos significativo.

 
Citar
Salida receptor

El archivo de salida deberá ser de tipo texto y contener los bytes transmitidos(expresados en secuencia de caracteres ‘1’ y ‘0’), cada uno con sus bits en orden de menos a más significativo.

Creo que esta pista les  solucionara muchos inconvenientes a quienes desarrollen el reto, no debi haberselas dicho.. pero se trata de que todos aprendamos.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #10 en: Martes 7 de Octubre de 2003, 00:43 »
0
Hola juank, has eliminado varias dudas que tenia, la pista que nos has dado es muy buena, gracias por todo y hasta prontito.
:gracias:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #11 en: Martes 7 de Octubre de 2003, 22:00 »
0
Hola juank, queria consultarte acerca de el siguiente fragmento de mensaje que nos diste dias atras:


 
Citar
Como consejo:

Prueben todas las posibilidades que se les ocurra... hagan de cuenta que son un usuario que no tiene idea de computadores y hagan copn los archivos todas las barbaridades que se les ocurra...
Eso es lo que hay que controlar.


   Esto quiere decir por ejemplo que pongamos aparte de 1's y 0's en el archivo que leera el transmisor alguno que otro caracter cualquiera??
  como puede ser un @, u, 9, A, etc?.

   Gracias de antemano y perdon por las simples tontadas que pregunto. SALUDOS!! :think:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #12 en: Martes 7 de Octubre de 2003, 22:06 »
0
Asumamos solo las barbaridades, locuras, demencias, idioteses, etc.. que se puedan hacer con los caracteres:
'0'
'1'
'n'
que son los que usa el programa, esto es porque el hecho de dejar 1y 0 como caracteres facilita el seguimiento y la elaboracion del programa, pero originalmente habria sido mejor leer los bits de un archivo binario, con eso solo controlariamos 1 y 0.


Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #13 en: Martes 7 de Octubre de 2003, 22:18 »
0
Gracias juank, perdona por la consulta, es que me tenia en duda, ya tengo casi listo el programa transmisor, cuando lo termine lo coloco aqui o presento los dos juntos??? ....     Eso si llego.

   Bueno, saludos y gracias.
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #14 en: Martes 7 de Octubre de 2003, 22:20 »
0
Los dos ..
es mejor postear solo los retos completos.

Por cierto ya voy a acabar el siguiente reto..
es acerca del lenguaje español.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #15 en: Martes 7 de Octubre de 2003, 23:45 »
0
Gracias por contestarme tan rapido, estoy de acuerdo con lo que dices de publicar el reto completo, me alegro que ya casi termines el proximo reto. Espero no sea nada raro ni tenga que ver con la ortografia, porque ahi voy muerto, bueno, te agradesco por todo, prontito volvere a escribir, SALUDOS
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #16 en: Miércoles 8 de Octubre de 2003, 00:48 »
0
Acabe de terminar el proximo reto.. estuvo un poco complicadito.. perro solo detalles de programacion...

Bueno los dejo me voy a la universidad, entro a clase en 10 min... y en bus me demoro 40 min en llegar...

necesitare un milagro.

Hasta luego
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #17 en: Jueves 9 de Octubre de 2003, 01:16 »
0
juank, creo que si hay un error en la redaccion del codigo.
   En uno de los mensajes que me respondiste me dijiste lo siguiente:


 
Citar
Lo primero indica que si esta transmitiendo y encuentra 5 unos, despues del quiento bit en uno agrega un cero.

Lo segundo, nos dice que en el receptor, si se reciben 5 unos, revisa el siguiente bit, si el siguiente bit despues de esos 5 unos es un cero entonces se descarta el cero y se continua leyendo los bIts, pero si es un uno es un error de protocolo porque el transmisor no pudo haber enviado más de 5 unos seguidos.

Lo del 00111110 es solo que has tenido un poco de dificultad con la interpretacion de este fragmento, nunca se dice de ningun modo ni explicita ni implicitamente que la bandera sea esa.. la bander unicamente es 01111110.

No estoy seguro si me he hecho entender, en todo caso si te quedan dudas me comentas, pues como ya te dije no hay ningun problema en preguntar.


   Perfecto, lo de las banderas lo entendi, pero no comprendo porque si en el fragmento dice que cambia a 0 el bit siguiente despues de los 5 1's, en el ejemplo que nos diste cambia pero el quinto bit, no el siguiente.

   Ya realice el programa transmisor, funciona perfecto, solo que mi programa cambia a cero el bit siguiente de los 5 1's, por lo que no concuerda con el siguiente ejemplo que tu colocaste al redactar el reto:


 
Citar
Entradatransmisor: 00000000111100000101010100000000
Salida transmisor: 011111100000000000001111001010100000000001111110
Entrada receptor : 011111100000000000001111001010100000000001111110
Salida receptor  : 00000000111100000101010100000000



   Bueno, espero tu respuesta, despues de que me contestes te realizo otra consulta, gracias y saludos.
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #18 en: Jueves 9 de Octubre de 2003, 14:23 »
0
Bueno, el enunciado esta bien.. porque como te comente esta transcrito de la olimpiada nacional de programación.

Ahora lo del ejemplo si esta mal digitado.. me comi un 1:P

Gracias por fijarte, ya lo corregi, se nota que si has entendido el programa!!!

Me alegro, suerte y continua.

Ahh si si encuentras otra cosita(espero que no), me cuentas please.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #19 en: Jueves 9 de Octubre de 2003, 15:55 »
0
Hola juank, bueno, hiba a consultarte algunas pequeñas dudas para limar perezas de mi fuente, pero veo que modificaste el error que habia en la redaccion del reto y tambien agregaste lo siguiente:

 
 
Citar
Como no se especifican los nombres de archivo de entrada, es necesario que los programas recibanel nombre de archivo desde consola, pero solo como argumento del ejecutable, ejemplo:

c:executable entrada.txt

La salida en ambos casos es por pantalla.


   juank, eso que agregaste quiere decir que el programa receptor no debe guardar los datos de salida en un archivo como me habias dicho que debia hacer, o aparte de guardar los datos en un archivo de salida tambien debe imprimirlos en stdout.

   Bueno, ahora esta es mi duda, tengo ambos programas terminados, pero ahora debere modificar el recepto ya que no imprime los datos en stdout y los guarda en un archivo, contestame lo antes posible y te consulto otras dudas para terminar con esto, Bueno saludos y saludos :think:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #20 en: Jueves 9 de Octubre de 2003, 16:44 »
0
Lo de la entrada de datos por argumentos lo adicione al segundo dia de publicado el reto, solo por aclarar porque ya estaba implicito en el texto.

Lo que siempre se ha dicho es que ambos programas reciben entrada por archivo y salida por pantalla no?:kicking::think:
Es decir, no se ha mencionado que la salida del primer programa deba ser redireccionada al segundo.. por eso son dos programas aparte.

Se hiso asi para facilitar la evalucion del programa , ya que es más facil verficar la salida por pantalla que en un archivo, y a la vez es más facil que la entrada este en un archivo de texto, a que toque digitarla por stdin.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #21 en: Jueves 9 de Octubre de 2003, 16:50 »
0
Hola juank, perdon, debo estar equivocado, es que ya sueño con 1's y 0;s y se podria decir que hablo hasta pavadas. Bueno, queria consultarte tambien que si el archivo de entrada de los bits puede tener lineas n, es decir que en el archivo diga:

101010111111010101010
101010000000010101010
11111111110101000000101010

   Varias lineas.

   De ser asi, dbe imprimir igual que el archivo, osea una linea debajo de la otra o una al lado de la otra.???

  Bueno, gracias y nuevamente perdon.
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #22 en: Jueves 9 de Octubre de 2003, 19:05 »
0
no, por lo menos yo tuve esa duda pero como no hay que hacer lo que no se pide, entonces es de una unica linea.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Protocolo Hdlc
« Respuesta #23 en: Jueves 9 de Octubre de 2003, 23:45 »
0
Hola juank, bueno, esta vez te pregunto:

   El archivo de entrada en el transmisor va a tenr x cantidad de bits, supuestamente el programa transmisor debe tomar esos bits de a 8, formando con ellas x cantidad de bytes... ahora bien si yo tengo en el archivo 35 bits, y al convertirlo en byte me quedan 4 byte, que formarian 32 bits, me sobran 3 bits, que no se veran en el programa.... que debo hacer con esos tres bits, debo avisar en el programa que hay tres bits que estan demas o no informar nada.

   Aparte de eso quisiera saber de que tipo de errores de protocolo debo informar y en cual de los dos programas, ya que no encuentro que informas porque el bitstufin modifica y acomoda algo que seria un error que es la secuencia de 6 o mas 1;s consecutivos, eso no lo entiendo, por favor si me puedes colocar un ejemplo te lo agradeceria.

   Bueno, por ahora esto es todo, espero terminar el programa para antes de mañana, si me contestas esto hoy, es seguro que para mañana o pasado esta terminado..... Gracias y saludos.

   :lightsabre:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Protocolo Hdlc
« Respuesta #24 en: Viernes 10 de Octubre de 2003, 00:01 »
0
1-La unidad minima que puede representar de informacion en un computador es el byte, asi que tres bits no son una unidad de infromacion, por tanto no puede ser transmitida ni recibida.
 
Citar
...tenga en cuenta que el último frame puede ser de menos de 128 bit, puede asumir que el tamaño del archivo de entrada es múltiplo de 8.


Lo de los errores,, no te lo debo decir, debes controlar todo lo que sea posible, porejemplo lo que me acabas de decir de los 3 bit es un error.. hayuno pocos más pero los deberas determinar tu mismo, porque es parte del reto.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io