BIO_S_DATAGRAM(3ssl) OpenSSL BIO_S_DATAGRAM(3ssl) BIO_s_datagram, BIO_new_dgram, BIO_ctrl_dgram_connect, BIO_ctrl_set_connected, BIO_dgram_recv_timedout, BIO_dgram_send_timedout, BIO_dgram_get_peer, BIO_dgram_set_peer, BIO_dgram_detect_peer_addr, BIO_dgram_get_mtu_overhead - BIO #include BIO_METHOD *BIO_s_datagram(void); BIO *BIO_new_dgram(int fd, int close_flag); int BIO_ctrl_dgram_connect(BIO *bio, const BIO_ADDR *peer); int BIO_ctrl_set_connected(BIO *bio, const BIO_ADDR *peer); int BIO_dgram_recv_timedout(BIO *bio); int BIO_dgram_send_timedout(BIO *bio); int BIO_dgram_get_peer(BIO *bio, BIO_ADDR *peer); int BIO_dgram_set_peer(BIO *bio, const BIO_ADDR *peer); int BIO_dgram_get_mtu_overhead(BIO *bio); int BIO_dgram_detect_peer_addr(BIO *bio, BIO_ADDR *peer); BIO_s_datagram() BIO UDP. DTLSv1 QUIC. BIO_s_datagram() BIO_write() BIO_read() . BIO_read() . BIO BIO_s_datagram() BIO_s_dgram_pair(3). BIO BIO_sendmmsg(3) BIO_recvmmsg(3). BIO_s_datagram() : o BIO . BIO_connect(3) . . . o BIO_ctrl_dgram_connect() BIO_ctrl_set_connected() . BIO . o BIO_s_datagram() BIO_read() BIO_write() BIO_read(). BIO_dgram_set_peer() BIO_write() BIO_read() . BIO_s_dgram() BIO_s_dgram() BIO_sendmmsg(3) BIO_recvmmsg(3) BIO_read(3) BIO_write(3). DTLSv1_listen(3) DTLSv1_listen(3) . o BIO_read(3) BIO_write(3) BIO_sendmmsg(3) BIO_recvmmsg(3) BIO_s_datagram(). BIO_s_datagram() BIO_ctrl(3): BIO_ctrl_dgram_connect (BIO_CTRL_DGRAM_CONNECT) BIO_dgram_set_peer(3). . BIO_ctrl_set_connected (BIO_CTRL_SET_CONNECTED) BIO_s_datagram() BIO_s_datagram() . peer NULL BIO_s_datagram() ( send(3) recv(3) ). peer . peer NULL BIO_s_datagram() ( sendto(3) recvfrom(3)). BIO_sendmmsg(3) BIO_recvmmsg(3). BIO_dgram_get_peer (BIO_CTRL_DGRAM_GET_PEER) BIO_ADDR : o BIO_dgram_set_peer() BIO_ctrl_dgram_connect() BIO_ctrl_set_connected(). o (datagram) BIO_read(). BIO_dgram_set_peer (BIO_CTRL_DGRAM_SET_PEER) BIO . : BIO_read(3) BIO_s_datagram() . BIO_sendmmsg(3). BIO_recvmmsg(3) BIO_dgram_set_peer(). BIO_dgram_detect_peer_addr (BIO_CTRL_DGRAM_DETECT_PEER_ADDR) BIO_dgram_get_peer() BIO getpeername(2) . BIOs BIO_dgram_set_peer() BIO_dgram_get_peer() . BIO_dgram_recv_timeout (BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP) 1 / BIO ( BIO_read(3)) . BIO_dgram_send_timedout (BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP) 1 / BIO ( BIO_write(3)) . BIO_dgram_get_mtu_overhead (BIO_CTRL_DGRAM_GET_MTU_OVERHEAD) 3 ( IP) . MTU . . IPv6 IPv4. BIO_CTRL_DGRAM_SET_DONT_FRAG num Don't Fragment IP Don't Fragment (DF). num Don't Fragment. BIO_CTRL_DGRAM_QUERY_MTU Path MTU Path MTU . . . 0 . BIO_CTRL_DGRAM_MTU_DISCOVER Path MTU . BIO_CTRL_DGRAM_GET_FALLBACK_MTU BIO. MTU . . 3 4. BIO_CTRL_DGRAM_MTU_EXCEEDED 1 BIO MTU . BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT struct timeval. . BIO_read(3) . BIO_CTRL_DGRAM_SET_PEEK_MODE num peek . peek BIO_read(3) peek BIO_read(3) peek. BIO_recvmmsg(3) . BIO_new_dgram() BIO_s_datagram() BIO fd BIO_set_fd(). BIO_s_datagram() BIO. BIO_new_dgram() BIO NULL . BIO_ctrl_dgram_connect() BIO_ctrl_set_connected() BIO_dgram_set_peer() 1 0 . BIO_dgram_get_peer() BIO_dgram_detect_peer_addr() 0 ( ) . BIO_dgram_recv_timedout() BIO_dgram_send_timedout() 0 1 . BIO_dgram_get_mtu_overhead() . BIO_sendmmsg(3) BIO_s_dgram_pair(3) DTLSv1_listen(3) bio(7) BIO_dgram_detect_peer_addr() OpenSSL 3.2. 2022-2025 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 BIO_S_DATAGRAM(3ssl)