计算机网络笔记


title: 计算机网络笔记
date:
tags: 学习笔记
categories: 课程内


计算机操作系统网络笔记

斜体字表示考研视频内容,与教学内容或有冲突,一切以学校ppt为准

现目前的理解,计算机通信和生活中的通信很像

王道考研视频是自底向上的

书是自顶向下的

0524思科网的题让我煎熬;;根本什么都不会嘛

第一章 计算机网络和因特网

计算机网络

两台以上具有独立操作系统的计算机通过某些介质连接成的相互共享软硬件资源的集合体。

计算机网络向用户提供的最重要的两大功能:

连通性

共享

Internet: “由网络构成的网络”

协议的基本要素:语法、语义和同步image-20210508224342423

image-20210508224829610

第一个阶段还不是RFC文档

image-20210508225343985

1.5分组交换网络中的延迟、丢失和吞吐量

吞吐量

  • 速率 数据传输的速率
  • 带宽 发送数据的最高速率
  • 吞吐量

image-20210508230322402

image-20210508230431644

image-20210508231046607

时延

image-20210508233402686

注意传播时延的分母

传输时延是指将所有信号发出的时间,传播则是在路上的时间

image-20210508233616435

rtt不包括传输时延

image-20210508234001636

image-20210508234149625

image-20210508234407501

image-20210508235356889

image-20210508235623904

image-20210509094243239

image-20210509094428221

  • 应用层:所有能和用户产生网络流量的程序
  • 表示层 处理两个通信系统中交换信息的表示方式(语法和语义)
    • 数据格式变化
    • 数据的解密和加密
    • 数据的压缩和恢复
  • 会话层:向表示层实体用户进程提供建立连接,并有序的传输数据,建立同步

如何理解这里的传输数据和传输层的功能区别

传输层:负责主机中两个进程的通信,端到端通信,单位是报文段或用户数据报

image-20210509113445713

复用,多个进程可同时使用运输层的服务

分用,运输层把接受的消息分别交付给应用层中对应的进程

  • 网络层

把分组从源端传到目的端,为分组交换的网络上不同主机提供通信服务,基本单位是数据报

数据报可被分成几个分组

image-20210509114241516

第二章 应用层

image-20210509162440644

虚拟终端是指个人可以使用大型计算机

对象是主机和主机之间

网络应用程序体系结构

  • 客户机/服务器

image-20210509162842671

  • p2p

没有总是打开的服务器

任意一对主机直接相互通信

image-20210509163111496对等方间歇连接并且可以改变IP地址

2.2 http

image-20210509190734112

<协议>://<主机>:<端口>/<lu-jing>(哼哼这是中文拼音没想到吧)

image-20210509190910642

浏览器可只下载文本部分,音频等可之后

http特点 http是无状态的,可以理解为无记忆的即HTTP服务器不维护客户先前的状态信息

image-20210509191911196

  • 连接方式 区别在于需不需要重新建立三次握手

什么是TCP连接

image-20210509191845718

上图右侧是非流水线

过程

1

2

3

报文分类–请求/响应

image-20210509222642781

ASCII文本 (易于人读格式)下图为请求报文

image-20210510084002732

注意是URI不是URL Uniform Resource Identifiers 或统一资源标识符

下图为方法的类型

image-20210510084117026

  • GET +uri
  • POST 把客户端传送给服务器端
  • HEAD

image-20210509222511833

image-20210510084707437

cookie

cookie和session见如下链接

简单理解:cookie在本地,session在服务器上

https://blog.csdn.net/chen13333336677/article/details/100939030?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162060877616780255224834%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162060877616780255224834&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-100939030.first_rank_v2_pc_rank_v29&utm_term=session%E5%92%8Ccookie%E7%9A%84%E5%8C%BA%E5%88%AB

Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。下图为cookie的过程

image-20210510085055313

web缓存

见ppt

感觉有点像高速缓存

目标:在不访问服务器的前提下满足客户端的HTTP请求。

优点

  • 减少对客户机请求的响应时间
  • 减少内部网络与接入链路上的通信量
  • 能从整体上大大降低因特网上的Web流量

