TCP/IP详解学习笔记--TCP连接的建立与终止
来源:互联网 发布:中国移动数据漫游 编辑:程序博客网 时间:2024/05/22 00:29
1.基本概念
由于TCP是一个面向连接的协议,无论在哪一方发送数据之前,都必须先在双方之间建立连接,接下来我们就讨论建立连接的具体过程
2.建立TCP连接
如下图所示:
1.首先请求端发送一个序列号为1(表明该方的起始序列号为1)的SYN段,此时由于连接还未建立成功,所以携带的数据为0,并前发送端还告诉接收端它所能接收的最大报文段mss
2.接收端收到SYN段后,也给对方回一个SYN端,告知对方它的其实序列号为5并携带给对方回的ack,同时也告诉对方它所能接收的最大报文段mss
3.请求端在收到对方携带ack的SYN之后也给对方发一个ack,此时请求方以确定了与对方建立好了联系,所以此时是数据段是可以携带数据的,至此TCP的三次握手以完成,由TCP连接的俩端就可以进行通讯了
注意点:当一端建立连接时,所发送的SYN,也包含了此端的一个初始序号,下图的俩端的初始序号分别为1和5,此初始序号是由复杂算法随机产生的
2.TCP连接的终止
如上图所示
1.首先终止端发出一个FIN端,该段的序号为2.接收端收到后,给其发送一个ack还有一个携带ack的FIN段,当发送端收到此段之后,接收端最后发个确认,连接即终止
注意点:为啥终止连接要4次挥手,主要原因是,建立连接后数据是双向传递的,所以必须得把俩端的数据流动都给关掉,则每一端都得发一个自己的FIN以及一个确认收到对方FIN的ack,所以终止连接得4次挥手
3.TCP连接建立超时
有时候接收方主机发生故障,当发送方给其发送TCP连接请求时,在对方收不到的情况下,发送端并不会无限的给其发请求,而是根据超时时间来不定时的发送请求,当然超时时间也是有最长时间限制的,一般为75S超过这个时间,发送端将放弃连接
4.最大报文长度
最大报文长度又称MSS表示表示TCP可以给对方传的最大数据段长度,前面的那张途中,在建立连接时,所发的SYN中就包含了MSS,一般大小为1024
5.TCP的半关闭
TCP提供了连接在一端在结束它的发送后,依然可以接收对面的数据,只是不能在发送数据了,我们可以通过应用程序来控制完全关闭与半关闭,调用close(),实现的是完全关闭,调用shutdown()实现的就是我们所说的半关闭,半关闭在大多数情况下不常用
6.TIME_WAIT状态
TIME_WAIT状态也称为2MSL等待状态,MSL为一个TCP报文段的最大生存时间,之所以有这个状态主要是为了防止迟来的报文段没有被收到
- TCP/IP详解学习 -- TCP连接的建立与终止
- TCP/IP详解学习笔记--TCP连接的建立与终止
- TCP/IP详解学习笔记(13)-- TCP连接的建立与终止
- TCP/IP详解学习笔记(13)-- TCP连接的建立与终止
- TCP/IP详解学习笔记(13)-- TCP连接的建立与终止
- 《TCP/IP详解》学习笔记-第17/18章 TCP:概述、连接建立与终止
- TCP/IP 详解卷一学习笔记(四):TCP 连接建立与终止
- 《TCP/IP详解 卷1》 笔记: TCP连接的建立与终止
- TCP/IP之十:TCP连接的建立与终止
- TCP/IP之十:TCP连接的建立与终止
- TCP-IP详解卷1-18:TCP连接的建立与终止
- 【TCP/IP详解】第18章 TCP连接的建立与终止
- TCP/IP详解卷1 读书笔记:第十八章 TCP连接的建立与终止
- 《TCP/IP详解 卷1:协议》 读书笔记 第十八章 TCP连接的建立与终止
- 《TCP/IP详解 卷1:协议》 读书笔记 第18章 TCP连接的建立与终止
- 读书笔记-tcp/ip详解卷1 第18章:TCP连接的建立与终止
- 《TCP/IP详解 卷1:协议》第十八章 TCP连接的建立与终止
- 《TCP/IP详解 卷1:协议》 读书笔记 第十八章 TCP连接的建立与终止
- 百度地图 根据距离设置地图比例(zoom)
- spark概念以应用场合
- HDU 1829 A Bug's Life(并查集的应用)
- vm三种连接方式bridge, nat, host-only
- ZF
- TCP/IP详解学习笔记--TCP连接的建立与终止
- 隐藏iOS导航条底部与self.view的分界线的简单方法
- iOS7下获取内付费的receipt
- 即时通讯 - Android、iOS、J2EE服务端的非对称加密传输数据
- java 工厂模式
- python中is和 == 的区别
- NYOJ 189 兔子的烦恼
- 访问者行为追踪比较——Web服务器日志与JavaScript页面标记
- List<>用法