tcp四次挥手

【计算机网络】TCP的连接释放

柔情痞子 提交于 2020-02-21 18:18:52
TCP的连接释放俗称TCP的四次挥手,即客户端与服务器端之间传输4次报文段。 其具体的释放过程如图: 在释放之前,双方都处于连接(ESTABLISHED)状态。若客户端A进程已经没有数据向服务器B进程发送了,并且乡释放连接,则便向B发送连接释放报文段,其中FIN=1,序号seq=u(之前发送数据的最后一个字节的序号为u-1),这个报文表示:我已经没有数据要发送了,我要结束TCP连接了,所以告诉你一声。发送后便进入FIN-WAIT-1状态。 当B收到 A的连接释放请求报文段后立即发送确认报文段,此报文段中ACK=1,并将确认号ack=u+1,自己的序号seq=v(最后一个数据的序号+1)。此报文段表示我知道你没有数据要发送了,但我还不确定我有没有数据要发送给你。此时B进入CLOSE-WAIT(关闭等待)状态。此时TCP处于半关闭状态,即A没有数据向B发送了,B有可能向A发送数据。 当A收到B发送的确认报文段后,进入FIN-WAIT-2状态。此状态期间可以继续接受B发送来的数据。 当B也没有发送的数据后,应用程序便通知B释放TCP连接,此时B向A发送确认连接释放报文段,并FIN=1,ACK=1,确认号ack=u+1,序号seq=w。之后B便进入LAST-ACK状态。 当A收到B的确认连接释放报文段后,立即发送一个确认报文段,此时ACK=1,seq=u+1,ack+w+1。进入TIME

python摸爬滚打之day26----网络编程之socket

十年热恋 提交于 2020-02-21 12:33:07
1、网络通信原理   互联网的本质就是一系列的网络协议, 统称为互联网协议.    互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。   互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层.   对于tcp\ip 五层协议, 每层运行常见物理设备有以下几种: 2、tcp\ip五层协议模型讲解      我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理.     首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解.     每层都运行特定的协议, 越往上越靠近用户,越往下越靠近硬件.   2.1 物理层     孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网.     物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0   2.2 数据链路层     单纯的电信号0和1没有任何意义,必须规定电信号多少位一组.     数据链路层的功能:定义了电信号的分组方式.      以太网协议----ethernet        以太网协议规定: 一组电信号组成一个数据包(叫做帧),

网络协议及tcp协议详解

青春壹個敷衍的年華 提交于 2020-02-20 14:35:52
问题来源:面试中面试官会看到你的简历上写着熟悉网络、http、tcp协议等,那你真的了解他吗?今天它来了 一、网络协议: 层次说明: 第七层:应用层( http ) 为操作系统或网络应用程序提供访问网络服务的接口。 第六层:表示层 处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。包括数据格式交换、数据加密与解密、数据压缩与终端类型的转换。 第五层:会话层 在两个节点之间建立端连接。为端系统的应用程序之间提供了对话控制机制。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。 第四层:传输层( tcp ) 为会话层用户提供一个端到端的可靠、透明和优化的数据传输服务机制。 第三层:网络层 网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。 第二层:数据链路层 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 第一层:物理层 物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。 二、tcp协议: 说说TCP三次握手的过程? 第一次握手

TCP 连接建立分析

会有一股神秘感。 提交于 2020-02-17 15:18:37
tcp 三次握手与四次挥手 tcp 报文结构 tcp 是全双工的,即 client 向 server 发送信息的同时,server 也可以向 client 发送信息。 在同主机的两个 session 中分别执行以下命令 tcpdump -i lo -w - | tee ./hello.cap | tcpdump -r - telnet localhost 三次握手 字段含义:时间戳;从本地临时端口38644向telnet;发起连接标志S;client初始包序号3961004360;窗口大小43690字节;选项[最大报文段长度65495;允许TCP单独确认非连续的片段,用于告知真正丢失的包,只重传丢失的片段;时间戳选项;无操作字段;窗口扩大选项];数据段长度 第一行(第一次握手):client端主动发起第一次握手,同步位syn=1,同时初始化序列号seq num=J; 第二行(第二次握手):server端SYN=1,ACK=1,确认号ack num=J + 1,同时自己初始化序列号seq=K; 第三行(第三次握手):client收到确认报文,SYN不再置1,ACK=1,确认号ack num = K + 1; server端收到第三次握手的数据报文时,进入established状态,TCP连接建立。 四次挥手 第一行(第一次挥手):client发送结束报文字段,FIN = 1,seq

tcp/ip协议

情到浓时终转凉″ 提交于 2020-02-17 09:20:30
tcp/ip协议 TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议。定义了主机如何连入因特网以及数据如何在他们之间传输的标准。 三次握手协议 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。 TCP共有6个标志位,分别是: SYN(synchronous),建立联机。 ACK(acknowledgement),确认。 PSH(push),传输。 FIN(finish),结束。 RST(reset),重置。 URG(urgent),紧急。 (1)第一次握手:Client将标志位SYN(同步序列编号)(Synchronize Sequence Numbers)置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。 (3)第三次握手:Client收到确认后

计算机网络核心(1)