image-20210510091134494

排对时延得再去看

条件get

本地缓存虽然有,但是是最新的么,不一定,所以需要确认缓存器的对象是否为最新的

目的:证实缓存器中的对象是否为最新

2.3 FTP

ftp和http区别

image-20210509183744837

image-20210510093943538

服务器创建第2个TCP与客户的数据连接来传输下一个文件.所以多个文件传输会很慢

  • 控制连接: 带外发送控制信息

控制信息与数据信息不同通道

(对比HTTP—带内)

在http中控制信息在首部

  • FTP 服务器要维护用户状态信息: 当前目录, 先前的身份认证

(对比HTTP—无状态)

连接数据模式

原因,内部网禁止外部服务器进入且内部网络想要链接外面

image-20210510101118943

主动模式是服务器找客户端

被动模式是客户端找服务器

2.4电子邮件

image-20210509184242093

  • SMTP

image-20210509184656375

image-20210509185600773

•SMTP使用持久连接

•SMTP 要求邮件消息(header & body)必须是7-bit ASCII

•SMTP服务器使用CRLF.CRLF 来判断邮件消息的结束

image-20210509185920914

  • POP3

image-20210509190141267

  • IMAP

image-20210509190315475

2.5 DNS

DNS服务器提供的功能:

主机名到IP地址的转换
主机别名
一个主机可以有一个规范主机名和多个主机别名
邮件服务器别名
负载分配
DNS实现冗余服务器:一个IP地址集合可以对应于同一个规范主机名

image-20210509164054091

…顶级域名不是很厉害的域名的意思…

image-20210509165304388

本地服务器找不到就去跟服务器找

image-20210509165448857

DNS查询方式

  • 递归

image-20210509165743891

  • 迭代

image-20210509165805951

“我不知道它的名字,但是你可以问服务器xx”

为什么可以以迭代的方式进行

我对递归的理解为先知道一部分,再去补另一部分,即,每部分对应存储在不同的DNS服务器中,这样理解的话最繁忙的应该是权限域名服务器啊

•一旦名字服务器获得DNS映射, 它将缓存该映射到局部内存

•服务器在一定时间后将丢弃缓存的信息

•本地DNS服务器可以缓存TLD服务器的IP地址

•因此根DNS服务器不会被经常访问

减少根服务器的访问次数,提高效率

然后我们来看DNS记录的格式

TTL time to leave

RR

(name, value, type, TTL)
IF Type=A(Address)
   name = 主机名
   value = IP地址
IF Type=CNAME(canonical)
	name = 主机别名
 	www.ibm.com的真名为
	servereast.backup2.ibm.com 
	value = 真实的规范主机名
IF Type=NS( name server )
	name = 域名(如foo.com) 
	value = 该域权威名字服务器的主机名
IF Type=MX(mail exchange)
	name =邮件服务器的主机别名
	value =邮件服务器的真实规范主机名


DNS 协议–不是重点暂时先不看

2.7 CDN

内容分发网络(Content distribution networks, CDN)

第三章 传输层

3.1 传输层服务

  • 在两个不同的主机上运行的应用程序之间提供逻辑通信机制

  • 即进程之间的逻辑通信

    image-20210510165514133

    传输层协议运行在端系统

    发送方: 将应用程序报文分成报文段传递给网络层
    接受方: 将报文段重新组装成报文传递到应用层
    传输层可以为应用提供多种协议
    因特网: TCP 和 UDP

image-20210510165217593

image-20210510165950333

3.2 多路复用和多路分解

image-20210510170206148

image-20210510171428282

image-20210510171508261

3.3 无连接传输: UDP、

IP数据报+分用复用+差错检测~UDP

特点:

  • 无连接
  • 尽力
  • 面向报文的 保留应用层报文
  • 无拥塞控制,适合实时应用
  • 首部开销小,8字节,TCP 20字节

DUP格式

image-20210510172703282

分用时找不到对应的目的端口号就丢弃报文,并给发送方发送ICMP消息

