tcp四次挥手

网络协议基础知识

梦想的初衷 提交于 2019-12-21 03:20:25
目录 一、基础协议 1、网络分层模型 2、协议划分 3、重点解析 1)TCP/IP和UDP协议 2)HTTP和HTTPS协议 3)WS和WSS协议 4)SSL、TLS和SSH协议 5)SOAP协议 二、应用知识 一、基础协议 1、网络分层模型 为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立 计算机网络 , 国际标准化组织 (ISO)在1978年提出了“ 开放系统互联 参考模型”,即著名的 OSI/RM模型 (Open System Interconnection/Reference Model)。它将 计算机网络体系结构 的 通信协议 划分为七层,自下而上依次为: 物理层 (Physics Layer)、 数据链路层 (Data Link Layer)、 网络层 (Network Layer)、 传输层 (Transport Layer)、 会话层 (Session Layer)、 表示层 (Presentation Layer)、 应用层 (Application Layer)。 2、协议划分 物理层 : 以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等 数据链路层:Wi-Fi( IEEE 802.11 ) · WiMAX( IEEE 802.16 ) ·ATM · DTM ·

TCP的三次握手和四次挥手理解及面试题

为君一笑 提交于 2019-12-20 06:45:54
一. 须知 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接 PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号 二 . 三次握手 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号

TCP/IP 详解学习笔记(13)-- TCP 连接的建立与终止

允我心安 提交于 2019-12-19 23:51:28
TCP 链接协议概述 建立 TCP 需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 建立连接的过程 首先 Client 端发送连接请求报文,Server 段接受连接后回复 ACK 报文,并为这次连接分配资源。Client 端接收到 ACK 报文后也向 Server 段发生 ACK 报文,并分配资源,这样 TCP 连接就建立了。 断开连接的过程 断开连接端可以是 Client 端,也可以是 Server 端。假设 Client 端发起中断连接请求,就先发送 FIN 报文。Server 端接到 FIN 报文后,但是如果还有数据没有发送完成,则不必急着关闭 Socket,可以继续发送数据。所以服务器端先发送 ACK,告诉 Client 端:请求已经收到了,但是我还没准备好,请继续等待停止的消息。这个时候 Client 端就进入 FIN_WAIT 状态,继续等待 Server 端的 FIN 报文。当 Server 端确定数据已发送完成,则向 Client 端发送 FIN 报文,告诉 Client 端:服务器这边数据发完了,准备好关闭连接了。Client 端收到 FIN 报文后,就知道可以关闭连接了,但是他还是不相信网络,所以发送 ACK 后进入 TIME_WAIT 状态, Server 端收到 ACK 后,就知道可以断开连接了。Client 端等待了 2MSL

网络-tcp

回眸只為那壹抹淺笑 提交于 2019-12-19 17:13:34
1.TCP:面向连接可靠的传输协议 ,全拼:Transmission Control Protocol 2.UDP:用户数据报协议 全拼:User Datagram protocol 不是面向连接的 创建socket就可以直接发送数据,不能保证数据的可靠性,但是速度快 3.TCP的特点 : 3.1 面向连接, 间接验证对方地址的有效性 3.2 可靠性 3.2.1 应答机制, 对方收到数据底层会有回复 3.2.2 超时重传, 隔一段时间会给对方重新发送数据,如果对方一直没有回复那么会认为对 方掉线了。 3.2.3 错误校验, 发送方发送的数据包和接收方接收的数据包序号不一致,tcp会自动对数据 包进行排序,如果数据包重复则会删除重复的数据包。 3.2.4 流量控制, 如果对方的网卡缓冲区达到一定上限,发送方就不能再发送数据,等待数据 开始接收完成以后再给其发送数据,保证电脑不被卡死 4.TCP和UDP的不同点: 4.1 tcp是面向连接的, udp不是 4.2 tcp能保证数据的有序和准确性 udp不能保证 4.3 tcp有超时重传 udp没有 4.4 tcp有错误校验机制 udp没有 4.5 tcp舍弃重复数据包的机制 udp没有 4.6 tcp流量控制 udp没有 4.7 tcp适合做文件上传和下载 4.8 udp适合做广播 4.9 udp输出速度比tcp要快,资源开销比tcp少

TCP/IP协议族

倾然丶 夕夏残阳落幕 提交于 2019-12-19 12:51:56
TCP/IP 协议是 Internet 最基本的协议。由传输层的 TCP 协议和网络层的 IP 协议组成。 TCP 负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而 IP 是给因特网的每一台联网设备规定一个地址。 TCP/IP 协议族 的分层管理 TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。 应用层 应用层决定了向用户提供应该服务时通信的活动。 TCP/IP 协议族内预存了各类通用的应用服务。比如, FTP ( File Transfer Protocol ,文件传输协议)和 DNS ( Domain Name System ,域名系统)服务就是其中的两类。 HTTP 协议也处于该层。 传输层 传输层对上层应用层,提供处于网络连接中两台计算机之间的数据传输。 在传输层有两个性质不同的协议: TCP ( Transmission Control Protocol ,传输控制协议)和 UDP ( User Data Protocol ,用户数据报协议)。 网络层(又名网络互连层) 网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。 与对方计算机之间通过多台计算机或网络设备进行传输时

TCP/IP协议入门