杀马特。学长 韩版系。学妹 提交于 2020-02-17 05:41:13
一、网络基础知识 1、OSI 开放式互联参考模型 当前市面上分别存在:四层、五层、七层协议,而国际标准化组织 ISO 制定的 OSI 七层协议模型,是业界提出来的概念性框架: 先自上而下,后自下而上处理数据头部 从应用层开始,都会对传输的数据头部进行处理,加上本层的一些信息,最终,由物理层通过以太网、电缆等介质,将数据解析成比特流,在网络中传输。 数据传输到目标地址后,并自底而上的将先前对应的头部解析分离出来,这个就是网络数据处理的流程。 2、TCP/IP OSI 是一个定义良好的协议规范机制,并有许多可选部分完成类似的任务。它定义了开放系统的层次结构、层次之间的相互关系、以及各层可包括的可能的任务,是作为一个框架来协调和组织各层所提供的服务。 但是 OSI 参考模型并没有提供一个可以实现的方法,而只是描述了一些概念,用来协调进程间通信标准的制定。所以,OSI 参考模型并不是一个标准,而是一个在自定标准时所使用的概念型框架。 实施的标准时 TCP/IP 四层架构参考模型,虽然 TCP/IP 协议并不完全符合 OSI 的七层参考模型,但我们依然可以将其理解为是对 OSI 的一种实现。 二、TCP的三次握手 1、TCP 报文头 1.1 Source Port 和 Destination Port 首先,Source Port 和 Destination Port

Java 之 TCP 通信程序

一笑奈何 提交于 2020-02-14 00:22:43
一、TCP协议概述   TCP(Transmission Control Protocol,传输控制协议)被称作一种端对端协议。是一种面向连接的、可靠的、基于字节流的传输层的通信协议,可以连续传输大量的数据。   这是因为它为当一台计算机需要与另一台远程计算机连接时,TCP协议会采用“三次握手”方式让它们建立一个连接,用于发送和接收数据的虚拟链路。数据传输完毕TCP协议会采用“四次挥手”方式断开连接。   TCP协议负责收集这些信息包,并将其按适当的次序放好传送,在接收端收到后再将其正确的还原。TCP协议保证了数据包在传送中准确无误。TCP协议使用重发机制,当一个通信实体发送一个消息给另一个通信实体后,需要收到另一个通信实体确认信息,如果没有收到另一个通信实体确认信息,则会再次重复刚才发送的消息。   TCP 通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。   两端通信时步骤:      1、服务端程序,需要事先启动,等待客户端的连接;     2、客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。   在 Java 中,提供了两个类用于实现 TCP 通信程序:      1、 客户端 :java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务器响应请求

TCP/UDP协议

本秂侑毒 提交于 2020-02-14 00:17:20
文章目录 1.OSI网络七层模型 1.1各层的主要功能 低三层 承上启下作用层 高三层 2.传输控制协议TCP 2.1 TCP握手机制 2.1.1三次握手过程 Ⅰ.为什么需要三次握手,两次不行吗? Ⅱ.什么是半连接队列? Ⅲ.ISN(Initial Sequence Number)是固定的吗? Ⅳ:三次握手过程中可以携带数据吗? Ⅴ. SYN攻击是什么? 2.1.2 四次挥手过程 Ⅰ. 挥手为什么需要四次? Ⅱ.四次挥手释放连接时,等待2MSL的意义? Ⅲ.为什么TIME_WAIT状态需要经过2MSL才能返回到CLOSE状态? 3.用户数据报协议 UDP 3.1开发应用人员在UDP上构建应用时关注的点 3.2 UDP和TCP比较 3.3什么情况下会用到UDP? 4.Socket编程 1.OSI网络七层模型 为使不同计算机厂商的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。 分层的目的:为了让每一层的开发人员、系统设计不需要再关心整个的网络层次。比如说做网线或者光纤的厂商,只需要关心物理层就行。 1.1各层的主要功能 低三层 物理层:使原始的数据比特流能在物理介质上传输。 数据链路层:通过校验、确认、和反馈重发等手段,形成稳定的数据链路(01010101)。 网络层:进行路由选择和流量控制。(IP协议) 承上启下作用层 传输层

网络

与世无争的帅哥 提交于 2020-02-13 21:24:02
个人博客 http://www.milovetingting.cn 网络 前言 本文为学习Java相关知识所作笔记,参考以下资料: https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 网络 7 层架构 7 层模型主要包括: 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。 它的主要作用是传输比特流(就是由 1、 0 转化为电流强弱来进行传输,到达目的地后在转化为1、 0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。 数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。 网络层:主要将从下层接收到的数据进行 IP 地址(例 192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。 传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如: TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据), UDP(用户数据报协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段进行传输

第七周作业

爱⌒轻易说出口 提交于 2020-02-12 20:57:48
1、简述osi七层模型和TCP/IP五层模型 OSI七层模型和TCP/IP模型两者对应关系图: OSI七层模型: 物理层: 二进制传输。为启动、维护以及关闭物理链路d'yi定义了电气规范、机械规范、过程规范和功能规范。 数据链路层: 介质访问。定义如何格式化数据以便进行传输以及如何控制对网络的访问;支持错误检测。 网络层: 数据传输。路由数据包;选择传递数据的最佳路径;支持逻辑寻址和路径选择。 传输层: 传输问题。确保数据传输的可靠性;建立、维护和终止虚拟电路;通过错误检测和恢复;信息流控制来保障可靠性。 会话层: 主机间通信。建立、管理和终止在应用程序之间的会话。 表示层: 数据表示。确保接收系统可以读出该数据;格式化数据;构建数据;协商用于应用层的数据传输语法;提供加密。 应用层: 网络进程访问应用层。为应用程序进程(例如,电子邮件、文件传输和终端仿真)提供网络服务;提供用户身份验证。 TCP/IP四层模型: 应用层: 应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等。 传输层: 传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。 TCP协议提供的是一种可靠的、通过“三次握手