校验时

image-20210510172936512

3.4 可靠数据传输原理

信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性

解决方法

​ 逐步开发发送方和接收方的可靠数据传输协议 (rdt)

​ 仅考虑单向数据传输

​ 但控制信息将在两个方向流动

​ 使用有限状态机 (FSM)来定义发送方和接收方

3.5 面向连接传输: TCP

3.6 拥塞控制原理

3.7 TCP 拥塞控制

有限状态机

是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型

第四章 网络层

4.1 引言

功能:

  • 转发(forwarding): 将分组从路由器的输入端口转移到正确的路由器输出端口
  • 路由(routing): 确定分组从发送方传输到接收方(目的主机)所经过的路径(或路由)

确定路径如何并完成路径

image-20210530103531096

暂时不是很明白上面这张ppt的意思

4.2 虚电路和数据报网络

image-20210530102445453

image-20210530103433021

4.3 路由器的结构

image-20210530103927740

四个部分嗷—>还有下面的routing processor

输入端口

image-20210530104341085

1.网络层:路由器、防火墙
2.数据链路层:网卡、网桥、交换机
3.物理层:中继器、集线器

那为什么说路由器的数据链路层功能呢

这里就只着重介绍第三个模块

  • 查找与转发模块

确定将一个到达的分组通过交换结构转发给哪个输出端口。 通过查找转发表实现,这里的转发表是存储在输入端口的内存中。

其中的一种方式是分布式交换

image-20210530105631382

三种交换结构

作用是:将分组从输入端口缓存交换(转发)到恰当的输出端口缓存中

image-20210530105817849

第一代路由器是内存式, 现代已经是总线式了

  • 内存式

早期用计算机作为路由器时采用的结构(第一代)
输入端口与输出端口之间的交换由CPU(选路处理器)控制完成
输入端口与输出端口类似I/O设备:
当分组到达输入端口时,通过中断向选路处理器发出信号,将分组拷贝到处理器内存中;
选路处理器根据分组中的目的地址查表找出适当的输出端口,将该分组拷贝到输出端口的缓存中。

image-20210530110126818

image-20210530110405452

我觉得不能按ppt的理解,以下网上的说法我更能理解

不能同时转发两个分组,即使它们有不同的端口号,因为经过共享系统总线一次仅能执行一个内存读/写。

  • 经总线交换式

image-20210530141420569

image-20210530141547225

输出端口

image-20210530141725631

这个延时就是排对时延

4.4 IP协议(重点)

A类地址的第一位为“0”,B类地址的前两位为“10”,C类地址的前三位为“110”,D类地址的前四位为“1110”,E类地址的前五位为“11110”。其中,A类、B类与C类地址为基本的IP地址。

image-20210517183119236

image-20210517183339193

image-20210517183358631

划分子网

为什么要

利用IP地址的网络段,我们可以唯一的标识一个物理网络。现在考虑我们要将一些网络(Network)连接到Internet上来,对于一个Network,无论它拥有的主机数多小,它至少都需要一个C类网络地址,如果它拥有超过255个的主机(或者有拓展到超过255个主机数的可能),那就需要一个B类网络,但对于我们的IPv4地址,它的地址数是有限的(大约40多亿个),如果是有300个主机的小网络,却不得不使用B类网络(一个B类网络有65534个主机段),那就浪费了6万多个地址,这使得地址的消耗变得非常快(事实上,早在2011年IPv4地址就分配完了……)

感觉这一段说的还是比较仔细了

image-20210517183534541

由此可见子网号字段长度是可变的,因此,为了确定子网地址,IP协议提供了子网掩码的概念

其中的1对应于IP地址中的网络号和子网号,而子网掩码中的0对应于主机号。

image-20210517183958841

image-20210517184207239

新主机号是后9位!!!

子网划分相关链接

https://blog.csdn.net/dyyay521/article/details/94381876?utm_source=app&app_version=4.5.8

子网掩码分组转发

不划分子网时,路由表只有两项:目的网络地址和下一跳地址

image-20210524094840802

