Was ist der Unterschied zwischen einem port und eine Buchse?
Dies war eine Frage von einem der software-Ingenieure im Unternehmen. Ich bin interessiert in der weitesten definition.
Nur zu wiederholen, sockets sind nicht beschränkt auf Netzwerk-IO. Sie sind erhältlich in allen möglichen Situationen für das streaming von Daten zwischen verschiedenen Anwendungen.
InformationsquelleAutor Richard Dorman | 2008-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zusammenfassung
Ein TCP-socket ist ein Endpunkt Instanz definiert durch eine IP-Adresse und einen port in den Kontext eines bestimmten TCP-Verbindung oder den Wartezustand.
Ein port ist eine Virtualisierung Kennung Definition einer service-Endpunkt (als Verschieden von einem service Instanz Endpunkt aka session-id).
Ein TCP-socket ist nicht eine Verbindung, es ist der Endpunkt einer bestimmten Verbindung.
Kann es gleichzeitigen verbindungen zu einem service-endpoint, da eine Verbindung identifiziert wird, die von sowohl Ihre lokalen und remote - Endpunkte, da der Datenverkehr geroutet werden, um einen bestimmten service-Instanz.
Es kann nur einen listener-socket-für eine gegebene Adresse/port-Kombination.
Exposition
Dies war eine interessante Frage, die mich Zwang, erneut zu prüfen, eine Reihe von Dinge, die ich dachte, ich in-und auswendig kannte. Sie würden denken, dass ein name wie "Steckdose" wäre selbsterklärend: es wurde offensichtlich gewählt, um zu evozieren die Bilder von dem Endpunkt, in die Sie stecken Sie ein Netzwerkkabel, dass es starke funktionale parallelen. Dennoch, im Netz-Jargon das Wort "sockel" trägt so viel Gepäck, dass eine sorgfältige re-Untersuchung ist nicht erforderlich.
Im weitesten Sinn, ein port ist ein Punkt, der ingress-oder egress. Obwohl nicht im Netzwerk-Kontext, das französische Wort porte bedeutet wörtlich Tür oder Tor, weitere Betonung der Tatsache, dass die ports sind Transport-Endpunkte ob Sie versenden Daten oder großen Stahl-Container.
Für die Zwecke dieser Diskussion werde ich limit Berücksichtigung der Kontext der TCP-IP-Netzwerke. Das OSI-Modell ist sehr gut, hat aber nie vollständig umgesetzt, viel weniger verbreiteten Einsatz in high-traffic-high-stress-Bedingungen.
Die Kombination aus IP-Adresse und ein port ist streng bekannt als Endpunkt und wird manchmal als eine Steckdose. Diese Verwendung stammt aus dem RFC793, die ursprüngliche TCP-Spezifikation.
TCP Verbindung ist definiert durch zwei Endpunkte aka sockets.
Einen Endpunkt (socket) ist definiert durch die Kombination einer Netzwerkadresse und einer port Bezeichner. Beachten Sie, dass die Adresse/port funktioniert nicht völlig identifizieren a-Buchse (dazu später mehr).
Zweck der ports zur Unterscheidung mehrerer Endpunkte auf einem bestimmten Netzwerk-Adresse. Man könnte sagen, dass ein port ist eine virtualisierte endpoint. Diese Virtualisierung ermöglicht mehrere gleichzeitige verbindungen auf einem einzelnen Netzwerk-interface möglich.
In den meisten C abgeleiteten Sprachen, TCP-verbindungen hergestellt werden und bearbeitet mit Methoden, die auf eine Instanz der Socket-Klasse. Obwohl es üblich ist, arbeiten auf einer höheren Ebene der Abstraktion, in der Regel eine Instanz der NetworkStream-Klasse, dieser Regel stellt einen Verweis auf ein socket-Objekt. Der coder dieses socket-Objekt wird zur Darstellung der Verbindung, da die Verbindung erstellt und bearbeitet mit Methoden der socket-Objekt.
In C#, um eine TCP-Verbindung (zu einem vorhandenen listener) erstellen Sie zuerst eine TcpClient. Wenn Sie nicht geben Sie einen Endpunkt an der TcpClient Konstruktor verwendet es Standardeinstellungen - die eine oder andere Weise die lokalen Endpunkt definiert ist. Dann rufen Sie die Verbinden
Methode auf der Instanz, die Sie erstellt haben. Diese Methode benötigt einen parameter beschreiben, der andere Endpunkt.
All dies ist ein wenig verwirrend und führt Sie zu glauben, dass ein socket ist eine Verbindung, die ist Mist. Ich war labouring unter dieser Irrtum bis Richard Dorman die Frage stellen.
Getan zu haben, viel zu Lesen und zu denken, ich bin jetzt überzeugt, dass es viel mehr Sinn, eine Klasse TcpConnection mit einem Konstruktor, der zwei Argumente nimmt, LocalEndpoint und RemoteEndpoint. Sie könnte wahrscheinlich die Unterstützung einer einzigen argument RemoteEndpoint, wenn Standardeinstellungen sind akzeptabel für den lokalen Endpunkt. Das ist zwiespältig, die auf mehrfach vernetzten Computern, aber die Mehrdeutigkeit kann aufgelöst werden, unter Verwendung der routing-Tabelle durch die Auswahl der Schnittstelle mit dem kürzesten Weg an den remote-Endpunkt.
Klarheit würde verbessert, auch in anderen Belangen. Ein socket ist nicht, gekennzeichnet durch die Kombination von IP-Adresse und port:
Wie Sie sehen können, ist es nicht nur möglich, sondern sehr wahrscheinlich für einen Netzwerk-Dienst mit zahlreichen sockets mit der gleichen Adresse/- port, sondern nur ein listener-socket an eine bestimmte Adresse/port-Kombination. Typische Bibliothek Implementierungen vorhanden eine socket-Klasse, eine Instanz, die verwendet wird zum erstellen und verwalten einer Verbindung. Dies ist äußerst bedauerlich, da es zu Verwirrung und führen zu weit verbreiteten Vermischung der beiden Konzepte.
Hagrawal glaube nicht, dass man mich (siehe Kommentare) hier also eine echte Probe. Ich mit einem web-browser zu http://dilbert.com und lief dann
netstat -an -p tcp
. Die letzten sechs Zeilen der Ausgabe enthält zwei Beispiele für die Tatsache, dass die Adresse und der port sind nicht genug, um eindeutig zu identifizieren, eine Steckdose. Es gibt zwei verschiedene verbindungen zwischen 192.168.1.3 (meine Arbeitsstation) und 54.252.94.236:80 (der remote-HTTP-server)Da ein socket ist der Endpunkt einer Verbindung, gibt es zwei buchsen mit der Adresse/port-Kombination
207.38.110.62:80
und zwei weitere mit der Adresse/port-Kombination54.252.94.236:80
.Ich denke Hagrawal das Missverständnis entsteht aus meiner sehr sorgfältigen Umgang mit dem Wort "identifiziert". Ich meine, "vollständig, eindeutig und eindeutig identifiziert". In dem obigen Beispiel gibt es zwei Endpunkte, die mit der Adresse/port-Kombination
54.252.94.236:80
. Wenn alle Sie haben, ist Adresse und port, die Sie nicht über genügend Informationen, um sagen, diese sockets auseinander. Es ist nicht genügend Informationen, um identifizieren eine Steckdose.Nachtrag
Absatz zwei des § 2.7 der RFC793 sagt
Diese definition von socket ist nicht hilfreich, Programmierung Sichtweise, denn es ist nicht das gleiche wie ein socket Objekt, das ist der Endpunkt einer bestimmten Verbindung. Für einen Programmierer, und die meisten dieser Frage der Zielgruppe sind Programmierer, dies ist ein wichtiger funktioneller Unterschied.
Referenzen
TCP-IP Illustrated-Volume 1 Die Protokolle, W. Richard Stevens, 1994 Addison-Wesley
RFC793, Information Sciences Institute, University of Southern California für die DARPA
RFC147, Die Definition von a-Buchse, Joel M. Winett, Lincoln Laboratory
Ich habe nicht abgestimmt, weil ich nicht einverstanden mit dieser Aussage - "A-Buchse ist nicht gekennzeichnet durch die Kombination von IP-Adresse und port:" .. Lesen Sie TCP RFC - tools.ietf.org/html/rfc793 .. Es ist sehr klar, dass der socket ist die Kombination von IP und port, wenn Sie wissen, IP und port, dann haben Sie identifiziert, die eine socket-oder Endpunkt, wenn Sie wissen, paar-Buchse D. H. client-IP+port und server-IP+port, dann haben Sie identifiziert eine einzigartige Verbindung ..
"In dem obigen Beispiel gibt es zwei Endpunkte, die mit der Adresse/port-Kombination 54.252.94.236:80. Wenn alle Sie haben, ist Adresse und port, die Sie nicht über genügend Informationen, um sagen, diese sockets auseinander. Es ist nicht genügend Informationen, um einen socket zu identifizieren." Sind das nicht die gleichen Fassungen, aber verschiedene verbindungen, die zwischen den beiden verbindungen, die Sie haben, 3 Steckdosen, 2 einheimischen und einem gleichen server-socket verbunden ist, oder sind Sie in der Tat zwei verschiedene Steckdosen? Es wäre nicht zu sagen, Sie auseinander, weil Sie dasselbe sind, aber zu sagen, die verbindungen auseinander Sie würden müssen die verschiedenen lokalen sockets.
-1 Ihre Antwort ist schlicht und einfach falsch. Sie: "Ein TCP-socket ist Endpunkt einer Verbindung." RFC 793: "ein socket kann gleichzeitig verwendet werden mehrere verbindungen." Ich bin mir nicht sicher, welche Bibliotheken Sie verwenden, aber in Bibliotheken, die ich verwendet habe, socket-Objekte eindeutig definiert durch eine IP-Adresse und port und hervorgebracht haben Verbindungsobjekte für jeden remote-Buchse.
Die Zusammenfassung hier ist gut, und es ist klar Sie die Probleme verstehen. Die Ausstellung, Beispiel, und dieser Kommentar-Diskussion sind umständlich und könnte verbessert werden, indem die Klärung der Unterschied zwischen dem Aufbau einer Verbindung und Daten-übertragung auf eine bereits bestehende Verbindung. Ich denke, dass ist der wichtigste Punkt des Anstoßes/Verwirrung hier. Ein socket ist empfangsbereit ist eindeutig gekennzeichnet durch die IP & port-Nummer. Nur eine Verbindung braucht eine remote-IP & port auf demux.
InformationsquelleAutor
Einem sockel besteht aus drei Elementen:
Ein port ist eine Zahl zwischen 1 und 65535 bedeutet logische Gatter in einem Gerät.
Jede Verbindung zwischen einem client und server benötigt eine eindeutige socket.
Beispiel:
Nein, wieder. Finden Sie die ausgewählte Antwort für weitere Informationen.
Es ist in den IP-header. Was macht Sie denken, dass die TCP-Schicht kann nicht sehen, dass?
wie ich sehen kann, in der am meisten gewählte Antwort oben, dass ein socket ist NICHT die Verbindung selbst, aber es ist der Endpunkt einer Verbindung dann wie es kommen sowohl lokale und remote-ports und ip-Adressen. Ein socket wird stellen nur eine Seite der Verbindung, d.h. entweder der lokale port und die lokale ip-Adresse ODER den remote-port und remote-ip-accress. Freundlicherweise korrigiert mich wenn ich falsch bin.
Noch RFC 793 : "Ein paar Steckdosen eindeutig identifiziert jede Verbindung. Das heißt, dass ein socket kann gleichzeitig in mehrere verbindungen." Wenn ein sockel bereits Bestand aus fünf Dinge, die, wie könnte es auch" ein paar Steckdosen" in meinem Zitat?
InformationsquelleAutor RT_
A-Buchse stellt eine einzelne Verbindung zwischen zwei Netzwerk-Anwendungen. Diese beiden Anwendungen nominell auf verschiedenen Computern ausgeführt, aber die Steckdosen können auch verwendet werden für die Kommunikation zwischen Prozessen auf einem einzelnen computer. Anwendungen können mehrere sockets für die Kommunikation mit allen anderen. Sockets sind bidirektional, was bedeutet, dass jede Seite der Verbindung ist in der Lage, beide senden und empfangen von Daten.
Daher wird ein socket erstellt werden kann theoretisch auf jeder Ebene des OSI-Modells ab 2 aufwärts. Programmierer verwenden oft sockets im Netzwerk-Programmierung, wenn auch nur indirekt. Programmier-Bibliotheken wie Winsock ausblenden viele der low-level-details der socket-Programmierung. Sockets wurden in weit verbreiteten Einsatz seit den frühen 1980er Jahren.
Ein port stellt einen Endpunkt oder als "Kanal" für die Kommunikation im Netz. Port-Nummern erlauben, verschiedene Anwendungen auf dem gleichen computer zu nutzen Netzwerk-Ressourcen, ohne sich gegenseitig zu stören. Port-Nummern, die am häufigsten erscheinen in den Netzwerk-Programmierung, insbesondere socket-Programmierung. Manchmal, wenn Sie die port-Nummern werden sichtbar gemacht, um den casual-Nutzer. Zum Beispiel, einige Websites eine person besucht, die auf dem Internet verwenden Sie eine URL wie die folgende:
http://www.mairie-metz.fr:8080/ In diesem Beispiel die Nummer 8080 bezieht sich auf die verwendete Portnummer der Web-browser eine Verbindung zum Web-server. Der Regel, eine Web-site verwendet die port-Nummer 80, und diese Zahl müssen nicht einbezogen werden mit der URL (obwohl es sein kann).
In IP-Adressen, port-Nummern, kann theoretisch im Bereich von 0 bis 65535. Die beliebtesten Netzwerk-Anwendungen, obwohl, verwenden Sie port-Nummern am unteren Ende der Skala (z.B. 80 für HTTP).
Hinweis: Der Begriff port bezieht sich auch auf mehrere andere Aspekte der Netzwerk-Technologie. Ein port kann beziehen sich auf einen physischen Anschluss für Peripheriegeräte wie serielle, parallele und USB-ports. Der Begriff Schnittstelle bezieht sich auf bestimmte Ethernet-Verbindung Punkte, wie einen hub, switch oder router.
ref http://compnetworking.about.com/od/basicnetworkingconcepts/l/bldef_port.htm
ref http://compnetworking.about.com/od/itinformationtechnology/l/bldef_socket.htm
Eine Schaltung ist eine Verbindung - ein socket ist ein Endpunkt. Eine Verbindung besteht aus 2 buchsen.
InformationsquelleAutor Galwegian
Mit einigen Analogie
Zwar eine Menge technischen Kram, ist bereits oben gegeben für sockets...
Hinzufügen möchte ich, dass meine Antwort nur für den Fall, wenn jemand immer noch nicht fühlen konnte den Unterschied zwischen ip, port und sockets
Betrachten Sie einen server S,
und sagen person X,Y,Z brauchen eine service - (sagen-chat-service) aus, dass server S
dann
IP-Adresse sagt --> wer? ist, dass der chat-server 'S', dass X,Y,Z wollen, Kontaktieren Sie
okay, du hast "wer ist der server"
nehme aber an, dass server 'S" bietet andere Dienste an anderen Menschen auch,sagen 'S' bietet storage-services zu person A,B,C
dann
Hafen erzählt ---> die? service Sie (X,Y,Z) brauchen also chat-Dienst und nicht-storage-service
okay.. Sie machen die server zu kommen, um zu wissen, dass "service-chat" ist, was Sie wollen und nicht die Lagerung
aber
sind Sie drei und die server identifizieren möchten, die alle drei unterschiedlich
kommt die Buchse
nun socket erzählt--> welche? insbesondere die Verbindung
die, sagen wir ,
Buchse 1 für person X
Buchse 2 für person Y
und Buchse 3 für person Z
Ich hoffe es hilft jemanden, der war immer noch verwirrt
🙂
InformationsquelleAutor eRaisedToX
Firsty, ich denke, wir sollten beginnen mit ein wenig Verständnis dafür, was immer ein Paket von A nach B.
Einer gemeinsamen definition für ein Netzwerk ist die Verwendung der OSI-Modell trennt ein Netzwerk in eine Anzahl von Schichten je nach Zweck. Es gibt ein paar wichtige diejenigen, die wir hier behandeln:
TCP enthält, unter anderem, das Konzept der ports. Diese sind effektiv verschiedene Daten-Endpunkte auf der gleichen IP-Adresse, um eine Internet-Socket (
AF_INET
) binden können.Wie es geschieht, so ist auch UDP, und andere transport-layer-Protokolle. Sie nicht technisch müssen des feature-ports, aber diese ports bieten eine Möglichkeit für mehrere Anwendungen in den Schichten über den gleichen computer zu erhalten, (und zwar) für ausgehende verbindungen.
Was bringt uns die Anatomie eines TCP-oder UDP-Verbindung. Jedes Zimmer verfügt über einen source-port und-Adresse und Ziel-port und-Adresse. Dies ist so, dass in einer bestimmten Sitzung, die Ziel-Anwendung reagieren kann, sowie von der Quelle.
Also die ports sind im wesentlichen eine Spezifikation vorgeschriebenen Weise ermöglicht mehrere gleichzeitige verbindungen, welche die gleiche Adresse.
Nun, wir müssen schauen, wie Sie die Kommunikation von einer Anwendung Sicht auf die Außenwelt. Um dies zu tun, müssen Sie bitte Ihr Betriebssystem und da die meisten Betriebssysteme unterstützen die Berkeley-Sockets Art, die Dinge, die wir sehen, können wir erstellen von sockets mit ports für eine Anwendung wie diese:
Toll! So in der
sockaddr
Strukturen, wir geben unserem Hafen und bam! Fertig! Naja, fast, außer:ist auch möglich. Uff, das wirft einen Schraubenschlüssel in die Werke!
Ok, naja, eigentlich ist es noch nicht. Alles, was wir tun müssen, ist zu kommen mit einigen entsprechenden Definitionen:
/var/run/database.sock
.Voila! Das räumt die Dinge. Also in unserem Schema dann,
Also wirklich ein port ist eine Teilmenge der Anforderungen für die Bildung einen internet-socket. Leider, es passiert einfach so, dass die Bedeutung des Wortes " sockel wurde angewandt, um verschiedene Ideen. Also ich wärmstens empfehlen, Sie nennen Ihr Nächstes Projekt-Buchse, nur um die Verwirrung 😉
Sehr schöne Einführung in tcp-ip und Netzwerk-Kommunikation. Anfänger, zuerst Lesen.
InformationsquelleAutor
Einen socket = IP-Adresse + port (numerische Adresse)
Zusammen Sie identifizieren, eine end-Punkt für eine Netzwerk-Verbindung auf einem Computer. (Habe ich nur flunk-Netzwerk 101?)
Und die Steckdosen sind nicht nur unter den TCP/IP-stack. Sehen Sie in den UNIX-domain-sockets oder inter-Prozess-Kommunikation sockets im Allgemeinen.
InformationsquelleAutor Gishu
In der Regel erhalten Sie viele theoretische, aber eine der einfachsten Möglichkeiten, um zu unterscheiden, diese beiden Begriffe wie folgt:
Um einen service Sie brauchen eine service-Nummer. Diese service-Nummer genannt ist ein Hafen. So einfach ist das.
Beispielsweise die HTTP als Dienst läuft auf port 80.
Nun, viele Menschen können die service-Anfrage und eine Verbindung von client-server etabliert hat. Es wird eine Menge von verbindungen. Jede Verbindung repräsentieren einen client. Um jede Verbindung, erstellt der server einen socket pro Verbindung, um an seinen client.
Genial. Der einfachste Weg, um eine Berg-Kenntnisse.
Ich bin nicht sicher, ob Ihre Aussage: "der server erstellt socket pro Verbindung zu pflegen, es ist client" ist richtig.
Dann schlage ich vor, Sie schauen Sie. Speziell, siehe Mann akzeptieren.
Dies bedeutet, dass für jede Steckdose, die der server erstellt pro Verbindung, um an seinen client den gleichen port (z.B. port 80 für HTTP-verbindungen Fortsetzung), aber mit verschiedenen IP-Adresse des clients, die die Anforderungen für verbindungen gesendet werden. richtig?
InformationsquelleAutor kta
Scheint es eine Menge Antworten Gleichsetzung Buchse mit der Verbindung zwischen 2 PC ' s..ich denke das ist absolut falsch. Eine Steckdose hat immer den Endpunkt auf 1 PC, das kann oder kann nicht angeschlossen werden - sicherlich haben wir alle verwendeten Hörer-oder UDP-sockets* an einem gewissen Punkt. Der wichtige Teil ist, dass es ansprechbar und aktiv. Senden Sie eine Nachricht an 1.1.1.1:1234 wird wahrscheinlich nicht funktionieren, da es keine Buchse definiert, die für diesen Endpunkt.
Sockets sind Protokoll-spezifisch - also die Umsetzung der Einzigartigkeit, dass beide TCP/IP und UDP/IP verwendet* (IP-Adresse:port), ist anders als zB., IPX (Netzwerk -, Knoten -, und...ähem, socket - aber eine andere Buchse als gedacht, durch die Allgemeine, die "socket" - Begriff. IPX-socket-Nummern sind äquivalent zu IP-ports). Aber, Sie alle bieten eine einzigartige adressierbaren Endpunkt.
Da IP hat sich zum dominanten Protokoll, port in networking-Bedingungen) geworden ist gleichbedeutend mit entweder UDP-oder TCP-port-Nummer - das ist ein Teil der socket-Adresse.
UDP ist connection-less - Bedeutung keine virtuelle Verbindung zwischen 2 Endpunkten, die jemals geschaffen. Jedoch, wir immer noch auf UDP-sockets als Endpunkt. Die API-Funktionen machen es klar, dass beide nur verschiedene Art von Steckdosen -
SOCK_DGRAM
ist UDP (nur Nachricht senden) undSOCK_STREAM
ist TCP (erstellen einer virtual circuit).Technisch ist der IP-header enthält die IP-Adresse und das Protokoll oben auf IP (UDP oder TCP) hält die port-Nummer. Dies macht es möglich, dass andere Protokolle (zB. ICMP , dass keine port-Nummern, haben aber IP-Adressierung Informationen).
InformationsquelleAutor Mark Brackett
Kurze Antwort.
Einen port kann beschrieben werden als eine interne Adresse innerhalb eines host identifiziert ein Programm oder Prozess.
Einen Buchse kann beschrieben werden als eine programming interface, dass ein Programm zur Kommunikation mit anderen Programmen oder Prozessen auf das internet, oder lokal.
So Könnten wir sagen :Sockets läuft in Anschlüssen ? oder Ports läuft im Sockel ?
Wir können nicht sagen, dass entweder sockets oder ports überhaupt läuft, geschweige denn, eine innerhalb der anderen. Unklar ist, was Sie gefragt haben.
InformationsquelleAutor Andy
Sie sind Begriffe aus zwei verschiedenen Domänen: 'port' ist ein Konzept von TCP/IP-Netzwerk, den 'sockel' ist eine API (Programmier -) Sache. Einen "sockel" gestellt (im-code), indem Sie einen port und einen Hostnamen oder Netzwerk-adapter und die Kombination von Ihnen in einer Daten-Struktur, die Sie verwenden können, um Daten senden oder empfangen.
InformationsquelleAutor Roel
Nach der Lektüre der hervorragenden bis-zum Antworten, fand ich, dass der folgende Punkt benötigt der Schwerpunkt für mich, als Neuling in Netzwerk-Programmierung:
TCP-IP-verbindungen sind bi-direktional Wege verbinden-Adresse:port-Kombination mit einer anderen Adresse:port-Kombination. Deshalb, wenn Sie öffnen Sie eine Verbindung von Ihrem lokalen Rechner auf einen port auf einem remote-server (sagen http://www.google.com:80), Sie sind auch die Verbindung einer neuen port-Nummer auf Ihrem Computer mit der Verbindung, um den server zu schicken, Dinge, die zu Ihnen zurück (z.B. 127.0.0.1:65234). Es kann hilfreich sein, netstat schauen Sie auf Ihre Maschine-verbindungen:
InformationsquelleAutor Colin
Eine socket-Adresse ist eine IP-Adresse & port-Nummer
Einer Verbindung Auftritt, wenn die 2 Steckdosen miteinander verbunden sind.
InformationsquelleAutor Zaz
Ein socket ist eine spezielle Art von Datei-handle, das verwendet wird, durch einen Prozess zu verlangen, Netzwerk-Dienste, die vom Betriebssystem.
Eine socket-Adresse ist dreifach:
{Protokoll, lokale Adresse, lokale-Prozess}, wobei der örtliche Prozess ist gekennzeichnet durch eine port-Nummer.
In der TCP/IP-suite, zum Beispiel:
{tcp, 193.44.234.3, 12345}
Einem Gespräch ist die Kommunikationsverbindung zwischen zwei Prozessen, also der Darstellung der Assoziation zwischen zwei.
Ein Verein ist das 5-Tupel, die vollständig spezifiziert die zwei Prozesse, aus denen eine Verbindung:
{protocol, local-Adresse, local-process, foreign-address', foreign-process}
In der TCP/IP-suite, zum Beispiel:
{tcp, 193.44.234.3, 1500, 193.44.234.5, 21}
könnte eine gültige Vereins.
Eine halbe Verein ist entweder:
{protocol, local-Adresse, local-process}
oder
{protocol, foreign-address', foreign-process}
die angeben, jede Hälfte einer Verbindung.
Den halben Verein auch genannt wird, wird ein socket oder eine transport-Adresse. Das ist ein socket ist ein Endpunkt für die Kommunikation, die benannt werden können und behandelt in einem Netzwerk.
Die socket-Schnittstelle ist eine von mehreren APIs (application programming interfaces), um die Kommunikations-Protokolle. Entwickelt, um eine generische Kommunikations-Programmier-interface, es wurde zuerst eingeführt durch das 4.2 BSD UNIX-system ist. Obwohl es wurde nicht standardisiert, es hat sich zu einem de-facto Industrie-standard.
Es gibt keine Prozess-Nummer in einem Ihrer Beispiele. Das Wort, das Sie suchen, ist "Hafen".
Lesen Sie den ersten para.. Es ist erwähnt klar und deutlich da. Lassen Sie mich wissen, von Mehrdeutigkeiten durch Angabe der genauen Wortgruppe.. Wäre hilfreich für mich, zu improvisieren.
InformationsquelleAutor Krishna
Hafen war der einfachste Teil, es ist nur ein eindeutiger Bezeichner für einen socket. Ein socket ist etwas, Prozesse verwenden können, um verbindungen und um miteinander zu kommunizieren. Hoch Jeff hatte eine große Telefon-Analogie, die nicht so perfekt war, also beschloss ich, es zu beheben:
Haben Sie einen Blick auf eine
netstat
Anzeige einige Zeit. Alle Steckdosen akzeptiert von einem socket teilen sich einen port. Ergo ein port ist nicht ein eindeutiger Bezeichner für einen socket.InformationsquelleAutor inf3rno
Ein socket ist eine Struktur, in Ihrer software. Es ist mehr oder weniger eine Datei ist; es hat Operationen wie Lesen und schreiben. Es ist nicht ein Ding; es ist ein Weg, für Ihre software zu finden, um physische Dinge.
Ein port ist ein Gerät-wie Sache. Jeder host hat ein oder mehrere Netzwerke (die sind physisch); eine host hat eine Adresse für jedes Netzwerk. Jede Adresse kann über Tausende von ports.
Einer Buchse kann nur mit einem port auf eine Adresse. Die Buchse weist dem port-etwa wie die Zuordnung eines Geräts für die Datei-system I/O. Nachdem der port zugeordnet wird, keine andere Buchse kann eine Verbindung zu diesem port. Der port wird freigegeben, wenn der socket geschlossen ist.
Werfen Sie einen Blick auf TCP/IP-Terminologie.
Ich bin damit einverstanden. Downvoted.
Sorry. Mehrere Steckdosen sind nicht mit port 80. Eine Steckdose angeschlossen ist, und erzeugt zusätzliche Steckdosen, wo die eigentliche übertragung geschieht. Siehe opengroup.org/onlinepubs/009695399/functions/listen.html.
Eigentlich ist die Beschreibung im opengroup.org/onlinepubs/009695399/functions/connect.html ist besser. Die peer-socket zurückgegeben, wenn eine Verbindung ist NICHT auf port 80.
Dieser Beitrag ist falsch, in mehreren Einzelheiten und irreführend, in mehrfacher Hinsicht.
InformationsquelleAutor S.Lott
Einer Anwendung besteht aus paar von Prozessen, die miteinander kommunizieren, über das Netzwerk (client-server-paar). Diese Prozesse senden und empfangen von Nachrichten in und aus dem Netz über eine software-Schnittstelle genannt Buchse. In Anbetracht der Analogie vorgestellt in dem Buch "Computer Networking: Top-Down-Ansatz". Es ist ein Haus, das kommunizieren will, mit anderen Haus. Hier, das Haus ist Analog zu einem Prozess, und die Tür zu einer Steckdose. Senden-Vorgang wird davon ausgegangen, dass es eine Infrastruktur, auf der anderen Seite der Tür, wird der transport der Daten zum Ziel. Sobald die Nachricht angekommen ist, auf der anderen Seite, geht es durch Empfänger Tür (Buchse) in das Haus der (Prozess -). Diese illustration aus dem gleichnamigen Buch können Sie helfen:
Sockets sind Teil der transport-Schicht, die bietet eine logische Kommunikation zu den Anwendungen. Dies bedeutet, dass von der Anwendung Sicht beide hosts sind direkt miteinander verbunden, obwohl es zahlreiche Router und/oder switches zwischen Ihnen. So ein sockel ist nicht die Verbindung selbst, es ist der Endpunkt der Verbindung. Transport-layer-Protokolle implementiert sind nur auf hosts, und nicht auf die zwischen-Router.
Ports Mittel der internen Adressierung an eine Maschine. Der primäre Zweck es zu ermöglichen, dass mehrere Prozesse senden und empfangen von Daten über das Netzwerk, ohne zu stören andere Prozesse (Ihre Daten). Alle Steckdosen sind mit einer port-Nummer. Wenn ein segment ankommt, um eine host -, der transport-layer prüft die destination-port-Nummer des Segments. Es leitet dann das segment an die entsprechende Buchse. Diesen job für die Bereitstellung der Daten in einem transport-layer-segment, um die korrekte Buchse ist genannt de-multiplexing. Die segment-Daten werden dann weitergeleitet, um den Prozess an die Buchse angeschlossen.
InformationsquelleAutor Ugnes
vom Oracle-Java Tutorial:
"Ein socket ist ein Endpunkt einer zwei-Weg-Kommunikation-link", Ist das nicht ein sockel definition, Keine java-tutorial??
Natürlich ist es eine definition, aber es ist aus einem tutorial, nicht um eine Spezifikation.
InformationsquelleAutor yondoo
Dem Gebäude der "Bank" ist Analog zu IP-Adresse.
Eine bank hat verschiedene Abschnitte wie:
Also 1 (Sparkonto Abteilung), 2 (personal loan department), 3 (home loan-Abteilung) und 4 (Beschwerde-Abteilung) sind ports.
Nun lassen Sie uns sagen, Sie gehen, um ein Sparkonto eröffnen, gehen Sie zu der bank (IP-Adresse), dann gehst du auf "sparbuch-Abteilung" (port-Nummer 1), dann treffen Sie auf einen der Mitarbeiter unter "("Sparkarte " Abteilung". Nennen wir ihn SAVINGACCOUNT_EMPLOYEE1 für die Eröffnung Konto.
SAVINGACCOUNT_EMPLOYEE1 ist Ihre socket-Deskriptor, so kann es
SAVINGACCOUNT_EMPLOYEE1 zu SAVINGACCOUNT_EMPLOYEEN. Diese sind alle socket-Deskriptoren.
Ebenso, andere Abteilungen werden die Mitarbeiter unter Ihnen arbeitet, und Sie sind Analog zu socket.
InformationsquelleAutor Shridhar410
Diese sind grundlegende Netzwerk-Konzepte so erkläre ich Ihnen in einer einfachen, aber umfassenden Art und Weise zu verstehen, in details.
Also eine Steckdose in der Vernetzung ist eine virtuelle Kommunikations-Gerät gebunden, um ein paar (ip , port) = (Adresse , service).
Hinweis:
Hoffe, es klärt Sie Zweifel
InformationsquelleAutor Mosab Shaheen
Relative TCP/IP-Terminologie, die ist, was ich annehme, wird durch die implizierte Frage. In juristischer Hinsicht:
Ein PORT ist wie die Telefonnummer von einem bestimmten Haus in einer bestimmten zip-code. Die POSTLEITZAHL der Stadt könnte gedacht werden, wie die IP-Adresse der Stadt und alle Häuser in dieser Stadt.
Einer BUCHSE auf der anderen Seite, ist mehr wie einer etablierten Anruf zwischen den Telefonen, ein paar Häuser, miteinander zu sprechen. Diejenigen, die Anrufe hergestellt werden kann zwischen den Häusern in der gleichen Stadt oder aus zwei Häusern in verschiedenen Städten. Es ist, dass temporäre etablierten Weg zwischen den beiden Handys miteinander zu reden, ist die BUCHSE.
InformationsquelleAutor Tall Jeff
Einem socket ist ein Kommunikations-Endpunkt. Ein socket ist nicht direkt mit dem TCP/IP-Protokoll-Familie, es kann verwendet werden, mit einem Protokoll von Ihrem system unterstützt wird. Die C-socket-API erwartet, dass Sie zuerst eine leere socket-Objekt aus dem system, dann können Sie entweder binden an eine lokale socket-Adresse (direkt abgerufen eingehenden Datenverkehr für verbindungslose Protokolle oder um eingehende verbindungen zu akzeptieren für verbindungsorientierte Protokolle) oder Sie können die Verbindung zu einem remote-socket-Adresse (entweder die Art des Protokolls). Sie können sogar beides tun, wenn Sie Steuern möchten, wird der lokale socket-Adresse ein socket gebunden ist und die remote-socket-Adresse ein socket verbunden ist. Für verbindungslose Protokolle Anschluss-Buchse ist auch optional, aber wenn Sie das nicht tun, müssen Sie auch die Ziel-Adresse mit jedem Paket, das Sie senden möchten über die Buchse wie sonst würde der Buchse wissen, wo Sie senden diese Daten an? Vorteil ist, dass Sie können eine einzelne Buchse zum senden von Paketen an verschiedene socket-Adressen. Sobald Sie Ihre socket konfiguriert und vielleicht sogar angeschlossen, halten es für eine bi-direktionale Kommunikation-Rohr. Sie können es verwenden, um die übergabe von Daten zu einem gewissen Ziel und zu einem gewissen Ziel können es verwenden, um die übergabe der Daten an Sie. Was Sie schreiben auf einen socket gesendet wird und was empfangen worden ist, zum Lesen zur Verfügung.
Ports auf der anderen Seite sind etwas, das nur bestimmte Protokolle des TCP/IP-Protokoll-stack. TCP-und UDP-Pakete für ports. Ein port ist nur eine einfache Zahl. Die Kombination von Quell-port und Ziel-port identifizieren, die einen Kommunikationskanal zwischen zwei Rechnern. E. g. Sie haben einen server, werden beide, die einen einfachen HTTP-server und einen einfachen FTP-server. Wenn nun ein Paket ankommt, wird für die Adresse des Servers, wie würde es wissen, wenn, dass ist ein Paket, das für die HTTP-oder FTP-server? Gut, es wird also wissen, wie der HTTP-server läuft auf port 80 und FTP-server auf port 21, so dass, wenn das Paket kommt mit einer Ziel-port 80 ist für den HTTP-server und nicht für den FTP-server. Auch das Paket hat eine Quell-port, da ohne eine solche Quell-port, ein server kann nur eine Verbindung zu einer IP-Adresse zu einem Zeitpunkt. Der source-port macht es möglich, für einen server zu unterscheiden, ansonsten identische verbindungen: Sie alle haben das gleiche Ziel-port, z.B. port 80, die gleiche Ziel-IP, immer das gleiche server-Adresse und dieselbe Quell-IP, als Sie kommen alle aus dem gleichen client, aber wie haben Sie einen anderen Quell-ports kann der server unterscheiden Sie von einander. Und wenn der server sendet Antworten zurück, es wird tun, damit der port die Anfrage kam, auf diese Weise kann der client auch unterscheiden zwischen verschiedenen Antworten, die er erhält.
Ich merke, dass RFC793 (ursprüngliche TCP-spec) bezieht sich auf die Kombination aus Netzwerk-Adresse und ein port ein socket, so kann ich sehen, wo du das, aber es ist immer noch falsch inasmuchas ein socket ist unbedingt durch zwei definierten Endpunkten.
Bei der Reflexion der Literatur ist widersprüchlich und ich bitte um Entschuldigung. Sehr streng genommen die Kommunikation nicht auftreten, bis eine TCP-Verbindung zwischen zwei Endpunkten (aka Steckdosen), die jeweils identifiziert durch eine Netzwerkadresse und einen port. Ich gebe auf.
InformationsquelleAutor Mecki
Einem sockel ist ein Daten-I/O-Mechanismus. Ein port ist ein vertraglichen Konzept einer Kommunikationsprotokoll. Ist eine Steckdose vorhanden ist, ohne port. Ein port kann existieren, ohne eine bestimmte Buchse (z.B. wenn mehrere sockets aktiv sind, auf den gleichen port, die erlaubt werden können, für einige Protokolle).
Einen port wird verwendet, um zu bestimmen, welche Buchse der Empfänger sollte die route das Paket an, mit vielen Protokollen, aber es ist nicht immer erforderlich und die empfangende socket-Auswahl kann getan werden, mit anderen Mitteln - ein port ist durchaus ein Werkzeug, durch das Protokoll-handler in das Netzwerk-subsystem. z.B. wenn ein Protokoll nicht verwenden einen port, können Pakete gehen an alle, listening sockets oder jede beliebige Steckdose.
InformationsquelleAutor Sander
In einem weiten Sinne,
Steckdose ist nur, dass eine Buchse, wie Sie Ihre Elektro -, Kabel-oder Telefonbuchse. Ein Punkt, wo die "notwendigen Dinge" (Energie -, signal-Informationen) können gehen und kommen in aus. Es verbirgt viele detaillierte Sachen, die nicht Voraussetzung für den Einsatz der "notwendigen Dinge". Im software-Jargon, es stellt eine generische Art und Weise zu definieren, die einen Mechanismus für die Kommunikation zwischen zwei Entitäten (Entitäten könnte alles sein - zwei Anwendungen, zwei physikalisch getrennte Geräte -, Benutzer - & Kernel-space in einem OS, etc)
Ein Port ist ein Endpunkt Diskriminator. Es unterscheidet einen Endpunkt von den anderen. Auf Netzwerk Ebene, es unterscheidet eine Anwendung aus einer anderen, so dass der Netzwerk-stack kann die Weitergabe von Informationen an die entsprechende Anwendung.
InformationsquelleAutor Harty
Bereits theoretische Antworten auf diese Frage. Ich möchte Ihnen ein praktisches Beispiel zu dieser Frage, die wird klare Ihr Verständnis über die Socket-und Port.
Fand ich es hier
InformationsquelleAutor Omkar Ramtekkar
Buchse ist eine Abstraktion, die zur Verfügung gestellt von kernel-user-Anwendungen für die Daten-I/O. Ein socket-Typ ist definiert durch das Protokoll-handling, eine IPC-Kommunikation etc. Wenn also jemand erstellt einen TCP-socket, die er machen kann Manipulationen wie das Lesen von Daten zu socket und schreiben von Daten, um es durch einfache Methoden und die untere Protokoll-Ebene in der Handhabung wie eine TCP-Konvertierungen und die Weiterleitung der Pakete zu niedrigeren level-network-Protokolle erfolgt durch die bestimmten socket-Implementierung im kernel. Der Vorteil ist, dass Benutzer müssen nicht sich sorgen über den Umgang mit Protokoll-spezifische nitigrities und sollte nur Daten Lesen und schreiben auf socket, der wie ein normaler Puffer. Gleiches gilt im Fall der IPC-Nutzer gerade liest und schreibt Daten auf socket-und kernel-handles alle niedrigeren level-details basierend auf dem Typ des socket erstellt.
Port zusammen mit der IP ist wie die Bereitstellung einer Adresse an die Steckdose, obwohl die nicht notwendig, aber es hilft bei der Netzwerk-Kommunikation.
InformationsquelleAutor Navneet Singh
Einen einzelnen port können ein oder mehrere sockets verbunden mit unterschiedlichen externen IP ist wie eine mehrfach-Steckdose.
InformationsquelleAutor guest
A-Buchse ist im Grunde ein Endpunkt für die Kommunikation im Netzwerk, bestehend aus mindestens einer IP-Adresse und einen port. In Java/C# ein socket ist eine höhere Ebene die Umsetzung von einer Seite einer zwei-Weg-Verbindung.
Auch, eine definition in der Java-Dokumentation.
InformationsquelleAutor Erik van Brakel
Port:
Einen port verweisen auf einen physischen Punkt-Verbindung
für Peripheriegeräte wie serielle, parallele und USB-ports.
Der Begriff Schnittstelle bezieht sich auf bestimmte Ethernet-Verbindung Punkte, s
uch als diejenigen, die auf einem hub, switch oder router.
Sockel:
Einen sockel stellt eine einzelne Verbindung zwischen zwei Netzwerk-Anwendungen.
Diese beiden Anwendungen nominell auf verschiedenen Computern ausgeführt,
aber Steckdosen können auch verwendet werden für die Kommunikation zwischen Prozessen auf einem einzelnen computer.
Anwendungen können mehrere sockets für die Kommunikation mit allen anderen.
Sockets sind bidirektional, was bedeutet, dass jede Seite der Verbindung ist in der Lage, beide senden und empfangen von Daten.
InformationsquelleAutor balaweblog
Ich weiß, dass es viele Erklärungen. Aber es gibt einen einfachen Weg, um zu verstehen, mit praktischen Beispiel. Wir alle können eine Verbindung zum HTTP-port 80, sondern bedeutet es nur ein einziger Benutzer kann eine Verbindung zu diesem port zu einer Zeit,?. Offensichtlich ist die Antwort "Nein". Mehrere Benutzer für verschiedene Zwecke können auf HTTP-port 80, aber Sie bekommen dennoch die richtige Antwort, die Sie erwarten, von dem server, können Sie nicht?. Jetzt denken Sie darüber für eine minute, wie?.
Ja, Sie sind richtig, seine IP-Adresse eindeutig identifiziert verschiedene Benutzer, Kontakte, die für verschiedene Zwecke. Wenn Sie hätten Lesen der bisherigen Antworten, bevor Sie erreichen Sie hier, würden Sie wissen, dass die IP-Adresse ist ein Teil der information, die Buchse besteht. Daran denken, ist es möglich, eine Kommunikation ohne sockets?. Die Antwort ist 'ja', aber Sie kann nicht führen Sie mehr als eine Anwendung in einem Hafen, aber wir wissen, dass wir nicht eine "Dump" - Schalter, der läuft auf nur auf die hardware.
Ja, ich bin einverstanden. wir sind das hinzufügen von Intelligenz als Schalter zu entwickeln.
Das ist nicht das, was ich sagte, und es ist nicht das, was Sie behaupten zu sein, zuzustimmen. Switches haben damit nichts zu tun.
InformationsquelleAutor Vishal S
Ein port bezeichnet einen Kommunikations-Endpunkt in den TCP-und UDP-Transporte für das IP-Netzwerk-Protokoll. Ein socket ist eine software-Abstraktion für eine Kommunikations-Endpunkt, allgemein verwendet in den Implementierungen dieser Protokolle (socket-API). Eine alternative Implementierung ist die XTI/TLI-API.
Siehe auch:
Stevens, W. R. 1998, UNIX Network Programming: Networking APIs: Sockets und XTI; Vol. 1, Prentice Hall.
Stevens, W. R., 1994, TCP/IP Illustrated, Volume 1: The Protocols, Addison-Wesley.
InformationsquelleAutor VoidPointer