博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP同时打开和同时关闭
阅读量:3525 次
发布时间:2019-05-20

本文共 514 字,大约阅读时间需要 1 分钟。

1. 同时打开

两个应用程序同时彼此执行主动打开的情况是可能的,尽管发生的可能性极小。每一方必须发送一个SYN,且这些SYN必须传递给对方。这需要每一方使用一个对方熟知的端口最为本地端口。

当出现同时打开的情况时,状态迁移图就与标准的连接状态迁移图不一样了。两端几乎同时发送SYN并进入SYN_SENT状态。当每一端收到SYN时,状态变为SYN_RCVD,同时它们都再发SYN并对收到的SYN进行确认。当双方都接收到SYN及相应的ACK时,状态都变味了ESTABLISHED。
一个同时打开的连接需要交换需要交换4个报文段,比正常的三次握手多一个。没有任何一端称为客户或服务器,因为每一端既是客户又是服务器。

2. 同时关闭

在标准的情况下通过一方发送FIN来关闭连接,但是双方都执行主动关闭也是有可能的,TCP协议也允许这样的同时关闭。当应用层发出关闭命令时,梁福安均从ESTABLISHED变为FIN_WAITE_1。这将导致双发各发送一个FIN,两个FIN经过网络传输后分别达到另一端。收到FIN后,状态由FIN_WAIT_1变签到CLOSING,并将发送最后的ACK。当收到最后的ACK时,状态变化为TIME_WAIT。

你可能感兴趣的文章
选择排序(java代码实现)
查看>>
插入排序
查看>>
哈夫曼树java代码实现
查看>>
快速排序
查看>>
vue路由高亮的两种方式
查看>>
vue router 报错: Uncaught (in promise) NavigationDuplicated {_name:""NavigationDuplicated"... 的解决方法
查看>>
vue跳转页面的两种方式
查看>>
存储器题目解析(持续更新中....)
查看>>
存储器知识要点
查看>>
Cache模拟器的实现
查看>>
实验2:MIPS指令系统和MIPS体系结构
查看>>
设计模式七大原则
查看>>
手写 | spring事务
查看>>
AndroidStudio Gradle手动下载
查看>>
SpringBoot入门(二)场景启动器
查看>>
SpringBoot入门--自动配置
查看>>
springboot读取配置文件 例:读取配置文件的优先顺序;在主配置文件中激活其他配置文件;加载非主配置文件
查看>>
自动配置原理
查看>>
TCP协议
查看>>
关于Linux系统使用遇到的问题-1:vi 打开只读(readonly)文件如何退出保存?
查看>>