首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >send()和recv()是否实现可靠的数据传输(TCP协议)?

send()和recv()是否实现可靠的数据传输(TCP协议)?
EN

Stack Overflow用户
提问于 2017-05-09 17:29:04
回答 1查看 287关注 0票数 0

我想知道,如果套接字与SOCK_STREAM传输处于连接状态,那么在send()和recv()之间发送的数据包是否具有可靠的TCP协议?比如ACK和seq号来防止数据包丢失和正确性,还是我需要自己实现TCP协议?

另外,

如果UDP没有SOCK_DGRAM连接(),那么在sendto()和recvfrom()之间发送的数据包是否执行了UDP协议?(固定号码或计时器)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-09 17:35:48

不需要自己实现TCP或UDP。

来自man 2 socket

SOCK_STREAM提供有序、可靠、双向、基于连接的字节流. SOCK_DGRAM支持数据报(无连接、固定最大长度的不可靠消息)。

来自man 7 tcp

tcp_socket = socket(AF_INET,SOCK_STREAM,0); 这是在RFC 793、RFC 1122和RFC 2001中定义的TCP协议的一个实现,并使用了NewReno和SACK扩展。

来自man 7 udp

udp_socket = socket(AF_INET,SOCK_DGRAM,0); 描述 这是RFC 768中描述的用户数据报协议的实现。

还请参阅man 7 socketman 2 sendman 2 recv

所有参考手册页都来自"Linux程序员手册“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43876296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档