Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[技术咨询] IPC上的rtsp流转为webrtc,在webrtc还没播出来时就提示mediakit::WebRtcSession on err: 255(message too long) #3481

Closed
pandalee86 opened this issue Apr 18, 2024 · 9 comments

Comments

@pandalee86
Copy link

咨询的功能模块

  • 大华或者海康相机rtsp流转换为webrtc

咨询的具体内容和问题

  • (偶现)webrtc连接尚未开始播放即提示mediakit::WebRtcSession on err: 255(message too long)
    注:1)配置文件中[rtsp]已经设置了directProxy=0; 2)使用的是2023/12/11的版本。

log如下:
2024-04-18 14:36:26.879 T [MediaServer] [8-event poller 16] UdpServer.h:40 operator() | 1809-167(10.42.0.1:34534) mediakit::WebRtcSession
2024-04-18 14:36:26.879 I [MediaServer] [8-event poller 16] WebRtcSession.cpp:85 onRecv_l | 1809-167(10.42.0.1:34534)
2024-04-18 14:36:26.880 D [MediaServer] [8-event poller 16] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
2024-04-18 14:36:26.880 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:164 OnIceServerSelectedTuple | CioA0H+9AAA=_428 select tuple udp 10.42.0.1:34534
2024-04-18 14:36:26.880 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:170 OnIceServerConnected | CioA0H+9AAA=_428
2024-04-18 14:36:26.922 E [MediaServer] [8-event poller 16] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
2024-04-18 14:36:26.946 D [MediaServer] [8-event poller 16] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
2024-04-18 14:36:26.946 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:174 OnIceServerCompleted | CioA0H+9AAA=_428
2024-04-18 14:36:26.946 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:209 OnDtlsTransportConnecting | CioA0H+9AAA=_428
2024-04-18 14:36:26.946 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:699 Run | running [role:server]
2024-04-18 14:36:26.946 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
2024-04-18 14:36:26.946 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
2024-04-18 14:36:26.946 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
2024-04-18 14:36:27.046 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
2024-04-18 14:36:27.046 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
2024-04-18 14:36:27.046 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
2024-04-18 14:36:27.046 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
2024-04-18 14:36:27.049 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
2024-04-18 14:36:27.049 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
2024-04-18 14:36:27.049 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
2024-04-18 14:36:27.049 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
2024-04-18 14:36:27.049 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2117 bytes of DTLS data ready to sent to the peer
2024-04-18 14:36:27.049 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 99ms
2024-04-18 14:36:27.093 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
2024-04-18 14:36:27.094 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
2024-04-18 14:36:27.094 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
2024-04-18 14:36:27.094 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
2024-04-18 14:36:27.094 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
2024-04-18 14:36:27.094 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
2024-04-18 14:36:27.094 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
2024-04-18 14:36:27.095 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
2024-04-18 14:36:27.095 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
2024-04-18 14:36:27.095 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
2024-04-18 14:36:27.095 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
2024-04-18 14:36:27.095 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
2024-04-18 14:36:27.095 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:191 OnDtlsTransportConnected | CioA0H+9AAA=_428
2024-04-18 14:36:27.106 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 88ms
2024-04-18 14:36:27.122 T [MediaServer] [8-event poller 16] UdpServer.cpp:302 operator() | 1809-167(10.42.0.1:34534) mediakit::WebRtcSession on err: 255(message too long)
2024-04-18 14:36:27.122 W [MediaServer] [8-event poller 16] WebRtcSession.cpp:104 onError | 1809-167(10.42.0.1:34534) 255(message too long)

2024-04-18 14:36:27.122 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:1158 removeTuple | CioA0H+9AAA=_428 remove tuple 10.42.0.1:34534
2024-04-18 14:36:27.122 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:183 OnIceServerDisconnected | CioA0H+9AAA=_428
2024-04-18 14:36:27.122 W [MediaServer] [8-event poller 16] WebRtcPlayer.cpp:98 onDestory | RTC播放器(defaultVhost/live/jajzlpph6c)结束播放,耗时(s):0
2024-04-18 14:36:27.122 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:1395 OnSslInfo | sending DTLS warning alert: close notify
2024-04-18 14:36:27.122 D [MediaServer] [8-event poller 16] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 31 bytes of DTLS data ready to sent to the peer
2024-04-18 14:36:27.122 W [MediaServer] [8-event poller 16] WebRtcTransport.cpp:497 onSendSockData | send data failed:31
2024-04-18 14:36:27.123 I [MediaServer] [8-event poller 16] WebRtcTransport.cpp:485 ~WebRtcTransportImp | CioA0H+9AAA=_428

