【linux】Linux学习总结-套接字
来源:互联网 发布:手机淘宝怎样发链接 编辑:程序博客网 时间:2024/06/06 21:42
BSD套接字接口
L i n u x支持多种套接字类型。套接字类型,是指创建套接字的应用程序所希望的通信服务
类型。同一协议族可能提供多种服务类型,比如T C P / I P协议族提供的虚电路与数据报就是两种不同的通信服务类型, Linux BSD支持如下几种套接字类型:
• Stream 提供可靠的面向连接传输的数据流,保证数据传输过程中无丢失、无损坏和无
冗余。I N E T地址族中的T C P协议支持该套接字。
• Datagram 提供数据的双向传输,但不保证消息( m e s s a g e )的准确到达,即使消息能够到
达,也无法保证其顺序性,并可能有冗余或损坏。I N E T地址族中的U D P协议支持该套
接字。
• Raw 是低于传输层的低级协议或物理网络提供的套接字类型,比如通过分析为以太网
设备所创建的R a w套接字,可看到裸I P数据流。
• Reliable Delivered Messages 类似于D a t a g r a m套接字,但它可以保证数据的正确到达。
• Sequenced Packets 类似于S t r e a m套接字,但它的报文大小是可变的。
• Packet 这是L i n u x对标准B S D套接字类型的扩展,它允许应用程序在设备层直接访问报
文数据。
INET的套接字层
I N E T套接字( s o c k e t )层支持包括T C P / I P协议在内的I N E T地址族( Address Family),如前所
述,这是一些分层协议,下层协议为上层协议提供服务。L i n u x中实现T C P / I P协议的代码与数
据结构充分体现了这种协议分层。I N E T套接字层接口是通过一组I N E T地址族套接字操作实现
的,这些操作在网络初始化时被注册到了B S D套接字层,与其他注册的地址族一起保存在
p o p s向量中。B S D套接字层通过调用注册在INET proto_ops数据结构中的I N E T套接字层例程
来完成上述操作。在进行每一项操作时, B S D套接字层都要把代表B S D套接字的数据结构传
给I N E T层,I N E T套接字层并非简单地抽取B S D套接字中的特定T C P / I P信息,而是使用自己的
s o c k数据结构,该数据结构已被链接到BSD socket数据结构上了,在图1 - 8 - 5中给出了这种链
接,这种链接通过BSD socket中的d a t a (数据)指针将s o c k数据结构链到了BSD socket数据结构
上。这样以来,随后的I N E T套接字调用将会很容易的得到套接字数据结构。在创建套接字时,
也建立了指向套接字数据结构的协议操作的指针,这些指针与所使用的协议有关:当使用T C P时,
它们将指向与建立T C P连接有关的一组T C P协议的操作。
- 【linux】Linux学习总结-套接字
- Linux原始套接字学习总结
- Linux 套接字编程-基础总结
- Linux系统学习笔记:套接字
- Linux Socket学习 -- 无名套接字 AF_UNIX
- Linux系统学习笔记:套接字
- linux netlink套接字学习资料
- Linux程序设计--套接字学习笔记
- Linux系统学习笔记:套接字
- linux netlink套接字学习资料
- linux套接字编程
- Linux--原始套接字
- Linux套接字
- linux 套接字接口
- Linux - 套接字编程
- Linux套接字
- linux套接字编程
- Linux网络套接字
- Java的8种基本数据类型
- Redis和Memcache的区别总结
- micropython源码结构与编译环境搭建
- 详解RS-485上下拉电阻的选择
- java并发编程-Executor框架
- 【linux】Linux学习总结-套接字
- reactjs中state的存储原则
- Java 类和对象,如何定义Java中的类,如何使用Java中的对象,变量
- vscode前端js,css,html插件
- C语言 - 变量初始化的重要性
- H.264句法和语法总结(一)句法元素的分层结构
- VC中单文档/多文档的程序左上角图标加载不正确解决方法
- poj 1942 走地图的组合数学
- cookie 创建和删除