UNIX Network Programming笔记之第二章

        本章主要讲述传输层协议, 包括TCP(传输控制协议), UDP(用户数据报协议), SCTP(流控制传输协议), 这三个协议特点, 建立连接, 关闭连接, TCP状态等.
TCP协议具有连接, 可靠, 复杂的特点, 它提供连接, 可靠传输, 分片, 排序, 流量控制以及全双工数据传输. 而UDP是无连接, 不可靠的协议, SCTP具有TCP相似的特性, 可靠,流量控制, 全双工数据传输, 不过和TCP的连接不同SCTP是关联, 并且SCTP是面对消息的协议.提供各个记录按序递送服务. 并且一个流上某个消息的丢失不会阻塞同一关联的其他流上消息的投递, 这个与TCP是相反的. 
TCP建立连接:
1. server listen被动打开,进入LISTEN状态
2. client调用connect, 主动连接, 发送SYN, 状态为SYN_SENT
3. server接收SYN, 返回ACK, 状态为SYN_RCVD
4. client发送ACK,用于确认server发送的ACK, client和server状态为ESTABLISHED   
建立连接需要3个分组, 称之为三路握手. 
每一个SYN可以有多个TCP选项: MSS选项, 窗口规模选项, 时间戳选项
TCP关闭连接, 需要4个分节(以下假设client主动关闭)
1. client调用close, 主动关闭, 发送FIN, client状态为FIN_WAIT_1
2. server确认FIN执行被动关闭, 发送ACK, server状态为CLOSE_WAIT, client接收到ACK后状态为FIN_WAIT_2
3. 一段时间后, server调用close, 发送FIN, server状态为LAST_ACK, 
4. client接收该FIN, 并确认FIN发送ACK, 状态为TIME_WAIT
关于TIME_WAIT状态, 该状态的持续时间为最长分节生命期的两倍2MSL, 该状态存在主要有以下两个原因:
1. 可靠的实现全双工连接的终止, 最后一个ACK如果丢失, 需要重传ACK
2. 允许老的重复的分节在网络中消逝.


上述就是TCP的特定, 与TCP不同, SCTP建立连接需要4组分节, 而关闭是3组. 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值