The jrtplib-2.9 creates three sockets
Dedicated to rtpsock to receive RTP data packets and specify an even Port
Rtcpsock is dedicated to receiving RTCP packets and bonding rtpsock port + 1
Sendsock is used to send packets with a fixed value of 0, which is automatically allocated by the system.
Nat protocol translation table (schematic, incomplete)
Dedicated address dedicated port external address external port transport layer protocol
The following assumptions:
172.29.26.30 send data to port 4000 of 60.212.212.130 using port 40000
Assume that the IP address of the NAT router is 202.102.154.3 and the port to which the NAT router emits is 40000.
Then 60.212.212.130 uses a non-40000 port to send the data to
Port 40000: the number of data records in our school is less than 172.29.26.30.
Then 60.212.212.130 uses port 40000 to send the data to
Port 40000 and 172.29.26.30 can be accessed.
That is to say, the sending port (sendsock port) of the RTP sender must be known and fixed, and the request sender must request
Set the destination port to this port.
But the rtpjrtp-2.9's sending port is automatically allocated.
Solution:
Modify the RTP database so that its sendsock State can obtain known ports. The requester connects to this port.
But it cannot be solved. When multiple client requests are sent, the RTP server monitors and sends data for concurrent processing.
Port occupied by recvfrom during monitoring
Send data using the same port
I don't know how to do it.