@xiongguangjie
Copy link
Member

更新最新的代码看看是否解决了,我记得这个提交应该已经解决了 62641f4

@pandalee86
Copy link
Author

更新最新的代码看看是否解决了,我记得这个提交应该已经解决了 62641f4

多谢!
我先更新代码试试看。

@pandalee86
Copy link
Author

pandalee86 commented May 8, 2024

更新最新的代码看看是否解决了,我记得这个提交应该已经解决了 62641f4

我更新了这个提交后,该问题仍然存在。
主要是一个远程vpn访问系统的同事复现的,不知道跟她的网络环境有没有关系。

今天复现的log如下:
Line 130224: 2024-05-08 17:12:29.728 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:498 WebRtcTransportImp | CioAZH+9AAA=_145
Line 130225: 2024-05-08 17:12:29.731 D [MediaServer] [8-event poller 19] WebApi.cpp:296 http api debug |
Line 130396: 2024-05-08 17:12:29.731 T [MediaServer] [8-event poller 19] TcpServer.h:54 operator() | 382-166(10.42.0.139:41806) mediakit::HttpSession
Line 130397: 2024-05-08 17:12:29.731 I [MediaServer] [8-event poller 19] TcpServer.cpp:125 onAcceptConnection | ******** start sock->setOnRead sock:0x7f9a7c30ba70
Line 130398: 2024-05-08 17:12:29.732 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:498 WebRtcTransportImp | CioAZH+9AAA=_146
Line 130399: 2024-05-08 17:12:29.733 D [MediaServer] [8-event poller 19] WebApi.cpp:296 http api debug |
Line 130570: 2024-05-08 17:12:29.792 T [MediaServer] [8-event poller 19] UdpServer.h:40 operator() | 383-169(10.42.0.1:1198) mediakit::WebRtcSession
Line 130571: 2024-05-08 17:12:29.792 I [MediaServer] [8-event poller 19] WebRtcSession.cpp:85 onRecv_l | 383-169(10.42.0.1:1198)
Line 130572: 2024-05-08 17:12:29.792 D [MediaServer] [8-event poller 19] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
Line 130573: 2024-05-08 17:12:29.792 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:164 OnIceServerSelectedTuple | CioAZH+9AAA=_145 select tuple udp 10.42.0.1:1198
Line 130574: 2024-05-08 17:12:29.792 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:170 OnIceServerConnected | CioAZH+9AAA=_145
Line 130575: 2024-05-08 17:12:29.796 T [MediaServer] [8-event poller 19] UdpServer.h:40 operator() | 384-171(10.42.0.1:49820) mediakit::WebRtcSession
Line 130576: 2024-05-08 17:12:29.797 I [MediaServer] [8-event poller 19] WebRtcSession.cpp:85 onRecv_l | 384-171(10.42.0.1:49820)
Line 130577: 2024-05-08 17:12:29.797 D [MediaServer] [8-event poller 19] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
Line 130578: 2024-05-08 17:12:29.797 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:164 OnIceServerSelectedTuple | CioAZH+9AAA=_146 select tuple udp 10.42.0.1:49820
Line 130579: 2024-05-08 17:12:29.797 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:170 OnIceServerConnected | CioAZH+9AAA=_146
Line 130580: 2024-05-08 17:12:29.850 E [MediaServer] [8-event poller 19] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
Line 130581: 2024-05-08 17:12:29.850 E [MediaServer] [8-event poller 19] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
Line 130582: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
Line 130583: 2024-05-08 17:12:29.906 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:174 OnIceServerCompleted | CioAZH+9AAA=_145
Line 130584: 2024-05-08 17:12:29.906 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:226 OnDtlsTransportConnecting | CioAZH+9AAA=_145
Line 130585: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:699 Run | running [role:server]
Line 130586: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
Line 130587: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130588: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
Line 130589: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
Line 130590: 2024-05-08 17:12:29.907 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:174 OnIceServerCompleted | CioAZH+9AAA=_146
Line 130591: 2024-05-08 17:12:29.907 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:226 OnDtlsTransportConnecting | CioAZH+9AAA=_146
Line 130592: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:699 Run | running [role:server]
Line 130593: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
Line 130594: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130595: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
Line 130596: 2024-05-08 17:12:29.983 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130597: 2024-05-08 17:12:29.984 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
Line 130598: 2024-05-08 17:12:29.984 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
Line 130599: 2024-05-08 17:12:29.984 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
Line 130600: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
Line 130601: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
Line 130602: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130603: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
Line 130604: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2117 bytes of DTLS data ready to sent to the peer
Line 130605: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 99ms
Line 130606: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130607: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
Line 130608: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
Line 130609: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
Line 130610: 2024-05-08 17:12:29.989 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
Line 130611: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
Line 130612: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130613: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
Line 130614: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2117 bytes of DTLS data ready to sent to the peer
Line 130615: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 99ms
Line 130616: 2024-05-08 17:12:30.033 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130617: 2024-05-08 17:12:30.034 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
Line 130618: 2024-05-08 17:12:30.034 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
Line 130619: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
Line 130620: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
Line 130621: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
Line 130622: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
Line 130623: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
Line 130624: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
Line 130625: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
Line 130626: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
Line 130627: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
Line 130628: 2024-05-08 17:12:30.035 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:191 OnDtlsTransportConnected | CioAZH+9AAA=_145
Line 130629: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 89ms
Line 130630: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130631: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
Line 130632: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
Line 130633: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
Line 130634: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
Line 130635: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
Line 130636: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
Line 130637: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
Line 130638: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
Line 130639: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
Line 130640: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
Line 130641: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
Line 130642: 2024-05-08 17:12:30.046 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:191 OnDtlsTransportConnected | CioAZH+9AAA=_146
Line 130643: 2024-05-08 17:12:30.049 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 96ms
Line 130645: 2024-05-08 17:12:30.661 T [MediaServer] [8-event poller 19] UdpServer.cpp:302 operator() | 383-169(10.42.0.1:1198) mediakit::WebRtcSession on err: 255(message too long)
Line 130646: 2024-05-08 17:12:30.661 W [MediaServer] [8-event poller 19] WebRtcSession.cpp:104 onError | 383-169(10.42.0.1:1198) 255(message too long)
Line 130647: 2024-05-08 17:12:30.661 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:1175 removeTuple | CioAZH+9AAA=_145 remove tuple 10.42.0.1:1198
Line 130648: 2024-05-08 17:12:30.661 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:183 OnIceServerDisconnected | CioAZH+9AAA=_145
Line 130649: 2024-05-08 17:12:30.661 W [MediaServer] [8-event poller 19] WebRtcPlayer.cpp:98 onDestory | RTC播放器(defaultVhost/live/v6c2z7lzt5)结束播放,耗时(s):0
Line 130650: 2024-05-08 17:12:30.661 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1395 OnSslInfo | sending DTLS warning alert: close notify
Line 130651: 2024-05-08 17:12:30.661 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 31 bytes of DTLS data ready to sent to the peer
Line 130652: 2024-05-08 17:12:30.661 W [MediaServer] [8-event poller 19] WebRtcTransport.cpp:514 onSendSockData | send data failed:31
Line 130653: 2024-05-08 17:12:30.661 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:502 ~WebRtcTransportImp | CioAZH+9AAA=_145

