Vue d'ensemble de base de l'envoi au-dessus du TCP\de IP

Vue d'ensemble de base de l'envoi au-dessus du TCP \ de IP :

Le TCP \ IP envoie
Ver 0.8
Section 0 : Préambule

Ce qui suit est une liste des étapes impliquées en envoyant des données à partir d'un ordinateur à encore au-dessus d'un réseau de TCP \ IP. Ceci couvre juste le voyage d'un paquet simple, ceci n'est pas censé pour couvrir des poignées de main de TCP \ IP ou analogues. C'est une bâche rapide et sale de ce qui se produit, et j'essaye de ne pas devenir trop détaillé, excepté énumérer les champs d'en-tête réels pour chaque couche OSI. Ces sections peuvent être sautées si l'utilisateur veut. C'est juste de donner à quelqu'un un arrangement général de la façon dont les choses fonctionnent, il ne devrait pas être pris comme fait.

L'information ici, tandis que la plupart du temps correcte, ne devrait pas être en tant que vérité regardée de 100 _, la causent n'est pas. C'est FONDAMENTALEMENT ce qui se produit, et te donnera un meilleur arrangement de la façon dont cela fonctionne. Il est dans la vérité beaucoup plus complexe puis ceci, ainsi je "me situe " dans quelques taches pour aider pour faire des choses sembler moins complexes. Aucune de cette information n'est erronée, à moins que je sois devenu confus tout en écrivant une pièce, mais quelques pièces ne sont pas "toute la vérité ". L'ordre des étapes est l'un des éléments principaux qui n'est pas le _ 100 vrai. Tandis que l'ordre de chacune des couches est vrai, puisqu'ils doivent être voyagés dans l'ordre, les étapes à l'intérieur de chaque couche est juste le dire approximatif.

Également note, quand j'ai obtenu à la pièce de commutation, j'ai commencé à écrire au sujet des routeurs, et suis devenu confus au sujet de ce qu'on était moi écrivait environ. Je pense que je l'ai nettoyé, mais si quelque chose semble hors de l'endroit, qu'est pourquoi.

NOTE: Ce FAQ emploie le modèle OSI, Et tandis que savoir cela fonctionne aidera, il n'est pas nécessaire pour comprendre ceci. Une vue finie rapide des couches est tout ce qui est nécessaire.

Section 1 : Couches de flux de données du modèle OSI.

Cette section couvrira des couches (de transport) des couches deux (liaison de transmission de données), trois (réseau) et quatre du modèle OSI. La couche 1 est la couche physique, le matériel et des fils utilisés. Il n'est pas nécessaire pour être couvert en cela. Les sept couches sont comme suit :

Couches 7~5 : Couches application :

Couche 7 - Couche application. C'est le programme fonctionnant sur votre ordinateur. Que ce soit le messager de MSN ou un programme de peinture sauvant un dossier à un serveur à distance.

Couche 6 - Couche de présentation. Cette couche est formating de données de l'application. L'ASCII, l'Unicode, les .bmp et le .jpg sont tous les exemples de la couche 6.

Couche 5 - Couche session. Cette couche est employée pour maintenir des données séparées entre les applications, et elle commande quels programmes reçoivent quelles données.

Couches 4~1 : Couches de flux de données :

Couche 4 - Couche transport. Dans un réseau de TCP \ IP, c'est où le protocole de transport, TCP, hérite le jeu. La note également ceci est où l'UDP serait employé s'il employait l'UDP. C'est également la couche que les ports héritent le jeu.

Couche 3 - Couche réseau. C'est où l'IP est employé, et la couche où un IP address est employé.

Couche 2 - Couche liaison de données. C'est où le MAC address est employé.

Couche 1 - Couche physique. C'est le matériel réel que c'est individu.

Excepté la couche 1, chaque couche ajoute un en-tête aux données étant envoyées. Et car elle lui remet le support l'échelle à l'application, chaque couche la dépouille est éteinte posséder l'en-tête. Par exemple, dites que j'ai envoyé monde de données le "bonjour ". Dans la couche 4, un en-tête de TCP est empilé sur lui, lui faisant [Layer4] " bonjour le monde ". Alors un en-tête de la couche 3 est, [Layer3] [Layer4] " bonjour monde " supplémentaire. Et finalement un en-tête de la couche 2 est appliqué. [Layer2][Layer3][Layer4] " bonjour monde ". Il est envoient alors à travers le fil (la couche 1) à elle est cible. Chaque couche lit les en-têtes, et décide quoi faire avec elle.

