计算机网络知识点总结

230 阅读7分钟

1. 两种通讯交换方式:电路交换,分组交换

1.1 电路交换

特点: 资源分片,通信占用,传输效率低
截屏2024-07-04 12.27.56.png 步骤:

  1. 建立连接(分配通信资源,建立一个占用的物理通路)
  2. 通话(一直占用通信资源)
  3. 释放连接(归还通信资源)

截屏2024-07-04 12.08.10.png

1.2 分组交换

报文:表示数据的整块信息

特点:不会占用资源,使用时用全部资源 截屏2024-07-04 12.26.36.png 步骤:

  1. 将报文分成等长的数据段
  2. 组成首部:添加必要的控制信息(比如目的地址)
  3. 包含首部的数据段称为分组,首部也可以称为包头
  4. 发送分组
  5. 分组交换机接收到分组后,先将分组储存起来,检查首部,查表找到对应的端口号并转发
  6. 目的主机收到后,去掉首部,组成原始报文

截屏2024-07-04 12.28.53.png

2. 常见的网络策略

2.1 Tit-for-tat(以牙还牙)

核心原理:每个节点根据对方的行为决定自己的行为

规则:

  • 友好:初始状态下,每个节点都对其他节点友好,即愿意与其他节点合作。
  • 报复:如果一个节点发现另一个节点没有与自己合作,它将停止与那个节点合作。
  • 宽容:如果一个节点发现另一个节点恢复了合作,它将再次与那个节点合作。
  • 公平交易:节点之间的数据交换基于公平的原则,只有当一个节点从另一个节点接收到数据后,它才会回传数据给那个节点。

应用:

在BitTorrent协议中,Tit-for-tat策略被用于对等节点之间的上传和下载管理。

  • 上传带宽分配:每个节点优先选择给自己上传最多的节点
  • 选择合作伙伴:每个节点定期评估并选择新的合作伙伴,尝试发现更高效的节点进行数据交换;
  • 随机化:每隔一段时间,每个节点会随机选择一些新的节点进行合作

补充:

简单介绍一下BitTorrent协议(peer-to-peer):用于分发数据和共享电子文件在互联网上,是目前最流行的P2P文件共享协议之一。

  1. 种子和对等体:
  • 种子(Torrent):是一个小的文件,它包含了下载某个文件文件集所需的元信息,比如文件列表、各文件块的大小和它们的加密散列值等。
  • 对等体(Peer):参与文件共享的计算机。它们可以是只下载数据(leecher 或 downloader) 或同时下载和上传数据(seeder)的。

3. TCP协议和UPD协议对比

3.1 TCP协议(传输控制协议)

特点

  • 连接导向:TCP协议是面向连接的协议,通讯双方在传输数据之前需要建立连接,通过三次握手实现;
  • 可靠性:TCP协议通过序列号(sequence)、确认应答(ACK)、重传机制等保证数据的可靠性;
  • 有序传输:TCP确保数据按照发送顺序到达接收方;
  • 流量控制:TCP使用滑动窗口机制进行流量控制,防止发送方发送数据过快导致接收方来不及处理。
  • 拥塞控制:TCP采用多种拥塞控制算法(如慢启动,拥塞避免)来避免网络拥塞。

工作过程

  1. 建立连接:通过三次握手
  2. 数据传输:利用序列号和确认应答机制传输数据,并进行流量控制和拥塞控制
  3. 断开连接:通过四次握手终止连接,确保所有数据已经传输完毕

使用场景:

  • 网页浏览:(HTTP/HTTPS)
  • 文件传输:(FTP)
  • 电子邮件:(SMTP、IMAP、POP3)
  • 远程登录:(SSH、Telnet)

3.2 UDP协议(用户数据报协议)

特点:

  • 无连接:通信双方不需要建立连接,直接发送数据包
  • 不可靠传输:不保证数据的可靠传输,不进行重传和确认应答
  • 无序传输:不保证数据包数据发送顺序与接收顺序一致
  • 简单高效:头部开销小,数据传输效率高,适合对实时性要求高的应用

工作过程:

  1. 数据封装:发送方将数据封装成UDP报文
  2. 数据传输:直接将报文发送到网络上,不进行连接建立和状态维护
  3. 数据接收:接收方从网络上接收报文,不进行顺序和完整性检查

使用场景:

  • 视频流媒体:实时视频会议
  • 音频流媒体
  • 在线游戏(对延迟敏感)

截屏2024-07-05 20.52.18.png

3.3 TCP协议如何保证数据传输的可靠性

  1. 序列号和确认应答机制(Sequence Numbers and Acknowledgments):TCP使用序列号对每个数据段进行编号,并要求接收方对收到的数据段发送确认应答(ACK)
  2. 重传机制(Retransmission Mechanism):如果发送方在合理的时间内没有收到数据段的确认应答,它会重传数据段(通过定时器实现)
  • 超时重传:发送方设置一个定时器,当数据段发送后,如果在超时时间内没有收到确认应答,发送方会重传该数据段。
  • 快速重传:如果发送方连续收到三个相同的确认应答(表示接收方没有收到某个数据段,但收到了后续的数据段),发送方会立即重传丢失的数据段。
  1. 流量控制(Flowing Control):TCP使用滑动窗口协议来实现流量控制,确保发送方不会超过接收方的处理能力
  • 滑动窗口:接收方会通知发送方自己当前的接受窗口大小,发送方根据这个窗口大小控制发送数据量
  • 接收窗口:接收方在确认应答中包含其接收窗口大小,告诉发送方还有多少缓冲区可以接收数据
  1. 拥塞控制(Congestion Control):
  • 慢启动(Slow Start):发送方开始时发送少量数据,并逐渐增加发送窗口的大小,直到检测到网络拥塞或达到接收方的窗口大小。
  • 拥塞避免(Congestion Avoid):在慢启动阶段达到阈值后,发送窗口以线性增长的方式增加,避免拥塞。
  • 快速重传和快速恢复(Fast Retransmit and Fast Recovery):当检测到丢包时(通过重复确认应答),发送方立即重传丢失的数据段,并调整拥塞窗口以快速恢复数据传输。
  1. 数据完整性校验(Checksum):每个TCP数据段都包含一个校验和,用于检测在传输过程中数据是否被篡改或损坏。
  2. 连接管理(Connection Management):TCP通过三次握手(Three-Way Handshake)和四次挥手(Four-Way Handshake)机制来建立和终止连接,确保连接的可靠性
  • 三次握手:建立连接时,客户端和服务器交换SYN(同步)和ACK(确认)消息,确保双方都准备好开始数据传输。
  • 四次挥手:终止连接时,双方交换FIN(终止)和ACK消息,确保所有数据都已传输完毕并安全关闭连接。
  1. 数据分段和重组(Segmentation and Reassembly):TCP将大数据块分割成小的TCP段进行传输,并在接收方将这些段重新组装成完整的数据。
  • 分段:发送方将大块数据分割成适合网络传输的较小段。
  • 重组:接收方根据序列号将接收到的段重新组装成原始数据块。

引用

计算机网络学习2:三种交换方式:电路交换、分组交换、报文交换