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

个人电脑建立网站会上海包装设计公司排名

个人电脑建立网站会,上海包装设计公司排名,七台河新闻联播回放,徐州手机网站制作公司📡 C面试宝典:网络篇(第二十二期) 划重点! 这些网络问题面试必考,赶紧收藏备用~ [🤖干货预警] 文章目录📡 C面试宝典:网络篇(第二十二期)&#x…

📡 C++面试宝典:网络篇(第二十二期)

划重点! 这些网络问题面试必考,赶紧收藏备用~ [🤖干货预警]


文章目录

      • 📡 C++面试宝典:网络篇(第二十二期)
        • 🌐 **1. OSI七层模型 vs TCP/IP四层模型**
        • 🛡️ **2. TCP如何保证可靠性?**
        • 🤝 **3. TCP连接管理**
        • 📜 **4. TCP报文格式**
        • 🔢 **5. 握手/挥手中的seq和ack含义**
        • ❓ **6. 为什么是三次握手 & 四次挥手?**
        • 📦 **7. TCP粘包 & 拆包**
        • ⚖️ **8. TCP vs UDP 区别**
        • 🔧 **9. UDP如何实现可靠传输?**
        • 🚦 **10. TCP拥塞控制**


🌐 1. OSI七层模型 vs TCP/IP四层模型
OSI模型协议举例TCP/IP模型协议举例
应用层(Application)HTTP、FTP应用层DNS、SMTP
表示层(Presentation)JPEG、SSL
会话层(Session)RPC、NetBIOS
传输层(Transport)TCP、UDP传输层TCP、UDP
网络层(Network)IP、ICMP网络层IP、ARP
数据链路层(Data Link)PPP、MAC链路层Ethernet、Wi-Fi
物理层(Physical)USB、光纤

💡 小贴士:TCP/IP更贴近实际应用,OSI是理论标杆!面试时建议两者对比回答~


🛡️ 2. TCP如何保证可靠性?
  • 确认应答(ACK):接收方收到数据后必须回复ACK报文。
  • 超时重传:发送方未收到ACK时自动重发数据包。
  • 滑动窗口:动态调整发送速率,避免接收方缓冲区溢出。
  • 流量控制:通过窗口大小字段winwinwin限制发送速率。
  • 拥塞控制(见第10点):根据网络状态调整发送窗口。

[🤯 灵魂拷问]:丢包?延迟?不存在的!TCP用这5招搞定一切!


🤝 3. TCP连接管理

三次握手(建立连接)

  1. Client → SYN=1, seq=x
  2. Server → SYN=1, ACK=1, seq=y, ack=x+1
  3. Client → ACK=1, seq=x+1, ack=y+1

四次挥手(断开连接)

  1. A → FIN=1, seq=u
  2. B → ACK=1, seq=v, ack=u+1
  3. B → FIN=1, ACK=1, seq=w, ack=u+1
  4. A → ACK=1, seq=u+1, ack=w+1

🕒 为啥挥手多一次? 因为TCP支持半关闭状态(B需确认数据发送完毕再发FIN)!


📜 4. TCP报文格式
 0                   1                   2                   3  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|         源端口号         |         目的端口号        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                       序列号(seq)                          |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                     确认号(ack)                            |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
| 数据偏移 | 保留 |URG|ACK|PSH|RST|SYN|FIN|      窗口大小       |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|           校验和          |        紧急指针(URG)          |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                     选项(可选)                             |  
|                     数据(Payload)                          |  

🔢 5. 握手/挥手中的seq和ack含义
  • seq(序列号):标识当前报文段第一个字节的编号(防止乱序)。
  • ack(确认号):期望收到的下一个字节的序列号(确认此前所有数据)。
    公式:若发送方发数据[seq=a,len=L][seq=a, len=L][seq=a,len=L],则接收方回复ack=a+Lack = a + Lack=a+L

举个栗子:Client发送seq=100, len=20,Server回复ack=120(表示期待第120字节)。


6. 为什么是三次握手 & 四次挥手?
  • 三次握手
    • 防止历史连接干扰(旧SYN到达时,Server可通过第三次ACK判断有效性)。
    • 最少次数保证双方收发能力正常(Client←→Server双向验证)。
  • 四次挥手
    • TCP连接是全双工的,必须双方分别关闭(Client关发送 + Server关发送 = 两次FIN)。

[💥 真相]:不是不想省,是省不了啊!


📦 7. TCP粘包 & 拆包

原因

  • 粘包:发送方多次小数据合并发送(如Nagle算法优化)。
  • 拆包:数据大于MSS(最大报文段大小)被分割发送。

解决方案

  1. 定长协议:所有数据包固定长度(如512字节)。
  2. 分隔符:用特殊字符标记结束(如\n)。
  3. 头部声明长度:在数据前添加长度字段(推荐!)。