Section 2a : L'information d'en-tête

Ainsi qu'est dans ces en-têtes ? La présente partie peut être sautée si besoin est, car elle couvre les détails de base d'un en-tête de TCP.

L'en-tête de TCP est normalement de 20 bytes, ou 160 bits. Les 16 premiers bits sont pour le port de source, également appelé port appelant. Les 16 prochains bits sont pour le port de destination, ou le port appelé. C'est le port que le paquet va (comme port 80 sur le HTTP) ceci couvre le peu 0 ~ 31.

Le peu 32~63 est employé pour la numérotation d'ordre. Il est employé pour maintenir des paquets dans l'ordre. Ainsi si un paquet étaient d'atteindre la cible légèrement plus tard puis le paquet envoyé juste après lui, la cible peut le rassembler dans le bon ordre. Les 32 prochains bits, le peu 64~95, sont employés pour le nombre de reconnaissance. Ceci est employé pour la commande d'erreur et la poignée de main, entre autres. Alors pour 4 bits, le peu 96~99, vient le champ de longueur d'en-tête. C'est le nombre de mots à 32 bits dans l'en-tête. Tandis que le "en-tête" est de 20 bytes, il y a un champ d'options d'en-tête qui peut être coincé dessus.

Après la longueur d'en-tête, vient le champ réservé, prenant le peu 100~105 (6 bits). Il est comme lui dit, a réservé, et a normalement placé à 0. Est après le peu de code, encore un champ de 6 bits, prenant le peu 106~111. Ceux-ci commandent beaucoup de choses en session, comme quand elle a décommandé \ s'est terminée. Ceux-ci s'appellent également les options de drapeau, ou d'autres limites comme ceci. Vient après la fenêtre, 16 bits 112~127 d'une bâche de champ de bit. Ceci fondamentalement commandes combien grand les paquets de données sont qui sont envoyés. Après que la fenêtre soit un champ de somme, ce champ est un champ de 16 bits, et est employé pour dire si le paquet était endommagé. Ceci couvre le peu 128~143.

Le peu 144~159 est le champ final dans l'en-tête de TCP, l'indicateur pressant. Normalement c'est inutilisé, à moins que le drapeau pressant dans le peu de code soit permis. Cela indique l'ordinateur traiter ces données en ce moment, et cet indicateur pressant indique à l'ordinateur combien des données doivent être traitées en ce moment. Ce n'est pas normalement un champ utilisé. Après ceci, il peut y a un champ de 32 options de bit. C'est fondamentalement un champ réservé pour des additions à l'installation de TCP \ IP. Après ce champ, viennent alors finalement les données.

L'ok, ainsi après que l'en-tête de TCP soit sur les données, lui obtient remis vers le bas à la couche réseau, la couche 3. C'est où l'IP address est ajouté au paquet. Ceci signifie que j'obtiens de noter une autre table binaire misérable de l'en-tête, yay. Et encore, c'est de 20 bytes, ne comptant pas des options. Mais celui-ci a bien plus de champs.

Tellement voici une liste de l'en-tête d'IP. Les 4 premiers bits, 0~3, est nombre de version. Comme la version 4 ou bits d'Ipv6.Next 4 est longueur d'en-tête, juste comme le TCP un, il fait fondamentalement le dispositif savoir si le champ d'options est joint ou pas. C'est le peu 4~7. Le peu 8~15 est priorité et type de service. L'utilisation de ces champs ne sont pas vraiment couvertes ici, mais le nom devrait décrire les fondations de elles. Vient après la longueur totale, le peu 16~31. Il indique la longueur de l'en-tête d'IP, de l'en-tête de TCP, et des données. Après sur le peu 32~47, champ d'identification. Fondamentalement utilisé si le paquet devient réduit en fragments. Pour être honnête, ce champ me confond toujours. Vient après les drapeaux, fondamentalement ils indiquent si la fragmentation se produit. C'est un champ de 3 bits, 48~50. Ensuite c'est excentrage de fragment, le peu 51~63. La fragmentation sera mentionnée plus tard. Après lui 8 le champ du bit TTT, ou Time to Live. C'est le peu 64~71. Après ceci vient le champ de protocole. Ceci est marqué si c'est un ICMP (comme le cinglement) ou un IGRP (protocole de cheminement). Le protocole est le peu 72~79. Ceci n'est pas employé dans ce FAQ. Ensuite cela vient la somme d'en-tête, il est le peu 80~95. Le peu 96~127is l'IP address de source, et le peu 128~159 est l'IP de destination. Si des options d'IP est employées, c'est le peu 160~191.