@xiongguangjie
Copy link
Member

查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html
配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的

@pandalee86
Copy link
Author

查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的

今天配置完这个之后,没复现问题了。
测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。
而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?

@xiongguangjie
Copy link
Member

查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的

今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?

感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧

@pandalee86
Copy link
Author

查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的

今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?

感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧

分析发现rtp报文中多了16字节的SRTP Auth Tag,导致实际udp总长超过配置中设置的videoMtuSize + 42.
videoMtuSize =1400; 1400+42+16=1458.
MediaServer所在的docker里的网卡mtu是1450, 小于1458.可能是这个原因导致的问题。
实际抓包还有很多1460长度的包,不清楚组包多出的2个字节哪来的。

@xiongguangjie
Copy link
Member

查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的

今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?

感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧

分析发现rtp报文中多了16字节的SRTP Auth Tag,导致实际udp总长超过配置中设置的videoMtuSize + 42. videoMtuSize =1400; 1400+42+16=1458. MediaServer所在的docker里的网卡mtu是1450, 小于1458.可能是这个原因导致的问题。 实际抓包还有很多1460长度的包,不清楚组包多出的2个字节哪来的。

这个你配置下配置文件里面的mtu应该可以解决

@pandalee86
Copy link
Author

pandalee86 commented May 17, 2024

查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的

今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?

感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧

分析发现rtp报文中多了16字节的SRTP Auth Tag,导致实际udp总长超过配置中设置的videoMtuSize + 42. videoMtuSize =1400; 1400+42+16=1458. MediaServer所在的docker里的网卡mtu是1450, 小于1458.可能是这个原因导致的问题。 实际抓包还有很多1460长度的包,不清楚组包多出的2个字节哪来的。

这个你配置下配置文件里面的mtu应该可以解决

已经将配置里的mtu改成1300了。
感谢您对这个问题的持续关注和指导。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants