My cfg file is written like this : $du = "sip:"+$rd+":"+$rp+";transport=tcp"; 
when i use $du = "sip:"+$rd+":"+$rp+";transport=udp"; the sip message will be normal  excuse me, can you tell me the reason ?
my kamailio version version: kamailio 5.4.2 (x86_64/linux) 99119f-dirty flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: 99119f -dirty compiled on 05:09:14 Mar 30 2022 with gcc 4.8.5
Closed #3069.
This is a question about how tcp is designed and the OS/kernel deals with them, what config options could help eventually, but not a bug in kamailio code. Therefore you have to address this questions to community mailing list sr-users@lists.kamailio.org .