SOCK_STREAM(流式套接字)

简介: SOCK_STREAM(流式套接字)

SOCK_STREAM 是一种套接字类型,它在计算机网络编程中用于实现面向连接的、可靠的数据传输服务。流式套接字基于传输控制协议(TCP),它是因特网协议族(Internet Protocol Suite)中的一个关键组件。

以下是一些关于 SOCK_STREAM(流式套接字)的关键特点和特性:

  1. 面向连接:在数据交换开始之前,必须先建立连接。这通过“三次握手”过程来完成,在此过程中客户端和服务端相互确认对方的存在并同意进行通信。

  2. 可靠性:提供传输层的错误检测和纠正机制,如序列号、确认应答、重传机制等,确保数据包无差错、有序且不丢失地到达接收方。

  3. 双向通信:允许同时进行双向的数据传输,即双方可以互相发送和接收数据。

  4. 数据流:处理的是连续不断的字节流,没有明确的数据边界,因此数据可以任意长度传输,并由接收方以任意大小缓冲区读取。

  5. 带宽和流量控制:TCP 提供了拥塞控制和流量控制机制,能够根据网络状况动态调整数据传输速率,防止过多的数据拥堵在网络中。

  6. 资源消耗:相比于 SOCK_DGRAM(数据报套接字)使用 UDP 协议,流式套接字通常需要更多的系统资源,因为其维护连接状态和执行复杂的错误恢复机制。

在程序代码中创建流式套接字时,通常会调用 socket 函数,并指定地址家族(如 AF_INET 或 AF_INET6 表示 IPv4 或 IPv6)、套接字类型(SOCK_STREAM)以及协议(通常是 0,让操作系统选择正确的协议,对于 SOCK_STREAM,这意味着选择 TCP)。例如:

SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
目录
相关文章
|
6月前
|
网络协议 Java Unix
套接字(Socket)
套接字(Socket)
70 3
|
6月前
|
网络协议 Unix 网络性能优化
SOCK_STREAM
SOCK_STREAM
94 2
|
存储 网络协议 Java
socket套接字
socket套接字
195 0
socket套接字
Socket基础使用
Socket基础使用
124 0
stream_socket_accept peername和stream_socket_get_name
stream_socket_accept peername和stream_socket_get_name
77 0
stream_socket_accept设置非阻塞,socket_accept设置非阻塞
stream_socket_accept设置非阻塞,socket_accept设置非阻塞
200 0
|
网络协议 Unix Linux
【Socket】Socket相关概念及函数
【Socket】Socket相关概念及函数
【Socket】Socket相关概念及函数
|
网络协议 Unix Java
网络协议之:socket协议详解之Socket和Stream Socket
网络协议之:socket协议详解之Socket和Stream Socket
|
网络协议 Linux
内核中的UDP socket流程(4)——sock_create
内核中的UDP socket流程(4)——sock_create作者:gfree.wind@gmail.com 原文:http://blog.chinaunix.net/space.php?uid=23629988&do=blog&id=85910 又懒了2天,继续sock_create     /* Compatibility.
1619 0
|
Linux
内核中的UDP socket流程(3)——sock_create
内核中的UDP socket流程(3)——sock_create作者:gfree.wind@gmail.com 原文:http://blog.chinaunix.net/space.php?uid=23629988&do=blog&id=85909 由于种种原因,工作的,私人的,学习停了几天。
1682 0