使用子网划分后,路由表中包括三项:目的网络地址、子网掩码和下一跳地址

子网掩码与目的网络地址&后判断是否在同一网段

image-20210524094854100

CIDR

传统IP地址分类方式分配IP被CIDR(无分类域间路由)技术取代

image-20210524095544891

CIDR同时也解决了子网主机段不能全为0或者1的问题,因为128.112.128.0/21与128.112.128.0/24是两个不同的IP,不会再有重叠的问题。

以下连接是概念讲解

https://blog.csdn.net/saasanken/article/details/80371058?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162182155516780265445964%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162182155516780265445964&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-80371058.first_rank_v2_pc_rank_v29&utm_term=CIDR&spm=1018.2226.3001.4187

image-20210524103152478

(1)

以最多台数的部门(60台)为准,需要的最接近数为2^6=64,故要从最后个字节借8-6=2位,

子网分别为 202.1.1.0, 202.1.1.64, 202.1.1.128, 202.1.1.192,在这4个其中任选3个即可。掩码均为254.254.254.192。

(2)

若以最多台数的部门(120台)为准,仅能分两个子网,无法满足。故应采用CIDR法:

首先以最小需求台数部门为准(60台),此时主机号位数需剩下2个以满足120台的要求(但这两个子网要要6位(因为60=<2^6-2),则子网号位数为8-6=2位,然后将子网划分出来。此时和(1)一样;

接下来,部门2、3可以直接在4个子网中任选两个,部门1选连续,以便用CIDR法合并之,做超网)。比如202.1.1.128、202.1.1.192分别给部门2、3,部门1用202.1.1.0、202.1.1.64

(3)最后将各部门IP段用CIDR超网形式描述,以便对外发布:

部门1:202.1.1.0/25; (注意含义:表示前25位是网络号,且最后一个字节最高位为0,后面7位是主机号)

部门2:202.1.1.128/26; (最后一个字节最高两位为10,后面6位是主机号)

部门3:202.1.1.192/26; (最后一个字节最高两位为11,后面6位是主机号)

以下link是另一个题目讲解

https://blog.csdn.net/qq_37611061/article/details/89368309?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

什么时候可以全0 全1

DHCP

各类地址区别

主机地址,网络地址,广播地址 ,IP地址, MAC地址,私有地址

网关(为什么ppt关键词没有呢)

IP地址,子网掩码、默认网关,DNS服务器之间的联系与区别
https://blog.csdn.net/hexf9632/article/details/93469788?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162233999316780366535943%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162233999316780366535943&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-93469788.first_rank_v2_pc_rank_v29&utm_term=%E7%BD%91%E5%85%B3&spm=1018.2226.3001.4187

但是对网关的讲解不是很深入

【IT互联网系列】什么是网关?网关的作用是什么?看完不懂,你捶我
https://blog.csdn.net/yy339452689/article/details/103913617?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162233999316780366535943%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162233999316780366535943&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-2-103913617.first_rank_v2_pc_rank_v29&utm_term=%E7%BD%91%E5%85%B3&spm=1018.2226.3001.4187

从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关,这里的网络就是指网络号
如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机

这篇应该是可以能理解了,那么路由器和网关的关系又是什么呢

4.5 路由算法(重点、难点)

4.5.1迪杰斯特拉算法

ppt讲的还算清楚

image-20210509161049785

image-20210509161252416

image-20210509161327484

4.5.2距离向量dv算法

对新手很不友好,会有那种感觉明白了的错觉

看得拳头都紧了!!!!!

我来写

图就用ppt图

理论公式

image-20210509160912961

image-20210509151949644

初始化时,xyz只能初始化自己的那部分,就是以下的三个表

image-20210509152058916

然后,这些线代表每个节点向邻居节点发送信息

x表就变成了这样,逻辑上先这样

image-20210509152332583

然后因为我们要更新,更新过程如下

计算x到y的最小值就分两种

x
y
z

其中z–>y是由z发出的节点信息得知

image-20210509152453844

image-20210509152812118

然后得出结论,完成实际更新

