套接字协议及其数据传输特性

协议

协议是为了完成数据交换而定好的约定,是一种通信规则

创建套接字

1

  • 协议族

    • AF_INET:IPv4互联网协议族

    • AF_INET6:IPv6互联网协议族

    • AF_LOCAL:本地通信的UNIX协议族

  • 套接字类型

    套接字类型指的是套接字的数据传输方式

    • 面向连接的套接字(SOCK_STREAM)

      • 传输过程中数据不会消失

      • 按序 传输数据

      • 传输的数据 不存在消息边界

      套接字连接必须一一对应

      可靠的、按序传递的、基于字节的面向连接的数据传输方式的套接字

    • 面向消息的套接字(SOCK_DGRAM)

      • 强调 快速传输 而非传输顺序

      • 传输的数据可能丢失也可能损毁

      • 传输的数据有 消息边界

      • 限制每次传输的大小

      不可靠的、不按序传递的、基于消息的、以数据的高速传输为目的的套接字

  • 协议的最终选择

    第三个参数用于确定最终的协议,若前两个参数可以确定要使用协议,该参数置0

    同一协议族中可能存在多个数据传输方式相同的协议

    // usage1
    socket(AF_INET, SOCK_STREAM, 0);
    // usage2
    socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    

    这两个使用得到的结果是相同的,usage1 的意思是 创建一个IPv4协议族中面向连接的套接字,符合条件的协议只有 TCP,所以第三个参数可以置0,与 usage2 相同

 posted on 2025-06-17 10:38  Dylaris  阅读(12)  评论(0)    收藏  举报