五、计算机网络

五、计算机网络


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 单向通信问题

二、典型场景

  • 即时通讯
  • 网约车位置推送
  • 股票行情
  • 协同编辑
  • 游戏对战
相关推荐
lazy H17 小时前
【计算机网络】第 12 篇:IPv6 详解——地址格式、地址类型与双栈网络
网络·经验分享·后端·学习·计算机网络·408
承渊政道3 天前
Linux网络学习【从深入理解网络层原理到IP分片与重组全过程剖析】
linux·计算机网络·ubuntu·ip分片与重组
局部有解3 天前
计算机网络:概论知识点整理
计算机网络
KobeSacre4 天前
计算机网络概览
网络·计算机网络
流浪0014 天前
计算机网络篇8:传输层——序列化与反序列化,TCP 面向字节流的报文边界由应用层自己切
网络协议·tcp/ip·计算机网络·1024程序员节·序列化反序列化·面向字节流·面向数据包
lazy H5 天前
【计算机网络】第 5 篇:TCP 和 UDP 有什么区别?从 Java 后端场景理解两种传输协议
经验分享·后端·网络协议·tcp/ip·计算机网络·1024程序员节
2501_915106325 天前
跨平台抓包工具怎么选?TraceEagle抓包鹰 的四种跨平台能力
网络协议·计算机网络·网络安全·ios·adb·https·udp
流浪0016 天前
计算机网络篇7:传输层——TCP 网络编程常用接口与调用流程
网络协议·tcp/ip·计算机网络·listen·tcp接口
sbjdhjd7 天前
从 VLAN 到 MSTP 的交换网络入门
网络·计算机网络·mac·ip·stp·vlan·交换机