Tcp(Transmission Control Protocol):传输控制协议,它是一种面向连接的协议,为用户进程提供可靠的全双工字节流.TCP套接字是一种流套接字.主要关心确认,超时和重传之类的细节.
RTT(round-trip time):往返时间
UDP(User Datagram Protocol):无连接协议,UDP套接字是一种数据报套接字(datagram socket),只是不能保证最终到达它们的目的地.
SCTP(Stream Control Transmission Protocol):流控制传输协议,提供可靠全双工关联的面向连接的协议.
tcp的三次握手:
1.服务器准备接受外来的连接.通过调用socket,bind和listend这三个函数,被动打开
2.客户端通过调用connect发起主动打开,这时分发送一个SYN分节,告诉服务器客户端将在连接中发送的数据的初始序列号.SYN分节通常不带数据,一般只有一个IP首部和一些TCP选项
TCP选项:MSS选项(maximum segment size),窗口规模选项,最大窗口是65535,时间戳选项
3.服务器确认(ACK)客户的SYN,同时自己也发送一个SYN分节,它含有服务器在同一个连接的初始序列号.服务器在单个分节中发送SYN和对客户SYN的ACK(确认)
4.客户端确认服务器的SYN
tcp终止
1.应用进程主动关闭,调用close,发送FIN分节
2.接收到这个FIN执行被动关闭.
3.一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字
4.接收这个最终FIN的原发送TCP(执行主动关闭的那一端)确认这个FIN
常用协议
原创xiangjie256 博主文章分类:unix c / socket ©著作权
©著作权归作者所有:来自51CTO博客作者xiangjie256的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:非阻塞与同异步,信号驱动IO
下一篇:设置文件最大打开数
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
UDP协议详解
UDP协议详解
UDP 端口号 数据 -
常用开源协议
常用开源协议
linux 开源协议 gpl bsd -
常用的网络协议
协议,网络
协议网络 -
【了解】开源协议详解及常用协议
默认是 No Licens
商业 apache 开源协议