tcp四次挥手

TCP协议中的三次握手和四次挥手

懵懂的女人 提交于 2020-03-20 20:54:24
3 月,跳不动了?>>> 首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP( 是根据 IP地址 获取 物理地址 的一个 TCP/IP协议 )在第二层——Data Link层;在第二层上的数据,我们把它叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。 同时,我们需要简单的知道,数据从应用层发下来,会在每一层都会加上头部信息,进行封装,然后再发送到数据接收端。这个基本的流程你需要知道,就是每个数据都会经过数据的封装和解封装的过程。 在OSI七层模型中,每一层的作用和对应的协议如下: TCP连接的建立(三次握手) 客户端发送(主动)一个SYN给服务端(相当于告诉服务端,我要打开连接了,你注意一下)。客户端的状态变化:CLOSED–> SYN_SENT,服务端状态变化:CLOSED–>LISTEN; 服务端收到SYN报文,发送SYN+ACK两个报文给客户端,其中ACK报文是对客户端发来的SYN报文的确认(相当于告诉客户端,我收到你的连接请求了)。而这里的SYN报文则是服务端主动给客户端发送的请求连接报文(相当于告诉客户端,我要和你建立连接了,你注意一下)。服务端的状态变化:LISTEN–>SYN RECEIVED,客户端的状态无变化 客户端收到服务端的SYN

网络-传输层

余生长醉 提交于 2020-03-19 07:28:29
1.常用的应用层协议使用的端口(号): http = TCP + 80 Https = TCP + 443 RDP = TCP + 3389 ftp = TCP + 21 共享文件夹 = TCP + 445 SMTP = TCP + 25 POP3 = TCP + 110 telnet = TCP + 23 SQL = TCP + 1433 DNS = UDP + 53 如何查看服务侦听的端口 netstat -a netstat -an 以数字的形式查看端口 netstat -n 查看建立的会话 netstat -nb 查看建立会话的进程 telnet 192.168.80.100 3389 测试到远程计算机某个端口是否打开 2.ARP/RARP协议 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。 逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址。 3.路由选择协议 常见的路由选择协议有:RIP协议、OSPF协议。 RIP协议 :底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。 OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法

跟着动画来学习TCP三次握手和四次挥手

偶尔善良 提交于 2020-03-18 17:06:42
TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。 本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地地理解TCP交互的本质。 TCP 三次握手 TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对方是否认识自己。 张三首先向李四招手( syn ),李四看到张三向自己招手后,向对方点了点头挤出了一个微笑( ack )。张三看到李四微笑后确认了李四成功辨认出了自己(进入 estalished 状态)。 但是李四还有点狐疑,向四周看了一看,有没有可能张三是在看别人呢,他也需要确认一下。所以李四也向张三招了招手( syn ),张三看到李四向自己招手后知道对方是在寻求自己的确认,于是也点了点头挤出了微笑( ack ),李四看到对方的微笑后确认了张三就是在向自己打招呼(进入 established 状态)。 于是两人加快步伐,走到了一起,相互拥抱。 我们看到这个过程中一共是四个动作,张三招手--李四点头微笑--李四招手--张三点头微笑。其中李四连续进行了2个动作,先是点头微笑(回复对方),然后再次招手(寻求确认),实际上可以将这两个动作合一,招手的同时点头和微笑( syn+ack )。于是四个动作就简化成了三个动作,张三招手-

TCP三次握手,四次挥手

对着背影说爱祢 提交于 2020-03-18 14:08:53
TCP三次握手详解及释放连接过程 TCP协议中的三次握手和四次挥手(图解) 暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。 FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。 seq是序列号,这是为了连接以后传送数据用的,ack是对收到的数据包的确认,值是等待接收的数据包的序列号。 在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。 seq是数据包本身的序列号;ack是期望对方继续发送的那个数据包的序列号。 三次握手的过程:

关于三次握手与四次挥手小结