La couche 2, couche liaison de données, a 2 couches inférieures. Le cabinet de couche à la couche d'IP est la couche de LLC, ou couche liaison logique. Il n'y a pas simplement un type d'en-tête pour le LLC, mais deux ceux différents.

Le premier type de LLC est une RUPTURE, ou protocole d'accès de sous-réseau. Le deuxième est SAP, ou point d'accès services. Ceux-ci sont définis sous la norme 802.2. Ceux-ci ne sont pas employés pour ce FAQ, et n'ont pas besoin d'être couverts ici. Quelques liens pour plus de lecture sur des en-têtes de LLC :
http://www.google.com/search?sourceid==navclient&ie==UTF-8&q= €2_2E2
http://www.google.com/search?hl==en&lr==&safe==off&q==LLC+Header

L'en-tête final est le MAC, ou couche inférieure de Media Access Control. C'est l'en-tête final supplémentaire sur un paquet avant qu'il ait placé sur le fil. Les 8 premiers bytes, 0~7, est un préambule, un parent alternatif de 1 et 0 pour faire des objets connaître une armature vient. Après le préambule, est l'adresse de destination. C'est le MAC address, ou adresse physique de carte de réseau. Vient après l'adresse de source, ou le MAC address de qui envoie le paquet. Ensuite que vient un champ de longueur encore (excepté des normes de l'Ethernet II, il emploie un TYPE champ) est alors a la charge utile (en-tête y compris de LCC) et toute à l'extrémité de elle, il colle sur un champ de FCS de 4 bytes, ceci est fondamentalement un contrôle de centre de détection et de contrôle de l'armature entière.

Section 2 :
Envoi des données :
NOTE: Pour récapituler ce qui est à l'intérieur de l'en-tête de TCP (couche 4, le transport), il tient les numéros d'accès de source et de destination. Toutes autres données dans l'en-tête ont peu portant sur cet article. L'en-tête d'IP (couche 3, réseau) porte la source et l'IP address de destination. La couche liaison de données, la couche 2, prises le MAC de source et de destination adresse.

Ainsi, maintenant que toutes les couches sont couvertes, que se produit quand un ordinateur parle à un autre ordinateur ? Essayons une simulation.

Section 2a : Envoi à un filet inférieur local
L'information d'installation :

Ordinateur A :
IP address : 192.168.0.200
Subnet mask : 255.255.255.0
Passage de défaut : 192.168.0.1
MAC address : 10-00-00-00

Ordinateur B :
IP address : 192.168.0.205
Subnet mask : 255.255.255.0
Passage de défaut : 192.168.0.1
MAC address : 10-00-00-AA

L'ordinateur A enverra à l'ordinateur B. Après que les données aillent cependant les couches application, les couches sept (7) à cinq (5), elles atteignent la couche transport, où l'en-tête de TCP est fait. En regardant des données des couches application, la couche 4 décide si elle est envoyée utilisant l'UDP ou le TCP. Dans ce cas-ci, nous emploierons le TCP. Après que le TCP soit sélectionné, il doit décider quels numéros d'accès à employer. Le numéro d'accès de destination est décidé par les couches application, par exemple, mettez en communication 80 s'il allait au HTTP. Le port de source est le port que le programme écoutera une réponse. Ce port indique à la couche réseau ce que l'application obtient quel paquet. C'est généralement un nombre aléatoirement produit au-dessus de 1024. Nous sélectionnerons 2020 pour l'enfer de lui. Ainsi le paquet de TCP a des ports 1024 et 2020.

