计算机网络期中复习笔记(自用)

复习大纲

--第一章 概述

计算机网络的组成


*

复制代码
##### 网络边缘:主机和网络应用程序(又称为"端系统")

* 端系统中运行的程序之间的通信方式可划分为两大类:

  * 客户/服务器方式(C/S方式)

    ![image-20250417233955379](https://i-blog.csdnimg.cn/img_convert/92124a2e5f324b17c4942231b61e250e.png)
  * 对等方式(P2P方式)

    ![image-20250417234012018](https://i-blog.csdnimg.cn/img_convert/3665e13f17dce12cf7923cad3722ecdf.png)
* 网络接入方式(P22\~P34)

  ![image-20250417234403139](https://i-blog.csdnimg.cn/img_convert/6b5a8f2c4c4f35ff6f1d09526caaa75e.png)
复制代码
##### 网络核心:路由器互连、网络的网络

*

  ###### 电路交换(分为建立连接、通信、释放连接三个阶段)

*

  ###### 报文交换(PPT中没写,但是王道课程里面有)

*

  ###### 分组交换(数据首先分成多个分组,每个分组单独传送)

* ![image-20250417234959673](https://i-blog.csdnimg.cn/img_convert/fcc25b476815d5328bad101a5ca9f486.png)**(这里会给出时延数据、报文长度、传输速率、请求处理时间等要求计算传播时长)**

网络性能的指标(P71)

复制代码
##### 带宽

* **速率:连接到网络上的节点在信道上传输数据的速率,也称数据率或比特率、数据传输速率,单位bit/s,b/s或bps**
* **信道:表示向某一方向传送信息的通道,信道≠通信线路,一条通信线路在逻辑上对应一条发送信道和接收信道**
* **带宽指某信道所能传送的最高数据率,单位:bit/s,b/s或bps**
复制代码
##### 时延(P76\~P79)

* **指数据从网络或链路的一段传送到另一端所需的时间。**
* **总时延=发送时延+传播时延+处理时延+排队时延**
复制代码
##### 吞吐量:指单位时间内通过某个网络(或信道、接口)的实际数据量

协议和分层体系结构

复制代码
##### 服务、协议

* **协议是通信实体之间通信所必须遵守的规则,其三要素为语法、语义、同步**
* **服务是下层为紧邻的上层提供的功能调用**
复制代码
##### OSI参考模型("物联网叔会使用")、TCP/IP模型

--第二章 应用层

网络应用概述

复制代码
##### 应用层协议的特点:没有通用的协议,每个应用都有专门的协议
复制代码
##### C/S、P2P、C/S和P2P混合结构(P11\~P22)
复制代码
##### P2P怎么查找资源?

*

  ###### 集中式查找:混合P2P

*

  ###### 洪泛式查找:每个peer都将查询请求转发给相邻的全部Peer

*

  ###### 分层叠加网查找
复制代码
##### 进程通信

*

  ###### P2P应用既运行client进程也运行是server进程

*

  ###### 不同主机间通信的接口:Sockets

*

  ###### 进程标识:主机IP地址+进程端口号
复制代码
##### 传输服务

*

  ###### 衡量指标:可靠性、实时性、吞吐量、安全性

  ![image-20250418192156596](https://i-blog.csdnimg.cn/img_convert/bc5a0bc24f557076d20dd770cc07f358.png)
*

  ###### TCP服务与UDP服务

  ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png)

DNS(一般使用UDP,服务端口号为53)

复制代码
###### DNS的功能和名字空间

![image-20250418192416976](https://i-blog.csdnimg.cn/img_convert/6beb9d0b30f7249f2caaffade5f02dc4.png)
复制代码
###### DNS服务器分为根域名服务器、顶级域名服务器、权威域名服务器、本地域名服务器(P41\~43)
复制代码
###### 迭代查询与递归查询(简单理解一下就是迭代查询是BFS,递归查询是DFS)
复制代码
###### DNS资源记录

*

  ###### RR格式:(name,TTL,class,type,value)

  * Type:
    * A:地址资源记录 name:主机域名 value:IP地址
    * NS:权威DNS服务器资源记录 name:域 value:此域的权威DNS服务器的域名
    * CNAME:标准名称资源记录 name:域名(别名) value:规范名
    * MX:邮件服务器资源记录 name:域 value:此域的邮件服务器的规范名字
  * 查询资源记录的命令:`nslookup`
复制代码
###### DNS的消息格式:DNS包含请求(query)和应答(reply)两个消息,其消息格式相同

![image-20250418212925512](https://i-blog.csdnimg.cn/img_convert/7e44b2d4083e85a8542c7e3e25e4e6f9.png)

WWW应用和HTTP

复制代码
##### WWW的体系结构

*

  ###### 以C/S模式工作

*

  ###### 使用URL标识分布在整个因特网上的页面

  * 编址格式:协议名://主机:端口号/文件路径及文件名
*

  ###### 使用HTTP协议实现通过www上的各种链接获取信息

*

  ###### 使用HTML标记语言显示页面并标识超链接

*

  ###### WWW应用客户:

  * 浏览器
  * web服务器
复制代码
##### 网页类型

* 静态网页

  ![image-20250418213754368](https://i-blog.csdnimg.cn/img_convert/ffac43f1e21538983b1061283e6f9169.png)
* 动态网页:如CGI脚本

  ![image-20250418213804894](https://i-blog.csdnimg.cn/img_convert/ec8281293381d6d37f7623a96a1285e4.png)
* 活跃网页:例如Java Applet

  ![image-20250418213817858](https://i-blog.csdnimg.cn/img_convert/bd9373b4be8b9e4ab8bfeb8649eb5d40.png)
复制代码
##### HTTP:操作过程、消息格式

*

  ###### 概述

  * 采用C/S模型
  * 传输层采用TCP
  * 无状态协议:服务器端不保存以前的访问记录,对于每个请求都是单独处理
*

  ###### HTTP操作过程(P69)

  ![image-20250418214031605](https://i-blog.csdnimg.cn/img_convert/7850498298e4f9f2ee534337b10a5a92.png)
复制代码
##### 持久连接与非持久连接

* 非持久连接:每次传输对象都要重新建立TCP连接,响应时间为2×RRT+文件传输时间(HTTP1.0)

  * 采用非流水线机制
* 持久连接:一个TCP连接可以传输多个对象(HTTP1.1)

  * 流水线机制:Client可以连续发出多个请求,而不必等待前一个请求的响应完成
复制代码
##### Cookies和Proxy

* HTTP有两类消息:请求(request),响应(response)

  * 消息格式:ASCII

  * 请求消息的格式:

    ![image-20250418214634781](https://i-blog.csdnimg.cn/img_convert/b97fd57c0b7a1a024422cb22aa4909df.png)
  * HTTP方法

    ![image-20250418214709591](https://i-blog.csdnimg.cn/img_convert/45b9a7b9c8473429b2b0b33ad296a1de.png)
  * HTTP响应消息的格式

    ![image-20250418214734408](https://i-blog.csdnimg.cn/img_convert/454c46f693d09e75ac78827d6b9a037a.png)
  * 状态码

    ![image-20250418214800663](https://i-blog.csdnimg.cn/img_convert/fe2fa03453723aedc249fe39249c692f.png)
*

  ###### Cookie:Web服务器对于访问用户的标识信息,可用于识别用户、记录用户信息和访问情况(用于保持访问应用)

  * 在HTTP响应中包含一行set-cookie头信息

  * 在HTTP请求中包含一行cookie头信息

  * Client主机中保存一个cookie文件,由浏览器管理

  * Server端的后台数据库

  * 应用包括:身份认证、购物车、个性化推荐信息、用户会话状态等

  * ![image-20250418215234524](https://i-blog.csdnimg.cn/img_convert/7dab2158588e5b84591cf44f243aebae.png)

*

  ###### 代理服务器(Proxy Server):目的用于减轻Web服务器的负担,加快访问速度

  * ![image-20250418215345766](https://i-blog.csdnimg.cn/img_convert/520726648606597f4c132be25c839c8f.png)
*

  ###### 浏览器Caching:浏览器缓存访问过的网页,进一步减少网络负载

  * 缓存更新:条件GET(P87)

Email应用

复制代码
##### 电子邮件系统的构成:用户代理(UA)、邮件服务器(mail servers)、邮件传输协议:SMTP、邮件访问协议:IMAP,POP3

*

  ###### 邮件服务器采用C/S模式

* ![image-20250418220018573](https://i-blog.csdnimg.cn/img_convert/d00c39c53c7c26cf4f5dbc16e9dc6483.png)

* ![image-20250418215957482](https://i-blog.csdnimg.cn/img_convert/92a7c85dfb576fd193bad6dba6bdb782.png)

*

  ###### SMTP采用C/S模式,传输层协议使用TCP,server端口号为25

  * 直接传输:邮件直接从发信人的服务器传输到收信人的服务器,而不从中间服务器转发
  * 命令/响应方式交互
  * ![image-20250418220350568](https://i-blog.csdnimg.cn/img_convert/2d71892254c506f92e2940a0911145a1.png)
*

  ###### 邮件访问协议:POP3(端口号:110)和IMAP(端口号:143)

  * ![image-20250418220550692](https://i-blog.csdnimg.cn/img_convert/8937b3fb74a31a775aa2f7de9448810e.png)
  * ![image-20250418220611547](https://i-blog.csdnimg.cn/img_convert/8972fab5f2d1e79e54b0e3d947075b78.png)
*

  ###### 邮件格式:多媒体扩展

  * SMTP不能传送可执行文件或其他的二进制对象,限于传送7为ASCII码,会拒接超过一定长度的邮件
  * 通过因特网邮件扩充(MIME)
  * ![image-20250418220821724](https://i-blog.csdnimg.cn/img_convert/6d84e24fff44b0535978903b9cc04cec.png)
  * ![image-20250418220846376](https://i-blog.csdnimg.cn/img_convert/8797eca14a0a1a5ee0f48a4aae3868c8.png)

FTP:文件传输协议

  • 用于和远程主机之间上传/下载文件
  • C/S模式
  • 传输协议使用TCP
  • FTP两个连接
    • 控制连接
      • FTP client 与 FTP server(端口21)建立控制连接
      • 进行身份验证
      • 传输命令和响应
      • 持久连接:在访问期间,控制连接一直存在
    • 数据连接
      • 需要传输数据时建立数据连接
      • 数据传输结束后,连接关闭

远程登录协议:Telent

  • 远程登录:从一台计算机通过网络登录到远程另一台计算机上进行操作

  • Telent特性:

    • C/S模型
    • 基于TCP,server端口号:23
    • 通用、双向、基于8位字符的通信协议
  • NVT:网络仿真终端

    • 标准的数据格式
    • 实现异构设备的互联

--第三章 传输层:实现端到端的可靠通信

传输层的功能及服务

复制代码
##### 进程-进程的逻辑通信
复制代码
##### 复用与解复用

* 多路复用:多个应用进程的消息在同一个网络接口上传输
* 进程标识:16位端口号
* 复用:源端传输层在应用层消息之前加上源端口号和目的端口号
* 解复用:目的端传输层根据端口号确定目的进程
复制代码
##### 端口号

* 熟知端口(常用端口)
  * 服务器进程使用
  * 开放、固定值
  * 值一般是0\~1023
* 短暂端口
  * 客户进程使用
  * 由操作系统分配,值不固定
  * 值一般是49152\~65535
复制代码
##### 两种服务:TCP与UDP

* TCP:可靠、按顺序交付
  * 建立连接
  * 流量控制
  * 拥塞控制
* UDP:不可靠、无序交付
复制代码
##### 传输层不提供时延保障和带宽保障

可靠数据传输的原理

复制代码
##### 提供可靠传输服务的层次:传输层和数据链路层
复制代码
##### 可靠传输代表:数据不会丢失、重复、失序(P18\~P50)
复制代码
##### ![image-20250419190749175](https://i-blog.csdnimg.cn/img_convert/23a760696ce2968bcf41cc4f14bfd168.png)

无连接传输协议:UDP

  • 简单高效的传输层协议

  • 提供"尽力而为"的服务

    • UDP数据报可能丢失
    • 接受的顺序可能与发送顺序不一致
  • 无连接协议

    • 在发送数据之前,发送端和接收端没有握手
    • 每个UDP数据报都是独立的,与其他的数据报无关
  • 相比IP:增强了多路复用/多路分解

  • 数据格式

  • 伪报头:只用于校验和的计算,不发送

面向连接的传输协议:TCP

  • 面向连接、全双工数据传输、端到端传输
  • 连接管理:三次握手建立连接,四步释放连接
  • 动态滑动窗口:发送窗口不超过对端通知的接收窗口值
  • 采用ARQ协议,流水线方式工作,流量控制,拥塞控制,可靠、按序的字节流传输
  • TCP不能保证上层消息的边界
  • TCP的报文段
    • 发送序号与接收序号
    • 控制字段
  • 可靠数据传输:序号管理
  • 流量控制:防止发送方发送过快导致接收方缓存溢出造成数据丢失
    • 基本方法:接收方反馈,限制发送方的发送数据量
  • RTT估值=α×RTT估值的历史值+(1-α)×RTT的测量值
  • 传输效率问题:
    • Nagle算法:一次尽量发送较大的数据量
    • Clark算法:只有在较大缓存时,才发送窗口更新通知

拥塞控制的主要原理

  • 拥塞即网络边缘主机发送到网络中的负载超出了网络的承载能力

  • 特征包括:时延增大(数据包在缓存中排队)、数据包丢失(路由器缓存溢出)

  • 拥塞控制是全局问题,涉及全网所有的路由器和主机

    • 流量控制是局部问题,仅限于发送方和接收方之间
  • 拥塞控制

    • 开环方法

    • 闭环方法

    • TCP拥塞控制方法

      • 细节发送端限制发送速率,发送速率近似为cwnd/RTT 字节/秒
      • cwnd动态变化,取决于网络拥塞情况
      • 发送端感知拥塞
        • 当定时器超时或收到3个重复ACK时,即认为有数据丢失
        • 发送端随即降低发送速率(降低cwnd)
      • 三个机制:慢启动、AIMD、根据拥塞情况调整策略
    • 慢启动:启动速率很低,按照指数级增加发送速率直至发现数据丢失(或者达到预先设定的阈值)

    • 拥塞窗口达到阈值后,进入拥塞避免(CA)阶段

    • 出现数据丢失的情况:MD

    • 快速重传机制

相关推荐
蒙奇D索大24 分钟前
【计算机网络】408考研计算机网络精讲:物理层核心——信道的极限容量(奈氏准则与香农定理)
计算机网络·考研
聪明的笨猪猪1 小时前
Java JVM “内存(1)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
_dindong1 小时前
Linux网络编程:Socket编程TCP
linux·服务器·网络·笔记·学习·tcp/ip
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 属性优先级 行内写法 变量选择 笔记42
java·spring boot·笔记
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 总结 热部署 常用配置 笔记44
java·spring boot·笔记
rechol2 小时前
汇编与底层编程笔记
汇编·arm开发·笔记
lzj_pxxw3 小时前
嵌入式开发技巧:舍弃标志位,用宏定义函数实现程序单次运行
笔记·stm32·单片机·嵌入式硬件·学习
润 下4 小时前
C语言——回调函数的典型示例(分析详解)
c语言·开发语言·人工智能·经验分享·笔记·程序人生
朝新_4 小时前
【EE初阶 - 网络原理】传输层协议
java·开发语言·网络·笔记·javaee
koo3644 小时前
李宏毅机器学习笔记27
人工智能·笔记·机器学习