瘦欲@ 提交于 2020-03-17 17:42:12
三次握手 过程 第一次握手:客户端给服务器发送一个 SYN 报文; 第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文; 第三次握手:客户端收到 SYN+ACK 报文之后,回应一个 ACK 报文; 服务器收到 ACK 报文之后,三次握手完成,建立链接。 作用 为了确认双方的接收与发送能力是否正常; 指定自己的初始化序列号,为后面的可靠传送做准备。 为何必须三次握手,不可两次建立连接? 第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。 第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。 第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。 所以最少三次才可以让客户端和服务器都确认,双方的发送能力与接收能力都正常 如果少一次握手会怎样? 如果只有两次握手,假如客户端向服务器发送了请求建立连接的报文, 而这个报文由于网络原因在网络中滞留了, 因此客户端收不到服务器的确认报文段, 会重新发送一个请求报文段,而该请求报文段顺利到达服务器, 根据假设的两次握手的机制,服务器给客户端回复了确认之后,两者就建立了连接,

TCP/IP

筅森魡賤 提交于 2020-03-17 12:25:27
1.TCP/IP协议族分层模型 应用层 直接与用户信息打交道。主要是 HTTP、DNS 协议。 传输层 TCP、UDP 是此层的重要协议。 TCP: 面向连接的,可靠的协议; UCP:无连接的,不可靠的协议。 互联网层(IP层) 与对方计算机之间通过多台计算机或网络设备进行传输时,在多种选择种选择一条传输线路。 IP 协议。 网络接口层(数据链路层) 硬件处理范畴。 2.HTTP协议发送Web网页HTTP请求过程 HTTP–>传输层(把HTTP请求报文分割,打上标记序号和端口号)–>网络层(添加通信目的地 MAC地址)–>链路层 3. 封装 发送端从应用层往下走,接收端从应用层往上走。 发送端在层与层之间传输数据时,每经过一层会打上一个该层所属的头部信息,就是 封装 。 接受层在层与层传输数据时,每经过一层时会把对应的首部去掉。 3. 建立TCP三次握手: Client(客户):主动发起建立的应用进程; Server(服务器):被动等待连接的应用进程。 第一次握手:Client 标志位SYN=1的数据包,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN-SENT状态。 第二次握手:Server明白,发送SYN=1,ACK=1,ack=x+1随机产生seq=y,数据包。 第三次握手:Client明白发送ACK=1,ack=y+1;并发送

TCP和UDP的比较(包含“三次握手,四次挥手”)

允我心安 提交于 2020-03-17 11:12:36
接TCP和UDP编程流程一节 写在前面:这里关于TCP的“三次握手和四次挥手“”描述的不是非常清楚,详细的见后文哦~ TCP和UDP的区别 TCP是面向连接的,可靠的,字节流服务 UDP是无连接,不可靠的,数据报服务 如图(3-1)所示: 1.发送方的send的次数和recv接收方的次数是不对等的; 2.发送方send的次数与底层封装的TCP报文段的个数不对等; 3.接收方如果一次recv未将TCP接收缓冲区中的数据读完,后续的recv会接着读取。 如图(3-2)所示: 1.sendto和recvfrom的次数是相等的; 2.sendto与底层UDP数据报的个数是相等的; 3.一次recvfrom如果没有将一个UDP报文段中的数据读完,则剩余的数据会被丢弃。 ————————————————————————————————————————————— TCP的面向连接 三次握手: 思考:为什么是三次握手?? 四次挥手: 思考:为什么要四次握手?? —————————————————————————————————— TCP的可靠性传输保证: UDP协议 来源: CSDN 作者: 飞流直下 链接: https://blog.csdn.net/weixin_44737923/article/details/103328365

TCP/IP协议分析