image-20210509152946822

因为x自身的信息更新了,但其他节点并不知道这个变化所以x需要重新发送自己的信息给其他的节点

image-20210509153611623

而y节点因为没有更新处于稳定状态所以不动

image-20210509153248738

更新后还需要再计算,最后得出最终的表

image-20210509153718120

然后我们来讨论两种不同的变化

  • 某链路费用减少时情况

image-20210509154302274

没什么问题,大家都理解

  • 增加时

这里需要注意, DZ(X)还是原来的走y到z的路径,值为5

image-20210509154900160

image-20210509155004122

最后贴上特点

距离向量路由算法是一种迭代的、异步的和分布式的算法。

•分布式:每个节点都从其直接相连邻居接收信息,进行计算,再将计算结果分发给邻居。

•迭代:计算过程一直持续到邻居之间无更多信息交换为止。

•异步:不要求所有节点相互之间步伐一致地操作。

•自我终结:算法能自行停止。

毒性逆转

还没看

  • LS算法与DV算法比较
    • 消息复杂度:
      • LS算法:知道网络每条链路的费用,需发送O(nE)个报文;当一条链路的费用变化时,必须通知所有节点
      • DV算法:迭代时,仅在两个直接相连邻居之间交换报文;当链路费用改变时,只有该链路相连的节点的最低费用路径发生改变时,才传播已改变的链路费用。
    • 收敛速度:
      • LS算法:需要O(nE)个报文和O(n2)的搜寻,可能会振荡
      • DV算法:收敛较慢。可能会遇到选路回环,或计数到无穷的问题。
    • 健壮性:当一台路由器发生故障、操作错误或受到破坏时,会发生什么情况?
      • LS算法:路由器向其连接的一条链路广播不正确费用,路由计算基本独立(仅计算自己的转发表),有一定健壮性。
      • DV算法:一个节点可向任意或所有目的节点发布其不正确的最低费用路径,一个节点的计算值会传递给它的邻居,并间接地传递给邻居的邻居。一个不正确的计算值会扩散到整个网络。

4.6 因特网中的路由协议

4.7 SDN

第五章 数据链路层

用减少时情况

[外链图片转存中…(img-TVSIwz0n-1622355887935)]

没什么问题,大家都理解

  • 增加时

这里需要注意, DZ(X)还是原来的走y到z的路径,值为5

[外链图片转存中…(img-JdPy6daV-1622355887936)]

[外链图片转存中…(img-TodLwpJ7-1622355887937)]

最后贴上特点

距离向量路由算法是一种迭代的、异步的和分布式的算法。

•分布式:每个节点都从其直接相连邻居接收信息,进行计算,再将计算结果分发给邻居。

•迭代:计算过程一直持续到邻居之间无更多信息交换为止。

•异步:不要求所有节点相互之间步伐一致地操作。

•自我终结:算法能自行停止。

毒性逆转

还没看

  • LS算法与DV算法比较
    • 消息复杂度:
      • LS算法:知道网络每条链路的费用,需发送O(nE)个报文;当一条链路的费用变化时,必须通知所有节点
      • DV算法:迭代时,仅在两个直接相连邻居之间交换报文;当链路费用改变时,只有该链路相连的节点的最低费用路径发生改变时,才传播已改变的链路费用。
    • 收敛速度:
      • LS算法:需要O(nE)个报文和O(n2)的搜寻,可能会振荡
      • DV算法:收敛较慢。可能会遇到选路回环,或计数到无穷的问题。
    • 健壮性:当一台路由器发生故障、操作错误或受到破坏时,会发生什么情况?
      • LS算法:路由器向其连接的一条链路广播不正确费用,路由计算基本独立(仅计算自己的转发表),有一定健壮性。
      • DV算法:一个节点可向任意或所有目的节点发布其不正确的最低费用路径,一个节点的计算值会传递给它的邻居,并间接地传递给邻居的邻居。一个不正确的计算值会扩散到整个网络。

4.6 因特网中的路由协议

4.7 SDN

第五章 数据链路层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值