UNP——第二章,TCP状态,TIME_WAIT

状态可以用 netstat 验证

加粗线为 数据交换。
可以看出,TCP在 建立连接和 关闭连接,耗费资源,
因为UDP只需要两次数据通信即可。
但UDP没有可靠传输,和流量控制。
上面协商的MSS为,两者最小值,即小于536
注释:
MSS时SYN的一个选项,用于告诉对方 它的最大分节大小,即在本次连接中,它愿意接受的最大数据量。
2.TIME_WAIT
TIME_WAIT 是主动关闭方,发送最后一个ACK进行的状态。
需要等待 2MSL
TIME_WAIT的意义:
(1)可靠的实现TCP全双工连接终止
如果 没有TIME_WAIT,且最后一个ACK未抵达,
被动关闭端,会再次发送FIN,而对端已经处于其他状态,则会回复RST,
被动关闭端,收到RST,会异常报错。
即TCP全双工连接没有正常关闭。
(2)允许老的重复分节在网络中消逝
如果两端都已关闭,但分组仍在网络中转发(由于暂时的网络异常)
但建立新的连接,新的连接使用了和老的连接一样的IP和port。
新的连接就可能接受到老的连接的分组。
所以只要有 TIME_WAIT,且时间为2MSL,则能保证 接受或发送的分组一定消失于网络。
注释:
MSL是 分组在网络最长的生命时间,
分组的生命时间由两点决定:MSL和TTL,只要有一点超了,就被丢弃。
UNP——第二章,TCP状态,TIME_WAIT的更多相关文章
- 第二章 TCP/IP 基础知识
第二章 TCP/IP 基础知识 TCP/IP transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的. ...
- tcp状态-TIME_WAIT与CLOSE_WAIT带来的坑
tcp状态: http://www.cnblogs.com/DengGao/p/tcp_state.html 1. tcp连接会占用系统资源(文件描述符), 有时候甚至会导致系统假死(不能发起或者处理 ...
- UNP——第二章,端口号,套接字对,TCP,UDP输出
1.端口号 端口号用于区分使用相同协议的进程. TCP69 与 UDP69 是不同的. 端口号范围 0 - 65535, 其中 0- 1023 是保留端口. 2.套接字对 TCP服务通过套接字对,唯一 ...
- UNP——第二章,TCP握手与挥手分析
1.握手 说明: 下面涉及 FIN,SYN,ACK之类数据时,都是由TCP服务收发, 涉及 accept, listen 之类api,都是 应用进程 完成. 都统一使用 客户端,服务端描述,请自行分辨 ...
- 关于TCP状态TIME_WAIT的理解
1.TIME_WAIT的作用: TIME_WAIT状态存在的理由:1)可靠地实现TCP全双工连接的终止 在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器 ...
- CCNA第二章TCP/IP简介考试要点学习笔记
1.描述网络是如何工作的 DoD过程/应用层 -- OSI应用.表示和会话层(定义了结点到结点的应用通信协议以及对用户界面规范的控制): DoD主机到主机层 -- OSI传输层(保证了数据包的 ...
- UNP——第二章,常见协议概述
1.为什么要了解协议 程序员与协议合作,完成应用. 了解协议是为了了解协议完成了什么,提供了什么服务,自己还应该做什么. 2.从协议的角度,套接字是什么 套接字是协议的接口, IP套接字,代表可使用I ...
- UNP学习笔记(第二章:传输层)
本章的焦点是传输层,包括TCP.UDP和SCTP. 绝大多数客户/服务器网络应用使用TCP或UDP.SCTP是一个较新的协议. UDP是一个简单的.不可靠的数据报协议.而TCP是一个复杂.可靠的字节流 ...
- TCP/IP TIME_WAIT状态原理
原文转载:http://elf8848.iteye.com/blog/1739571 IME_WAIT状态原理 ---------------------------- 通信双方建立TCP连接后,主动 ...
随机推荐
- Rust之路(3)——数据类型 下篇
[未经书面同意,严禁转载] -- 2020-10-14 -- 架构是道,数据是术.道可道,非常道:术不名,不成术!道无常形,术却可循规. 学习与分析数据类型,最基本的方法就是搞清楚其存储原理,变量和对 ...
- 源生代码和H5的交互 android:
1: 默认的事情: Android 通过内置的UI控件WebView来加载网页. 网页是用一个网络地址来表示的: 其整个使用方法很简单如下:(android不关心实际的 ...
- go http爬虫
1 package main import ( "fmt" "io/ioutil" "net/http" ) func main() { r ...
- go mod模式,引入自己的包,goland飘红
- chrome浏览器中调试窗口位置修改
在这里修改就好了
- 深度学习四从循环神经网络入手学习LSTM及GRU
循环神经网络 简介 循环神经网络(Recurrent Neural Networks, RNN) 是一类用于处理序列数据的神经网络.之前的说的卷积神经网络是专门用于处理网格化数据(例如一个图像)的神经 ...
- vue学习笔记(一)---- vue指令( v-bind 属性绑定 )
看栗子: <body> <div id="app"> <input type="button" value="按钮&qu ...
- HBase基础知识摘要
HBASE 列式存储,设计思想参考BigTable 文档:http://hbase.apache.org/book.html hive适合数据分析,离线任务 hbase大数据实时查询 避免显式锁,提供 ...
- oracle数据库中索引失效的几种情况
原文1:https://blog.csdn.net/u012255097/article/details/102792683 原文2:https://www.cnblogs.com/lanseyita ...
- Spring 最常用的 7 大类注解,哪些你还不知道?
随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那 ...