【刷题Day22】TCP(浅)

发布于:2025-04-22 ⋅ 阅读:(20) ⋅ 点赞:(0)

TCP/IP 四层模型是什么?

TCP/IP四层模型是一个分层网络通信模型,它将网络通信过程分为四个层次,这四层分别是:网络接口层、互联网层、传输层和应用层。

  • 网络接口层负责在计算机和网络硬件之间传输数据,负责在物理网络上发送和接收数据帧,包括以太网、Wi-Fi等协议。
  • 互联网层(网络层)通过IP协议提供数据包的路由和转发。
  • 传输层复杂在两个主机之间提供端到端的通信服务,常见的协议有TCP和UDP
  • 应用层通过各种协议提供网络应用程序的功能,如HTTP、FTP、SMTP等协议

分层的优点:

  • 简化设计与实现:通过将网络功能分解为不同的层,每一层只负责特定的任务,从而简化了设计和实现的复杂性。
  • 模块化:每一层可以独立发展和优化,不同层次之间通过标准接口进行通信,便于各层的更新和替换。
  • 互操作性:明确定义每个层次之间的接口和协议,不同厂商和组织开发的网络设备和软件可以相互兼容,使得不同的网络设备和系统能够在不同的层次上进行无缝互操作,提升了网络的兼容性。
  • 故障隔离:每个层次都有自己的错误检测、纠错和恢复机制,且分层结构能够帮助网络工程师定位问题所在的层次,从而更快地进行故障排除。

Cookie、Session、Token 之间有什么区别?

维度 Cookie Session Token
定义 Cookie是存储在用户浏览器端地一个小型数据文件,用于跟踪和保存用户的状态信息。 Session是服务器端保存用户状态的机制,每个用户会话都有一个唯一的Session ID。 Token本质是一种加密的字符串,用于身份验证和授权,可以包含用户信息和权限。
作用 主要用于保持用户登录状态、跟踪用户行为、存储用户偏好等。 主要用于跟踪用户在服务器上的状态信息,例如登录状态和购物车内容。 用于验证用户身份活授权访问资源。
存储位置 存储在浏览器端。 存储在服务器端,然后对应的Session ID通过Cookie保存在客户端浏览器中。 认证后,后端服务会返回Token,存储在客户端(浏览器或移动应用中),后续客户端访问服务端需要带上这个Token。
使用场景 主要用于客户端状态的简单存储和追踪。 用于服务器端的复杂状态管理,特别是在需要存储大量会话数据时。 用于无状态的认证和授权,特别是在分布式和跨域环境下。

简单说,Cookie和Session更适合用于单词会话的认证和状态管理,Token更适合用于跨会话的认证和状态管理。


从网络角度来看,用户从输入网址到网页显示,期间发生了什么?

  • 浏览器解析URL

    浏览器会解析URL,根据请求信息生成对应的HTTP请求报文

  • DNS解析

    请求需要知晓服务器域名对应的IP地址才能通信,浏览器会检查本地缓存、操作系统缓存,甚至路由器缓存。如果未命中缓存,浏览器向配置的DNS服务器发送查询请求,DNS服务器递归查询最终返回IP地址。

  • TCP或者UDP

    接着浏览器会调用Socket库委托协议栈工作,根据指定的情况选择了TCP或UDP。

    如果使用TCP,需要通过三次握手建立连接。需要在数据发送前通过三次握手雨服务器建立连接。

    此时得到了封装了HTTP数据的TCP数据包。

  • IP

    在TCP数据包的基础上,再封装源地址IP和目标地址IP等信息,得到了网络包。有了IP就能再多个网络节点中确定数据包的传输路径,最终能找到目标服务器。

  • MAC

    得到网络包后,需要在IP头部的前面加上MAC头部,封装发送方MAC地址和接收方目标MAC地址。MAC用来确保子网内设备两点之间的通信寻址。(IP是多个网络节点传输寻址)

  • 网卡

    这个时候,网络包还是存储在内存中的二进制数据,需要网卡把二进制数据转换为电信号,通过网线进行传输。

  • 交换机

    通过网线会连到交换机,交换机是二层网络设备。工作在MAC层,它会根据数据包中的MAC头找到另一个设备连接在交换机的哪个端口,然后传输。

    如果找不到对应的端口,则会向交换机上的所有端口(除了源端口)广播。

  • 路由器

    路由器也是进行转发,但它是三层网络设备,包含IP层。利用路由器,数据在不同网络节点之间转发,最后到达服务器。

  • 层层验证

    服务器确认MAC地址匹配、IP地址匹配,如果是TCP协议则看看序列号是否匹配,若匹配根据端口找到对应的监听进程,此时服务器上对应的应用就接收到数据了。

  • 服务器处理

    服务器接收到请求后,处理响应的业务逻辑,生成HTTP响应。这其间可能涉及到读取数据库、访问文件系统等。最终会生成响应给客户端(又是一层一层的封装TCP、IP、MAC等头部数据,得到最终传输的数据包),从网卡到交换机到路由器…

  • 浏览器接收响应并渲染页面

    经过多个路由器转发后,浏览器最终会接收到服务器返回的响应,进行页面渲染展示。


网站公告

今日签到

点亮在社区的每一天
去签到