Après il a remis à la couche d'Internet. La première étape, il doit figurer dehors où le paquet va, ainsi il ajoute sur l'IP address de destination. Si l'ordinateur a puis 1 carte de réseau, il doit connaître de quelle carte l'envoyer dessus, ou a besoin pour savoir s'il va envoyer les paquets sur puis une ligne. Puisque nous avons une carte dans cet exemple, l'IP address de source est simple. C'est l'IP address de la carte, 192.168.0.200. Maintenant il y a une dernière chose à découvrir. Ces données vont-elles à un ordinateur sur notre filet inférieur, ou à un filet inférieur différent ?

C'est où nous utilisons le passage de défaut. Si vous employiez a au niveau du bit ET de l'IP de cible, et notre propre subnet mask, vous obtenez 192.168.0.0, qui est le réseau de l'ordinateur de cible. Nous prenons alors notre propre IP address, et notre propre subnet mask, et avons découvert notre réseau par AND'ing encore. Et encore, c'est 192.168.0.0. ainsi nous savons que c'est une adresse locale.

La couche de LLC n'hérite pas le jeu pour ce FAQ, ainsi tandis qu'il est employé, ce n'est pas international couvert son exemple. Tellement maintenant nous employons la couche inférieure de MAC. Le MAC address de source est simple, il a brûlé sur notre carte de réseau. Le MAC address de destination peut être la cloison dure. Nous devons employer arp, Address Resolution Protocol, pour obtenir le MAC address de l'IP address de cible. La première chose, vérifient la cachette d'arp, pour voir si nous la savons déjà. Pour cet exemple, nous dirons que nous ne faisons pas. Ainsi, nous enverrons à tous les ordinateurs sur notre réseau local, et demandons qui a l'IP address de 192.168.0.205. Ceci qui envoie à tous les ordinateurs est connu comme émission. Dans notre cas, l'adresse d'émission est 192.168.0.255. Quand d'autres ordinateurs voient ceci, si les allumettes demandées d'IP address il est de posséder, alors elle répond à l'expéditeur, lui indiquant le MAC address pour l'IP demandé. Notez que l'expéditeur ne peut pas envoyer à l'ordinateur de cible par l'intermédiaire de l'IP address, seulement MAC address. C'est comment presque tous les réseaux fonctionnent, même si ce ne s'appelle pas un MAC address.

