Este post contiene errores bastante graves en cuanto a conceptos básicos que creo que aclarar vendría bien para evitar la confusión.
Para empezar diré que la transmisión de datos se realiza en capas. El modelo tcp/ip utiliza cuatro capas
Bueno, tcp/ip no son cuatro capas, per antes de nada mejor hace falta una explicación más seria para entender de que se está hablando (arquitectura de comunicaciones).
Cuando nos enfrentamos al mundo de las comunicaciones nos encontramos con diversos problemas que debemos resolver (que medio físico utilizamos para transmitir la información, como controlamos los errores en el medio físico, la sincronización en el intercambio de datos, el direccionamiento etc), lo que se hace es dividir los problemas que tenemos de manera que se resuelvan de manera independiente, de manera que no sólo separemos la complejidad de la comunicación sino que sobretodo que haya reutilización.
Me explico, si tenemos por ejemplo dos máquinas en la cual queremos comunicarnos (por ejemplo decir hola), podemos separar la complejidad en por ejemplo el problema físico (el medio que utilizamos y como codificamos los datos (que el "1" sean 0V y el "0" -5V por ejemplo) y el problema de la sincronización de los datos (los tiempos en que se recogen los "1" y "0") y los errores , es decir el problema físico y digamos la transmisión ordenada y sin errores de los datos al nivel de enlace (enlace en el sentido de que son dos máquinas conectadas directamente).
Bien cuando hablamos entonces de la separación de estos problemas significa que se desarrolla cada problema de manera que cada problema queda resuelto independientemente sin dependencia del otro, más sencillo y para que se vea, si queremos pasar el "hola" que son por ej 4 octetos, y hemos decidido que para resolver el problema que llamamos enlace (transmisión fiable de los datos(independientemente de como sea el medio físico)) añadimos 1 octeto de paridad (para controlar si los datos (el hola) son correctos) y un octeto que es señal de reloj para sincronizar los relojes en la transmisión (ej una señal tipo 101010101 como en ethernet), bien pués de esa manera digamos que hemos resuelto ya esa parte del problema (hemos hecho un desarrollo para resolver el problema de la transmisión fiable) sin tener en cuenta el problema del medio físico, como se ve hemos separado el problema del medio físico, porque independientemente del medio físico que utilizemos nosotros resolvemos el problema que llamamos "enlace" (transmisión fiable a nivel de enlace).
Para el problema que llamamos "físico" decidimos utilizar un medio inalámbrico que sea ondas de radio.
La información que llamamos del enlace (hola mas los 2 octetos se apoya en la capa física para llegar al destino)
Ahora veremos de manera práctica lo anterior y como funciona una arquitectura de comunicaciones, cogemos los cuatro octetos del "hola" y le añadimos los dos octetos adicionales para resolver el problema que llamamos "enlace", ahora "pasamos todo eso" al medio físico para que lo mande (este puede añadir octetos adicionales si necesita (para decir el canal de radio o lo que sea, o puede no añadir nada claro) llega al ordenador destino (este implementa la misma arquitectura es decir ha separado el problema igual que nosotros y lo resuelve de la misma manera) este recoge los datos la parte física y pasa el hola mas los dos octetos del enlace a su parte de enlace y al final saca el hola.
A partir de ahora llamaremos cada problema como servicio y la manera de solucionar ese problema como protocolo (es decir el servicio llamado "fisico" soluciona el problema del medio a utilizar y la codificación electrónica de los datos y el servicio llamado "enlace" soluciona el problema de la transmisión fiable de los datos entre las dos máquinas (ojo que es independiente del medio físico este problema), protocolos del servicio "físico" es utilizar medio inalámbrico y codificar los datos de tal manera y el protocolo del servicio de enlace es añadir un octeto de paridad y otro de señal de reloj).
¿Como se hace en realidad todo esto? Gracias al encapsulamiento,
Es importante ver que no se puede hablar como comunicación como tal, si no comunicación a nivel de "capas", el hola debe apoyarse en el servicio de enlace y el físico para una transmisión satisfactoría del hola, a su vez el "enlace" debe apoyarse en el medio físico para ser transmitido, el medio físico no necesita apoyarse en ningún servicio para transmitirse.
Visto al final como queda , tenemos el hola que dijimos 4 octetos: "HOLA"
La capa de enlace añade sus dos octetos (2 + HOLA).
Esto pasa tal cual a la capa fisica que añade 1 octeto supongamos. 1 + (2 + HOLA).
Esto se transmite el otro ordenador es capaz de recoger la informacíon porque también utiliza el medio inalámbrico utiliza la misma codificación y velocidad y sabe el canal por el octeto, la capa física recoge entonces el 2 + HOLA, sabe como vienen los bits (como se recogen, esto no se si se entiende muy bien pero independientemente de la velocidad de transmisión que se soluciona en la parte "físico" hay que coordinar la recogida si no se entiende olvidarse de esto) con el octeto de paridad comprueba que los datos que vienen son correctos y ya puede sacar el "HOLA".
Como se ve si hubiesemos utilizado otra capa "física" nos vale la capa de enlace, porque es independiente del problema "físico" de ahi lo de reutilización (de hecho se ve todos los diás, ppp sobre diversas tecnologías de capa física xdsl y más claro ip sobre cualquier arquitectura, de hecho tcp/ip se creo para poder unir redes de diversas arquitecturas).
Está claro que para que dos máquinas se comuniquen no solo necesitan tener las mismas capas, si no los mismos protocolos (si resulta que una para solucionar el problema de la transmisión fiable independiente del medio físico añade 3 octetos CRC al "HOLA" y otra lo resuelve con un octeto de paridad mal van a entenderse).
Son importantes ver el encapsulamiento y que la comunicación tiene lugar a nivel de capas, las capas en que separemos dependen de nuestro problema (en este caso no necesitamos nada más, pero si unimos 3 máquinas en un mismo medio necesitaremos saber a quien va dirigido, es decir nos encontramos con el problema adicional de direccionamiento, luego si añadimos más cosas podemos encontrarnos con encaminamiento, o queremos añadir un nivel de transporte para que sea segura la transmisión extremo a extremo independientemente de por donde pase entre medias, etc etc. Es decir, la arquitectura depende de como queramos separar los problemas y de nuestras necesidades.
CAPA 1: capa física
aquí se transmite la información por el medio físico (cable, etc).
Es independiente del hardware. Da igual que tipo de cable se utilice. El dato llegará igual.
El protocolo de capa física mas común es ethernet
Esto no tiene sentido, la capa física es totalmente dependiente del hardware, de hecho la capa física lo que hace es resolver el problema del medio a utilizar, por lo tanto en la capa física se define este medio (que cable utilizamos como codificamos electronicamente los unos y ceros..). Hablando con propiedad la capa física se encarga de resolver lo anterior y el medio utilizado será el protocolo a utilizar para resolverlo (que cable utilizamos por ejemplo), dos arquitecturas tienen capa física pero distintos protocolos si una usa ondas de radio y otra fibra óptica por ejemplo).
Ethernet no es un protocolo de capa física, ethernet es una arquitectura , tiene su nivel físico y de enlace, es la arquitectura por excelencia de las redes de área local, existen muchas formas de implantar esta arquitectura con diversos protocolos de capa física (cable coaxial (ya no se utiliza), par trenzado, fibra óptica etc).
CAPA 2: capa internet
En situaciones en las que los dos dispositivos estén conectados a redes diferentes, se necesitan una serie de procedimientos para permitir que los datos atraviesen las diferentes redes interconectadas.
Los protocolos que funcionan en esta capa son:
IP -> protocolo que lleva el dato de un nodo a otro. Encuentra el camino para llegar aunque tenga que enrutar entre redes. Si es físicamente posible siempre llega. Envía la información en datagramas (paquetes ip)
ARP -> Protocolo que averigua la mac de destino a partir de la ip
RARP -> Protocolo que averigua la IP a partir de la mac
ICMP ->Cuando un usuario envía datagramas a un equipo remoto y este no los recibe o los recibe mal por diversas circunstancias el protocolo ICMP se encargará de enviar un mensaje de error al host de origen
Esto tampoco es así, una red no necesita capa de internet (llamada tambíen de red por excelencia es ip) para que los dispositivos entre ellos se comuniquen (una lan o wan sin la capa de red puede funcionar perfectamente), si no para que dispositivos en redes con arquitecturas diferentes puedan comunicarse, de hecho por eso se creo ip, para poder comunicar redes diferentes y ver todo como una "red global", esto es, a partir de ahora independientemente de las arquitecturas en todas se coloca una capa de red encima de ellas (las arquitecturas son llamadas tambíen interfaz de red, por eso vemos el modelo actual como tcp-->ip--->interfaz de red, interfaz será la arquitectura propia de la red) , así independientemente de las arquitecturas al colocar esta capa por encima vemos las redes desde el punto de vista de esta capa es decir, podemos formar redes como queramos desde el punto de vista de ip, cada red unos numerajos (dirección ip), cuando una máquina quiere transmitir a otra, mira si está en su misma red "ip" , si lo está manda por el interfaz de red a esa máquina si está fuera de su red manda al router correspondiente (un router por tanto tiene que tener el interfaz de la red a la que está conectado claro, si conecta por ej 2 redes diferentes tendra dos interfaces de red distintas, si conecta 2 redes iguales(misma arquitectura) tendrá dos interfaces de red iguales, y por tanto dos ip, una de cada red claro), por tanto tratamos a las redes desde el punto de vista ip olvidándonos de su arquitectura.
Más facil, imaginemos el primer caso que dijimos dos ordenadores que quieren mandar hola. Imaginamos que tenemos cuatro ordenadores pero que dos en vez de utilizar ondas de radio utilizan cable coaxial. Podemos separar los 4 en dos parejas y decir por encima de enlace pongo otra capa de red, los dos que utilizan ondas de radio se llamará red 1 y los de cable red 2, ademas la red dos utiliza otro protocolo en la capa de enlace.. LLamamos los ordenadores como 11 12 21 22 (el primer dígito es la red y el segundo la dirección dentro de esa red). Bien ahora uno quiere mandar hola a la otra red.
¿Como hacemos esto?
Muy fácil, el primer ordenador añade coge el hola pasa a la capa de red: este añade un octeto para decir que va dirigido al 21 (red 2). Despues añade su capa de enlace y física (la de su red su arquitectura), lo manda a otra máquina que hace de interconector con la otra red, está maquina debe por tanto conocer la arquitectura para poder recibir este "hola" correctamente, va desencapsulando hasta que saca el hola y ve que va dirigido a la red 2 (al 21 concretamente), coge el hola y lo encapsula en la arquitectura de la red 2 (capa de enlace de red dos y capa fisica utilizando cable) y se lo manda al ordenador correspondiente de la red 2). Huelga decir algunas cosas, como que en la capa de enlace añadamos otro octeto para direccionar los ordenadores dentro de nuestra red (ya no tenemos 2 ordenadores sino 3 (el interconector) en cada red hay que distinguir a quien se manda). Como se ve el interconector conoce dos arquitecturas y forma parte de las dos redes. Así funciona (un poco más complejo claro

pero es basicamente así). Como se ve la capa de red se apoya en la arquitectura de la red correspondiente para viajar por ella (y llegar al siguiente interconector).
Tambíen hay que ver que existen dos direcciones a nivel de enlace (la de la propia arquitectura de la red que hemos definido ahora para referirnos a que ordenador va dirigido de nuestra res) y la de dirección de red (que no es la misma). Si por ejemplo en la primera arquitectura definimos cada ordenador una dirección definida por 3 octetos empezando por cero y en la segunda su enlace contempla cada ordenador una dirección de un octeto empezando por 1, ambas resuelven el direccionamiento dentro de la red de manera distinta pero no confundir con la dirección de red que no tiene nada que ver). En este caso el ordenador para mandar hola al 21 (direccion de red) manda el hola con una dirección de enlace 3 (dirigida al interconector que esa es su direccion dentro de nuestra red), está claro que en la capa de enlace pone direccion destino 3 y en la ip 21 es fácil de ver, lo mismo ocurre con MAC y IP, es exactamente igual. A las direcciones de enlace las llamamos direcciones físicas y a las de red direcciones lógicas (las establecemos nosotros), cada interfaz una ip (una interfaz puede tener más de una pero cada interfaz diferente una ip diferente), cosas como que la ip identifica una máquina y ese tipo de cosas no tienen sentido, cada ip identifica un interfaz, existe una gran diferencia.
CAPA 3: Capa de transporte
Es quien envía o recibe los datos y en su caso comprueba que la información haya llegado en el orden adecuado
Los protocolos que funcionan en esta capa son
TCP ->Se encarga de comprobar que los datos que se reciben son correctos. Para ello se establece una conexión entre el emisor y el receptor que garantiza que la información sea correcta y si no lo es se vuelve a solicitar. Envía los datos en paquetes (paquete tcp). Esta comunicación se hace entre una "oreja" que escucha y una "boca" que transmite llamados sockets.
UDP ->Se encarga de enviar una determinada información. No se establecen conexiones por lo que no se garantiza que la información llegue. Funciona como la tele. se emiten "señales" a los que se llama paquetes udp y no se tiene constancia desde el emisor de si alguien ha recibido.
La capa de transporte se hizo para garantizar la fiabilidad de la información aunque atraviese redes diferentes, es decir, se trata solo en el origen y en el destino, y nunca sabe donde se produjo el error si se produjo (no sabe en que red por donde habrá viajado la información se produjo solo sabe que se ha producido), es decir es como mandar el hola con un octeto de paridad, este viaja por muchas redes (el hola mas ese octeto no se tocan) y el destino trata ese octeto y ve si es correcto el hola o no (de ahi que sea extremo a extremo, sólo se toca en el extremo, no como anteriormente hemos visto que las capas inferiores cambian, en este caso vemos que la capa de enlace tambíen añade un octeto de paridad pero nosotros sin saber la arquitectura de las redes que haya por medio añadimos para asegurarnos un octeto en el nivel que llamamos "transporte" que se controla extremo a extremo).
¿A QUE SE REFIEREN CUANDO HABLAN DE UN PAQUETE?
Como habeis visto hay muchas clases de paquetes, pero lo mas habitual es hablar de un paquete tcp/ip que es el conjunto de la información que se envía.
Un paquete tcp/ip tiene la siguiente estructura:
<encabezado><información><---paquete tcp--->
<encabezado><--------información--------><----paquete ip---->
<encabezado><-----------------información-----------------><paquete ethernet>
<---------------------------------- medio físico ------------------------------------------>
Como veis, en cada capa se coge la información y se hace con ella un paquete al que se añade un encabezado que servirá para indicar para quién es el paquete.
En realidad un "paquete tcp/ip) no tiene esa estructura, de hecho lo que haya por debajo de ip depende de la propia red (es indeterminado y lo llamamos interfaz de red) que puede ser ethernet atm o lo que corresponde, por encima de tcp hay otras capas , cada capa añade su encabezado (y a veces cola y puede a veces solo recoger lo que viene y hacer su función sin añadir datos adicionales como la capa física) información tal como lo pones serán datos del nivel de aplicación.
Una cosa importante es saber que es udp (o pdu en ingles), unidad de datos de protocolo, que es el formato de la capa a la que se refiera, es decir. por ejemplo ip coge lo que viene de tcp (que es lo que le vino de arriba a tcp mas el encabezado que le puso tcp) y le añade su propio encabezado ip, pués esto que lo pasará al nivel inferior se llama datagrama ("paquete ip"), si nos referimos a tcp lo llamamos "segmento" y si es ethernet "trama" (es decir la interfaz ethernet más todo lo de arriba).
Resumiendo a una capa le llega lo de arriba(llamemosle datos) y le añade su encabezado. Así ip es encabezadoip+ DATOS (que es encabezado tcp + datos (que a su vez es lo que le viene a tcp que a su vez......)) , es decir es como las muñecas que se meten unas dentro de otras.
Lo de "paquete" es un término relativo, en realidad se utiliza para distinguie los distintos tipos de redes que hay (conmutación de circuitos (como la red telefónica) conmutación de mensajes, conmutación de paquetes que son los que se suelen utilizar en las redes de datos, pero esto es otra historia), por eso creo no tiene mucho sentido empezar a aprender redes sin saber conceptos básicos de arquitecturas de comunicaciones y de redes (y mucho menos empezar por tcp/ip eso carece de sentido académico).
¡Es increíble que simplicidad! ¡Qué belleza!
Un día de estos postearé como se garantiza que la información no se pierda en un raid. ¡Verlo para creerlo!
Espero que esto le aclare conceptos a alguien!
Bueno simplicidad y belleza... no es un tema fácil la verdad y hay que estudiarlo de verdad, lo que pasa es que en internet la información es pésima y solo hay tutoriales estafa de tcp/ip (en mi carrera tcp/ip es un tema que se da en 3 semanas de los 7 temas y cuatro meses que tenemos porque en realidad redes es mucho más que tcp/ip claro y hay que tener mucha base sino no se comprende).
De hecho aprender de verdad redes lleva tiempo (yo tenía 5 horas de clase más prácticas con transparencias explicaditas y un profesor que lo explica durante 4 meses) y creo sinceramente que aprenderlo por internet es casi imposible (no existen buenas referencias sino tutoriales sin sentido y lo técnico es díficil de entender, además de que buscar información sobre WANS como atm frame relay etc es complicado y difícil de entender).
Los errores se pueden controlar al nivel de enlace de transporte etc, depende de los protocolos utilizados, pero esto es otra historia.
Creo sin ánimo de ofender ni nada de eso que tu eres el primero que debería aclararse sobre los conceptos porque demuestras tener muy poca idea en conceptos que son muy básicos).
Espero algún agradecimiento, ya que me he tirado un buen rato para escribir esta respuesta y espero que haya ayudado a alguien aunque al haberlo explicado yo mismo así rápido puede que haya lío en algunas cosas que me refiero si alguien no entiende algo o quiere profundizar que pregunte, sé que al haberlo explicado sin pensarlo demasiado habré cometido faltas de semántica y muchos malentendidos en lo que me refiero y espero que tampoco me haya quedado un "puñetero lío" xd.
PD:Tambíen leí otras barbaridades como respuesta como que tcp/ip contiene cuatro capas y cosas por el estilo o que la capa física a veces se agregaa veces no, para quien no se aclaré el modelo tcp/ip que se basó en OSI (OSI que salió para estandarizar porque cada uno hacía la arquitectura con las capas que le daba la gana,aunque osi no se sigue a rajatabla) son:
NIVEL DE APLICACION
NIVEL DE PRESENTACION
NIVEL DE SESION
NIVEL DE TRANSPORTE
NIVEL DE RED
NIVEL DE ENLACE
NIVEL FISICO
La de red también llamada de routing, pero ojo que la capa física y de enlace no tienen nada que ver con tcp/ip, MAC es la capa de enlace ethernet y tcp transporte, ip red, tcp/ip van sobre la arquitectura correspondiente, asi mientras lo de arriba representa una arquitectura en concreto se suele representar debajo de red poner INTERFAZ DE RED (que sera la interfaz propia de la red por donde circula el datagrama con su propia capa de enlace y fisico (suponiendo que se estructuró así la arquitectura de esa red). La pila tcp/ip va en el so de la máquina y el datagrama se encapsulará en el interfaz correspondiente según donde vaya dirigido (utilizando la tabla de rutas).