探究TCP】的更多相关文章

OSI OSI是Open System Interconnection的缩写,意为开放式系统互联.国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架.OSI模型把网络通信的工作分为7层,分别是物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中TCP处理transport层,主要是用来建立可靠的连接. 而建立连接的基础 TCP TCP(Transmission Control Protocol 传输控制协议)是一种面向连…
本次实验,我们来探究connect及bind.listen.accept背后的三次握手. 实验原理 首先简要回顾一下TCP三次握手的过程: 第一次握手:client向server发送SYN=1的数据报文表示请求连接,初始序列号(Sequence Number)字段为X.此时client端处于SYN-SENT状态. 第二次握手:server发送ACK=1, SYN=1的报文表示确认连接请求.ack序列号为X+1, 序列号字段置为Y.此时server处于SYN-RECEIVED状态. 第三次握手:c…
TCP通信过程 如下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手).数据传输.断开TCP连接通道(四次挥手). 这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程.先看TCP状态状态转换图. 上半部分是TCP三路握手过程的状态变迁,下半部分是TCP四次挥手过程的状态变迁. CLOSED:起始点,在超时或者连接关闭时候进入此状态,这并不是一个真正的状态,而是这个状态图的假想起点和终点.LISTEN:服务器端等待连接的状态.服务器经过 socket,bind,…
下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手).数据传输.断开TCP连接通道(四次挥手). 这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程.先看TCP状态状态转换图. 上半部分是TCP三路握手过程的状态变迁,下半部分是TCP四次挥手过程的状态变迁. CLOSED:起始点,在超时或者连接关闭时候进入此状态,这并不是一个真正的状态,而是这个状态图的假想起点和终点. LISTEN:服务器端等待连接的状态.服务器经过 socket,bind,listen 函…
初步探究java中程序退出.GC垃圾回收时,socket tcp连接的行为 今天在项目开发中需要用到socket tcp连接相关(作为tcp客户端),在思考中发觉需要理清socket主动.被动关闭时发生了什么,所以做了一番实验,验证socket tcp连接在调用close.被GC回收.程序运行完毕退出.程序进程被杀掉时,tcp会产生什么行为.得出了一些结论,记录于此同时分享给大家. 先写出得到的结论: java程序运行完毕退出和被杀进程时,socket tcp连接会被关闭.而且是通过发送RST方…
分类: 网络与安全 对TCP连接被重置解决方案的探究——跨过GFW通向自由网络的可行途径 2010年05月25日 星期二 上午 00:19 这个标题有点长——其实开始只想写破折号之前的部分,因为这种技术文章说的隐晦一点没有坏处,但又担心大家不明白是怎么回事,硬着头皮还是补上了后面的部分. 中 国的网络环境很复杂,同时中国也是对互联网高度控制的国家之一,当然仅限于大陆.而控制中国网民自由上网的网络海关正是大名鼎鼎的GFW(Great Fire Wall,长城防火墙),GFW的工作原理就是重置TCP…
这里主要记录一下TCP连接在关闭的时刻,有哪些细节问题.方便在以后的程序设计中能够注意这些细节, 以避免出现这些错误.首先我们来看一下TCP的状态转换图.如<unix网络编程>卷一所示如下图: TCP 四次挥手: 挥手时的序号问题 挥手过程中状态转换问题 TIME_WAIT 产生原因 挥手序号问题: 这里可以看出FIN也占用了一个序号,例如FIN M, 对方回应ACK 确认序号为M+1.最后发送FIN也是如此.那么这里的M和N在传输数据过程中怎样得到的.看一下一个抓包的例子如下 :: >…
一 复习与目标 1 复习 简单密码学.对称加密与非对称加密 数字签名.数字证书 SSL/TLS HTTPS = HTTP + SSL/TLS,SSL/TLS为HTTP提供了保密性.完整性和鉴别性 2 目标 TCP性能调优 TLS性能调优 注:调优提前说明是担心讲完H2.WebSocket协议,导致前面的协议忘的差不多了,所以提前学习,提前使用上(偏重实战). 二 TCP性能调优 1 性能检查清单 服务器内核升级到最新版本(Linux:3.7 +) 确保启动窗口缩放: 确保cwnd大小为 10:…
1 概述 重传定时器:使用于当希望收到另一端的确认. 坚持(persist)定时器:使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口 保活(keepalive)定时器:用于检测一个空闲连接的另一端何时崩溃或重启. 2MSL定时器:测量一个连接处于TIME_WAIT状态的时间. 2 重传定时器 目的:提高TCP可靠性,确保对方收到,并返回ACK. 作用:重新发送丢失的包 重传时机:超时时间(RTO) RTO值:RTO不能是固定值,需要参考往返时间(RTT) 计算算法:经典算法(SRTT算法)…
1 RTT算法 1.1 概述 上一节说了重传机制需要设置一个重传超时值(RTO,Retransmission TimeOut),RTO设长了,重发太慢:设短了,可能导致包没有丢,就重发了,可能导致雪崩效应(重发多,失败多,失败多,导致更多的重发...请参考: 暴风门事件). 那么该值怎么设置? 由于一开始无法确定设置某个值,所以需要程序自动适应,动态地去设置 RTT,Round Trip Time,设置的参考值为数据报来回所需要的时间 1.2 经典算法 采样最近几次的RTT SRTT计算(Smo…