首页 > 其他分享 >TCP

TCP

时间:2023-03-12 11:34:26浏览次数:46  
标签:服务器端 ACK 报文 TCP 发送 客户端

TCP和UDP的区别

TCP面向连接,UDP面向非连接
TCP保证数据顺序,UDP不保证
TCP保证数据正确性,UDP不保证
TCP对系统资源要求多,UDP要求少
TCP传输速度慢,UDP速度快

可靠传输服务

保证接收方进程从缓存区读出的字节流与发送方发出的字节流完全一样。
序号
TCP首部的序号字段用来保证数据有序地进入缓存区,序号值是报文段发送的数据的第一个字节的序号。
累计确认
TCP首部的确认号是期望收到对方的下一个报文段序号,只确认至第一个丢失字节为止的字节。
重传
导致重传的两种事件:超时和冗余ACK。
1.超时
每发送一个报文段,就设置一个计时器。如果计时器时间到了但没有收到确认,则重传该报文段。问题是超时周期太长。
2.冗余ACK
冗余ACK指再次收到某个报文段的ACK。每当比期望序号大的失序报文段到达时,接收方发送一个冗余ACK,指明下一个期待字节的序号。当发送方收到对同一个报文段的3个冗余ACK时,就认为这个被确认报文段之后的报文段已经丢失,然后对这个丢失的报文段进行重传。

三次握手和四次挥手

为什么客户端最后还要发送一次确认呢?
防止滞留一段时间的连接请求报文突然又传送到了服务器端,从而产生错误。如果采用两次握手,该请求报文会重新建立连接,造成资源浪费;如果采用三次握手,该请求报文会使服务器端发送SYN+ACK报文,但是客户端不会再次发送ACK报文(客户端只想建立一次连接),不会重新建立连接。

为什么客户端最后还要等待2MSL(MSL,Maximum Segment Lifetime,段的最长寿命)?
保证客户端发送的最后一个ACK报文能够到达服务器端。如果该报文丢失了,则服务器端会再次发送FIN报文,客户端在2MSL时间段内收到该报文,重传ACK报文并重启2MSL计时器。

为什么建立连接是三次握手,关闭连接确是四次挥手呢?
建立连接时,服务器端在LISTEN状态下,收到连接请求SYN报文后,发送SYN+ACK报文给客户端。 关闭连接时,服务器端收到客户端FIN报文时,只表示客户端不再发送数据但是还能接收数据,服务器端先发送ACK报文给客户端后,再发送FIN报文给客户端表示同意关闭连接,即ACK和FIN分开发送,从而导致多了一次。

参考资料

Android网络编程(四)-TCP / UDP协议

标签:服务器端,ACK,报文,TCP,发送,客户端
From: https://www.cnblogs.com/WJQ2017/p/17207843.html

相关文章

  • tcpdump
    参考文献:https://www.cnblogs.com/wongbingming/p/13212306.html#idx_21 今天要给大家介绍的一个Unix下的一个 网络数据采集分析工具,也就是我们常说的抓包工具。与......
  • TCP/IP 网络协议栈基础
    1、TCP/IP5层模型2、封包①网络层:建立主机到主机之间的通信。传输层:建立端口到端口的通信。套接字socket=主机+端口。②ip数据包的是放在以太网的数据包里......
  • TCP
    参考博文https://juejin.cn/post/7138287951288467469https://www.elecfans.com/d/1887056.htmljava3y《对线面试官》什么是TCP传输控制协议(TCP,TransmissionContr......
  • TCP/UDP
    一、概述接着温顾TCP/UDP UDP(用户数据报):1.无连接2.不可靠传输协议3.传输速率比较快4.首部字段较少5.应用场景......
  • [调试工具]如何使用tcpdump抓包
    如何使用tcpdump抓包打开一个终端,输入以下命令来安装tcpdump(如果您已经安装了tcpdump,请跳过这一步):sudoaptinstalltcpdump输入以下命令来查看您的网络接口的名称:ipl......
  • 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)
    常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议两类。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时多媒体数据。1......
  • tcp/ip协议族
    TCP/IP协议族大体上分为三部分:1.网络协议(IP协议,网络层)2.传输协议(TCP/UDP协议,传输层)3.应用协议(FTP协议、HTTP协议,应用层) 在TCP/IP网络中,每个主机都有......
  • 面试复习总结-tcp三次握手四次挥手
    1.TCP/IP协议:应用层:HTTPFTPTFTPHTTPS会话层表达层传输层:TCPUDP网络层:IPICMPARP 数据链路层:PPP,PPTP物理层:帧 tcp三次握手四次挥手: 1.客户端发送连接......
  • tcpdump使用指南
    全网最详细的tcpdump使用指南 今天要给大家介绍的一个Unix下的一个 网络数据采集分析工具,也就是我们常说的抓包工具。与它功能类似的工具有wireshark,不同的......
  • 计算机基础_网络协议2.TCP、HTTP、HTTPS
    三次握手和四次挥手详细原理,为什么要使用这种机制?当进行第一次握手,网络不好可能会堵塞,所以连接的请求并没有到达服务器端;但是tcp连接有超时重传的机制,所以再一次发送请求,......