当前位置: 首页 > wzjs >正文

专注江苏网站建设织梦如何做淘宝客网站

专注江苏网站建设,织梦如何做淘宝客网站,简约大气网站,wordpress多媒体权限🌟 一、TCP核心特性:可靠传输的秘密 1️⃣ 有连接 & 全双工 双向通道:建立连接后,客户端↔服务器可同时收发数据可靠传输三板斧: 确认应答(ACK) 接收方返回ACK接收序号数据长度示例&#…

🌟 一、TCP核心特性:可靠传输的秘密

1️⃣ 有连接 & 全双工
  • 双向通道:建立连接后,客户端↔服务器可同时收发数据
  • 可靠传输三板斧
    • 确认应答(ACK)
      • 接收方返回ACK=接收序号+数据长度
      • 示例:发送SEQ=100(数据长度50) → 收到ACK=150
    • 超时重传
      • 未收到ACK则自动重发,解决丢包问题
    • 数据排序
      • 通过SEQ序号重组乱序数据包
2️⃣ 字节流传输
  • 无边界限制:像水管流水,数据可任意拆分/合并
  • 粘包问题:需应用层自行处理消息边界(如添加长度头)

🔑 二、三次握手:连接建立的精妙设计

TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。
1️⃣ 握手流程
Client Server SYN=1 (我的序号X) SYN=1 + ACK=X+1 (我的序号Y) ACK=Y+1 Client Server
2️⃣ 三大核心作用
  1. 验证链路畅通(投石问路)
  2. 能力验证
    握手阶段验证的能力
    第一次客户端能发送
    第二次服务器能收 + 客户端能收
    第三次服务器能发
  3. 参数协商:确定起始序号(防数据混淆)
  4. 从上面的过程可以发现第三次握手是可以携带数据的,前两次握手是不可以携带数据的,这也是面试常问的题。
3️⃣ 为什么能合并ACK和SYN?
  • 操作系统内核自动处理,时机相同 → 合并为一次报文

一旦完成三次握手,双方都处于 ESTABLISHED 状态,此时连接就已建立完成,客户端和服务端就可以相互发送数据了。

💣 三、四次挥手:断开连接的江湖恩怨

1️⃣ 挥手流程
Client Server FIN=1 (序号U) ACK=U+1 FIN=1 (序号V) ACK=V+1 Client Server
2️⃣ 关键差异
  • ACK由内核自动发,FIN由代码触发
  • 对于四次挥手来说,ACK是内核控制的,但是FIN的触发,通过应用程序(也就是java写的程序),调用close,假如说没写close,就甚至不发送
  • 四次挥手为何不能合并?
    • 服务器收到FIN后,可能还有数据要发送 → 先ACK,发完数据再FIN:
    • 服务器收到客户端的 FIN 报文时,内核会马上回一个 ACK 应答报文,但是服务端应用程序可能还有数据要发送,所以并不能马上发送 FIN 报文,而是将发送 FIN 报文的控制权交给服务端应用程序:如果服务端应用程序有数据要发送的话,就发完数据后,才调用关闭连接的函数;如果服务端应用程序没有数据要发送的话,可以直接调用关闭连接的函数,所以说,是否要发送第三次挥手的控制权不在内核,而是在被动关闭方的应用程序,因为应用程序可能还有数据要发送,由应用程序决定什么时候调用关闭连接的函数,当调用了关闭连接的函数,内核就会发送 FIN 报文了,所以服务端的 ACK 和 FIN 一般都会分开发送。
    • 对于三次握手来说,中间的两次ACK和SYN,都是在内核中,操作系统负责进行 时机都是在收到SYN之后,此时同一时机,就可以合并

⚠️ 四、必懂TCP状态:程序员排错指南

状态触发场景排查重点
LISTEN服务器绑定端口后检查端口占用/防火墙
ESTABLISHED连接建立成功正常通信状态
CLOSE_WAIT被动方收到FIN后🔥 代码没写socket.close()
TIME_WAIT主动方最后ACK后等待2MSL防ACK丢失
🔥 CLOSE_WAIT爆炸?
  • 典型症状:服务器出现大量CLOSE_WAIT
  • 致命原因:忘记关闭Socket!
    // 错误示范:未关闭连接!
    Socket socket = new Socket(...);
    // 正确做法:try-with-resources自动关闭
    try (Socket socket = new Socket(...)) { ... }
    
TIME_WAIT存在的意义
  • 保活2MSL(约1-4分钟):确保最后一个ACK送达
  • 副作用:短时内端口不可重用 → 可通过SO_REUSEADDR解决

📌 五、高频面试题

  1. 为什么是三次握手,不是两次?
    – 确保双方收发能力正常

  2. TIME_WAIT为何要等2MSL?
    – 足够时间让网络中的残余报文消亡


掌握TCP协议,就像获得网络世界的“内功心法”!无论是面试还是调优,这些知识点都能让你一眼看穿网络问题的本质! 🚀

http://www.dtcms.com/wzjs/817449.html

相关文章:

  • 网站伪静态苏州百度推广分公司电话
  • 龙岩北京网站建设网站静态化 好处
  • 一个做网站的软件校园网站建设申请报告
  • 平阳手机网站制作南宁的公司有哪些
  • 传奇手游新开服网站网站链接跳转怎么做
  • 兰溪好品质高端网站设计网站建设主要考虑哪些因素
  • 网站建设招标文件技术部分不规则网站模板
  • 网站建设分销协议河南网站优化公司
  • 网站备案注销找哪个部门品牌型网站开发
  • 如果查询网站内页的收录情况移动互联网推广
  • 郴州吧河源seo
  • 自助微信网站梦创义网站建设
  • 大连网站哪家做的好?html仿淘宝首页电子商务网站首页
  • 深圳网站建设知名公司网站开发人员薪酬
  • 郑州网站技术顾问莱州网站建设效果
  • 保卫处网站建设网站界面版式
  • 东莞网页模板建站阳萎早谢吃什么药最好
  • 2017做哪些网站能致富网站开发及维护合同
  • 建新建设集团有限公司网站装修价格
  • 中学生制作网站怎么做手机主题wordpress
  • 海口模板建站定制网站企业网站不被百度收录
  • 陕西省住房和建设厅网站上海模板网站建站
  • 餐饮环境评估在哪个网站做dede网站地图模板下载
  • 建立网站的流程的合理顺序中国人做外贸网站都卖什么手续
  • 天津市做公司网站的公司网站建设都需要哪些材料
  • 苏州公司网站建设公司杭州网站建设方案
  • wordpress外贸建站教程手机wap网站模板
  • 生活家装饰官方网站广告公司名称取名
  • 做led视频好的网站周浦做网站
  • 网站建设咨询公司排名cad图库大全素材免费下载