五、计算机网络

五、计算机网络


TCP 三次握手


TCP 三次握手流程

第一次

客户端发送:

text 复制代码
SYN

作用:

  • 请求建立连接
  • 发送初始序列号

第二次

服务端回复:

text 复制代码
SYN + ACK

作用:

  • 确认客户端请求
  • 发送自己的序列号

第三次

客户端发送:

text 复制代码
ACK

作用:

  • 确认收到服务端响应

三次握手作用

一、同步序列号

保证:

  • 后续数据有序传输

二、防止历史连接

避免:

  • 旧 SYN 导致资源浪费

为什么不能两次握手

问题:

  • 服务端无法确认客户端是否收到 ACK

结果:

  • 可能建立无效连接

TCP 四次挥手


TCP 四次挥手流程

第一次

客户端发送:

text 复制代码
FIN

表示:

  • 不再发送数据

第二次

服务端回复:

text 复制代码
ACK

表示:

  • 收到关闭请求

第三次

服务端发送:

text 复制代码
FIN

表示:

  • 数据发送完成

第四次

客户端回复:

text 复制代码
ACK

然后进入:

text 复制代码
TIME_WAIT

为什么是四次挥手

原因:

  • TCP 是全双工

特点:

  • 两个方向独立关闭

为什么不能三次

因为:

  • 服务端收到 FIN 时
  • 可能还有数据没发送完

所以:

  • ACK 和 FIN 不能合并

TIME_WAIT


TIME_WAIT 作用

一、保证最后 ACK 到达

如果 ACK 丢失:

  • 服务端会重发 FIN

客户端必须还能响应。


二、防止旧报文影响新连接

等待:

text 复制代码
2MSL

保证:

  • 网络中的旧报文全部消失

为什么等待 2MSL

第一原因

确保:

  • 服务端能收到最后 ACK

第二原因

防止:

  • 延迟报文污染新连接

HTTP 请求头和响应头


题目 2:HTTP 请求头和响应头的结构

一、HTTP 请求结构

请求格式

http 复制代码
<method> <path> <version>

<headers>

<body>

请求示例

http 复制代码
POST /api/user HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Content-Type: application/json
Content-Length: 27
Authorization: Bearer xxxxx

{"name":"张三","age":25}

二、HTTP 响应结构

响应格式

http 复制代码
<version> <statusCode> <statusText>

<headers>

<body>

响应示例

http 复制代码
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 52
Cache-Control: no-cache
Set-Cookie: sessionId=abc123

{"code":200,"message":"success","data":{}}

三、常见请求头

请求头 作用
Host 指定服务器域名
User-Agent 客户端信息
Content-Type 请求体格式
Authorization 认证信息
Cookie 会话信息

四、常见响应头

响应头 作用
Content-Type 响应体格式
Content-Length 响应体长度
Set-Cookie 设置 Cookie
Cache-Control 缓存策略
Location 重定向地址

HTTP 状态码


题目 3:常见 HTTP 响应码 + 502/504 区别

一、HTTP 状态码分类

分类 范围 含义 示例
1xx 100~199 信息响应 100 Continue
2xx 200~299 成功 200 OK、201 Created
3xx 300~399 重定向 301、302、304
4xx 400~499 客户端错误 400、401、403、404
5xx 500~599 服务端错误 500、502、504

二、502 和 504 区别

状态码 含义 场景 本质
502 Bad Gateway 网关收到无效响应 后端挂了/返回异常 上游不可用
504 Gateway Timeout 网关等待超时 后端响应太慢 上游超时

三、形象理解

502

你给 A 打电话:

  • A 接了
  • 但胡言乱语
  • 或者直接挂断

本质:

  • 上游服务异常

504

你给 A 打电话:

  • 一直响铃
  • 没人接

本质:

  • 上游服务超时

502 场景

  • 后端服务挂掉
  • Nginx 无法建立连接
  • 返回 502

504 场景

  • 后端处理超过 60 秒
  • Nginx 等待超时
  • 返回 504

WebSocket


题目 3:WebSocket 用途

一、WebSocket 是什么

特点:

  • 全双工通信协议

能力:

  • 服务端主动推送消息

解决:

  • HTTP 单向通信问题

二、典型场景

  • 即时通讯
  • 网约车位置推送
  • 股票行情
  • 协同编辑
  • 游戏对战
相关推荐
Java成神之路-13 小时前
DNS、DNS 负载均衡、CDN 到底有什么区别?
计算机网络·负载均衡
剑锋所指,所向披靡!14 小时前
计算机网络之传输层
计算机网络
梦奇不是胖猫14 小时前
[ 计算机网络 | 第三章 ] 数据链路层 06 无线局域网
网络·网络协议·计算机网络
Chockmans1 天前
春秋云境CVE-2020-21652(极速版)
计算机网络·安全·web安全·网络安全·安全威胁分析·春秋云境·cve-2020-21652
磊 子1 天前
键⼊⽹址到⽹⻚显示,期间发⽣了什么?
计算机网络
云计算-Security2 天前
计算机网络 7 个性能指标
网络·计算机网络
fengchengwu20122 天前
计算机网络基础概念与核心公式总结
计算机网络
剑锋所指,所向披靡!2 天前
计算机网络之应用层(HTTP)
计算机网络·http·asp.net
JZZC22 天前
4.OSPF NBMA 网络类型
计算机网络·ensp·ospf·nbma