tcp四次挥手

TCP如何保证可靠传输(转)

梦想的初衷 提交于 2019-11-28 12:15:58
TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的。 确保传输可靠性的方式 TCP协议保证数据传输可靠性的方式主要有 : 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 校验和 计算方式:在数据传输的过程中,将发送的数据段都当做一个16位的整数。将这些整数加起来。并且前面的进位不能丢弃,补在后面,最后取反,得到校验和。 发送方:在发送数据之前计算检验和,并进行校验和的填充。 接收方:收到数据后,对数据以同样的方式进行计算,求出校验和,与发送方的进行比对。 注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送方一致,数据不一定传输成功。 确认应答与序列号 序列号:TCP传输时将每个字节的数据都进行了编号,这就是序列号。 确认应答:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。   序列号的作用不仅仅是应答的作用,有了序列号能够将接收到的数据根据序列号排序,并且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。 超时重传   在进行TCP传输时,由于确认应答与序列号机制,也就是说发送方发送一部分数据后

[网络配置相关]——netstat命令

南楼画角 提交于 2019-11-28 11:47:29
netstat :显示网络状态信息 -a 显示所有连接状态的网络的所有选项 -l 仅显示LISTEN状态的连接 -n 直接显示IP地址,而不通过域名服务器 -p 把进程名和进程PID也显示出来(PID/Program name) -t (tcp)仅显示tcp相关的连接 -u (udp)仅显示udp相关的连接 -c n 每隔n秒自动执行一次 # netstat -an |more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:902 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:63891 0.0.0.0:* LISTEN tcp 0 0 10.0.2.29:40356 10.0.2.253:22 TIME_WAIT tcp 0 0 10.0.2.29:46436 10.0.2.253:5906 ESTABLISHED Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM

TCP三次握手四次挥手

牧云@^-^@ 提交于 2019-11-28 10:51:01
三次握手Three-way Handshake 一个虚拟连接的建立是通过三次握手来实现的 1. (B) --> [SYN] --> (A) 假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接. 注意 : 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有当A受到B发来的SYN包,才可建立连接,除此之外别无他法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不能让外部任何主机主动建立连接。 2. (B) <-- [SYN/ACK] <--(A) 接着,A收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作. 注意: SYN/ACK包是仅SYN 和 ACK 标记为1的包. 3. (B) --> [ACK] --> (A) B收到SYN/ACK 包,B发一个确认包(ACK),通知A连接已建立。至此,三次握手完成,一个TCP连接完成 Note: ACK包就是仅ACK 标记设为1的TCP包. 需要注意的是当三此握手完成、连接建立以后,TCP连接的每个包都会设置ACK位, 这就是为何连接跟踪很重要的原因了. 没有连接跟踪,防火墙将无法判断收到的ACK包是否属于一个已经建立的连接.一般的包过滤

TCP的三次握手和四次挥手

不问归期 提交于 2019-11-28 08:58:26
TCP的三次握手和四次挥手 背景知识 TCP报文的头部(HEAD内容)各字段的含义,TCP头部最小为20个字节,这20个字节分为5行,每行4个字节。 其中第4行从第11个字节到第16个字节是6个标志位,每1位的值只有0和1,代表不同的含义。 ACK:确认序号有效。当值为1时,表示确认号有效。一般称携带ACK标志为1值当报文段为“确认报文段”。同时,TCP规定在连接建立后所有传送的报文段都必须把ACK设置为1。 SYN:发起一个新连接。当SYN的值为1时,表明这是一个请求连接报文段。一般称携带SYN标志的TCP报文段称为“同步报文段”。在TCP三次握手中的第一个报文就是同步报文段,在连接建立时用来同步序号。对方若同意建立连接,则在响应报文中使ACK值为1。 FIN:释放一个连接。当FIN的值为1时,表示此报文段的发送方的数据已经发送完毕,并要求释放TCP连接。 RST:重置连接。当RST的值为1时,表示TCP连接中出现了严重错误,需要释放并重新建立连接。一般称携带RST标志值为1的TCP报文段为“复位报文段”。 PSH:推送。当PSH的值为1时,表示该报文段是高优先级,接收方TCP应该尽快推送给接收应用程序,而不用等到整个TCP缓存都填满了后再交付。 三次握手 第一次握手:client端首先向server端发送一个报文,其中标识SYN=1,请求与server建立一个连接。 第二次握手

网络相关----IP

强颜欢笑 提交于 2019-11-28 08:12:35
1.UDP: Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。RFC 768 [1] 描述了 UDP。 Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的的事情。面向连接的是 TCP ,该协议几乎做了所有的事情。 2. OSI 3. IP地址 (1 )A 类 A类地址网络号范围:0.0.0.0---127.0.0.0 地址范围0.0.0.0到127.255.255.255 A类私有地址:10开头 A类保留地址:127开头用作循环测试 (2 )B 类 B类地址网络号范围:128.0.0.0---191.255.0.0。地址范围128.0.0.0到191.255.255.255。 B类私有地址 :172.16.0.0---172.31.255.255是 私有地址 B类保留地址:169.254.X.X 169.254.X.X是保留地址 (2 )C 类 C类地址网络号范围:192.0.0.0---223.255.255.0。地址范围 192.0.0.0到223.255.255.255 C类私有地址:192.168.X

HTTP协议

