Datenverkehr/Crash im Netzwerk?

ssound1de

Level-2
Beiträge
351
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wir haben einen Leitrechner auf dem ein VB6 Programm läuft.
Zu diesem VB6 Programm bauen 3 Anlagen (jeweils S7-300 über CP343-1) eine Verbindung auf (TCP unspezifiziert).

Alle Anlagen senden an denselben Port (2001) des Leitrechners.
Kann das unter Umständen zu Problemen führen, wenn z.B. 2 Anlagen gleichzeitig senden?

Danke für Eure Hilfe.
Gruß
 
Das hängt von dem Programm ab was dort läuft.

Theoretisch ist es möglich auf einem Port mehrere Verbindungen anzunehmen, das gleiche macht ja auch jeder Webserver im Internet z.B. auf Port 80.

Wenn bei der Programmierung sicher war dass nur ein Client eine Verbindung aufbauen will, wird man es wahrscheinlich so programmiert haben dass auch nur eine Verbindung verwaltet werden kann. Denn mehrere Clients annehmen zu können ist von der Programmierung her nicht unerheblich aufwändiger. Genaueres kann dir nur derjenige sagen der das programmiert hat.

Wenn er nur einen Client verwalten kann, kann der andere einfach keine Verbindung aufbauen so lange der andere die Verbindung in Beschlag hält.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für Deine Antwort.

Programmiert hab ich selbst - ist eine Socket-Verbindung.
Programmintern werden die Daten über die Socket-ID und Quell-IP verarbeitet. Das funktioniert auch.

Mir geht es eher ums Netzwerk selbst.
Was passiert, wenn 2 Anlagen absolut zeitgleich an den selben Leitrechner-Port senden?
Es ist ja zum Leitrechner hin nur eine Sende- bzw. Empfangsleitung vorhanden.

Wahrscheinlich regeln das die Netzwerkadapter auf einer tieferen Ebene der Netzwerkprotokolls.
Sonst würde es ja ständig Probleme im Datenverkehr.

Nachdem ich jetzt genauer drüber nachdenke, war das wahrscheinlich ne ziemlich doofe Frage. :lol:
 
Bei Ethernet sollte das über die OSI Schicht 2 geregelt sein. CSMA CD (Carrier Sense Multiple Access Collision Detection) heißt ja, das Kollisionen erkannt werden. Zusätzlich kommen dann noch im TCP Protokoll (Layer 4) diverse Mechanismen zum Einsatz, die sicherstellen das die empfangenden Pakete auch korrekt sind.
Ich würde mir da also keine großen gedanken machen, alles was bei dir im Programm ankommt wurde schon diverse male auf Richtigkeit geprüft.
 
Nachdem ich jetzt genauer drüber nachdenke, war das wahrscheinlich ne ziemlich doofe Frage.

noch eine Info - passend zu deiner doofen Frage

TCP/IP ist Stream orientiert d.h. deine Pakete können auch problemlos in mehreren kleinen Happen reintrudeln - oder erwartest du einfache eine feste Länge?
 
Ja... zwar mehrere unterschiedlich lange Blöcke, diese aber in jeweils definierter Länge.
Z.B. Temperaturwerte 20 Bytes; Heizkurven 100 Bytes usw.

Auch solche Block-Angaben bedeuten noch nicht zwingend, dass das im Netz als jeweils ein Paket verschickt wird. Und absolut zeitgleich wird da nix verschickt. Das mögen die einzelnen Netzwerk-Teilnehmer zwar vielleicht wollen, aber wie MasterOhh schon schrieb, wird das durch CSMA CD verhindert. Das bekommt der Nutzer im Normalfall gar nicht mit.
Hast Du denn aktuell Probleme, oder befürchtest Du nur, dass es welche geben könnte?
 
Bei Ethernet sollte das über die OSI Schicht 2 geregelt sein. CSMA CD (Carrier Sense Multiple Access Collision Detection) heißt ja, das Kollisionen erkannt werden.

Nur mal am Rande, mit Switchen spielt CSMA/CD kein Rolle mehr:

http://de.wikipedia.org/wiki/Carrier_Sense_Multiple_Access/Collision_Detection
CSMA/CD ist der Sicherungsschicht des OSI-Modells zuzuordnen. Es wird von der Ethernetschnittstelle (z. B. Netzwerkkarte) durchgeführt, soweit diese im Halbduplex-Modus betrieben wird. Durch Konfiguration der Schnittstelle in den Vollduplex-Modus wird CSMA/CD abgeschaltet. Somit kann die Schnittstelle gleichzeitig senden und empfangen. Kollisionen müssen dabei verhindert werden, indem nur zwei Stationen dasselbe Übertragungsmedium nutzen können. Dies kann z. B. durch den Einsatz eines Switches erreicht werden. Dann können pro Segment oder Kollisionsdomäne zwei Knoten (Stationen) im Duplex-Betrieb aktiv sein, ohne dass es zu Kollisionen kommt.

Unabhängig davon wird in beiden Fällen die Übergabe Layer x > Layer y "der Reihe nach" erfolgen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du denn aktuell Probleme, oder befürchtest Du nur, dass es welche geben könnte?

Probleme gibt es aktuell keine. War eher eine Befürchtung.
Die 3 Anlagen die mit dem VB6-Prog Verbindung aufnehmen, kamen ursprüglich über TTY/RS232 (über eine 8-fach RS232 Karte) rein.
Die Anlagen hatten S5-SPSen, 2 davon wurden auf S7 umgerüstet und der Datentransfer damit gleichzeitig auf Ethernet umgestellt (mittels CP343-1).
Die 3te Anlage wird wohl in den nächsten Monaten auf S7 umgerüstet. Damit kommt ein weiterer Ethernet-Zugriff auf das VB6-Prog zu.
Ich wollte nur vorher abklären, ob es in so einer Konstellation (alle senden auf Port 2001) zu Problemen kommen könnte.

Danke und Gruß.
 
Wenn du sagst das alle drei Anlagen an den selben Port senden dann stimmt das so nicht ganz. Für den PC sind das drei eigenständige Verbindungen. Alle drei Anlagen bauen eine Verbindung über den selben Port auf, letzten Endes müsstest du aber auf den CP´s sehen können das die drei Verbindungen von verschiedenen Ports des PC´s gehalten werden. Das passt so, mach dir keinen Kopf.
 
Zurück
Oben