计算机网络相关面试知识复习

OSI七层模型(自底向上):物理层->数据链路层->网络层->传输层->会话层->表示层->应用层

TCP/IP五层模型(自底向上):物理层->数据链路层->网络层->传输层->应用层

一、Socket简介

  1. Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口
  2. Socket通信流程:

二、TCP建立连接的三次握手

  1. 传输控制协议TCP简介:
1.面向连接的、可靠的、基于字节流的传输层协议;

2.将应用层的数据流分割成报文段并发送给目标节点的TCP层;

3.数据包都有序号,对方收到则发送ACK确认,未收到则重传

​ 1.1 TCP Flags:
​ 1)URG:紧急确认指针
​ 2)ACK:确认序号标志
​ 3)PSH:push标志
​ 4)RST:重置连接标志
​ 5) SYN:同步标志,用于建立连接的过程
​ 6) FIN:finish标志,用于释放连接

客户端状态变化过程:CLOSED->SYN-SENT->ESTABLISHED
服务端状态变化过程:CLOSED->LISTEN->SYN-RCVD->ESTABLISHED

  1. 详细过程:
    1)第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务 器确认
    2)第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_REVD状态
    3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包,此包发送完毕,客户端和服务器 进入ESTABLSHED状态, 完成完成三次握手
  2. 为什么要经过三次握手才能建立连接?
    答:为了初始化Sequence Number(序列号)的初始值,要通知双方数据包的序号地,作为以后通讯的序号,以保证在网络传输过程,不会因为网络原因而导致乱序。
  3. 首次握手的隐患–SYN超时
    问题起因分析:
    1)Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认
    2)Server不断重试直至超时,Linux默认等待63秒才断开连接
    解决措施:
    1)SYN队列满后,通过tcp_syncookies参数回收SYN Cookie
    2)若为正常连接则Client会回发SYN Cookie,直接建立连接
  4. 建立连接后,Client出现故障怎么办?
    保活机制
    1)向对方发送保活探测报文,如果未收到响应则继续 发送
    2)尝试次数达到保活探测数仍未收到响应则中断连接

三、TCP释放连接的四次挥手

1.详细过程:

​ 1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态
​ 2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序列为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSED_WAIT状态
​ 3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态
​ 4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手

2.为什么会有TIME_WAIT状态

原因:
​ 1)确保有足够的时间让对方收到ACK包
​ 2)避免新旧连接混淆

3. 服务器出现大量CLOSE_WAIT状态的原因

对方关闭socket连接 ,我方忙于读或写,没有及时关闭连接
1)检查代码,特别是释放资源的代码
2)检查配置,特别是处理请求的线程配置

4.为什么需要四次挥手才能断开连接?

答:因为TCP连接是全双工的网络协议,允许同时通信的双方同时进行数据的收发,同样也允许收发两个方向的连接被独立关闭,以避免client数据发送完毕,向server发送FIN关闭连接,而server还有发送到client的数据没有发送完毕的情况。所以关闭TCP连接需要进行四次握手,每次关闭一个方向上的连接需要FIN和ACK两次握手。

四、UDP简介

1. UDP的特点:

​ 1)面向非连接;
​ 2)不维护状态,支持同时向多个客户端传输相同的信息;
​ 3)数据包报头只有8个字节,额外开销较小;
​ 4)吞吐量只受限于数据生成速率、传输速率以及机器性能;
​ 5)尽最大努力交付,不保证可靠交付,不需要维持复杂的连接状态表;
​ 6)面向报文,不对应用程序提交的报文信息进行拆分或者合并

2.TCP和UDP的区别:

​ 1)面向连接VS无连接
​ 2)TCP具有可靠性,而UDP并没有
​ 3)有序性
​ 4)速度
​ 5)量级

五、HTTP与HTTPS

  1. 超文本传输协议HTTP的主要特点
    • 支持客户/服务器模式;
    • 简单快速
    • 灵活
    • 无连接
    • 无状态
  2. 请求/相应的步骤
    • 客户端连接到Web服务器
    • 发送HTTP请求
    • 服务器接受请求并返回HTTP响应
    • 释放TCP连接
    • 客户端浏览器解析HTML内容
  3. 在浏览器地址栏输入URL,按下回车之后经历的流程
    • DNS解析
    • 建立TCP连接
    • 发送HTTP请求
    • 服务器处理请求并返回HTTP报文
    • 浏览器解析渲染页面
    • 释放TCP连接
  4. HTTP常见状态码
    • 200 OK:正常
    • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
    • 401 Unauthorized:请求未经授权,这个状态码必须与WWW-Authenticate报头域一起使用
    • 403 Forbidden:服务器收到请求,但是拒绝提供服务
    • 404 Not Found:请求资源不存在
    • 500 Internal Server Error:服务器发生不可预知的错误
    • 503 ServerUnavailable:服务不能处理当前客户端的请求,一段时间可能恢复正常
  5. GET请求和POST请求的区别
    • Http报文层面:GET请求将请求信息放在URL里,而POST请求放在报文体中
    • 数据库层面:GET请求符合幂等性和安全性
    • 其他层面:GET可以被缓存、被存储,而POST不行
  6. Cookie与Session的区别
    • Cookie数据存放在客户端浏览器里,而Session数据存放在服务器端
    • Session相对于Cookie来说更安全
    • 若考虑减轻服务器端负担,应当使用Cookie
  7. HTTP与HTTPS的区别
    • HTTPS需要到CA申请证书,HTTP不需要
    • HTTPS是密文传输方式,HTTP则是明文传输
    • 连接方式不同,HTTPS默认使用443端口,HTTP使用80端口
    • HTTPS=HTTP + 加密 + 认证 + 完整性保护,较HTTP安全
  8. 计算机网络中常见的各层协议

    1)应用层:
    - FTP:文件传输协议
    - HTTP:超文本传输协议
    2)传输层:

    • TCP:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

    • UDP:用户数据报协议,是无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
      2)网络层:

    • IP:网际协议或互联网协议

    • ARP:地址解析协议,实现通过IP地址得到目标主机的物理地址

    • RARP:反向地址转换协议,允许局域网的物理主机从网关服务器的ARP表或者缓存中请求其IP地址

    • ICMP:控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息

    • IGMP:Internet组管理协议,是因特网协议家族中的一个组播协议,该协议运行在主机和组播路由器之间
      3)数据链路层:

    • PPP:点对点协议,面向字节。

    • CSMA/CD:载波侦听多路访问/冲突检测协议

    • ARQ:OSI模型中数据链路层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值