Forum: PC-Programmierung Linux Distribution für Netzwerkprogammierung


von M. G. (sirmel)


Lesenswert?

Hallo zusammen,

Ich suche eine Linux Distribution die sich gut für 
Netzwerkprogrammierung eignet. Sprich ich würde gerne kleine Anwendungen 
(z.B. Server-Client) selber schreiben, das ganze möglichst Hardwarenahe, 
so dass ich quasi die Ethernet-Pakete selber aufbauen muss. Ich bin 
jetzt auf Gentoo gestoßen, hat da jemand von euch schon Erfahrungen mit? 
Oder kennt vielleicht ein gutes Tutorial (auch mit einer anderen 
Distribution) wo man sich gut in das Thema einarbeiten kann? Hoffe ich 
habe verständlich genug geschrieben;)

LG

von Peter II (Gast)


Lesenswert?

für diesen zweck ist die disti eigentlich absolut egal. Du brauchst nur 
den GCC zu installieren und kannst loslegen.

Aber warum du die packete selber zusammenbauen willst, versteht ich 
nicht. Aber dafür gibt es den RAW socket.

von ..,- (Gast)


Lesenswert?

Unsere Netzwerker fahren total auf FreeBSD ab ... zwar kein Linux ... 
aber nuja

von imonbln (Gast)


Lesenswert?

Bis jetzt gibt es keine Einschränkung der Linux Distribution.
Nimm die welche dir am besten liegt. Gentoo ist gut schnell perfekt.
Leider ist hier Lernschwelle ziemlich Hoch denn du must dir das ganze 
erst sleber Kompilieren. Das Kostet Zeit und Nerven. Der Preis ist eine 
Distri wie du dir sie Wünscht.


Wichtiger sind wohl eher die Tools welche deine Linux Distri hat.
Raw Socket wurden dir als Tipp schon gegeben. Libpcap und Libnet
sind ggf. zwei Weiter welche du dir ansehen solltest.

von M. G. (sirmel)


Lesenswert?

Hey, super vielen Dank für die schnelle Antworten. Also Raw-Socket ist 
eigentlich genau das was ich gesucht habe. Wenn ich das richtig 
verstanden habe kann ich also jede Distribution nehmen, muss dann nur 
die entsprechenen Header Dateien einbinden, wie z.B. diese,
1
#include <net/ethernet.h>
2
#include <netinet/ip.h>
3
#include <netinet/tcp.h>

wenn ich mir mein Paket komplett selber zusammenbasteln will. Der 
Hintergrund ist ganz einfach der, dass ich grade dabei bin einen 
AVR-Webserver zu basteln, naja mein ATMEGA32 ist jetzt aber vom Speicher 
voll, ich hab aber noch viele Ideen die ich gerne mal ausprobieren 
würde, da bietet sich dann natürlich ein PC eher an, auch in Hinsicht 
auf Geschwindigkeit etc. Außerdem interessieren mich die ganzen Basics 
des Networkings.

Also Gentoo hat den Nachteil dass ich mir das komplett selber 
konfigurieren muss richtig? Habe zwar grundlegende Erfahrungen mit 
Linux, mehr aber auch nicht.
FreeBSD kann ich mir quasi direkt installieren ohne dass ich groß was 
einrichten muss. Ist wahrscheinlich die bessere Alternative.

Etwas doofe Frage vllt, wisst ihr wie das mit Wireshark aussieht? Kann 
ich das in FreeBSD/Gentoo verwenden? Benutze das gerne um meine 
Ein-Ausgabe zu kontrollieren.

von M. G. (sirmel)


Lesenswert?

Naja nicht wenn ich ARP Pakete verschicken will:)

von Peter II (Gast)


Lesenswert?

M. G. schrieb:
> Naja nicht wenn ich ARP Pakete verschicken will:)

klar, wenn du ein UDP Packet verschickst, dann senden der PC auch ein 
ARP packet.

von Marc (gierig) Benutzerseite


Lesenswert?

M. G. schrieb:
> Etwas doofe Frage vllt, wisst ihr wie das mit Wireshark aussieht? Kann
> ich das in FreeBSD/Gentoo verwenden? Benutze das gerne um meine
> Ein-Ausgabe zu kontrollieren.

Doofe Antwort..
http://www.wireshark.org/download.html

Ja klar, aber warum schaust du nicht selber nach ?

von M. G. (sirmel)


Lesenswert?

@Marc D.
Danke, hatte schon geschaut, war mir aber nicht sicher.

@Peter II
Ich möchte mir halt die Möglichkeit offen haben das Paket ganz von 
"vorne" aufzubauen, sprich Sender und Receiver MAC etc.. Da ich ja bei 
TCP nur noch die IP und Port etc. angebe hab ich da nicht mehr die 
Möglichkeit dazu.

von Peter II (Gast)


Lesenswert?

M. G. schrieb:
> @Peter II
> Ich möchte mir halt die Möglichkeit offen haben das Paket ganz von
> "vorne" aufzubauen, sprich Sender und Receiver MAC etc.. Da ich ja bei
> TCP nur noch die IP und Port etc. angebe hab ich da nicht mehr die
> Möglichkeit dazu.

Aber warum ist doch die Frage? Da könnstest du auch gleich anfangen der 
Kernel und den Netzwerktreiber selber zu programmieren. Warum nicht 
einfach dinge verwenden ist schon funktionieren? UDP ist schon fertig 
und würde dafür gehen.

von M. G. (sirmel)


Lesenswert?

M.G. schrieb:
>ich hab aber noch viele Ideen die ich gerne mal ausprobieren
>würde, da bietet sich dann natürlich ein PC eher an, auch in Hinsicht
>auf Geschwindigkeit etc. Außerdem interessieren mich die ganzen Basics
>des Networkings.

Den Webserver habe ich auch von 0 aufgebaut, klar gibts da zig Codes im 
Internet die ich einfach kopieren kann aber dadurch versteh ich den Code 
auch nicht besser oder;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.