Ainsi nous avons maintenant le champ final pour la couche liaison de données, 10-00-00-AA dans la zone réceptrice et 10-00-00-00 dans le domaine de source. Après le paquet sort sur la ligne. Notez qu'il n'est pas envoyé réellement à 10-00-00-AA, la cause en ce moment il est l'électricité. Tous les ordinateurs sur ce segment voient le paquet. Ce secteur est connu comme domaine de collision. (http://www.google.com/search?sourceid==navclient&ie==UTF-8&q==collision+domain) Il a appelé qui parce que si deux dispositifs ou plus envoient immédiatement, les données se heurtent, détruisant tous les deux envoie. C'est également comment les renifleurs de paquet fonctionnent (http://www.google.com/search ? hl==en&lr==&safe==off&q==_2Bhow+_22packet+sniffers_22+work).

Les cartes de réseau regardent les données de la couche 2, et si la zone réceptrice assortit leur MAC address, elles lisent le paquet. Autrement ils l'ignorent juste. Ainsi, dans ce cas-ci, l'ordinateur B indique le paquet, et enlève les données inutiles de la couche 2 de now.

Après, il veille que cet IP address lui est adressé. C'est étape très importante, vous verra pourquoi dans le prochain exemple. Dans ce cas-ci ils s'assortissent, ainsi il sait pour garder le paquet. Ainsi les données de la couche 3 sont décollées, et il n'y a maintenant plus de données d'IP dans l'envoi. Il est allumé à la couche transport, la couche 4.

Sur la couche transport, le TCP vérifie le numéro d'accès de destination, et voit si des programmes détectent à l'oreille ce nombre. Pensez à ceci comme sélectionner un nombre à l'épicerie. Si un programme emploie ce port, alors le paquet lui est remis, et il continue à travers aux couches application. Autrement le paquet est lâché. Et puisque les couches application sont au delà de ce FAQ, c'est la fin de cet exemple.

Couvertures de prochain exemple ce qui se produit si le paquet est envoyé à un ordinateur pas sur notre filet inférieur local.

Section 2b : Envoi aux filets inférieurs non-local

Bien, les données de couche transport, TCP dans le cas, sont traitées exactement les mêmes que l'exemple A. C'est l'IP, la couche 3, qui sait des filets inférieurs. Le TCP n'a pas un indice quel filet inférieur est égal. Ainsi, disons l'ordinateur A envoie à l'ordinateur C :

Ordinateur C
IP address 64.233.161.99
Subnet mask : 255.255.255.255
Passage de défaut :
MAC address : AA-AA-AA-AA

Encore, la couche réseau, la couche 3, trouve d'abord le réseau de la cible, l'ordinateur C, par AND'ing c'est IP address avec le subnet mask de l'ordinateur A et obtient 64.233.161.0 pour l'autre réseau informatique. Il alors ANDs il est de posséder le réseau, et obtient un réseau de 192.168.0.0. Puisque ce n'est pas le même lieu il doit envoyer le paquet en dehors du réseau local. Cela signifie que le paquet est envoyé au passage de défaut.

Ainsi, c'est une étape rusée. Les champs d'IP address restent la même chose. L'IP address de destination est toujours pour l'ordinateur C, 64.233.161.99. Alors il a remis vers le bas à la couche liaison de données. La couche liaison de données sait que ceci va au passage de défaut, et ainsi des contrôles pour le MAC address du passage de défaut. Une fois qu'il l'a, il l'envoie au passage de défaut.

Quand le passage de défaut l'obtient, ce qu'il fait dépend de lui est installé. Un commutateur de base (pas une couche 3.4.8 milliards de commutateur, juste un commutateur) peut seulement envoyer par l'intermédiaire des adresses d'imper. Si c'était un commutateur, et il voyait que le paquet non adressé à lui est de posséder l'IP address, alors il ne pourrait pas faire n'importe quoi avec lui. Un commutateur ne divise pas des domaines d'émission, tellement là n'est aucun point en faisant à un commutateur un passage de défaut. Si un commutateur est entre le passage de défaut et l'expéditeur, alors le commutateur entre dans le jeu. Il lit et jette l'en-tête de liaison de transmission de données, et fait un neuf. L'imper de source est maintenant que du commutateur, et la destination est toujours identique qu'avant, le passage de défaut.

Le passage de défaut peut être un routeur, ou un ordinateur qui agit comme un routeur, ou autre chose, normalement avec le routeur de limite à l'intérieur de lui. Les routeurs travaillent à la couche 3, couche réseau, ceci est où les IP address vivent, se rappelle. Le passage de défaut voit les allumettes de MAC address qu'il est de posséder, et indique le paquet. L'IP address de cible ne l'assortit pas est de posséder, ainsi il sait qu'il doit envoyer le paquet quelque part autrement. Ainsi qu'est-il faire ? Il prend l'IP address de lui est des interfaces (passage doit avoir 2 interfaces, ou il ne va pas faire beaucoup) et de nouveau, il trouve que les réseaux de tous il est des interfaces par anding le filet inférieur pour chaque NIC à l'IP address, et anding l'IP address de destination avec le filet inférieur de la carte de NIC. S'ils s'assortissent, il sait que la cible est à côté de elle, et elle envoie à la cible. Le processus est exactement identique qu'avant, il fait une nouvelle couche transport (en-tête de couche 3) pour assortir le vieil, fait un nouvel en-tête de couche liaison de données au moyen de lui est de posséder le MAC address, et envoie le paquet à la cible.

Et s'il ne va pas à un ordinateur relié au passage ? Bien, il vérifie d'abord la table de cheminement. C'est fondamentalement une carte, d'où envoyer des données. Il indique aux ordinateurs ce que l'interface mène à quels filets inférieurs. Si le tableau de cheminement présente le filet inférieur de cibles, il a envoyé au passage de défaut pour cette interface. Autrement, le routeur "inondera ", ou envoyez-le au passage de défaut sur toutes les interfaces excepté de d'où il est venu. De là, les autres passages de défaut le manipuleront juste comme ce routeur, jusqu'à ce qu'il reçoive le paquet.

Si, dans le cas, c'était une demande de HTTP, alors l'en-tête de réponse sera renvoient, le port de cible sur la réponse sera le port de source (aléatoirement produit) de l'expéditeur original. C'est pourquoi google ne se relie pas à votre port 80. En outre pourquoi vous ne devez pas ouvrir le port 80 sur l'interface EXTÉRIEURE de votre routeur si votre Web juste passant en revue, et n'accueillant pas un site Web.