在OpenSSL上使用BIO和SSL功能之间的混淆

lea*_*rog 7 c sockets ssl openssl

我使用OpenSSL更换,以确保现有的套接字客户端连接connect,send,receive,close等功能.
但我对使用SSLBIO功能感到不舒服.
我知道这里这里有一些问题,但我仍然不清楚它们之间的确切区别.谁能帮我理解它们之间的确切关系(1)?

OpenSSL 文档总是将BIO称为底层结构,但没有关于该主题的进一步说明.据我了解,任何调用SSL_write也会写入BIO,可以处理或不处理.
执行a BIO_write或a SSL_write向socket发送数据有什么区别(2)?
如果不是,在我的情况下使用BIO功能有什么好处(3)?有没有(4)?

我在这里这里找到了一些关于SSL客户端的有用示例.第一个混淆使用BIOSSL功能,比如使用SSL_do_handshake而不是BIO_do_handshake.那没关系(5)?

由于BIOSSL功能的基础,我应该避免使用它(6)吗?