tcp buffer, oder stack?
-
Hallo,
Erstmal entschuldigung, aber vielleicht sind die lowlevel-typen nicht im linux/unix forum unterwegs. Ich bin mir sicher, dass dies jemand hier weiss. Meine Fragen:
Ich habe das englische stevens book, und da wird immer was von einem Buffer gefüllt und von geleert geredet. Mein englisch ist nicht der hammer, aber man soll ja zuversichtlich sein und es als Chance sehen praxis zu üben
Soweit ich das verstanden habe, ist das mit einem Container vergleichbar, der 4096 Bytes halten kann, und der wird z.b. während dem senden gefüllt, und erst verschickt wenn er voll ist. Dann wird der Buffer-Container geleert und neu gefüllt. Das selbe geschieht auch beim read Vorgang.
Meine erste Frage: stimmt das?
Meine zweite Frage: Ist das der sende/empfangs-puffer, oder irgend ein stack?Danke, Leute!!!
euer Anfänger008
-
willst du uns verarschen? den thread hast du schon im linux forum gepostet! und mit assembler hat das ja wohl überhaupt nichts zu tun.
-
Anfänger008 schrieb:
Ich habe das englische stevens book,
ist das dieses 'tcp/ip illustrated'?
Anfänger008 schrieb:
Soweit ich das verstanden habe, ist das mit einem Container vergleichbar, der 4096 Bytes halten kann, und der wird z.b. während dem senden gefüllt, und erst verschickt wenn er voll ist. Dann wird der Buffer-Container geleert und neu gefüllt.
ein buffer ist einfach nur ein (RAM)speicherbereich und etwas logik dazu, um ihn zu füllen und irgendwie zu verarbeiten. in der netzwerktechnik benutzt man buffer z.b. um pakete zwischen den protokollschichten herumzureichen. dieses herumreichen geschieht dann z.b. über einen zeiger auf den buffer.
Anfänger008 schrieb:
Meine zweite Frage: Ist das der sende/empfangs-puffer, oder irgend ein stack?
ob ein buffer als 'stack' oder anders benutzt wird, hängt von den zugehörigen zugriffsfunktionen ab. sende/empfangsbuffer sind aber meistens keine stacks sondern einfacher azfgebaut. sie werden von einer seite befüllt und wenn sie voll sind (oder ein timeout abgelaufen ist) dann werden sie an die nächst höhere (oder tiefere) protokollschicht geschickt...
peng schrieb:
willst du uns verarschen? den thread hast du schon im linux forum gepostet! und mit assembler hat das ja wohl überhaupt nichts zu tun.
ich hab' die antworten im linux(welch hässliches wort)-forum gesehen. an seiner stelle hätt ich auch 'nen thread in 'nem anderen forum aufgemacht...
-
Danke net,
Nein, unix netzwerk programmierung.
Das was du eben geschrieben hast (ausser dem Stack) ist mir schon klar. Aber ich frag mich ob der ERST gesendet/empfangen wird, wenn der buffer voll ist, oder auch wenn er halbvoll ist.
Danke, Anfänger008
-
Anfänger008 schrieb:
Aber ich frag mich ob der ERST gesendet/empfangen wird, wenn der buffer voll ist, oder auch wenn er halbvoll ist.
das ist unterschiedlich. bei ethernet z.b. haben die pakete eine variable länge (irgendwas zwischen 30 und 1536 bytes etwa). die netzwerksoftware muss immer einen kompromiss eingehen. kleine pakete für gute reaktionszeiten und grosse pakete für einen guten durchsatz. bei 'nem filetransfer z.b. werden die pakete möglichst voll gemacht und bei 'nem chat-programm sind's viele kleine pakete...
-
ahso. Danke net, das scheint also immer einwenig anders zu sein. Wird über das Internet eigentlich auch zuerst ein sog. ARP Request gemacht, oder nur im internen LAN?
Anfänger008
-
Anfänger008 schrieb:
Wird über das Internet eigentlich auch zuerst ein sog. ARP Request gemacht, oder nur im internen LAN?
arp braucht man um aus protokolladressen hardware-adressen zu machen (also ip nach eth). weil das internet sowieso schon ip-basiert ist, braucht man's da nicht.
-
Danke net, das waren immer so Dinge die mir nie klar waren. Es gibt ja noch out-of-bound data, kann ich mir das wie ein Rucksack vorstellen, mal angenommen ein packet hat noch ein rucksack, wo ich speichern kann whatever ich will?
Anfänger008
PS: Deine Signatur find ich cool.
-
guckst du: http://www.galileocomputing.de/openbook/kit/itkomp13002.htm
...und such' nach 'tcp urgent data'
-
danke, das ist demfall ein sehr kleiner Rucksack