你说的曾经没有我的故事 提交于 2020-03-17 02:11:22
文章目录 TCP/IP参考模型 应用层 主机到主机层 因特网层 利用TCP/IP参考模型分析数据传输过程 可靠的TCP TCP概述 TCP报文结构 主机到主机层 TCP三次握手 TCP四次挥手 滑动窗口机制 停止等待协议 拥塞控制 冒险的UDP UDP概述 UDP报文结构 TCP/IP参考模型 应用层 HTTP 80 超文本传输协议,提供浏览网页服务 Telnet 23 远程登陆协议,提供远程管理服务 FTP 20、21 文件传输协议,剔红互联网文件资源共享服务 SMTP 25 简单邮件传输协议,提供互联网电子邮件服务 POP3 110 邮局协议,提供互联网电子邮件服务 TFTP 69(UDP)简单文件传输协议,提供简单的文件传输服务 主机到主机层 TCP UDP TCP与UDP的对比 传输控制协议(TCP) 用户数据报协议(UDP) 面向字节流 面向报文 面向链接 无连接 可靠传输 尽力而为的传输 支持流控及窗口机制 无流控及窗口机制 HTTP、FTP等 TFTP、DNS、DHCP等 因特网层 负责将ip报文从源端发送到目的端 定义逻辑地址(IP地址) 负责数据包的寻径和转发 IP包 首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定。数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B。 利用TCP

TCP的三次握手和四次挥手

无人久伴 提交于 2020-03-15 12:59:18
今天去面试围绕RPC组件这一块被询问到了TCP的连接机制,脑子仅存在大学里的一点记忆,于是回来整理一番,先看个例子 三次握手: A:“喂,你听得到吗?”A->SYN_SEND B:“我听得到呀,你听得到我吗?”应答与请求同时发出 B->SYN_RCVD | A->ESTABLISHED A:“我能听到你,今天balabala……”B->ESTABLISHED 四次挥手: A:“喂,我不说了。”A->FIN_WAIT1 B:“我知道了。等下,上一句还没说完。Balabala…..”B->CLOSE_WAIT | A->FIN_WAIT2 B:”好了,说完了,我也不说了。”B->LAST_ACK A:”我知道了。”A->TIME_WAIT | B->CLOSED A等待2MSL,保证B收到了消息,否则重说一次”我知道了”,A->CLOSED 设主机B运行一个服务器进程,它先发出一个被动打开命令,告诉它的TCP要准备接收客户进程的连续请求,然后服务进程就处于听的状态。不断检测是否有客户进程发起连续请求,如有,作出响应。设客户进程运行在主机A中,他先向自己的TCP发出主动打开的命令,表明要向某个IP地址的某个端口建立运输连接,过程如下: 1)主机A的TCP向主机B的TCP发出连接请求报文段,其首部中的同步比特SYN应置1,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x。

linux-7week

坚强是说给别人听的谎言 提交于 2020-03-14 00:37:35
1、osi七层模型和TCP/IP五层模型 应用层:为应用软件提供服务。 表示层;用于处理两个通信系统中交换信息的表示方式,主要有数据格式交换,数据加密数据解秘,数据压缩等。 会话层:维护两个计算机之间的传输链接,保证点到点传输不中断,以及管理数据交换等。 传输层:确保数据传输的可靠性,通过端口号来区分上层应用程序;传输的是数据段 --TCP UDP 网路层:数据传输, 数据包,逻辑地址/IP地址 --路由器 ;协议-IP ICMP IGMP ARP RARP 数据链路层:数据帧、MAC地址/物理地址, --交换机 物理层:二进制数据传输,比特流;--网卡 2、总结描述TCP三次握手四次挥手 TCP的三次握手: 在A机向B机发送数据交互时,建立SYN数据连接请求 ,数据包seq=x,发送给B机当B机收到数据后会回复给A机,同样也会发送SYN数据建立报文,B机给A机的数据包为seq=y,同样也要回复给A机的确认报文ACK=x+1,表明此数据我以收到,当A机再次收到B机确认的数据后,回复确认报文ACK=y+1,同样也会封装自己的数据包x+1告诉B机可以进行数据交互。 TCP的四次断开: 在A机向B机请求断开连接时,会发送FIN断开连接请求,封装一个数据包seq=x,发送给B,当B机收到A记得断开请求数据时,同样也会回复给A机ack确认报文数据包会表示为seq=x+1