网络编程(11):三次握手和四次挥手部分细节(后续补充)

这篇具有很好参考价值的文章主要介绍了网络编程(11):三次握手和四次挥手部分细节(后续补充)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 关于listen

服务器如果不listen,TCP协议栈就无法从CLOSED状态变成LISTEN状态,客户端发起连接,TCP协议栈会直接返回RST报文,从而导致客户端连接失败

  • 关于accept

accept发送在三次握手完成之后,从全连接队列中取出一个节点分配sock文件句柄,如果没有accept还是可以完成三次握手,这些都是协议栈完成,accept是在用户空间中发起的系统调用,其中连接队列里面的节点是TCB控制块

  • 四次挥手变三次挥手

当没有数数据要发送,且开启了TCP延迟确认机制(默认开启),第二次挥手和第三次挥手会合并

  • 开启syncookies的缺点

虽然可以避免syn flood攻击,但是没有在半连接队列上挂载连接信息,编码解码cookies消耗cpu资源,且如果发送丢包,服务器不会重发第二次挥手

  • 当客户端和服务端同时调用close

TCP状态里面有个CLOSING状态,当TCP处于FIN_WAIT1的时候接收到了FIN,就会进入closing状态,在等待对方的ACK就可以进入TIME_WAIT状态了

  • 客户端出现大量FIN_WAIT2状态

等价于服务端出现大量CLOSE_WAIT状态,就是服务端可能没有及时close,发送FIN报文,这是编码逻辑有问题导致的,但是也没有直接从FIN_WAIT2进入CLOSED的状态,所以需要kill掉进程文章来源地址https://www.toymoban.com/news/detail-620019.html

到了这里,关于网络编程(11):三次握手和四次挥手部分细节(后续补充)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络面经之TCP三次握手和四次挥手的详解

    1.详细描述三次握手和四次挥手的过程。 2.三次握手可以变成两次握手吗? 3.简述 TCP 连接和关闭的状态转移。 4.简述TCP 四次挥手的 TIME_WAIT状态,以及为什么需要有这个状态 (1)序号(sequence number):seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据

    2024年02月12日
    浏览(44)
  • linux【网络编程】TCP协议通信模拟实现、日志函数模拟、守护进程化、TCP协议通信流程、三次握手与四次挥手

    Tcp通信模拟实现与Udp通信模拟实现的区别不大,一个是面向字节流,一个是面向数据报;udp协议下拿到的数据可以直接发送,tcp协议下需要创建链接,用文件描述符完成数据的读写 1.1.1 接口认识 1.1.1.1 listen:监听socket 1.1.1.2 accept:获取连接 通信就用accept返回的文件描述符,

    2024年02月06日
    浏览(52)
  • 【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程

    1)第一次握手:建立连接时,客户端向服务器发送SYN包(seq=x),请求建立连接,等待确认 2)第二次握手:服务端收到客户端的SYN包,回一个ACK包(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端 3)第三次握手:客户端收到SYN+ACK包,再回一个ACK包(ACK=y+1)告诉服务

    2024年04月08日
    浏览(53)
  • Linux网络编程二(TCP三次握手、四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

    TCP三次握手 TCP 三次握手 (TCP three-way handshake)是TCP协议建立可靠连接的过程,确保客户端和服务器之间可以进行可靠的通信。下面是TCP三次握手的详细过程: 假设客户端为A,服务器为B 1 、第一次握手(SYN=1,seq=500) A向B发送一个带有SYN标志位的数据包,表示A请求建立连接。

    2024年02月06日
    浏览(58)
  • 【Linux 网络】 传输层协议之TCP协议 && TCP的三次握手和四次挥手

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 基于TCP应用层协议 HTTP HTTPS SSH Telnet FTP SMTP 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去 32位序号/确认序号:TCP的确认应答机制要使用到的字段,保证TCP的可靠

    2024年02月14日
    浏览(53)
  • 计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.

    TCP协议: UDP协议: TCP协议与UDP协议都工作在传输层. TCP协议与UDP协议它们的目标: TCP协议与UDP协议的最大区别: TCP协议保持连接的三个关键步骤: UDP协议: TCP协议与UDP协议主要区别: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的

    2023年04月15日
    浏览(50)
  • TCP网络三次握手(链接请求)和四次挥手(断链请求),FIN报文和RST报文

    本文直接将直接开始流程,部分东西不在做解释, 握手是建立连接,挥手是断开连接 标记位 SYN : 1 标记时表示希望创建连接 FIN: 1 标记时表示希望断开连接 ACK: 1 标记时确认号字段有效 RST: 1 标记时表示TCP连接出现异常,需要断开。 。。。。 序列号 : 在初次建⽴连接

    2024年04月15日
    浏览(46)
  • TCP三次握手和四次挥手

    序列号:建立连接时计算机随机生成的随机数作为初始值,通过SYN包传给接收端主机,每发送一次数据就累加一次该数据字节数的大小。 用来解决网络包乱序问题 。 确认应答号:指下一次期望收到的数据的序列号,发送端收到这个确认应答以后认为在这个序号以前的数据都

    2023年04月11日
    浏览(89)
  • TCP 三次握手和四次挥手

    1 TCP 三次握手漫画图解 如下图所示,下面的两个机器人通过3次握手 确定了对方能正确接收和发送消息 (图片来源网络)。 简单示意图: 客户端–发送带有 SYN 标志的数据包–一次握手–服务端 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端 客户端–发送带有带有

    2024年02月22日
    浏览(56)
  • Linux网络编程二(TCP图解三次握手及四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

    1、TCP三次握手 TCP 三次握手 (TCP three-way handshake)是 TCP协议建立可靠连接 的过程,确保客户端和服务器之间可以进行可靠的通信。下面是TCP三次握手的 详细过程 : 假设客户端为A,服务器为B。 (1) 第一次握手 第一次握手(SYN=1,seq=500) A向B发送一个带有 SYN 标志位的数据包,

    2024年04月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包