百般思念 提交于 2019-11-28 07:40:14
HTTP协议介绍 用户访问网站流程 客户端 --- 浏览器输入网址信息点击回车 客户端 --- 完成域名的解析过程(DNS) 客户端 --- 直接访问相应网站服务器 --- 建立TCP三次握手过程 客户端 --- 访问网站服务器 --- 发送HTTP请求报文 服务端 --- 响应客户端请求 --- 回复HTTP响应报文 客户端 --- 浏览器看到网站页面 客户端 --- 结束访问网站过程 --- 完成TCP四次挥手过程 DNS域名解析过程 打开浏览器:输入www.baidu.com 在本地主机上寻找域名对应IP地址信息 本地DNS缓存 寻找本地hosts文件 寻找LDNS服务器 LDNS查看本地缓存中是否有百度的IP地址 根域名服务器 顶级域名服务器 二级域名服务器 DNS结构图 DNS解析流程图 OSI七层模型 TCP/IP五层模型 TCP报文格式 TCP三次握手 syn(1):请求建立连接控制字段 fin(1):请求断开连接控制字段 ack(1):数据信息确认控制字段 seq:序号 LISTEN --- 侦听来自远方TCP端口的连接请求; SYN-SENT --- 在发送连接请求后等待匹配的连接请求; SYN-RECEIVED --- 在收到和发送一个连接请求后等待对连接请求的确认 ESTABLISHED --- 代表一个打开的连接,数据可以传送给用户; CLOSED ---

深入浅出TCP与UDP协议

牧云@^-^@ 提交于 2019-11-28 06:24:25
深入浅出TCP与UDP协议 网络协议是每个前端工程师的必修课,TCP/IP协议族是一系列网络协议的总和,而其中两个具有代表性的传输层协议,分别是TCP与UDP,本文将介绍这两者以及他们之间的区别。 一、TCP/IP网络结构模型 计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由那一边先发起通信、使用那种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称之为协议(protocol)。 TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。 网络参考模型 当通过http发起一个请求时,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的 首部 ,最终在链路层生成 以太网数据包 ,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。 网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。 一般情况下,快递是不能直达的,需要先转发到对应的配送站,然后由配送站再进行派件。 配送车就是物理介质

计算机网络之传输层

为君一笑 提交于 2019-11-28 06:05:25
计算机网络之传输层 网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。 (向两个主机中进程间的通信提供通用数据传输服务) 主要协议: TCP 、 UDP 。 典型设备:适配器,转发器,网桥,以太网交换机 UDP 和 TCP 的特点 UDP 首部格式 TCP 首部格式 TCP 的三次握手 TCP 的四次挥手 TCP 可靠传输 TCP 滑动窗口 TCP 流量控制 TCP 拥塞控制 1. 慢开始与拥塞避免 2. 快重传与快恢复 UDP 和 TCP 的特点 用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。 传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。 区别: TCP是面向连接的,UDP是面向无连接的 TCP是可靠的

TCP

送分小仙女□ 提交于 2019-11-28 05:38:37
面向连接的可靠数据传输协议 首部20字节,主要包括序号(32bit),确认号,源端口,目的端口号(16bit) 序号+累积确认+重传 流量控制:发送方维护接受窗口(接收方缓存空间大小) 四次挥手:全双工,一方请求断开连接,不代表另一方发送数据完毕。fin_wait1---(接收ack)--->fin_wait2---(接收fin,发送ack)--->timewait---()--->closed,time_wait为了给对方重发fin包的时间,且确保该次连接产生的报文段全部消失。 拥塞控制: 1. 慢启动:cwnd初始值为1,每rtt时间翻倍,直到>=ssthresh,进入拥塞避免。或发生一个由超时指示的丢包事件时,ssthresh被置为cwnm/2,cwnd被置为1,并重新开始慢启动。 2. 拥塞避免:每rtt时间cwnd增加1。 3. 快速重传+快速恢复:收到3个冗余的ack将重发未确认的报文段,然后进入快速恢复阶段。 快速恢复: step1: if(dupacks>=3){ ssthresh=max(2,cwnd/2); cwnd=ssthresh+3; } step2: 重新发送丢失的分组 step3: 此后每收到一次重复的ack,cwnd++。 step4: 收到非重复ack,置cwnd为ssthresh,进入拥塞避免阶段。    来源: https://www

计算机网络面试

好久不见. 提交于 2019-11-28 05:04:00
文章目录 OSI“实现”:TCP/IP TCP三次握手 为什么需要三次握手才能建立起连接 首次握手的隐患---SYN超时 建立连接后,客户端出现故障怎么办 TCP的四次挥手 为什么会有TIME_WAIT状态 为什么需要四次挥手才能断开连接 服务器出现大量CLOSE_WAIT状态的原因 TCP特点 UDP特点 TCP和UDP的区别 HTTP主要特点 请你说一下HTTP的报文段是什么样的?(请求报文和响应报文) GET方式和POST方式的区别 请你回答一下HTTP用的什么连接? HTTP请求/响应的步骤 在浏览器地址栏键入URL,按下回车之后经历的流程 HTTP和HTTPS的区别 HTTPS数据传输流程 区别 HTTPS真的很安全么 接口和端口的区别 IPv4与IPv6 OSI“实现”:TCP/IP OSI模型注重 通信协议必要的功能 是什么,而TCP/IP则更强调在计算机上 实现协议应该开发哪种程序 。 TCP三次握手 URG:紧急指针标志 ACK:确认序号标志 为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段,上面的确认号是否有效就是通过该标识位控制的 PSH:push标志 RST:重置连接标志 SYN:同步序号,用于建立连接过程 在连接请求中,SYN = 1 与 ACK = 0 表示该数据段没有使用捎带的确认阈,而连接应答捎带一个确认即 SYN = 1 ,ACK