分享

Socket 处在网络层次中的哪个位置?

 风雪夜归人_95 2014-08-04
        描述一个网络中各个协议层的常用方法是使用国际标准化组织(ISO)的计算机通信开放系统互连(open systems interconnection , OSI)模型。
 
                                                              (图片来自《UNIX网络编程卷一》)
      OSI模型的低下两层是随系统提供的设备驱动程序和网络硬件,一般不必关心它们。TCP和UDP之间留有空隙,表明网络应用绕过传输层直接使用IPV4和IPV6是可能的,即原始套接字
       套接字(socket)编程接口是从顶上三层(网络协议的应用层)进入传输层的接口。除了提到的原始套接字,套接字编程可以彻底绕过IP层直接读写数据链路层的帧。
       为什么套接字提供的是从OSI模型的顶上三层进入传输层的接口,有两个原因:
1)顶上三层处理具体网络应用(如FTP、HTTP)的所有细节,而对通信细节了解很少;低下四层对具体网络应用了解不多,却处理所有的通信细节(发送数据、等待确认、校验等)。
2)顶上三层通常构成所谓的用户进程,底下四层却通常作为操作系统内核的一个部分提供。现代操作系统都提供分隔用户进程与内核的机制。

所以,在第4层和第5层之间的接口是构建API的自然位置。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多