Multiple connections, same port

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Sharon

    #1

    Multiple connections, same port

    Hi all,
    I've implemented a TCP server using the Socket async methods.
    When connecting to the server from 3 instances of hyper terminal,
    i've noticed that each of the newly created server sockets, uses the same
    server port.
    I assumed that a new connection will receive a unique port.
    If this is the way its suppose to work, is it a performance issue?
    Is it possible that connections from the same IP will connect on the same
    server port?
    I have no way to test it, as i have only one computer.
    Thanks,
    Sharon.


  • William Stacey [MVP]

    #2
    Re: Multiple connections, same port

    Yes. Your server listens on same port, but the sockets are unique (client
    IP, client port, srv IP, srv Port).

    --
    William Stacey [MVP]

    "Sharon" <nothing@null.v oid> wrote in message
    news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...
    | Hi all,
    | I've implemented a TCP server using the Socket async methods.
    | When connecting to the server from 3 instances of hyper terminal,
    | i've noticed that each of the newly created server sockets, uses the same
    | server port.
    | I assumed that a new connection will receive a unique port.
    | If this is the way its suppose to work, is it a performance issue?
    | Is it possible that connections from the same IP will connect on the same
    | server port?
    | I have no way to test it, as i have only one computer.
    | Thanks,
    | Sharon.
    |
    |


    Comment

    • Sharon

      #3
      Re: Multiple connections, same port

      Hello William, and thanks for your reply.
      The listener socket always listens on the same port,
      but shouldn't a new worker socket be given a unique server port?
      In my app all clients use the same server listener port.
      In all examples i've seen about Socket async methods (BeginAccept,
      EndAccept),
      there is no attempt to switch the client port.
      Am i doing something wrong?
      By "yes" you mean that this is the way it should work?
      Sharon.



      "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
      news:uxBIlUXPGH A.516@TK2MSFTNG P15.phx.gbl...[color=blue]
      > Yes. Your server listens on same port, but the sockets are unique (client
      > IP, client port, srv IP, srv Port).
      >
      > --
      > William Stacey [MVP]
      >
      > "Sharon" <nothing@null.v oid> wrote in message
      > news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...
      > | Hi all,
      > | I've implemented a TCP server using the Socket async methods.
      > | When connecting to the server from 3 instances of hyper terminal,
      > | i've noticed that each of the newly created server sockets, uses the
      > same
      > | server port.
      > | I assumed that a new connection will receive a unique port.
      > | If this is the way its suppose to work, is it a performance issue?
      > | Is it possible that connections from the same IP will connect on the
      > same
      > | server port?
      > | I have no way to test it, as i have only one computer.
      > | Thanks,
      > | Sharon.
      > |
      > |
      >
      >[/color]


      Comment

      • William Stacey [MVP]

        #4
        Re: Multiple connections, same port

        Yes, that is way it should work. Your client's would not know where to
        connect if the port keeps changing on the server. As I said, there are 4
        pieces of information that make up a unique socket. only 1 has to be
        different per socket. So the same client can connect multiple times to the
        same server port as long as the client ports or different (dynamic). Many
        clients can connect to same server port because they all have different IPs,
        etc. SMTP is port 25, DNS is 53 - they use wellknown server ports. Does
        that help?

        --
        William Stacey [MVP]

        "Sharon" <nothing@null.v oid> wrote in message
        news:edQKFoXPGH A.2704@TK2MSFTN GP15.phx.gbl...
        | Hello William, and thanks for your reply.
        | The listener socket always listens on the same port,
        | but shouldn't a new worker socket be given a unique server port?
        | In my app all clients use the same server listener port.
        | In all examples i've seen about Socket async methods (BeginAccept,
        | EndAccept),
        | there is no attempt to switch the client port.
        | Am i doing something wrong?
        | By "yes" you mean that this is the way it should work?
        | Sharon.
        |
        |
        |
        | "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
        | news:uxBIlUXPGH A.516@TK2MSFTNG P15.phx.gbl...
        | > Yes. Your server listens on same port, but the sockets are unique
        (client
        | > IP, client port, srv IP, srv Port).
        | >
        | > --
        | > William Stacey [MVP]
        | >
        | > "Sharon" <nothing@null.v oid> wrote in message
        | > news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...
        | > | Hi all,
        | > | I've implemented a TCP server using the Socket async methods.
        | > | When connecting to the server from 3 instances of hyper terminal,
        | > | i've noticed that each of the newly created server sockets, uses the
        | > same
        | > | server port.
        | > | I assumed that a new connection will receive a unique port.
        | > | If this is the way its suppose to work, is it a performance issue?
        | > | Is it possible that connections from the same IP will connect on the
        | > same
        | > | server port?
        | > | I have no way to test it, as i have only one computer.
        | > | Thanks,
        | > | Sharon.
        | > |
        | > |
        | >
        | >
        |
        |


        Comment

        • Nick Hounsome

          #5
          Re: Multiple connections, same port

          A TCP connection is a 4-tuple

          (server addr,server port,client addr,client port)

          Therefore it is not a problem to have multiple clients connecting to the
          same server port.

          This is effectively enforced at the client end where you will not be able to
          bind 2 client sockets to the same address and port(normally you just accept
          the default anyway which just allocates the next port).

          "Sharon" <nothing@null.v oid> wrote in message
          news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...[color=blue]
          > Hi all,
          > I've implemented a TCP server using the Socket async methods.
          > When connecting to the server from 3 instances of hyper terminal,
          > i've noticed that each of the newly created server sockets, uses the same
          > server port.
          > I assumed that a new connection will receive a unique port.
          > If this is the way its suppose to work, is it a performance issue?
          > Is it possible that connections from the same IP will connect on the same
          > server port?
          > I have no way to test it, as i have only one computer.
          > Thanks,
          > Sharon.
          >
          >[/color]


          Comment

          • Sharon

            #6
            Re: Multiple connections, same port

            Ok, there is one more thing that is not clear to me.
            If 2 clients are connected on the same server ip & port,
            what happens when both clients try to send data at the same time?
            One of them waits until the other has finished sending?
            Thanks,
            Sharon.


            "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
            news:uChf2oZPGH A.3840@TK2MSFTN GP14.phx.gbl...[color=blue]
            > Yes, that is way it should work. Your client's would not know where to
            > connect if the port keeps changing on the server. As I said, there are 4
            > pieces of information that make up a unique socket. only 1 has to be
            > different per socket. So the same client can connect multiple times to
            > the
            > same server port as long as the client ports or different (dynamic). Many
            > clients can connect to same server port because they all have different
            > IPs,
            > etc. SMTP is port 25, DNS is 53 - they use wellknown server ports. Does
            > that help?
            >
            > --
            > William Stacey [MVP]
            >
            > "Sharon" <nothing@null.v oid> wrote in message
            > news:edQKFoXPGH A.2704@TK2MSFTN GP15.phx.gbl...
            > | Hello William, and thanks for your reply.
            > | The listener socket always listens on the same port,
            > | but shouldn't a new worker socket be given a unique server port?
            > | In my app all clients use the same server listener port.
            > | In all examples i've seen about Socket async methods (BeginAccept,
            > | EndAccept),
            > | there is no attempt to switch the client port.
            > | Am i doing something wrong?
            > | By "yes" you mean that this is the way it should work?
            > | Sharon.
            > |
            > |
            > |
            > | "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
            > | news:uxBIlUXPGH A.516@TK2MSFTNG P15.phx.gbl...
            > | > Yes. Your server listens on same port, but the sockets are unique
            > (client
            > | > IP, client port, srv IP, srv Port).
            > | >
            > | > --
            > | > William Stacey [MVP]
            > | >
            > | > "Sharon" <nothing@null.v oid> wrote in message
            > | > news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...
            > | > | Hi all,
            > | > | I've implemented a TCP server using the Socket async methods.
            > | > | When connecting to the server from 3 instances of hyper terminal,
            > | > | i've noticed that each of the newly created server sockets, uses the
            > | > same
            > | > | server port.
            > | > | I assumed that a new connection will receive a unique port.
            > | > | If this is the way its suppose to work, is it a performance issue?
            > | > | Is it possible that connections from the same IP will connect on the
            > | > same
            > | > | server port?
            > | > | I have no way to test it, as i have only one computer.
            > | > | Thanks,
            > | > | Sharon.
            > | > |
            > | > |
            > | >
            > | >
            > |
            > |
            >
            >[/color]


            Comment

            • William Stacey [MVP]

              #7
              Re: Multiple connections, same port

              No, they can both send. Remember that have different sockets on the server.
              Tcp handles the retry logic, so it is not something you normally have to
              deal with.

              --
              William Stacey [MVP]

              "Sharon" <nothing@null.v oid> wrote in message
              news:eCQ2vWePGH A.2888@tk2msftn gp13.phx.gbl...
              | Ok, there is one more thing that is not clear to me.
              | If 2 clients are connected on the same server ip & port,
              | what happens when both clients try to send data at the same time?
              | One of them waits until the other has finished sending?
              | Thanks,
              | Sharon.
              |
              |
              | "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
              | news:uChf2oZPGH A.3840@TK2MSFTN GP14.phx.gbl...
              | > Yes, that is way it should work. Your client's would not know where to
              | > connect if the port keeps changing on the server. As I said, there are
              4
              | > pieces of information that make up a unique socket. only 1 has to be
              | > different per socket. So the same client can connect multiple times to
              | > the
              | > same server port as long as the client ports or different (dynamic).
              Many
              | > clients can connect to same server port because they all have different
              | > IPs,
              | > etc. SMTP is port 25, DNS is 53 - they use wellknown server ports.
              Does
              | > that help?
              | >
              | > --
              | > William Stacey [MVP]
              | >
              | > "Sharon" <nothing@null.v oid> wrote in message
              | > news:edQKFoXPGH A.2704@TK2MSFTN GP15.phx.gbl...
              | > | Hello William, and thanks for your reply.
              | > | The listener socket always listens on the same port,
              | > | but shouldn't a new worker socket be given a unique server port?
              | > | In my app all clients use the same server listener port.
              | > | In all examples i've seen about Socket async methods (BeginAccept,
              | > | EndAccept),
              | > | there is no attempt to switch the client port.
              | > | Am i doing something wrong?
              | > | By "yes" you mean that this is the way it should work?
              | > | Sharon.
              | > |
              | > |
              | > |
              | > | "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
              | > | news:uxBIlUXPGH A.516@TK2MSFTNG P15.phx.gbl...
              | > | > Yes. Your server listens on same port, but the sockets are unique
              | > (client
              | > | > IP, client port, srv IP, srv Port).
              | > | >
              | > | > --
              | > | > William Stacey [MVP]
              | > | >
              | > | > "Sharon" <nothing@null.v oid> wrote in message
              | > | > news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...
              | > | > | Hi all,
              | > | > | I've implemented a TCP server using the Socket async methods.
              | > | > | When connecting to the server from 3 instances of hyper terminal,
              | > | > | i've noticed that each of the newly created server sockets, uses
              the
              | > | > same
              | > | > | server port.
              | > | > | I assumed that a new connection will receive a unique port.
              | > | > | If this is the way its suppose to work, is it a performance issue?
              | > | > | Is it possible that connections from the same IP will connect on
              the
              | > | > same
              | > | > | server port?
              | > | > | I have no way to test it, as i have only one computer.
              | > | > | Thanks,
              | > | > | Sharon.
              | > | > |
              | > | > |
              | > | >
              | > | >
              | > |
              | > |
              | >
              | >
              |
              |


              Comment

              • Sharon

                #8
                Re: Multiple connections, same port

                All clear, thanks a bunch.
                Sharon.

                "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
                news:edyjDugPGH A.208@tk2msftng p13.phx.gbl...[color=blue]
                > No, they can both send. Remember that have different sockets on the
                > server.
                > Tcp handles the retry logic, so it is not something you normally have to
                > deal with.
                >
                > --
                > William Stacey [MVP]
                >
                > "Sharon" <nothing@null.v oid> wrote in message
                > news:eCQ2vWePGH A.2888@tk2msftn gp13.phx.gbl...
                > | Ok, there is one more thing that is not clear to me.
                > | If 2 clients are connected on the same server ip & port,
                > | what happens when both clients try to send data at the same time?
                > | One of them waits until the other has finished sending?
                > | Thanks,
                > | Sharon.
                > |
                > |
                > | "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
                > | news:uChf2oZPGH A.3840@TK2MSFTN GP14.phx.gbl...
                > | > Yes, that is way it should work. Your client's would not know where to
                > | > connect if the port keeps changing on the server. As I said, there
                > are
                > 4
                > | > pieces of information that make up a unique socket. only 1 has to be
                > | > different per socket. So the same client can connect multiple times
                > to
                > | > the
                > | > same server port as long as the client ports or different (dynamic).
                > Many
                > | > clients can connect to same server port because they all have
                > different
                > | > IPs,
                > | > etc. SMTP is port 25, DNS is 53 - they use wellknown server ports.
                > Does
                > | > that help?
                > | >
                > | > --
                > | > William Stacey [MVP]
                > | >
                > | > "Sharon" <nothing@null.v oid> wrote in message
                > | > news:edQKFoXPGH A.2704@TK2MSFTN GP15.phx.gbl...
                > | > | Hello William, and thanks for your reply.
                > | > | The listener socket always listens on the same port,
                > | > | but shouldn't a new worker socket be given a unique server port?
                > | > | In my app all clients use the same server listener port.
                > | > | In all examples i've seen about Socket async methods (BeginAccept,
                > | > | EndAccept),
                > | > | there is no attempt to switch the client port.
                > | > | Am i doing something wrong?
                > | > | By "yes" you mean that this is the way it should work?
                > | > | Sharon.
                > | > |
                > | > |
                > | > |
                > | > | "William Stacey [MVP]" <william.stacey @gmail.com> wrote in message
                > | > | news:uxBIlUXPGH A.516@TK2MSFTNG P15.phx.gbl...
                > | > | > Yes. Your server listens on same port, but the sockets are unique
                > | > (client
                > | > | > IP, client port, srv IP, srv Port).
                > | > | >
                > | > | > --
                > | > | > William Stacey [MVP]
                > | > | >
                > | > | > "Sharon" <nothing@null.v oid> wrote in message
                > | > | > news:eDKkJIXPGH A.1532@TK2MSFTN GP12.phx.gbl...
                > | > | > | Hi all,
                > | > | > | I've implemented a TCP server using the Socket async methods.
                > | > | > | When connecting to the server from 3 instances of hyper
                > terminal,
                > | > | > | i've noticed that each of the newly created server sockets, uses
                > the
                > | > | > same
                > | > | > | server port.
                > | > | > | I assumed that a new connection will receive a unique port.
                > | > | > | If this is the way its suppose to work, is it a performance
                > issue?
                > | > | > | Is it possible that connections from the same IP will connect on
                > the
                > | > | > same
                > | > | > | server port?
                > | > | > | I have no way to test it, as i have only one computer.
                > | > | > | Thanks,
                > | > | > | Sharon.
                > | > | > |
                > | > | > |
                > | > | >
                > | > | >
                > | > |
                > | > |
                > | >
                > | >
                > |
                > |
                >
                >[/color]


                Comment

                Working...