无人久伴 提交于 2019-12-19 11:46:47
TCP/IP协议入门 1. 简介 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议。它是网络通信的一套协议集合。 先来看一下OSI和TCP/IP模型: 应用层 就是应用软件使用的协议,如邮箱使用的POP3,SMTP、远程登录使用的Telnet、获取IP地址的DHCP、域名解析的DNS、网页浏览的http协议等;这部分协议主要是规定应用软件如何去进行通信的。 表现层 决定数据的展现(编码)形式,如同一部电影可以采样、量化、编码为RMVB、AVI,一张图片能够是JPEG、BMP、PNG等。 会话层 为两端通信实体建立连接(会话),中间有认证鉴权以及检查点记录(供会话意外中断的时候可以继续,类似断点续传)。 传输层 将一个数据/文件斩件分成很多小段,标记顺序以被对端接收后可以按顺序重组数据,另外标记该应用程序使用的端口号及提供QOS。TCP(传输控制协议)和UDP(用户数据报协议)就是属于传输层协议。 网络层 路由选路,选择本次通信使用的协议(http、ftp等),指定路由策略及访问控制策略。(IP地址在这一层) 数据链路层 根据端口与MAC地址,做分组(VLAN)隔离、端口安全、访问控制。(MAC地址在这一层)处理VLAN内的数据帧转发,跨VLAN间的访问,需要上升到网络层。 物理层

linux基础-TCP/IP协议篇

梦想的初衷 提交于 2019-12-19 11:46:27
一.网络TCP/IP层次模型   1.网络层次模型概念介绍 :TCP/IP协议就是用于简化OSI层次,以及相关的标准。传输控制协议(tcp/ip)族是相关国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信   是由一组不同功能的协议组合在一起构成的协议族,利用一组协议完成OSI所实现的功能,不单单是指TCP.IP这两个协议。   2.网络层析模型作用说明 :      OSI七层模型简化四层DoD模型,应用层、表示层、会话层统称为应用层,传输层称为主机到主机层,网络层即为因特网层,数据链路层和网络层统称为网络接入层。   3.网络层次模型组成部分如图:      每一层都包含了对应的协议规则,这里说明下ICMP协议,即为平时如果我们检查主机是否在线,通常使用ping 192.168.1.111,这里就用到了ICMP协议,如果ping不通也可能是ICMP协议关闭引起的哦!   4.网络层次模型琢层说明   (1)首先应用层:      应用层包含了以上诸多协议规则,包括一些对应的端口,其中除了TFTP是UDP协议之外,其他全部都为TCP协议。   (2)主机到主机层:      主机到主机层只包含了两个TCP和UDP这两个网络协议   (3)因特网层/网络接入层:      因特网层负责将分组报文从源端发送到目的端,为网络中的设备提供逻辑地址 二.网络TCP

TCP连接和建立

寵の児 提交于 2019-12-18 23:51:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> TCP三次握手 第一次握手:客户端向服务器发送→SYN J(调用connect进行主动打开。表示同步,告诉服务器客户将在连接中发送的数据的初始序列号,此时connect阻塞) 第二次握手:服务器向客户端响应一个→SYN K和→ACK J+1,客户端收到后connect返回(调用accept被动打开,告诉客户端服务器将在连接中发送的数据的初始序列号,此时accept阻塞) 第三次握手:客户端向服务器发送→ACK K+1,服务器收到后accept返回。 TCP四次挥手 第一次挥手:某个应用先调用close(主动关闭)。这一端的TCP发送一个→FIN M。 第二次挥手:收到FIN后(被动关闭),响应一个→ACK M+1。 第三次挥手:一段时间后,收到文件结束符的应用进程调用close关闭套接口。导致它的TCP也发送一个→FIN N。 第四次挥手:收到FIN的原发送端TCP进行确认发送一个→ACK N+1。 TCP为何采用三次握手来建立连接,若采用二次握手可以吗,请说明原因? 三次握手是为了防止已失效的连接请求再次传送到服务器端。 二次握手不可行,因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手

TCP连接的握手和挥手

时光毁灭记忆、已成空白 提交于 2019-12-18 23:24:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> TCP连接建立的三次握手 SYN:同步 ACK:回复 seq:自己产生的序列号 ack:回复确认的编号 C-S询问服务端是否可以建立连接; S-C回复客户端收到了请求,并告诉客户端可以建立连接; C-S确认收到了服务端的同意请求;建立建立; TCP连接释放,四次挥手 C-S,告诉服务器,要释放连接;seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1); S-C,告诉客户端,收到请求,让客户端等待; S-C,告诉客户端,可以释放连接; C-S,回复服务端,准备连接释放;等待2个最长报文段寿命之后,释放连接; 来源: oschina 链接: https://my.oschina.net/hewenbin/blog/3144648

TCP三次握手和Time-Wait状态

杀马特。学长 韩版系。学妹 提交于 2019-12-18 12:47:03
第一次握手:建立连接时。client发送 syn 包和一个随机序列号 seq=x 到server,并进入 SYN_SEND 状态,等待server进行确认。 ( syn ,同 步序列编号)。 第二次握手,server收到 syn 包,必须确认客户的 SYN 。然后server发送一个 ACK=1, SYN=1, seq=y 的随机数和 ack=x+1 的确认数的包发送回去。 第三次握手是client收到server端的 SYN+ACK 包,然后向server端发送确认包 ack=y+1, seq=x+1, ACK=1 ,client和server端进入 ESTABLISHED 状态,完毕三次握手。详细图演示样例如以下( ACK 表示首部中的 ACK 位置1。 ack 表示首部中确认序号字段的值): 这里多说一点,既然提到了连接时的三次握手,就顺便把断开连接时的四次挥手也复习一下。 首先client主动发送 Fin=1,seq=u 。它等于前面已传 送过去的最后一个字节的序号加1.这时 A 进入 FIN-WAIT-1 状态。等待 B 的确认。 B 收到连接后马上发出确认。确认号是 ack=u+1 ,而这个报文段 自己的序号是 v 。等于 B 前面已传送过的数据的最后一个字节的序号加1.然后 B 即进入 CLOSE-WAIT 状态。因而 A 到 B 的这个链接如今已经断开了,这时 的