计网新识

基础知识

什么是计算机网络:计算机网络是指将 地理位置 不同的具有独立功能的 多台计算机 及其 外部设备,通过 通信线路通信设备 连接起来,在 网络操作系统, 网络管理软件 及 网络通信协议 的管理和协调下,实现 资源共享 和 信息传递 的 计算机系统。

计算机网络的组成:硬件 软件 协议

速率:数据传输的速率

带宽:单位时间内的数据传输的最大速率

吞吐量:某时刻的速率(不超过最大速率)

时延:发送(传输) 传播 处理 排队

  • 发送时延:将整个数据块(或分组)的所有比特发送到信道上所需的时间
  • 传播时延:最后一个比特到达接收端的时间
  • 排队时延:在路由器等待转发的时间
  • 处理时延:数据到达网络设备或主机时所作的数据处理,例如差错检验和选择接口转发

时延带宽积:时延*带宽,代表已从发送端发出 但未到达 接收端的最大比特数

往返时延RTT(Round-Trip Time):发送完到确认接收数据的时间

  • 发送端:传播
  • 接收端:处理+确认发送时延+确认传播时延
  • 不算发送端的发送时延

计网的整体流程把控

客户端是怎么一步一步找到服务器的呢?

实际在编程和应用当中,用的最多的就是TCP/IP模型

拿客户端对服务器端请求举例

客户端要想得到响应必须先随便发一个东西,那么就涉及到三次握手:

对应服务器闻声赶来,这就是第一次握手

接下来服务器回馈,这就是第二次握手

客户端应答,收到了,这就是第三次握手

建立连接之后第四次就可以正常传输数据了

包括建立连接,每次的通信都需要经过这整个模型

OSI七层模型

前三层是通信子网 使用物理链路组成

后三层是资源子网 软件控制

会话层(了解即可)

它主要负责在网络通信的应用程序之间建立、管理和协调“会话”。

可以将会话理解为一次持续一段时间、有特定目标的对话。会话层的作用就是确保这样的“对话”能够有序、可靠、有效地进行。

  1. 会话的建立、管理和终止:
  • 当两个应用程序(例如,你的浏览器和网页服务器)需要通信时,会话层负责在它们之间建立连接(建立会话)。
  • 在通信过程中,它管理这个会话的状态和参数。
  • 当通信结束时,它负责以有序的方式终止会话。
  1. 对话控制:
  • 协调谁在什么时候说话。 它管理通信的模式:

单工 半双工 全双工

  1. 同步点管理:
  • 在传输大量数据(如一个大文件)时,会话层可以设置检查点或同步点。
  • 如果在传输过程中发生故障(如网络中断),双方可以从最近的、双方都同意的同步点恢复传输,而不是从零开始。这大大提高了大文件传输或长时间操作(如数据库事务)的效率和可靠性。比较类似于游戏里的存档点
  1. 异常报告:如果会话层本身或在它之上的层(应用层、表示层)发生问题,会话层负责将相关的异常信息报告给对等方。

会话层的许多功能被集成到了现代协议栈中的应用层或传输层协议中。例如:

  • 传输层安全(TLS)中的会话恢复: TLS(即SSL的继任者)提供了会话恢复机制,允许在短暂中断后快速恢复加密会话。
  • HTTP Cookies: Web会话管理是应用层功能(HTTP),但其目的(跟踪用户与网站的会话状态)与会话层的概念非常相似。
  • 网络基本输入输出系统(NetBIOS)会话服务: 在Windows网络(如文件共享)中提供会话服务。
  • 远程过程调用(RPC): RPC框架通常包含管理客户端与服务器之间“调用会话”的机制。
  • 会话启动协议(SIP): 在VoIP和视频会议中用于建立、管理和终止多媒体会话。
  • 在TCP/IP模型中的位置: TCP/IP模型没有明确的会话层。会话层和表示层的功能通常被融入到TCP/IP模型的应用层中实现。

举几个栗子🌰

  • 网页浏览:当你登录网站时,会通过Cookie或Session ID管理你的登录状态,确保你在浏览不同页面时保持登录。
  • 文件传输:使用FTP下载大文件时,若网络中断,支持断点续传的功能就是会话层同步点的体现。
  • 视频会议:协调多人音视频流,管理谁可以发言(半双工控制)。

在TCP/IP协议栈中的位置

OSI模型是理论框架,实际互联网使用TCP/IP模型,其中会话层的功能分散在应用层和传输层实现:

  • 应用层协议(如HTTP、FTP、SMTP):直接处理会话逻辑(如HTTP Cookies管理会话)。
  • 传输层协议(如TCP):提供连接管理(类似会话),但更侧重端到端可靠性。