// C++示例:自定义协议头
struct PacketHeader {uint32_t length; // 数据长度uint32_t type;   // 数据类型
};

⚖️ 8. TCP vs UDP 区别
特性TCPUDP
连接性面向连接无连接
可靠性可靠传输(重传机制)尽最大努力交付
速度慢(需握手/确认)快(直接发数据包)
报文边界可能粘包/拆包保留报文边界
适用场景文件传输、网页浏览视频流、实时游戏

🚀 UDP逆袭:谁说UDP不能可靠?看第9点!


🔧 9. UDP如何实现可靠传输?

在应用层模拟TCP机制:

  1. 添加序列号:为每个包标记seq,接收方排序去重。
  2. ACK确认:接收方回复ack(可累积确认)。
  3. 超时重传:设定定时器检测丢包。
  4. 流量控制:动态调整发送窗口(如QUIC协议)。

🌟 经典方案:Google的QUIC协议(HTTP/3底层)就是基于UDP的可靠传输!


🚦 10. TCP拥塞控制

目标:避免网络过载,通过动态调整发送窗口cwndcwndcwnd(拥塞窗口)。

核心算法

  1. 慢启动(Slow Start)
    • cwndcwndcwnd从1开始,每RTT(往返时间)翻倍:cwnd=2ncwnd = 2^ncwnd=2n
    • 何时减速:当cwnd≥ssthreshcwnd \geq ssthreshcwndssthresh(慢启动阈值)时,进入拥塞避免。
  2. 拥塞避免(AIMD)
    • 每RTT线性增加:cwnd=cwnd+1cwnd = cwnd + 1cwnd=cwnd+1
    • 何时减速:检测到丢包(超时或3个重复ACK)时,ssthresh=cwnd/2ssthresh = cwnd/2ssthresh=cwnd/2,重置cwnd=1cwnd=1cwnd=1
  3. 快重传 & 快恢复
    • 收到3个重复ACK立即重传丢失包,不等待超时。

何时减慢增速

  • 慢启动阶段:cwnd≥ssthreshcwnd \geq ssthreshcwndssthresh
  • 拥塞避免阶段:检测到丢包(网络拥塞的信号!)

📉 减速口诀:网络一卡,立马刹车!


🎯 总结:TCP/IP是C++后端开发的基石,理解这些细节才能写出高性能网络代码!快转发给一起备战的小伙伴吧~ [👬求组队刷题]

恭喜你坚持到这里!👏 本期我们覆盖了计算机网络中的基本原理,并实战解决了十个高频面试题。记住:理解其中的实现思想比硬背八股更重要,多练习才能在面试中游刃有余。😊 如果有疑问,欢迎评论区讨论~ 下期见!🚀

http://www.dtcms.com/a/607671.html

相关文章:

  • 免费凡科网站国家建设执业注册中心网站
  • 电商网站建设如何河北通信网站建设
  • 诚信网站备案临沂市经济开发区建设局网站
  • TypeScript类型守卫与可辨识联合详解一
  • 闲鱼钓鱼网站怎么做天津网站开发工资水平
  • 1.3 SubShader
  • 中信建设有限责任公司内部网站做胃镜需那好天津津门网站A
  • 从裸机到RTOS:基于MCU硬件特性的架构演进与范式转移
  • 建设厅网站174号文打电话来说做网站_然后答应了
  • [科普] GNSS授时原理
  • 厦门做商城网站拖拽式建站wordpress
  • 杭州免费网站制作创建网站的流程是什么
  • 淄博做网站手游官网首页
  • wordpress多本小说站出售admin管理员登录
  • Ansible之Playbook简单应用
  • 美橙互联网站建设下载百度2023最新版
  • 上海浦东建筑建设网站污水处理工程网站备案 个人
  • 什么是网络营销策略福田企业网站优化排名
  • 网站设计中怎么显示链接内容网站短信通知
  • Stable_Diffusion使用EasyPhoto报错动态链接库(DLL)初始化例程失败解决
  • 公司做网站计入那个科目建筑行业信息平台
  • 文山专业网站建设苏州新闻今天最新消息新闻事件
  • 张家口职教中心计算机网站建设销售系统的整个流程
  • 兰考县红庙关东村做网站的建设久久建筑网站
  • 做网站放什么软件企业公众号以及网站建设
  • 网站空间可以自己做吗本地服务推广平台哪个好
  • 创建网站需要哪些过程wordpress用户导出
  • 比HSE快几十倍高效计算符合实验带隙,Mate-MBJ混合泛函计算
  • 有几种工具可以实现“非空复制“(只复制源对象中非空的值到目标对象)
  • 推进网站集约化建设的做法seo整合营销