[sr-dev] [kamailio/kamailio] t_relay() sending packets from the wrong TCP socket (#1532)

Vadim Lebedev vadim at mbdsys.com
Thu Jun 21 20:47:21 CEST 2018


The ephemeral ports you mention are used ONLY if  you do not do BIND call
on socket for outgoing connection.
If before doing CONNECT you do BIND,  the local port number will be one
specified in BIND.
Following small program demonstrates it.

#!/usr/bin/python
import socket
import threading


READER_ADDR = ("127.0.0.1", 23008)
WRITER1_ADDR = ("127.0.0.1", 23001)
WRITER2_ADDR = ("127.0.0.1", 23002)


LISTEN_SOCK = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
LISTEN_SOCK.bind(READER_ADDR)
LISTEN_SOCK.listen(3)

DONE = False

class wait_conn(threading.Thread):
    def run(self):
        while not DONE:
            s, a = LISTEN_SOCK.accept()
            print("Incomming connection from: ",  s.getpeername())
            s.close()


t = wait_conn()
t.start()

w1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
w1.bind(WRITER1_ADDR)
w1.connect(READER_ADDR)
w1.close()



w2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
w2.bind(WRITER2_ADDR)
w2.connect(READER_ADDR)
w2.close()

DONE = True

t.join(1.0)
LISTEN_SOCK.close()




2018-06-20 15:19 GMT+02:00 Daniel-Constantin Mierla <
notifications at github.com>:

> By default, Kamailio is reusing the tcp connection when possible.
>
> Again, about the local port for tcp connections, read more about tcp
> protocol and how a connection is identified (some references about
> ephemeral ports are also there) -- practically it is the tcp stack
> implementation/operating system kernel that does the selection of the local
> port, impossible to ensure it from user space.
>
>> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/kamailio/kamailio/issues/1532#issuecomment-398745383>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AF36ZSFtK7ZUdmBxJE8DCetWIJGGXa_Lks5t-kvggaJpZM4UAV3q>
> .
>
> _______________________________________________
> Kamailio (SER) - Development Mailing List
> sr-dev at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20180621/a939346c/attachment-0003.html>


More information about the sr-dev mailing list