会话层解决的核心问题是——让通信双方的应用进程有组织、可控制地进行数据交换。

例如在线支付过程中,如果操作中断,会话层确保系统能识别中断位置并安全恢复交易流程。

表示层(了解即可)

它的核心职责是解决数据格式差异问题,确保不同系统间交换的信息能被正确解析和理解。

你可以将它视为网络通信的“翻译官”或“格式转换器”。我们最可见的就是不同操作系统或应用程序使用的数据编码结构不同(如 Windows 与 Linux 的换行符差异:\r\n vs \n)。

  • 文本编码:ASCII、UTF-8(网页字符) → GBK(中文系统)的相互转换。
  • 数值存储:大端序(Big-Endian)与小端序(Little-Endian)的转换(如Intel vs ARM处理器)。
  • 数据加密/解密(Encryption & Decryption)在传输前对敏感信息加密,接收方解密还原。
  • 数据压缩/解压缩(Compression)减少网络带宽占用(如HTTP的gzip压缩)。

常见技术:JSON、XML、Protocol Buffers(Protobuf)、Apache Avro。

为了更容易理解,我们假设一个场景:

  1. 行系统A(使用XML)向系统B(使用JSON)发送交易数据。
  2. 系统B收到数据后,需通过表示层功能:
  • 将XML → JSON(格式转换)
  • 压缩数据(减少带宽)
  • 用AES加密敏感字段(安全传输)

在TCP/IP模型中的实际实现

表示层功能被合并到应用层,由应用程序或中间件直接实现。
典型协议/工具:

  • 表示层功能:TCP/IP中的实现
  • 数据加密:TLS/SSL(如HTTPS)
  • 数据压缩:HTTP的Content-Encoding: gzip
  • 数据格式化:JSON序列化库(如Python的json模块
  • 字符编码转换:编程语言内置函数(如Python str.encode())

数据链路层(了解即可)

主要解决问题:

  • 封装成帧(帧定界)

  • 透明传输(数据中的字符被误判成控制符)

  • 差错检验

  • 检测比特错误,增加FCS帧校验序列,采用CRC校验方法;校验和

  • 帧乱序、丢失、重复

  • 帧的完整性

为什么主要功能是检查而不是纠错?

  • 效率方面:检查只需要增加少量冗余信息,纠错会显著增加帧长度和计算负担,降低传输效率。
  • 成本方面:重传机制更高效,数据链路层通常采用自动重传请求(ARQ)机制(如停等协议、滑动窗口协议)。一旦检测到错误(如CRC校验失败),直接丢弃错误帧并请求发送方重传,比实时纠错更简单可靠;在误码率较低的有线网络中(如以太网),重传成本远低于持续纠错的成本。
  • 分层设计原则:分层模型遵循“各司其职”的分层思想。数据链路层确保帧的完整性(检错),而纠错大部分由传输层(如TCP的丢包重传)或应用层(如文件传输校验)处理。

💡TCP/IP四层模型

不单单指TCP和IP两种模型

应用层

《HTTP —> 基于TCP》

传输层

TCP —> 可靠传输

  • 连接:三次握手建立连接 四次挥手终止连接
  • 序号 确认序号 重传
  • 流量控制
  • 拥塞控制
  • 分段重组
  • 面向字节流

MSS:最大报文段长度

MSS是TCP协议引入的,设置这个是为了避免IP分片,容易导致分片丢失

IP是否需要分片是基于链路的MTU来决策的,如果当前需要传输的数据比MTU大,则需要分片

因此TCP层设置了MSS,希望双方在建立连接阶段可以沟通出来适合的分组传输大小,也就是MSS

但是并不是一定会避免分片

《TCP》

UDP —> 不可靠传输

《UDP》

网络层

IP

以网卡数分配IP

主机号全1:某网络下所有主机,用于广播

主机号全0:指定的某个网络

单播:可以越过路由器

多播:有穿透路由的多播

广播,存在广播域,不可越过路由器

网络号相同说明在一个广播域内

子网掩码和IP地址按位与即可得出网络地址

环回地址

127.0.0.1

可断网进行测试

《IP》

区分传输层和网络层

● 传输层提供端到端的数据传输服务,确保数据的可靠传输和有序交付。

● 网络层的主要功能是通过逻辑寻址(如IP地址)将数据从源节点传输到目标节点,处理分组传输和路由选择,确保数据在网络中正确到达

网络层就像你填写了快递地址,你的物流公司会寻找你的地址送货

传输层就是采用专业的快递员给你的地址送快递,保证你的快递到达

五层模型

用于教学


计网新识
http://yjmanman.github.io/2025/06/04/计网新识/
作者
YuJia
发布于
2025年6月4日
许可协议