计算机基础——计算机网络

前言

如何学习计算机网络呢?

计算机网络发展十分迅速,在计算机网络(自顶向下方法)书中,当更新迭代一个版本的时候,所改进增加的知识点就有将近20% - 30%的内容。

发展这么快然后学习掌握呢?

那就是将计算机网络最根本,最低层的原理,协议所掌握,那么当更新迭代到一个新的版本,在原有的知识体系的支撑下,在原有的思考的思维体系下就可以快速学习理解掌握了!

互联网

互联网的边缘部分

边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据,音频或视频)和资源共享。

互联网的核心部分

核心部分:由大量网络和链接这些网络的路由器组成。这部分是为边缘部分提供服务(提供连通性和交换)。

它是互联网中最复杂的部分。

网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。

在网络核心部分起特殊作用的是路由器(router).

处在互联网边缘的部分就是连接在互联网上的所有的主机,这些主机又称为端系统****(end system).

端系统之间的两种通信方式

1.客户-服务器方式(C/S方式)

即Client/Server方式,简称C/S方式

被用户调用后运行,在打算通信时主动向远服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。

2.对等方式(P2P方式)

即Peer-to-Peer方式,简称为P2P方式。

指两个主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方(S).

客户与服务器的通信关系建立后,通信是双向的,客户和服务器都可发送和接受数据。

只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。

双方都可以下载对方已经存储在硬盘的文档等。

不需要特殊的硬件和很复杂的操作系统。

服务器程序:一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。

系统启动后即自动调用并一直不断地运行者,被动的等待并接受来自各地的客户的通信请求。

因此,服务器程序不需要知道客户程序的地址

路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重用的功能。

计算机网络的性能指标

主要包括:

计算机基础——计算机网络_第1张图片

1.速率

1.速率
比特(bit)是计算机中数据量的单位,也是信息论的信息量的单位
比特(bit/binary digit)表示一个二进制数字(1或o)

2.带宽

2.带宽
表示单位时间内能通过的"最高数据率"。单位是bit/s(比特每秒)

3.吞吐量

3.吞吐量
吞吐量(throughput)表示在单位时间内通过的网络(或信道、接口)的数据量
用于对网络的一种测量:实际上到底有多少数据量能够通过网络

4.时延

4.时延(delay或latency延迟或迟延)
指数据从网络的一端到另一端所需的时间。
网络中的时延由以下几个不同的部分组成

计算机基础——计算机网络_第2张图片

5.利用率

7.利用率
分为信道利用率和网络利用率。
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。

三种交换:

电路交换

电路交换必定是面向连接的。

电路交换分为三个阶段

1.建立连接:建立一条专用的物理通路,以保证双方通话时所需的通信资源在通信时不会被其他用户占用。
2.通信:主叫和被叫双方就能互相通电话哦
3.释放连接:释放刚才使用的这条专用的物理通道(释放刚才占用的所有通信资源)

分组交换

分组交换: 采用存储转发技术
在发送端,先把较长的报文划分为较短的、固定长度(为了性能)的数据段。
理解

对于分组交换的理解

​ 将需要交换的信息(包裹)分组(分成固定规格大小的包裹)发送(发快递),各种通信线路(各种快递)只要哪个快递,在我发的时候,就可以寄出去的,就发哪一个,没有固定的。在接收方快要接收的前,分组的首部(快递员)都有地址等控制信息,将所有包裹分类组合完整的大包裹,再送到接收方。

主机和路由器的区别

1.主机是为了用户进行信息处理的,在网络发送接收分组

2.路由器对分组进行存储转发,最后把分组交付目的主机。

分组交换中首部的重要性

1)每一个分组的首部都含有地址(诸如目的地址和源地址)等控制信息
2)分组交换网中的结点交换机(快递中间站)根据收到的分组首部中的地址信息,把分组转发到下一个结点交换机。
3)每个分组在互联网中独立的选择传输路径。
优点

分组交换的优点

高效 在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用
灵活 为每一个分组独立的选择最合适的转发路由
迅速 以分组作为传送单位,可以不先去建立连接,就可以直接向其它主机发送分组
可靠 保证可靠性的网络协议等,使得网络有很好的生存性;

分组交换带来的问题:

1.分组在各结点存储转发需要排队,多了就花就会造成一定的时延。

2.分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销

计算机基础——计算机网络_第3张图片

注:存储(暂停查找下一个转发到哪)和转发是两个过程

报文交换

报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式,因而有以下优缺点:

优点:

​ ①报文交换不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送报文
​ ②由于采用存储转发的传输方式,使之具有下列优点:

a.在报文交换中便于设置代码检验和数据重发设施,交换结点还具有路径选择,就可以做到某条传输路径发生故障时,重新选择另一条路径传输数据,提高了传输的可靠性;

b.在存储转发中容易实现代码转换和速率匹配,甚至收发双方可以不同时处于可用状态。这样就便于类型、规格和速度不同的计算机之间进行通信;

c.提供多目标服务,即一个报文可以同时发送到多个目的地址

d.允许建立数据传输的优先级,使优先级高的报文优先转换

缺点

​ ①由于数据进入交换结点后要经历存储、转发这一过程,从而引起转发时延(包括接收报文、检验正确性、排队、发送时间等),而且网络的通信量愈大,造成的时延就愈大,因此报文交换的实时性差,不适合传送实时或交互式业务的数据。
​ ②报文交换只适用于数字信号
​ ③由于报文长度没有限制,而每个中间结点都要完整地接收传来的整个报文,当输出线路不空闲时,还可能要存储几个完整报文等待转发,要求网络中每个结点有较大的缓冲区。

路由器

1.在路由器中的输入和输出端口之间没有直接连线

路由器处理分组的过程是:

把收到的分组先放入缓存(暂时存储);
查找转发表,找出某个目的地址应从哪个端口转发
把分组送到适当的端口转发出去

交换对比

电路与分组之间交换对比

电路交换的缺点: 计算机数据具有突发性。 导致传送数据时,通信线路利用率很低(用来传送数据的时间往往不到10%甚至1% 电路交换的用户始终占用电路交换连接的所需的所有通信资源)
分组交换 采用存储转发技术 在发送端,先把较长的报文划分为较短的、固定长度(为了性能)的数据段。

分类和性能指标

定义

网络的定义

1)计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机

2)计算机网络并发专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)

注意:“可编程的硬件”表明这种硬件一定包含有CPU;

计算机网络有多种类别。典型包括:

分类

从作用范围进行分类

广域网WAN(Wide Area Network) 作用范围大约几十-几千公里
城域网MAN(Metropolitan Area Network) 作用距离约5-50公里
局域网LAN(Local Area Network):局限在较小的范围 (如1公里左右)
个人区域网PAN(Personal Area Network) 范围很小,约10m左右
从使用者分类

从网络的使用者进行分类

公用网(public network) 按规定交纳费用的人都可以使用的网络(公众网)
专用网(private network) 为特殊业务工作的需要而建造的网络

接入

用来把用户接入到互联网的网络

接入网AN(Access Network)本地接入网/居民接入网 用于将用户接入互联网
接入网本身既不是互联网的核心也不属于边缘。 它是从某个端系统到另一个端系统的路径中,由这个端系统到第一个路由器(也称边缘路由器)之间的一些物理链路所组成的。

注:接入网AN的覆盖范围很多还是属于局域网,但从作用上来看,接入网只起到了让用户能连接互联网的"桥梁"作用。

物理层

数据通信

包括三大部分:

1.源系统(发送/发送方的传输系统)
2.传输系统(传输网络)
3.目的系统(接收端、接收方)

计算机基础——计算机网络_第4张图片

信道

基本概念
基带调制、数字信号的编码(不归零、曼彻斯特、差分曼彻斯特)
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层的作用:要尽可能的屏蔽掉不同传输媒体和通信手段的差异
用于物理层的协议也常称为物理层规程(procedure)
信道 向某一个方向输送信息的媒介
单向信道(单工) 只能有一个方向的通信(类似于马路单行道)
双向交替通信(半双工) 双方都可以发送/接收信息,但是不能同时!
双向同时通信(双工通信) 通信双方可以同时发送和接受信息

数据

数据(data) 运送消息的实体
信号(signal) 数据的电气或电磁的表现
模拟信号(analogous signal) 代表消息的参数的取值是连续的
数字信息(digital signal) 代表消息的参数和取值是离散的
码元(code) 在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形

由于基带信号有较多的低频信号,往往是传输媒介的最低值Hz。所以必须对基带信号进行调制(modulation).

调制

调制分为两大类:

基带调制

只**对基带信号的波形进行变换**,使它能够与信道特征相适应。变换后的信号仍然是基带信号。把这种过程称为编码(coding)。

不归零制 正电平代表1,负电平代表0
归零制 正脉冲代表1,负脉冲代表0
曼彻斯特编码 位于周期中心的向上跳表示0,向下跳表示1。也可以反过来
差分曼彻斯特编码 在每一位的中心处始终都有跳变。位开始边界有跳变代表0,没有跳变代表1

计算机基础——计算机网络_第5张图片

曼彻斯特的两种编码要比上面两种信号频率高。

而且不归零制不能从信号波形本身提取信号时钟频率(无自同步能力)

曼彻斯特的两种编码方式有自同步能力

带通调制

使用**载波(carrier)**进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号,这样就能够更好地在模拟信道中传输(即仅在一段频率范围内能够通过信号)

带通信号

经过载波调制后的信号。

原因:基本的信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。为了解决这个问题就必须对基带信号进行调制(modulation).

调波法

基本二元制调波法

调幅(AM) 载波的振幅随基带数字信号而该改变
调频(FM) 载波的频率随基带数字信号而变化
调相(PM) 载波的初始相位随基带数字信号而改变

计算机基础——计算机网络_第6张图片

当数字信号通过实际的信道时收到外界的干扰达到一定程度就会失真:

计算机基础——计算机网络_第7张图片

从概念上将,限制码元在信道上的传输速率的因素有以下两个:

频率范围

信道能够通过的频率范围

信噪比

在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对码元的判决(识别)成为不可能。

如果信号的频带越宽,也就是能够通过信号的高频分量越多,那么就可以用更高的速率传送码元而不出现码间串扰。

噪声<信号强度 那么相应信号被影响就会小
信噪比= 信号avg(功率)/噪声avg(功率)
复用(multiplexing) 通信技术的基本概念 它允许用户使用给一个共享的信道通信,降低成本提高利用率

计算机基础——计算机网络_第8张图片

**频分**复用FDM

将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用用这个频带。频分复用的所有用户在同样的时间占用不同的带宽资源(带宽:这里指的是频道带宽而不是数据的发送速率)。

计算机基础——计算机网络_第9张图片

==时分==复用

使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到子信道的利用率一般不高。

计算机基础——计算机网络_第10张图片

==波分==复用WDM

波分复用WDM就是光的频分复用,使用一个光纤同时传输多个光载波信号

计算机基础——计算机网络_第11张图片

**码分**复用CDM
常用名词就是码分多址CDMA
各用户使用经过特殊挑选的不同码型,因此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

码片序列(chip sequence)

码片(chip) 每一个比特时间划分为m个短的间隔
每个站被指派一个唯一的m bit码片序列。

计算机基础——计算机网络_第12张图片

码片序列实现了扩频

假 定 S 站 要 发 送 信 思 的 数 庭 率 为 b bit's. 由 于 每 一 个 比  特要转换叫@个比特的 码 片 , 因 此 S 站 实 际 上 发 送 的  數 据 率 提 高 力 bi . 同 时 S 站 所 占 用 的 頻 带 宽 度  也 提 高 到 原 来 数值皚@倍 .

此为扩频(spread spectrum)通信中的一种。

共两种:CDMA一般指码分多址。 码分多址是指利用码序列相关性实现的多址通信;
码分多址(CDMA)的基本思想是靠不同的地址码来区分的地址。
每个配有不同的地址码,用户所发射的载波(为同一载波)既受基带数字信号调制,又受地址码调制。
重要特点

CDMA(码分多址)的重要特点

每个站分配的码元序列不仅必须各不相同,并且还必须互相正交(orthogonal)

在实用的系统中是使用伪随机码序列

码片序列的正交关系:

两个不同站的码片序列规格化内积=0 就是对应相乘再相加=0

计算机基础——计算机网络_第13张图片

任何码片向量和该码片自己的规格化内积都是1

**CDMA(码分多址)**的工作原理图

计算机基础——计算机网络_第14张图片

数据链路层

点对点信道

使用点对点信道的数据链路层

两种类型

数据链路层使用的信道主要有以下两种类型:

点对点信道 这种信道使用一对一的点对点通信方式
广播信道 使用一对多的广播通信的方式,过程复杂,连接的主机很多,所以必须使用专用的共享信道协议来协调这些主机的数据发送
模型

数据链路层的简单模型

计算机基础——计算机网络_第15张图片

数据链路和帧
链路(link)/物理链路 是一条无源的点对点物理线路段中间没有任何其它的交换结点 一条链路只是一条通路的组成部分
数据链路/逻辑链路(date link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。 把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
逻辑链路是物理链路加上必要的通信协议 一般的适配器都包括数据链路层和物理层这两层功能 现在最常用的方法是使用适配器(即网卡)来实现这些协议的软硬件
传送的是帧

数据链路层传送的是帧

计算机基础——计算机网络_第16张图片

计算机基础——计算机网络_第17张图片

三个基本问题

本层各种协议共同的三个基本问题:

封装成帧

指的是一段数据的前后添加首部和尾部,就构成了一个帧(确定了帧的界限)

计算机基础——计算机网络_第18张图片

帧定界距离

2.使用控制字符进行帧定界距离的方法

当数据是由可打印的ASCLL码组成的文本文件时,帧定界可以使用特殊的帧定界符。

1629170610720

透明传输

如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误的"找到帧的边界"

计算机基础——计算机网络_第19张图片

解决方法
解决方法:字节填充(byte stuffing)或字符填充(character stuffing)
1.发送端的数据链路层在数据中出现控制字符"SOH""EOT"的前面插入一个转义字符"ESC"(16进制编码是1B)
2.接受端的数据链路层在将数据送往网络层之间删除插入的转义字符。
3.如果转义字符也出现在数据中,那么应该在前面插入一个转义字符ESC,当接收到连续的两个
就删除前面一个转义字符

计算机基础——计算机网络_第20张图片

差错控制
比特差错

在传输过程中可能会产生比特差错:

1可能会变成0,而0也可能会变成1.

在一段时间内,传输错误的比特会占所传输比特总数的比特率称为误码率BER(Bit Error Rate)

误码率与信噪比有很大的关系

可靠性

为了保证数据传输的可靠性:

在计算机网络传输数据时,必须采用各种差错检测措施

循环冗余检测的原理

在数据链路层传送帧中,广泛使用了循环冗余检验CRC的检错技术。只能做到无差错接受。

检错技术:

循环冗余检验CRC的检错技术:

1.在发送端,先把数据划分为组(k个比特)。
2.假设待传送的一组数据M=101001(k就=6)
3.在M的后面添加供差错检测用的n位冗余码一起发送。

计算机基础——计算机网络_第21张图片

计算机基础——计算机网络_第22张图片

可靠传输
可靠传输 不丢失、不重复、不失序
要做到"可靠传输"(即发送什么就收到什么) 必须再加上确认和重传机制
注意: 无比特差错与无传输差错是两个不同的概念
这还不是可靠传输 在数据链路层使用CRC校验,只能够实现无比特差错的传输

点对点协议PPP

特点

PPP协议的特点

对于点对点的链路,广泛使用的是数据链路层的点对点协议PPP(Point-to-PointProtocol)

计算机基础——计算机网络_第23张图片

需求

PPP协议应满足的需求

简单 首要要求
封装成帧 必须规定特殊的字符作为帧定界符
透明性 必须保证数据传输的透明性
差错检测 能够对接收端受到的帧进行检测并立即丢弃有差错的帧
多种网络层协议 能够在同一条物理链路上同时支持多种网络层协议
多种类型链路 在多种类型的链路上运行

而PPP协议不需要实现纠错、流量控制、序号、多点线路、半双工或单工链路默认全双工

组成

PPP协议的组成

(1)一个将IP数据包封装到串行链路的方法
(2)链路控制协议LCP(Link Control Protocol)
(3)网络控制协议NCP(Network Control Protocol)
4.PPP帧的首部和尾部分别为4个字段和2个字段
标志字段F=0X7E(符号"0X"表示后面的字符是用十六进制表示。
十六进制的7E的二进制表示01111110)
控制字段C通常置为0x03
地址字段A只置为0xFF。地址字段实际上并不起作用

PPP是面向字节的,所有的PPP帧的长度都是整数字节。

5.PPP协议的帧格式

计算机基础——计算机网络_第24张图片

透明传输问题

当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充(和HDLC的做法一样)
当ppp用在异步传输时,就使用一种特殊的字符填充法。

字符填充

当遇到1629172271734将它转换为—> 1629172287765
而遇到1629172322200—> 1629172351764

零比特填充

使用ppp协议在同步传输一连串比特连续传送的时候,采用零比特方法实现透明传输。

发送方:连续5个1就接一个0

接收方:连续5个1就删除一个0

在这里为什么不提供使用序号和确认的可靠传输?

ppp协议之所以不使用序号和确认机制是出于以下的考虑:
1.在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理
2.在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
3.帧校验序列FCS字段可保证无差错接受。

计算机基础——计算机网络_第25张图片

使用广播信道

使用广播信道的数据链路层

局域网的数据链路层

局域网最主要的特点是:网络为一个单位(例如公司)所有;

地理范围和站点数目均有限

2.局域网具有如下主要优点;

具有广播功能

从一个站点可很方便地访问全网,局域网上的主机可共享链接在局域网上的各种硬件和软件资源
(类似一个片段中两个人共享一条马路)便于系统的扩展和逐渐地延边各设备的位置可灵活调整和改变
提高了系统的可靠性,可用性和残存性。

计算机基础——计算机网络_第26张图片

为了使数据链路层能更好的适应多种局域网标准

IEEE 802委员会就将局域网的数据链路层拆分两个子层:

重要的功能有:
1.进行串行/并行转换

2.对数据进行缓存

3.在计算机的操作系统安装设备驱动程序

4.实现以太网协议

计算机通过适配器和局域网进行通信

计算机基础——计算机网络_第27张图片

高速以太网

CSMA/CD

CSMA/CD 协议

最初的以太网是将许多计算机都链接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有源器件。

采用广播方式

以太网采用广播方式发送

总线上的每一个工作的计算机都能检测到B发送的数据信号。
由于只有计算机D的地址与数据帧首部写入的地址一致,因此只有D才接收这样数据帧。
其它的检测到不是自己的地址就丢弃

在具有广播特性的总线上实现了“一对一“的通信 。

为了通信简便,以太网采取了两种重要的措施

1.采用较为灵活的无连接的工作方式。
	不必线建立链接就可以直接发送数据
	对发送的数据帧不进行编号,也不要求对方发回确认。

这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。
以太网提供的服务是不可靠的交付,也就是尽最大努力的交付。
差错的纠正由高层来决定。

2.以太网发送的数据都采用了曼彻斯特编码
缺点就是它所占的频带宽度比原始的基带信号增加了一倍。
碰撞检测
"碰撞(冲突)检测"就是计算机边发送数据边检测信道上的信号电压大小

当几个站同时在总线上发送数据时,总线上的信号电压摆动值会增大(叠加)

当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,也就是发生了碰撞。
why?

为什么要进行碰撞检测?

由于电磁波在总线上的传播速率是有限的,当某个站监听到的总线是空闲时,也可能总线并非真正是空闲的。
A向B发出的信息,要经过一定的时间后才能传送到B。

如果A---> B之前     B就发自己的信息了,那就是 A--->  <-B就必然发生碰撞
碰撞的结果就是两个都失效了。gameOver

如果A从刚开始发送开始,一直到一个往返时间开始,检测都没有发生异常,就认为没有发生冲突

这个往返窗口称之为争用期

含义

CSMA/CD含义:载波监听多点接入/碰撞检测

多点接入:表示许多计算机以多点接入的方法连接在一根总线上
”载波监听“:指每一个站在发送数据之前要检测一下总线上是否有其它计算机在发送数据,如果有就先不要发了,别碰撞了。

二进制指数类型退避算法(truncated binary exponential type)

发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。

基本退避时间取为争用期

K=Min[重传次数,10]

争用起的长度10Mbit/s以太网取51.2为争用期的长度。

若前64字节没有发生冲突,则后续的数据就不会发生冲突

以太网规定,最短帧为64字节,凡小于64字节的帧都是由于冲突而异常中止的无效帧

强化碰撞
当发送数据的站一旦发现发生了碰撞时:
1.立即停止发送数据

2.再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道已经发生了碰撞。

多个站在以太网上同时工作就可能会发生碰撞。

当发生碰撞时,信道资源实际上是被浪费了。

因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到100%.
要点

CSMA/CD协议的要点

一、先听后发 在发送之前,必须先检测信道
二、边听边发 如果检测到信道忙,就不停的检测,一直等到信道转为空闲,一旦空闲,并在96比特时间内信道保持空闲,就发送
三、冲突停止 1629184094473
四、延迟重发 计算机基础——计算机网络_第28张图片
集线器的一些特点
1.集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
2.使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是各工作站使用的还是CSMA/CD协议,
并共享逻辑上的总线。
3.集线器工作在物理层

具有三个接口的集线器

计算机基础——计算机网络_第29张图片

信道利用率的最大值Smax

在理想情况下,以太网上的各站发送数据就不会产生碰撞(这显然已经不是CSMA/CD,而是需要使用一种特殊的调度方法),即总线一旦空闲就有某一个站立即发送数据。

计算机基础——计算机网络_第30张图片

检查MAC地址

适配器检查MAC地址

适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址。
1.如果是发往本站的帧则收下,然后再进行其它的处理
2.否则就将此帧丢弃,不再进行其它的处理。
"发往本站的帧"包括以下三种帧:
单播(unicast)帧(一对一)
广播(broadcast)帧(一对全体)
多播(multicast)帧(一对多)
所有的适配器都至少能够识别单播地址和广播地址。
只有的目的地址才能使用广播地址和多播地址。
以混杂方式(promiscuous mode)工作的以太网适配器只要"听到"有帧在以太网传输就都会接受下来。

计算机基础——计算机网络_第31张图片

无效MAC帧
1.数据字段的长度与长度字段的值不一致
2.帧的长度不是整数个字节
3.用收到的帧检验序列FCS查出有差错
4.数据字段的长度不在46-1500字节之间
5.有效MAC帧长度在64-1518字节之间

对于检查出的无效MAC帧就简单的丢弃,以太网可不负责重传丢弃的帧哦!

以太网的扩展

物理层扩展

在物理层扩展以太网

使用光纤

使用光纤扩展

计算机基础——计算机网络_第32张图片

用集线器

使用集线器扩展

使用多个集线器可连成更大的、多级星形结构的以太网。

1629184854718

用集线器扩展以太网

优点:

1.使原来属于不同碰撞域的以太网的计算机能够进行跨碰撞域的通信

2.扩大了以太网的覆盖地理范围

缺点:

1.碰撞域增大了,但总的吞吐量没有提高

如果不同的碰撞域使用不同的数据率,那么就不能使用集线器将它们互连起来。

二、在数据链路层扩展以太网

扩展以太网更常用的方法是在数据链路层进行。

早期使用网桥,现在使用以太网交换机。

网桥

先检查此帧的目的MAC地址

1.网桥工作在数据链路层。
2.它根据MAC帧的目的地址对收到的帧进行转发和过滤。
3.当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址
然后再确定将该帧转发到哪一个接口,或把它丢弃。
交换机

以太网交换机

以太网交换机实质上就是一个多接口的网桥
1.通常都有十几个或更多的接口
每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式,还具有并行性

以太网交换机的交换方式

1.把整个数据帧先缓存后再进行处理

直通(cut-through)方式

1.接收数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口,提高了帧的转发速度。

缺点就是它不检查,直接就转发,所以也可能转发了无效帧。

交换机自学习和转发帧的步骤归纳

交换收到一帧后先进行自学习,查找交换表中有收到帧的源地址有无相匹配的项目:
1.如果没有,就在交换表中增加一个项目(源地址、进入的接口和有效时间)。
2.如有,则把原有的项目进行更新(进入的接口或有效时间)
转发帧。查找交换表中与收到帧的目的地址有无相匹配的项目
1.如没有,就向所有其它接口(进入的接口除外)转发
2.如果有,就按交换表中给出的接口进行转发
如果交换表中给出的接口就是该帧进入交换机的接口,那么久丢弃(此时不需要转发)。
生成树协议:

不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其它主机的路径是无环路的单向树状结构,从而消除了兜圈子的现象。

虚拟局域网

利用以太网交换机可以很方便的实现虚拟局域网VLAN(Virtual LAN)

虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求,每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个VLAN局域网

虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
由于虚拟局域网是用户与网络资源的逻辑组合,因此,可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或者数据库中存取所需的资源。

计算机基础——计算机网络_第33张图片

虚拟局域网限制了接收广播信息的工作站数使得网络不会因传播过多的广播信息(即"广播风暴")而引起性能恶化。

计算机基础——计算机网络_第34张图片

速率达到或超过100Mbit/s的以太网称为高速以太网
特点:可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用CSMA/CD协议
MAC帧格式仍然是802.3标准规定的。
保持最短帧长不变,但将一个网段的最大电缆长度减小到100m。

快速以太网为什么将最大电缆长度减小到100m?

太长了信号衰减的厉害,
有屏蔽的太长了屏蔽也将失去作用,
所以一般都会限制长度。

网络层

数据链路层实现的是不可靠传输

数据链路层并没有实现不同网络之间的传输

在网络层会实现吗?怎么实现?

基本概念

虚电路是逻辑连接

这只是一条逻辑上的连接,分组都沿着这条逻辑连接,按照存储转发方式传送,并不是真正建立了一条物理链接。

注:电路交换的电话通信是先建立了一条真正的连接,分组交换的虚连接和电路交换的连接只是类似

虚电路服务图

计算机基础——计算机网络_第35张图片

尽最大努力交付

1.由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
2.如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等)。
3.采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用

数据报服务图

计算机基础——计算机网络_第36张图片

IP协议的位置

计算机基础——计算机网络_第37张图片

异构的网络的连接

将网络互相连接起来要使用一些**中间设备(中继系统/中间系统)**进行互连

物理层中继系统: 转发器(repeater)
数据链路层中继系统 网桥或桥接器(bridge)
网络层中继系统 路由器/网关(router) 网络互连使用路由器
网桥和路由器的混合物 桥路器(brouter)
网络层以上的中继系统

当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。

网络互连的概念

都是指用路由器进行网络互连和路由选择

计算机基础——计算机网络_第38张图片

虚拟(逻辑)互连网络的意义

互连起来的各种物理网络的异构性本来是客观存在的,但是利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
使用IP协议的虚拟互连网络可简称为IP网
使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节
如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网(Internet).

计算机基础——计算机网络_第39张图片

在网络层看IP数据报的传送,只考虑网络层问题,那么IP数据报就可以被想象成在网络层中传送

计算机基础——计算机网络_第40张图片

IP地址

IP地址及其表示方法

把因特网看成为一个单一的、抽象的网络

IP地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符

IP地址现在由**互联网名字和数字分配机构(ICANN)**进行分配

IP地址的分类

将IP地址划分为若干个固定类

每一类地址都是由两个固定长度的字段组成

计算机基础——计算机网络_第41张图片

网络号 net-id 标志着主机(或路由器)所连接到的网络
主机号 host-id 标着该主机(或路由器)

注意:主机号在它前面的网络号所指名的网络范围内必须是唯一的

点分十进制记法

计算机基础——计算机网络_第42张图片

点分十进制记法举例:

计算机基础——计算机网络_第43张图片

一般不使用的特殊IP地址

计算机基础——计算机网络_第44张图片

IP地址的重要特点
IP地址是一种分等级的地址结构

分两个等级的好处是:

方便管理

IP地址管理机构在分配IP地址时只分配网络号,剩下的主机号则由得到该网络号的单位自行分配

减小路由表所占空间

路由器根据目的主机所连接的网络号来转发分组(不考虑目的主机号),可以使路由表中的项目数大幅度减少。

实际上IP地址是标志一个主机(或路由器)和一条链路的接口

多归属主机multihomed host:

当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,它的net-id网络号必须是不同的

由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址

转发器或者网桥连接起来的若干局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id

所有分配到网络号net-id的网络,无论是范围很小的局域网,还是可能覆盖很大的地理范围的广域网,都是平等的

判断两个主机是否在一个片网络 看看它们的网络号是否一致即可。
计算机基础——计算机网络_第45张图片

互联网中的IP地址

计算机基础——计算机网络_第46张图片

IP地址和硬件地址

从层次的角度看

硬件地址(或者物理地址)是数据链路层和物理层使用的地址

IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的。)

计算机基础——计算机网络_第47张图片

计算机基础——计算机网络_第48张图片

在IP层抽象的互联网上只能看见IP数据报

IP层抽象的互联网屏蔽了下层很复杂的细节,在细节的网络层上讨论问题,就能够使用统一的、抽象的IP地址,研究主机和主机或主机和路由器之间的通信。

注意:两个路由器的IP地址并不出现在IP数据报的首部中

使用地址解析协议ARP

通信时使用了两个地址

IP地址(网络层地址)

MAC地址(数据链路层地址)

计算机基础——计算机网络_第49张图片

地址解析协议ARP
作用

用来解决已经知道了一个机器(主机或路由器)的IP地址,如何找出其相应的硬件地址的问题的。

计算机基础——计算机网络_第50张图片

要点

无论网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址

​ 每个主机都设有一个ARP高速缓存(ARP cache),里面有所有的局域网上的各主机和路由器的IP地址到硬件地址的映射表

计算机基础——计算机网络_第51张图片

当主机A要向本局域网上的某个主机B发送IP数据报时:
1.先在其ARP高速缓存中查看有无主机B的IP地址
	1.1.如有:就查出对应的硬件地址,并将此硬件地址写入MAC帧,然后通过		局域网将该MAC帧发往此硬件地址。
	1.2.没有:ARP进程在本局域网上广播发送一个ARP请求分组,收到ARP响		  应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存!

ARP请求分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址(未知时填0)/目标方IP地址。

本地广播ARP请求(路由器不转发ARP请求)

ARP响应分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址/目标方IP地址。

ARP分组封装在物理网络的帧中传输

计算机基础——计算机网络_第52张图片

ARP高速缓存的作用

存放最近获得的IP地址到MAC地址的绑定以减少ARP广播的数量

注意:

ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
如果要找的主机和源地址不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,剩下的工作就由下一个网络来做。
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。

为什么不直接使用硬件地址进行通信?

计算机基础——计算机网络_第53张图片

IP数据报

格式

一个IP数据报的格式由首部和数据两部分组成

首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的

在首部的固定部分的后面是一些可选字段,长度是可变的。

计算机基础——计算机网络_第54张图片

首部的固定部分

计算机基础——计算机网络_第55张图片

标志(flag) 占3位 目前只有前两位有意义
MF=1 表示后面"还有分片"
MF=0 表示最后一个分片
标志字段的最低位是MF(More Fragmet)
标志字段中间的一位是DF(Don’t Fragent)
只有当DF=0的时候才允许分片!
片偏移(占13位):较长的分组在分片后某片在原分组中的相对位置片偏 移以8个字节为偏移单位
源地址和目的地址都各占4字节
分片
一数据报的总长度为3820字节,其数据部分的长度3800字节(使用固定首部),需要分片为长度不超过1420字节的数据报片。
因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节
于是分别为3个数据报片,其数据部分的长度分别为1400、1400和1000字节。
原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。
IP数据报分片图

计算机基础——计算机网络_第56张图片

生存时间TTL:占8位,指示数据报在网络中可通过的路由器数的最大值。

计算机基础——计算机网络_第57张图片

计算机基础——计算机网络_第58张图片

首部的可变部分

IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。

选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目

IP层转发分组的流程(重点)

假设:有四个A类网络通过三个路由器连接在一起,每一个网络上都可能有成千上万个主机一起,每一个网络上都可能有成千上万个主机
可以想象,若是按目的主机号来制作理由表,每一个路由表就会有4万个项目(4万行)每一行对应一台主机,则所得出的路由表就会过于庞大
但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目(每一行对应一个网络),这样就可使路由表大大简化。

路由器分组

分组转发算法
1.从数据报的首部提取目的主机的IP地址D,得出目的的网络地址为N
2.若网络N与此路由器直接相连,则把数据报直接交付目的主机D;
否则是间接交付,执行(3).
3.若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指名的下一跳路由器;否则执行(4)
4.若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一条路由表,否则执行(5)
5.若路由表中有一个默认路由,则把数据报传送给路由表中所指名的默认路由器,否则执行(6)
6.报告转发分组出错。丢弃

在路由表中,对每一条路由,最主要的是==(目的网络地址,下一跳地址)==

计算机基础——计算机网络_第59张图片

查找路由表

根据目的网络地址就能分析确定下一跳路由器,这样做的结果是:

IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。

只有到达最后一个路由器时,才试图向目的主机进行直接交付

特定路由

虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有特例:

​ 也就是为特定的目的主机指明一个路由

采用特定主机路由可以使网络管理人员能更方便地控制网络和测试网络,同时,也可以在需要考虑某种安全问题时采用这种特定主机路由

默认路由

默认路由(default route)

路由器还可采用默认路由减少路由表所占用的空间和搜索路由表所用的时间,这种转发方式在网络只有很少的对外连接时是很有用的

默认路由在主机发送IP数据报时往往更能显示出它的好处。

例:如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6GSgIMqd-1683285043967)(https://notes-1307435281.cos.ap-shanghai.myqcloud.com/note/master/1629352216616.png)]

强调:

IP数据报的首部中没有地方可以用来指名"下一跳的IP地址"

当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件

网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一条路由器。

划分子网和构造超网

求网络地址

给出IP地址,再给出子网掩码,要求:得出网络地址?

将IP地址转换为二进制
子网掩码也转换为二进制
再进行逐位相与
最后再将结果转换为十进制即可

计算机基础——计算机网络_第60张图片

默认子网掩码

A类是8位

B类是16位

C类是24位(个1)

计算机基础——计算机网络_第61张图片

子网掩码是一个重要属性

路由器在和相邻的路由器交换路由信息时候必须把自己所在的网络(或子网)的子网掩码告诉相邻路由器

路由表中的每一个项目都需要网络地址+子网掩码

一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码

子网划分的办法

固定长度子网变长子网两种子网划分方法

在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的

划分子网增加了灵活性,却减少了能够连接在网络上的主机总数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CF2GQmfL-1683285043968)(https://notes-1307435281.cos.ap-shanghai.myqcloud.com/note/master/20210822082628.png)]

计算机基础——计算机网络_第62张图片

使用子网时分组的转发

在不划分子网的两级IP地址下,从IP地址得出网络地址将所有转换为二进制,同位相与得结果即可
但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
因此分组的转发算法也必须做相应的改动。

无分类的两级编址

无分类的两级编址的记法 计算机基础——计算机网络_第63张图片
CIDR地址块

把网络前缀都相同的连续的IP地址组成"CIDR地址块"

128.14.32.0/20表示的地址块共有212次方个地址。(斜线后面的20是网络前缀的位数,所以这个地址的主机号是12位)。

1.这个地址块的起始地址是128.14.32.0

在不需要指出地址块的起始地址时,也可将这样的地址块简称为"/20地址块"。

CIDR使用“斜线记法”(slash notation) :

在IP地址面加上一个斜线"/"然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中1的个数)例如:220.78.168.0/24

路由聚合(route aggregation)或者叫构成超网(supernetting)

一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。

路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能

想要构成超网

前缀长度不超过23位的CIDR地址块都包含了多个C类地址

这些C类地址合起来就构成了超网

CIDR地址块中的地址数一定是2的整数次幂。

网络前缀越短,其地址块所包含的地址数就越多,而在三级结构的IP地址中,划分子网使网络前缀变长

CIDR地址块划分举例

计算机基础——计算机网络_第64张图片

控制报文协议ICMP

为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)
ICMP是互联网的标准协议
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
但ICMP不是高层协议(看起来好像是高层协议,因为ICMP报文是装在IP数据报中,作为其中的数据部分),而是IP层的协议。

计算机基础——计算机网络_第65张图片

ICMP报文的种类

ICMP报文的种类有两种,即ICMP差错报告报文,和ICMP询问报文

ICMP报文的前4个字节是统一的格式,共有三个字段:

类型、代码和检验和。接着4个字节的内容和ICMP的类型有关。

使用子网时分组的转发

在不划分子网的两级IP地址下,从IP地址得出网络地址是个很简单的事。
但在划分子网的情况下,从IP地址却不能唯一的得出网络地址来
这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息
因此分组转发的算法也必须做相应的改动。

ICMP差错报告报文共有4种

终点不可达

时间超过

参数问题

改变路由(重定向)(Redirect)

不应该发送ICMP差错报告报文的几种情况
对ICMP差错报告报文不再发送ICMP差错报文。
对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
对具有多播地址的数据报都不发送ICMP差错报告报文
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
ICMP的应用举例

PING(Packet InterNet Groper)

PING用来测试两个主机之间的连通性

PING使用了ICMP回送请求与回送回答报文。

想测试与谁的连接就去ping谁!

输入:PING sspu.edu.cn

C:\Users\Administrator>PING sspu.edu.cn

正在 Ping sspu.edu.cn [101.226.177.160] 具有 32 字节的数据:
来自 101.226.177.160 的回复: 字节=32 时间=6ms TTL=51
来自 101.226.177.160 的回复: 字节=32 时间=7ms TTL=51
来自 101.226.177.160 的回复: 字节=32 时间=6ms TTL=51
来自 101.226.177.160 的回复: 字节=32 时间=7ms TTL=51

101.226.177.160 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 6ms,最长 = 7ms,平均 = 6ms

ICMP的应用举例

Traceroute的应用举例

在Windows操作系统中这个命令是tracert

用来跟踪一个分组从源点到终点的路径

它利用IP数据报中的TTL字段和ICMP时间超过差错报告报文实现对从源点到终点的路径的跟踪。

通过tracert命令获得到目的主机的路由信息

输入:tracert sspu.edu.cn

C:\Users\Administrator>tracert sspu.edu.cn

通过最多 30 个跃点跟踪
到 sspu.edu.cn [101.226.177.160] 的路由:

  1     3 ms     3 ms     3 ms  10.200.119.254
  2     4 ms     5 ms     6 ms  172.17.10.10
  3     3 ms     4 ms     5 ms  202.121.242.5
  4     6 ms     5 ms    10 ms  202.101.0.125
  5    27 ms    24 ms    12 ms  61.152.2.237
  6     7 ms     *        9 ms  101.95.89.66
  7     *        *        *     请求超时。
  8     6 ms     5 ms     6 ms  101.95.226.10
  9     *        *        *     请求超时。
 10     *        *        *     请求超时。
 11     *        *        *     请求超时。
 12     *        *        *     请求超时。
 13     7 ms     7 ms     7 ms  101.226.177.160
 14     8 ms     7 ms     7 ms  101.226.177.160

跟踪完成。

路由选择协议

基本概念

理想的路由算法

计算机基础——计算机网络_第66张图片

关于"最佳路由"

不存在一种绝对的最佳路由算法

所谓的"最佳"只能是相对于某一种特定要求下得出的较为合理的选择而已。

路由选择是一个非常复杂的问题

它是网络中的所有结点共同协调工作的结果

路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。

RIP内部网关协议

工作原理:

路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议

RIP是一种分布式的、基于距离向量的路由选择协议

RIP协议要求网络中的每一个路由器都要维护从它自己到其它每一个目的网络的距离记录

"距离"的定义

从一个路由器到直接连接的网络的距离定义为1

从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1

RIP协议中的"距离"也称为"跳数"(hop count),因为每经过一个路由器,跳数就加1

报文格式

计算机基础——计算机网络_第67张图片

RIP认为一个好的路由就是由它通过的路由器的数目少,即"距离短"

RIP允许一条路径最多只能包含15个路由器

16就表示不可达,所以RIP只适用于小型互联网

RIP不能在两个网络之间同时使用多条路由

不够灵活

RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由

特点

1.仅和相邻路由器交换信息

2.交换的信息是当前本路由器所知道的全部信息,即自己的路由表

3.按固定的时间间隔交换路由信息,例如,每隔30秒,当网络拓扑发生变化时,路由器也及时向相邻路由器通告变化后的路由信息。

距离向量算法
假设路由器收到相邻路由器(其地址为X)的一个RIP报文:
1.先修改报文中的所有项目:把"下一跳"字段中的地址都改为X,并把所有的"距离"字段的值加1
2.对修改的RIP报文中的每一个项目,重复以下步骤: 若表项中目的网络不在路由表中,就把该项目加到表中
3. 如果下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目
4. 收到的项目中的距离<路由表中的距离则更新,否则什么都不做
5.若3分钟还没收到相邻路由表的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(表示不可达)
6.返回

例如:

计算机基础——计算机网络_第68张图片

路由表的建立
路由表在刚刚开始工作时,只知道直接连接的网络的距离(定义1),它的路由表是空的。

以后,每一个路由器也只和数目非常有限的相邻的路由器交换并更新路由信息。

经过若干次更新后,所有路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一条路由器的地址

RIP协议的收敛(convergence)过程较快。"收敛"就是在自治系统中所有的结点都得到正确的路由选择信息的过程。

计算机基础——计算机网络_第69张图片

OSPF内部网关协议

基本特点
开放 表示OSPF协议不是受某一家厂商控制,而是公开发表的
最短路径优先 因为使用了最短路径算法SPF
带宽作为优先级的重要依据 分布式的链路状态协议(link state protocol)
使用洪泛法发送信息

使用洪泛法向本自治系统中所有路由器发送信息(范围大比较杂):

发送信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

链路状态:说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)

只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

区域边界路由器

计算机基础——计算机网络_第70张图片

OSPF直接用IP数据报传送

OSPF不用UDP而是直接用IP数据报传送。OSPF构成的数据报很短,这样做可减少信息的通信量。

数据报很短的另一个好处就是可以不必将很长的数据报分片传送

只要丢失一个数据报就无法组装成原来的数据报,而整个数据报就必须重传。

BGP外部网关协议

		边界网关协议(BGP)是运行于 [TCP](https://baike.baidu.com/item/TCP/33012) 上的一种[自治系统](https://baike.baidu.com/item/自治系统/129715)的[路由协议](https://baike.baidu.com/item/路由协议/202634)。 **BGP 是唯一一个用来处理像[因特网](https://baike.baidu.com/item/因特网/114119)大小的网络的协议**,也是唯一能够妥善**处理好不相关[路由域](https://baike.baidu.com/item/路由域/1665630)间的多路连接的协议**。 BGP 构建在 EGP 的经验之上。 
BGP 系统的主要功能:

​ 和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

BGP 是不同自治系统的路由器之间交换路由信息的协议。

边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

BGP 发言人
    BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
  BGP 交换路由信息
    一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
    使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
    使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站(neighbor)或对等站(peer) 。
    BGP 发言人和自治系统 AS 的关系

计算机基础——计算机网络_第71张图片

路由器的构成

路由器是一种典型的网络层设备

路由器是互联网中的关键设备

路由器的主要作用

连接不同的网络

选择信息传送的线路选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷节约网络系统资源,提高畅通率,从而让网络系统发挥更大的效益来

路由器的结构

路由器是一种具有多个输出端口和多个输入端口的专用计算机,其任务是转发分组,也就是说:

​ 将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器

​ 下一跳路由器也按照此方法处理分组,直到该分组到达终点为止。

计算机基础——计算机网络_第72张图片

计算机基础——计算机网络_第73张图片

分组丢弃

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃

路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

IP

IP是互联网的核心协议

互联网经过几十年的飞速发展,到了2011年2月IPv4的32位地址已经耗尽

ISP已经不能再申请到新的IP地址块了。

解决IP地址耗尽的根本措施就是采用具有更大地址空间的新版IP也就是IPv6

IPv6

IPv6基本首部

IPv6仍支持无连接的传送,但将协议数据单元PDU称为分组(数据报)

引进的主要变化如下:

更大的地址空间。地址从32位增大到了,128位也是数据报接收站的IP地址

扩展的地址层次结构

灵活的首部格式。IPv6定义了许多可选的扩展首部

改进的选项。IPv6允许数据报包含有选项的控制信息,其选项放在有效载荷中。

计算机基础——计算机网络_第74张图片

IPv6的基本首部
所引用的主要变化如下(续)
允许协议继续扩充
支持即插即用(自动配置)。因此IPv6不需要使用DHCP。
支持资源的预分配,IPv6支持实时视像等要求
保证一定的带宽和时延的应用。
IPv6首部改为8字节对齐,首部长度必须是8字节的整数倍。原来IPv4首部是4字节对齐。
IPv6数据报构成
1.基本首部(base header)

有效载荷(payload),有效载荷也称为净负荷,有效载荷允许有零个或多个扩展首部(extension header),再后面是数据部分。

计算机基础——计算机网络_第75张图片

IPv6将首部长度变为固定的40字节,称为基本首部

把首部中不必要的功能取消了,使得IPv6首部的字段数减少到只有8个

IPv6对首部中的某些字段进行了如下的更改:

计算机基础——计算机网络_第76张图片

计算机基础——计算机网络_第77张图片

IPv6的扩展首部

它把原来的IPv4首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。

数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)

这样就大大提高了路由器的处理效率。

计算机基础——计算机网络_第78张图片

IPv6数据报的目的地址

是以下三种基本类型地址之一:

1.单播(unicase):传统的点对点通信

2.多播(multicast):一点对多点的通信

3.任播(anycast):这是IPv6增加的一种类型

任播的目的站是一组计算机,但数据报在交付时只交付其中一个,通常是距离最近的一个

结点与接口

IPv6将实现IPv6的主机和路由器均称为结点

一个结点就可能有多个链路相连的接口

IPv6地址是分配给结点上面的接口的

一个接口可以有多个单播地址

其中的任何一个地址都可以当作到达该结点的目的地址。

即一个结点接口的单播地址可用来唯一地标志该结点

冒号十六进制记法

每16位的值用十六进制值表示,各值之间用冒号分隔

计算机基础——计算机网络_第79张图片

零压缩

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H4o1S4yh-1683285043973)(https://notes-1307435281.cos.ap-shanghai.myqcloud.com/note/master/20210822082849.png)]

在任一地址中只能使用一次零压缩

从IPv4到IPv6过渡

向IPv6过渡只能采用逐步演进的办法,同时还必须使新安装的IPv6系统能够向后兼容

IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由

双栈协议

计算机基础——计算机网络_第80张图片

隧道技术

计算机基础——计算机网络_第81张图片

计算机基础——计算机网络_第82张图片

CMPv6是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信

ICMPv6还增加了几个定义报文的功能及含义的其它协议。

和多播路由选择协议

虚拟专用网VPN

由于IP地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。

考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。

假定在一个机构内部的计算机通信也是采用TCP/IP协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其IP地址

用**隧道技术(封装)**实现虚拟专用网

计算机基础——计算机网络_第83张图片

计算机基础——计算机网络_第84张图片

MPLS特点

MPLS并没有取代IP,而是作为一种IP增强技术,被广泛应用在互联网中

MPLS具有以下三个方面的特点:

1.支持面向连接的服务质量

2.支持流量工程,平衡网络负载

3.有效的支持虚拟专用网VPN

运输层

运输层协议概述

运输层协议概述

一、进程之间的通信

运输层的作用:

提供了逻辑通信

计算机基础——计算机网络_第85张图片

在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信

这表明运输层有一个很重要的功能就是——**复用(multiplexing)和分(demultiplexing)

根据应用程序的不同需求,运输层提供两种运输协议,应对不同需求:

1.面向连接的TCP协议

2.无连接的UDP协议

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEaCieE8-1683285043975)(https://notes-1307435281.cos.ap-shanghai.myqcloud.com/note/master/20210822082934.png)]

屏蔽作用

运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等)

它使应用进程看到的好像两个运输层之间有一条端到端的逻辑通信信道

计算机基础——计算机网络_第86张图片

两种不同的运输协议

但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别

当运输层采用面向TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但是这种逻辑通信信道就相当于一条全双工的可靠信道。

当运输层采用无连接的UDP协议时,这种逻辑通信信道是一条不可靠信道。

两个主要协议

用户数据报协议UDP(User Datagram Protocol) 传送的数据单位协议是UDP报文或用户数据报。
传输控制协议TCP(Transmission Control Protocol) 传送的数据单位协议是TCP报文段(segment)

计算机基础——计算机网络_第87张图片

UDP无连接协议

提供无连接服务

在传送数据之前不需要先建立连接

传送的数据单位是UDP报文或用户数据报

对方的运输层在收到UDP报文后,不需要给出任何确认

虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。

TCP面向连接的协议

提供面向连接的服务

传送的数据单位协议是TCP报文段(segment)

TCP不提供广播或多播服务

由于TCP提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源

UDP和IP二者数据报的区别

强调:运输层的UDP用户数据报与网络层的IP数据报有很大的区别

1.IP数据报要经过互联网中许多路由器的存储转发
2.UDP用户数据报是在运输层的端对端抽象的逻辑信道中传送的

运输层的端口

运行在计算机中的进程是用进程标识符来标志的。

但运行在应用层的各种进程却不应当让计算机操作系统指派它的进程标识符。这是因为在互联网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。

为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法TCP/IP体系的应用程序进行标志。

TCP/IP运输层端口
端口用一个16位端口号进行标志
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
在互联网中,不同计算机的相同端口号是没有联系的。
所以:两个计算机中的进程要相互通信,不仅必须知道对方的IP地址(找到对方计算机),还需要知道对方端口号(为了找到对方计算机中的应用进程)。

两类端口号

1.服务器端用的端口号

计算机基础——计算机网络_第88张图片

2.客户端使用的端口号

计算机基础——计算机网络_第89张图片

常用的端口

计算机基础——计算机网络_第90张图片

用户数据报协议UDP

概述

UDP只在IP的数据报服务之上增加了很少一点的功能

复用和分用的功能

差错检测的功能

虽然UDP用户数据报只能提供不可靠的交付,但UDP在某方面有其特殊的优点。

主要特点

1.UDP是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。

2.UDP使用尽最大努力交付,不保证可靠交付,因此主机不需要维持复杂的连接状态表

3.UDP是面向报文的。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。

UDP一次交付一个完整的报文。

4.UDP没有阻塞控制。因此网络出现的拥塞不会使源主机发送速率降低,这对一些实时应用还是很重要的,很适合多媒体通信的要求。

面向报文的UDP

接收方UDP对IP层交上来的UDP用户数据报在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文

应用程序必须选择合适大小的报文:

1.若是报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率

2.若是报文太短,UDP把它交给IP层后,会使IP数据报的首部的相对长度太大,这也降低了IP层的效率

首部格式

计算机基础——计算机网络_第91张图片

在计算检验和时,临时把"伪首部"和UDP用户数据报连接在一起,伪首部仅仅是为了计算校验和

传输控制协议TCP

####主要特点

TCP是面向连接的运输层协议

每一条TCP连接只能有两个端点****(endpoint),每一条TCP连接只能是点对点的(一对一)

TCP连接只能是点对点的(一对一)

TCP提供可靠交付的服务

TCP提供全双工通信

面向字节流的含义

TCP中的“流”指的是流入或流出进程的字节序列,虽然应用程序和TCP交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流

面向字节流的概念

TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系

但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样

计算机基础——计算机网络_第92张图片

TCP连接是一条虚连接而不是一条真正的物理连接。不关心应用程序一次把多长的报文发送到TCP缓存,TCP对连续的字节流进行分段,形成TCP报文段。

TCP连接

TCP把连接作为最基本的抽象。

每一条TCP连接有两个端点

TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口

套接字

TCP连接的端点叫做套接字(socket)或插口=(IP地址+端口号)。端口号拼接到(contatenated with) IP地址即构成了套接字。每一条TCP端口唯一的被通信两端的两个端点所确定。

同一个IP地址可用有多个不同的TCP连接,同一个端口号也可以出现在多个不同的TCP连接中。

可靠传输的工作原理

理想的传输条件

1.传输信道不产生差错

2.不管发送方以多快的速度发送数据,接收方总是来的及处理收到的数据

在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输

然而实际的网络都不具备以上两个理想条件,必须使用一些可靠传输协议,在不可靠传输信道实现可靠传输

停止等待协议

"停止等待"就是每发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组

全双工通信的双方既是发送方也是接收方。

​ 为了讨论问题的方便,我们仅考虑A发送数据,而B接收数据并发送确认,因此A叫发送方,B叫接收方

1.无差错情况

计算机基础——计算机网络_第93张图片

2.出现差错

在接收方B会出现两种情况

B在接受M1时检测出了差错就丢弃M1,其它什么都不做(也不通知A收到有差错的分组)

M1在传输过程中丢失了:这时,B当然什么也不知道,所以什么也不做

在这两种情况下,B都不会发送任何信息。

如何保证B正确收到M1呢?

解决方案——超时重传

A为每一个已发送的分组都设置了一个超时计时器

A只要在超时计时器到期之前收到相应的确认,就撤销该超时计时器,继续发送下一个分组M2

3.确认丢失和确认迟到

计算机基础——计算机网络_第94张图片

注意:在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发

分组和确认分组都必须进行编号

超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些

停止等待协议的优点:

简单

停止等待协议的缺点

信道利用率太低

计算机基础——计算机网络_第95张图片

所以,为了提高信道利用率,引入了流水线传输

计算机基础——计算机网络_第96张图片

连续ARQ协议

工作原理

计算机基础——计算机网络_第97张图片

累计确认

接收方一般采用累积确认的方式,即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。

优点容易实现,即使确认丢失也不必重传

缺点:不能向发送方反映出接收方已经正确收到所有分组的信息

Go-back-N 回退N

计算机基础——计算机网络_第98张图片

TCP连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口
TCP的可靠传输机制用字节的序号进行控制
TCP所有的确认都是基于序号而不是基于报文段。
TCP两端的四个窗口经常处于动态变化之中
TCP连接的往返时间RTT也不是固定不变
需要使用特定的算法估算较为合理的重传时间

TCP报文段的首部格式

计算机基础——计算机网络_第99张图片

计算机基础——计算机网络_第100张图片

TCP可靠传输的实现

滑动窗口

一、以字节为单位的滑动窗口

计算机基础——计算机网络_第101张图片

计算机基础——计算机网络_第102张图片

计算机基础——计算机网络_第103张图片

计算机基础——计算机网络_第104张图片

发送缓存

计算机基础——计算机网络_第105张图片

注意:

1.A的发送窗口并不总是和B的接收窗口一样大(因为有一定的时间滞后)
2.TCP标准没有规定对不按序到达的数据应如何处理,通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程
3.TCP要求接收方必须有累积确认的功能,这样可以减少传输开销

接收方发送确认

接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上
注意:
	1.接收方不应过分推迟发送确认,否则会导致发送方不必要的重传,浪费网络资源
	2.捎带确认实际上并经常发生,因为大多数应用程序很少同时在两个方向上发送数据。

超时重传

时间的选择

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZIvdBJEn-1683285043981)(https://notes-1307435281.cos.ap-shanghai.myqcloud.com/note/master/20210822083141.png)]

TCP采用了一种自适应算法:

记录一个报文段发出的时间,以及收到相应的确认时间,这两个时间的差就是报文段的往返时间RTT

计算机基础——计算机网络_第106张图片

加权平均往返时间

计算机基础——计算机网络_第107张图片

超时重传时间RTO

RTO应略大于上面得出的加权平均往返时间

计算机基础——计算机网络_第108张图片

选择确认

选择确认SACK.

问题:若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据,那么能否设法只传送缺少的数据而不重传已经正确到达接受方的数据?

答案:选择确认SACK就可以

不连续

当接收到的字节流序号不连续

计算机基础——计算机网络_第109张图片

利用滑动窗口实现流量控制

一般来说,我们总希望数据传输更快一些,但如果发送方发数据发送的过快,接收方就可能来不及接收,这就会造成数据的丢失

流量控制flow control就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。利用滑动窗口机制可以很方便地在TCP连接上实现流量控制。

计算机基础——计算机网络_第110张图片

死锁

可能发生死锁的情况

1.B向A发送零窗口的报文段后不久,B的接收缓存又有了一些存储空间,于是B向A发送了rwnd = 400的报文段
2.但这个报文段在传送过程中丢失了,A一直等着收到B发送的非零窗口的通知
3.B也在一直等待A发送的数据
如果没有其它措施,这种互相等待的死锁局面将一直延续下去。
为了解决这个问题,TCP为每一个连接设有一个持续计时器(persistence timer)
持续计时器

TCP为每一个连接设有一个持续计时器

只要TCP连接的一方收到对方的零窗口通知,就会开启持续计时器

计算机基础——计算机网络_第111张图片

传输效率
可以用不同的机制来控制TCP报文段的发送时机:
	1.TCP维持一个变量=最大报文长度MSS.只要缓存中存放的数据达到MSS字节时,就组装一个TCP报文段发送出去。
	2.由发送方的应用进程指名要求发送报文段,即TCP支持的推送(push)操作
	3.发送方的一个计时器限期到了,这时就把当前已有的缓存数据装入报文段(长度不能超过MSS)发送出去。
如果控制TCP发送报文段的时机仍然是一个较为复杂的问题
糊涂窗口

发送方糊涂窗口综合症

发送方TCP每次接收一字节的数据后就发送

这样,发送一个字节需要形成41字节长的IP数据报,若接收方确认,并回送这一字节,就需要传送总长度为162字节共4个报文段,效率很低

解决方法:使用Nagle算法。

阻塞控制

一般原理

在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞(congestion).

若网络中许多资源同时产生阻塞,网络的性能就要变坏,整个网络的吞吐量将随输入负荷的增大而下降

出现阻塞的原因:

对资源的需求 > 可用资源

解决拥塞

增加资源能解决拥塞吗?

不能。因为网络拥塞是一个非常复杂的问题,简单的增加资源,在许多情况下,反而会使得网络的性能更差!

​ 网络阻塞往往是由许多因素引起的,例如:
计算机基础——计算机网络_第112张图片

趋于恶化

拥塞常常趋于恶化

如果一个路由器没有足够的缓存空间,它就会丢弃一些新到的分组。但当分组被丢弃时,甚至可能还要重传多次,这样会引起更多的分组流入网络和被网络中的路由器丢弃。拥塞引起的重传不但不会缓解,反而会加剧网络的拥塞

区别

拥塞控制与流量控制的区别

拥塞控制就是防止过多的数据注入到网络

使网络中的路由器或链路不致过载

拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷

拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。

计算机基础——计算机网络_第113张图片

作用

拥塞引起的作用

计算机基础——计算机网络_第114张图片

动态

拥塞控制是一个动态的问题

当前网络正高速发展,这很容易出现缓存不够大而造成分组的丢失,但分组的丢失是网络发生拥塞的征兆而不是原因。

在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因

TCP的拥塞控制方法

TCP采用基于窗口的方法进行拥塞控制,该方法属于闭环控制方法。

TCP发送方维持一个拥塞窗口CWND(Congestion Window)

1.拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化

2.发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量

3.所有发送窗口大小不仅取决于接收方公告的接收窗口,还取决于网络的拥塞状况,所以真正的发送窗口值为:

真正的发送窗口值 = Min(公告窗口值,拥塞窗口值)

拥塞的判断

重传定时器超时

现在的通信线路传输质量一般都很好,因传输出差错而丢弃分组的概率很小,只要出现了超时,一般都是网络出现了拥塞

收到三个相同(重复)的ACK

个别报文段会在网络中丢失,预示可能会出现拥塞(实际未发生拥塞),因此要尽快采取控制措施,避免拥塞。

控制拥塞窗口的原则

只要网络没有出现拥塞拥塞窗口就可以增大一些,以便更多的分组发送出去,这样就可以提高网络利用率

只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减小一些,以减少注入到网络中的分组数,缓解网络出现的拥塞。

TCP拥塞控制算法

四种(RFC 5681)

计算机基础——计算机网络_第115张图片

发送方每收到一个对新报文段的确认(重传的不算在内)就使cwnd+1

计算机基础——计算机网络_第116张图片

慢开始(Slow start)

拥塞窗口cwnd控制方法:每收到一个对新的报文段的确认后,可以把拥塞窗口增加最多一个SMSS的数值

1629372883183

计算机基础——计算机网络_第117张图片

慢开始和拥塞算法实现举例

计算机基础——计算机网络_第118张图片

注意:

拥塞避免并发指完全能够避免拥塞,利用以上的措施要完全避免网络拥塞还是不可能的。拥塞避免阶段把拥塞窗口控制为按线性规律增长,使得网络比较不容易出现拥塞

发送窗口的上限值

发送方的发送窗口的上限值应当取用为接收方窗口rwnd和拥塞窗口cwnd这两个变量中较小的一个,即应按以下公式确定:
1629373184108

重点,运输连接的三个阶段

TCP是面向连接的协议

运输连接有三个阶段:
连接建立

数据传送

连接释放

运输连接的管理就是使运输连接的建立和释放都能正常进行

TCP连接建立过程种要解决的三个问题就是

1.要使每一方能够相互知道对方的存在

2.要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)。

3.能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配

TCP的连接建立(重点)

TCP建立连接的过程叫做握手

握手需要在客户和服务器之间交换三个TCP报文段。称之为三报文握手。

采用三报文握手主要是==为了防止已失效的连接请求报文段突然又传送到了,因而产生错误==。

计算机基础——计算机网络_第119张图片

计算机基础——计算机网络_第120张图片

TCP三次握手连接图

一、A给B发送一个连接请求

计算机基础——计算机网络_第121张图片

二、B给A发送确认,并同时发送一个连接请求

计算机基础——计算机网络_第122张图片

三、

如果没有第三次握手,那么B给A发送的是得不到响应的

B和A的通信就变成单向的了。TCP是一个全双工的协议,应该两个都有才对!所以,第三次连接是必不可少的。

计算机基础——计算机网络_第123张图片

此时表示上一次我A给你B发送的数据,你收到了0-x,我也知道你现在需要从x+1开始的数据

从第三次握手开始SYN已经变成0表示已经建立了有效连接

SYN
是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。
释放资源的四次握手

TCP的连接释放

TCP连接释放过程比较复杂

数据传输结束后,通信的双方都可释放连接

TCP连接释放过程是四报文握手

计算机基础——计算机网络_第124张图片

B在第三次握手的时候发送剩余数据

如果A最后一次

也会设定一个等待计时器

大概是两次传送完成的时间

,只要在此时间内没有收到

重复上一次发送的数据,就证明

已经完成结束了。(守株待兔,但是不想待了)

计算机基础——计算机网络_第125张图片

为什么要三次握⼿?

三次握⼿的⽬的是建⽴可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,⽽三次握⼿最主要的⽬的就是双⽅确认⾃⼰与对⽅的发送与接收是正常的

第⼀次握⼿:Client 什么都不能确认;Server 确认了对⽅发送正常,⾃⼰接收正常

第⼆次握⼿:Client 确认了:⾃⼰发送、接收正常,对⽅发送、接收正常;Server 确认了:对⽅发送 正常,⾃⼰接收正常

第三次握⼿:Client 确认了:⾃⼰发送、接收正常,对⽅发送、接收正常;Server 确认了:⾃⼰发 送、接收正常,对⽅发送、接收正常

所以三次握⼿就能确认双发收发功能都正常,缺⼀不可。

为什么要四次挥⼿

任何⼀⽅都可以在数据传送结束后发出连接释放的通知,待对⽅确认后进⼊半关闭状态。当另⼀⽅也没 有数据再发送的时候,则发出连接释放通知,对⽅确认后就完全关闭了TCP连接。

举个例⼦:A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B回答“我知道了”,但是 B 可 能还会有要说的话,A 不能要求 B 跟着⾃⼰的节奏结束通话,于是 B 可能⼜巴拉巴拉说了⼀通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。

上⾯讲的⽐较概括,推荐⼀篇讲的⽐较细致的⽂ 章:https://blog.csdn.net/qzcsu/article/details/72861891

总结:

TCP可靠传输

建立连接:三握手

发送数据:窗口(序号,发送窗口+接收窗口),确认机制,流量控制,拥塞控制(发现什么时候拥塞

,发生越晚越好(预防)),超时重传……


连接释放:四握手

应用层

协议特点

应用层协议的特点

每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议

每个应用层协议都是通过位于不同主机中的多个应用进程的通信和协同,解决某一类应用的问题

应用层大多数协议都是基于客户服务器方式:
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程,客户服务器方式所描述的是进程之间服务和被服务的关系,客户是服务请求方,服务器是服务提供方,

域名系统

域名系统DNS

许多应用层软件直接使用域名系统,DNS(Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。

互联网采用层次结构的命名树来作为主机的名字,并用分布式的域名系统DNS.

名字到IP地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行它的机器就叫域名服务器

结构

计算机基础——计算机网络_第126张图片

互联网的域名结构

互联网采用了层次树状结构的命名方法

域名

任何一个连接在互联网上的主机或路由器**,都有一个唯一的层次结构的名字**也就是域名

​ 域名的结构由标号序列组成,各标号之间用点隔开,各标号分别代表不同级别的域名:
1629376970718

顶级域名
国家顶级域名

.cn表示中国

.us表示美国

.uk表示英国……

顶级域名

.com(公司或企业)

.net(网络服务机构)

.org(非盈利性组织)

.edu(美国专用的教育机构)

.gov(美国专用的政府部门)

.mil(美国专用的军事部门)

.int(国际组织)

域名服务器

一个服务器所负责管辖(或有权限的)范围叫做区(zone)

各单位根据具体情况来划分自己的管辖范围的区,但在一个区中的所有节点必须是能够连通的。

​ 每个区设定相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位

结构图

DNS域名服务器结构图

计算机基础——计算机网络_第127张图片

根域名服务器共有13套装置而不是13个机器

1629377597232

顶级域名服务器:负责管理注册的所有二级域名 计算机基础——计算机网络_第128张图片

本地默认

本地(默认)域名服务器:

当一个主机发送DNS(DNS一般指域名系统)查询请求时,这个查询请求报文线发送给本地域名服务器

每一个互联网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器

用的最多的也是采用迭代查询(减少其它服务器的压力)

计算机基础——计算机网络_第129张图片

高速缓存

名字的高速缓存

每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录

​ 可大大减轻根域名服务器的负荷。使互联网上的DNS查询请求和回答报文的数量减少。

计算机基础——计算机网络_第130张图片

文件传送协议

概念

文件传送协议FTP使用广泛,

​ FTP提供交互式的访问,允许客户指明文件类型与格式,并允许存取权限

​ FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

特点

FTP协议的特点

文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务
FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP使用客户服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务
服务可分为两部分: 一个主进程:负责接受新请求 ,若干个从属进程,负责处理单个请求。

工作步骤

1.打开熟知端口(21),使客户进程能够连接上,等待客户进程发出连接请求。

启动从属进程来处理客户进程发来的请求:

​ 从属进程对客户进程的处理完毕后终止

​ 但从属进程在运行期间根据需要还可能创建其它一些子进程

回到等待状态,继续接受其它客户进程发来的请求。主进程与从属进程的处理是并发进行的。

两个连接

1.控制连接在整个会话期间一直保持打开

FTP客户发出的传送请求通过控制连接发送到服务器端的控制进程,但控制连接不用来传送文件

2.实际用于传输文件的是“数据连接”。**服务器端的控制进程在接收FTP客户发来的文件传输请求后就创建“数据传送进程”和“数据连接”,**用来连接客户端和服务端的数据传送进程。

数据传送进程实际完成文件的传送,在传送完毕后关闭“数据连接 ”并结束运行。

计算机基础——计算机网络_第131张图片

端口号

两个不同的端口号

当客户进程向服务器发出建立连接请求时,要寻找连接服务器进程的熟知端口(21)
同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱

TFTP

概念

简单文件传送协议TFTP

TFTP是一个很小且易于实现的文件传送协议。

TFTP使用客户服务器方式和使用UDP数据报,因此TFTP需要有自己的差错改正措施

TFTP只支持文件传输而不支持交互

TFTP没有一个庞大的命令集,没有列目录的功能不能对用户进行身份鉴别

特点
1.每次传送数据PDU中有512字节的数据,但最后一次可不足512字节。
2.数据PDU也称为文件块(block),每个块按序编号,从1开始。
3.支持ASCLL码或二进制传送
4.可对文件进行读或写
5.使用很简单的首部
工作

TFTP的工作很像停止等待协议

发送完一个文件块后就等待对方的确认,确认时应指名所确认的块编号

发完数据后在规定时间内收不到确认就要重发数据PDU

远程终端协议

远程终端协议TELNET

概念

TELNET是一个简单的远程终端协议(互联网正式标准)

用远程终端协议就可在所在地通过TCP连接注册(即登录)到远地的另一个主机上(使用主机名或IP地址)

TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上

方式

客户-服务器方式

TELNET也是使用客户-服务器方式,在本地系统运行TELNET客户进程,而在远地主机则运行TELNET服务器进程

格式

TELNET使用网络虚拟终端NVT格式

计算机基础——计算机网络_第132张图片

万维网

概念

万维网www

万维网WWW(World Wide Web)是一个大规模、联机式的信息储藏所

万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。

这种访问方式称为"链接"

万维网提供分布式服务

计算机基础——计算机网络_第133张图片

超媒体与超文本

万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充

一个超文本由多个信息源链接成利用一个链接可使用户找到另一个文档,这些文档可以位于世界上任何一个接在互联网上的超文本系统中。超文本是万维网的基础

超媒体与超文本的区别是文档内容不同超文本文档仅包含文本信息,而超媒体文档还包含其它表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。

工作方式

万维网以客户-服务器方式工作

浏览器就是在用户计算机上的万维网客户程序

万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。

客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档

在一个客户程序主窗口上显示出的万维网文档称为页面(page)

URL

统一资源定位符URL

格式

1.URL(统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁表示

2.URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位

3.只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找它的属性

URL相当于一个文件名在网络范围的扩展。因此URL是与互联网相连的机器上的任何可访问对象的一个指针。

一般形式

URL以冒号隔开的两大部分组成,并且在URL中的字符对大小写没有要求

URL的一般形式是:

计算机基础——计算机网络_第134张图片

计算机基础——计算机网络_第135张图片

计算机基础——计算机网络_第136张图片

万维网怎么标志分布在整个互联网上的万维网文档

使用统一资源定位符URL(Uniform Resource Locator)来标志万维网上的各种文档

使每一个文档在整个互联网的范围具有唯一的标识符URL

用何协议实现万维网上各种超链的链接
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议HTTP(HyperText

Transfer Protocol)

HTTP是一个应用层协议,它使用TCP连接进行可靠传送

怎么使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚的知道什么地方处在着超链

​ 答:超文本标记语言HTML使得万维网页面的设计者可以很方便地用一个超链从本网页的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来

怎样使用户能够很方便地找到所需的信息
答:为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)

HTTP

超文本传送协议HTTP

操作过程

HTTP的操作过程

为了使超文本的链接能够高效率地完成,需要用HTTP协议来传送一切必须的信息

从层次的角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠的交换文件(包括文本,多媒体文件)的重要基础。

特点

HTTP的主要特点

HTTP是面向事务的客户服务器协议

HTTP1.0协议是无状态的(stateless)

HTTP协议本身也是无连接的,虽然它使用了面向连接的TCP向上提供的服务。

持续连接

HTTP/1.1协议使用持续连接(persistent connection)

万维网服务器在发送响应后仍然在一段时间内保持这条链接,使同一个客户(浏览器)和该服务器可以继续在这跳连接上传送后续的HTTP请求报文和响应报文

这并不局限于传送同一个页面链接的文档,而是只要这些文档都在同一个服务器上就行

工作方式

两种工作方式

非流水线和流水线

计算机基础——计算机网络_第137张图片

报文结构

HTTP的报文结构(请求报文)

计算机基础——计算机网络_第138张图片

工作过程

万维网的工作过程

计算机基础——计算机网络_第139张图片

用户点击一个URL后发生的事件

1.浏览器分析超链接指向页面的URL
2.浏览器向DNS请求解析www.baidu.com的IP地址
3.域名系统DNS解析出百度服务器的IP地址
4.浏览器与服务器建立TCP连接
5.浏览器发出取文件命令:GET/baidu/index.html
6.服务器给出响应,把文件index.html发给浏览器
7.TCP连接释放
8.浏览器显示“百度”文件index.html中的所有文本。

所需时间

计算机基础——计算机网络_第140张图片

请求

代理服务器(proxy server)/万维网高速缓存(Web cache),它代表浏览器发出HTTP请求

万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。

当与暂时存放的请求相同新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按URL的地址再去互联网访问该资源。

使用高速缓存可减少访问互联网服务器的时延

计算机基础——计算机网络_第141张图片

状态码
1xx表示通知信息 请求收到了,或者正在进行处理
2xx表示成功 接受或知道了
3xx表示重定向 要完成请求还需采取进一步行动
4xx表示客户的差错 请求中有错误的语法或不能完成
5xx表示服务器的差错 服务器失效无法完成请求
HTML文档

计算机基础——计算机网络_第142张图片

计算机基础——计算机网络_第143张图片

万维网文档
静态文档

是指该文档创作完毕后,就存放在万维网服务器中,在用户浏览的过程中,内容不会改变

动态文档

指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建

区别

动态文档和静态文档的主要差别体现在服务器一端,这主要是文档内容的生成方法不同,从浏览器的角度看,这两种文档没有区别

检索系统

万维网的信息检索系统

全文检索搜索和分类目录搜索

在万维网用来进行搜索的程序叫做搜索引擎。

全文检索

全文检索搜索引擎是一种纯技术型的检索工具,它的工作原理是通过搜索软件到互联网上的各网站收集信息找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。

用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时的在互联网上检索到的信息)

分类目录

分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时,填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。

分类目录搜索也叫做分类网站搜索

垂直搜索引擎

针对某一特定领域,特定人群或某一特定需求提供垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等

电子邮件

概念

**电子邮件(e-mail)**是互联网上使用的最多的和最受用户欢迎的一种应用。

它把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用邮件服务器进行读取

电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点。

SMTP

发送邮件的协议:SMTP

读取邮件的协议:POP3和IMAP

MIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视觉等),使用MIME可在邮件中同时传送多种类型的数据。

工作

SMTP邮件发送协议通信的三个阶段

1.连接建立:连接是在发送主机的SMTP客户和接收主机的SMTP服务器之间建立的。SMTP不使用中间的邮件服务器

2.邮件传送

3.连接释放:邮件发送完毕后,SMTP释放TCP连接

构成

计算机基础——计算机网络_第144张图片

用户代理

用户代理UA(User Agent)

用户代理UA就是用户与电子邮件系统的接口,是电子邮件客户端软件

用户代理的功能:撰写、显示、处理和通信

邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)

邮件服务器按照客户-服务器方式工作,邮件服务器需要使用发送和读取两个不同的协议。

步骤

发送和接收电子邮件的几个重要步骤

1.发送人调用PC中的用户代理撰写和编辑要发送的邮件

2.发件人的用户代理把邮件用SMTP协议发给发送方邮件服务器

3.SMTP服务器把邮件临时存放在邮件缓存队列中,等待发送

4.发送方邮件服务器的SMTP客户与接收方邮件服务器的SMTP服务器建立TCP连接,然后把邮件缓存队列中的邮箱依次发送出去。

5.运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。

6.收件人在打算收信时,就允许PC机中的用户代理,使用POP3(或IMAP)协议读取发送给自己的邮件

1629384917938

格式

计算机基础——计算机网络_第145张图片

计算机基础——计算机网络_第146张图片

IMAP协议

IMAP也是按客户服务器方式工作,用户在自己的PC机上就可以操纵ISP的邮件服务器的邮箱,就像在本地操纵一样。

因此IMAP是一个联机协议,当用户PC机上的IMAP客户程序打开IMAP服务器的邮箱时,用户就可看到邮件的首部。用户需要打开某个邮件,则该邮件才传到用户的计算机上

计算机基础——计算机网络_第147张图片

基于万维网

基于万维网的电子邮件

电子邮件从A发送到网易邮件服务器使用HTTP协议

两个邮件服务器之间的传送使用SMTP

邮件从新浪邮件服务器传送到B是使用HTTP协议

计算机基础——计算机网络_第148张图片

MIME

概述

通用互联网邮件扩充MIME并没有改动SMTP或取代它

MIME的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构并定义了传送非ASCLL码的编码规则

MIME与SMTP

计算机基础——计算机网络_第149张图片

动态主机配置协议

动态主机配置协议DHCP

为了将软件协议做成通用的和便于一直,协议软件的编写者把协议软件参数化,这就使在很多计算机上使用同一个经过编译的二进制代码成为可能

​ 一台计算机和另一台计算机的区别,都可通过一些不同的参数来体现。

在软件协议运行之前,必须给每个参数赋值

互联网广泛的动态主机配置协议DHCP提供了即插即用连网的机制

​ 这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与

DHCP使用客户-服务器方式

需要IP地址的主机在启动时,就向DHCP服务器广播发送报文,这时该主机就成了DHCP客户

​ 本地网络上的所有主机都能收到广播报文,但只有DHCP服务器才回答此广播报文

DHCP服务器先在其数据库中查找该计算机的配置信息

若找到,则返回找到的信息,若找不到,则从服务器的IP地址池中取一个地址分配给该计算机,DHCP服务器的回答报文叫做提供报文。

网络管理协议

简单网络管理协议SNMP

基本概念

网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求

​ 如:实时运行性能,服务质量等,网络管理简称“网管”

它并不是指对网络进行行政上的管理

一般模型

计算机基础——计算机网络_第150张图片

主要构件

管理站也常称为网络运行中心NOC(Network Operations Center),是网络管理系统的核心。

管理程序在运行时就成为管理进程

管理站(硬件)或管理程序(软件)都可称为管理者manager

Manager不是指人而是指机器或软件

网络管理员指的是人,大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管本地网络的设备。

SNMP网络管理组成

由三部分组成

1.SNMP本身

2.管理信息结构SMI

3.管理信息库MIB

SML

计算机基础——计算机网络_第151张图片

MIB

MIB在被管理的实体中创建了命名对象,并规定了其类型

陷阱trap

SNMP不完全的探询协议,它允许不经过询问就能发送某些信息,这种信息称为陷阱。表示它能够捕捉“事件”

这种陷阱信息的参数是受限制的

当被管对象的代理检测到有时间发生时,就检查其门限值。代理只管向管理进程报告达到某些门限值的事件(即过滤),过滤的好处是:
仅在严重事件发生时才发送陷阱

陷阱信息很简单且所需字节数很少。

应用编程接口API

当某个应用进程启动系统调用时,控制权就从应用进程给了系统调用接口

此接口再将控制权传递给计算机的操作系统,操作系统将此调用传给某个内部进程,并执行所有请求的操作。

此接口再将控制权传递给计算机的操作系统,操作系统将将此调用传给某个内部过程,并执行所请求的操作。

内部过程一旦执行完毕,控制权又通过系统调用接口返回应用进程

系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口API(Application Programming Iterface).

套接字的作用

当应用进程需要用网络通信的时候,发出系统调用请求操作系统给它创建套接字,以便把网络通信所需要的系统资源分配给该应用进程。

操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示。并把此号码返回给应用进程,应用进程所进行的网络操作都必须使用这个号码。

通信完毕 应用进程通过一个关闭套接字的系统调用通知操作系统回收与该号码相关的所有资源

跨网络通信

应用进程跨网络的通信

应用编程接口API

当某个应用进程启动系统调用时,控制权就从应用进程给了系统调用接口

此接口再将控制权传递给计算机的操作系统,操作系统将此调用传给某个内部进程,并执行所有请求的操作。

此接口再将控制权传递给计算机的操作系统,操作系统将将此调用传给某个内部过程,并执行所请求的操作。

内部过程一旦执行完毕,控制权又通过系统调用接口返回应用进程

系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口API(Application Programming Iterface).

应用程序通过套接字进入网络

计算机基础——计算机网络_第152张图片

套接字的作用

当应用进程需要用网络通信的时候,发出系统调用请求操作系统给它创建套接字,以便把网络通信所需要的系统资源分配给该应用进程。

操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示。并把此号码返回给应用进程,应用进程所进行的网络操作都必须使用这个号码。

通信完毕 应用进程通过一个关闭套接字的系统调用通知操作系统回收与该号码相关的所有资源

P2P应用

概述

P2P工作方式概述

自从互联网能够提供音频/视频服务后,宽带上网用户数急剧增加,很多用户使用宽带接入的目的就是更快的下载音频/视频文件。

​ P2P的工作方式收到广大网民的欢迎,这种工作方式解决了集中式媒体服务器可能出现的瓶颈问题

​ 在P2P的工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输,这相当于有很多分散在各地的媒体服务器向其它用户提供所要下载的音频/视频文件。

​ 在互联网流量中,P2P工作方式下的文件分发已占据最大的份额,比万维网的应用所占都要大的多。

集中目录服务器P2P

Napster

最早出现的P2P技术,可提供免费下载mp3音乐

Napster能搜索音乐文件,能够提供检索功能,所有的音乐文件地址集中存放在一个Napster目录服务器中,使用者可很方便地下载需要的MP3文件

​ 用户要及时向Napster的目录服务器报告自己存有的音乐文件,当用户向下载某个MP3文件时,将向目录服务器发出询问,目录服务器检索出结果后,向用户返回存放此文件的PC机的IP地址。

​ Napster的文件传输是分散的,但文件的定位则是集中的

这种集中式目录服务器的缺点就是可靠性差,Napster被判定属于“间接侵害版权”,因此在2000年7月底Napster网站被迫关闭了。

比特洪流BT

BitTorrent对等方集合称为一个洪流(torrent),下载文件的数据单元为长度固定的文件块(chunk)。基础设施结点,叫做追踪器(tracker)

计算机基础——计算机网络_第153张图片

重点总结

OSI七层模型

参考博文地址: https://blog.csdn.net/yaopeng_2005/article/details/7064869

巧记

五叔网传会表演!

1.物理层

主要功能是利用物理介质为上面的数据链路层提供物理连接,实现比特流的透明传输。

比特流的透明传输:指的是经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路是不可见的

2.数据链路层

主要建立和管理节点之间的链路,通过各种控制协议将有差错的物理信道变为无差错传送数据帧的数据链路。

3**.网络层**:

通过路由选择算法,为报文或分组通过通信子网选择最适当的路径数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。

4.传输层:

因此该层起到承上启下的作用。向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。作用是向高层屏蔽下层数据通信的细节。

5.会话层

向两个实体的表示层提供建立和使用连接的方法。任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理

将不同实体之间的表示层的连接称为会话

6.表示层

(Presentation Layer),它对来自上面应用层的命令和数据进行解析、翻译,并按照一定的格式传送给下面会话层。

7.应用层

直接向用户提供服务,尽可能完成用户希望在网络上完成的各种工作


计算机网络是个非常复杂的系统

相互通信的两个计算机系统必须高度协调工作才行,而这种"协调"相当复杂

“分层”可将庞大复杂的问题转化为小的局部的问题,更加易于研究和处理

由于网络体系结构的不同,不同公司的设备很难互相连通

非国际标准TCP/IP却获得了最广泛的应用

TCP/IP常被称为事实上的(de facto)国际标准

分层的好处和缺点

计算机基础——计算机网络_第154张图片

各层完成的主要任务

差错控制 使相应层次对等方的通信更加可靠。
流量控制 发送端的发送速率必须使接收端来得及接受,不要太快
分段和重装 发送端将要发送的数据划分为更小的单元,在接收端将其还原
复用和分用 发送端几个高层会话复用一层底层的连接,在接收端再进行分用
连接建立和释放 交换数据前先建立一条逻辑连接,数据传送结束后释放连接
计算机网络的体系结构 是计算机网络各层及其协议的集合。
体系结构: 是这个计算机网络及其部件所应完成的功能的精确定义

计算机基础——计算机网络_第155张图片

计算机网络的体系结构是计算机网络各层及其协议的集合。

体系结构:是这个计算机网络及其部件所应完成的功能的精确定义

体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

协议必须把所有不利的条件事先都估计到,不能假定一切都是正常和非常理想的。

计算机基础——计算机网络_第156张图片

TCP/IP

互动

1.参与思考

2.宫殿记忆

为什么要学TCP/IP?

1.TCP/IP 是高并发/负载均衡/集群等学习的前置基础

2.IO模型 内核给程序暴露api源自socket套接字

3.分布式,微服务,服务网格,大数据,云计算等都需要TCP/IP

理论基础

OSI七层模型,其实只是理论,为什么要分层,其实总的来说,分层就是为了“解耦合”

一改全改成本比较高。

计算机基础——计算机网络_第157张图片

将应用层、表示层、会话层合并为一层为应用层

计算机基础——计算机网络_第158张图片

TCP/IP才是物理实现哦

计算机基础——计算机网络_第159张图片

宏观

计算机基础——计算机网络_第160张图片

详解

http:自爱实际上是应用层协议(发送端与服务器端必须遵从的一个协议标准

应用层主要是:数据表示,封装实现数据传输

TCP

计算机基础——计算机网络_第161张图片

在传输控制层主要是实现TCP和UDP:
TCP

三次握手

计算机基础——计算机网络_第162张图片

计算机基础——计算机网络_第163张图片

详解

第一次握手客户端发送syn(同步序列编号)

第二次:服务端回复syn(同步序列编号)+ack(确认字符)

第三次:客户端回了服务端ack

详解

syn

SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应

ack

ACK (Acknowledge character)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。

在TCP/IP协议中,如果接收方成功的接收到数据,那么会回复一个ACK数据。通常ACK信号有自己固定的格式,长度大小,由接收方回复给发送方。

Socket(套接字)

Socket接口是TCP/IP网络的API(Application Programming Interface,应用程序编程接口),Socket接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP网络上的应用程序。

所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口 [1] 。

重点:

​ 套接字Socket的作用是:完成两个应用程序之间的数据传输 [3]

套接字Soclet的位置

计算机基础——计算机网络_第164张图片

计算机基础——计算机网络_第165张图片

建立连接之后

当程序运行时候,所需要的资源:

程序直接会在已经建立连接之后所产生的资源空间中读取数据

程序之间想和别人通信流程

程序想要和别的程序建立通信连接:

  1. 刚想要通信就先愣住了,为什么愣住了呢?因为还没有建立连接,先要建立连接才能通信
  2. 程序(应用层)先找到内核中的(传输控制层)然后再利用传输控制层的TCP协议与别人进行三次握手连接之后,返回到程序
  3. 此时才能可以正式传输数据
  4. 传输完毕,可以断开连接

主要是属于传输控制层之间的交互(TCP)进行交互

如下图:客户端与服务器端服务之间连接交互。

计算机基础——计算机网络_第166张图片

客户端启动一个服务,服务端启动了两个服务,通过

计算机基础——计算机网络_第167张图片

现阐述利用套接字四元组连接过程:

计算机基础——计算机网络_第168张图片

极端情况:当IPA已经完成六万多个(65535)端口连接,还需要连接新的端口怎么办?

计算机基础——计算机网络_第169张图片

这个时候,可以增加一个网卡IPC这样连接四元素第一个参数就从IPA变成了IPC

此时又可以多连接六万多个了

连接:是通过既定的规则连接双方的内存资源

TCP/IP协议是如何实现四次分手的?

计算机基础——计算机网络_第170张图片

重点:分手主要就是要释放资源。

如果建立连接以后网突然断了分手失败会怎么样?

计算机基础——计算机网络_第171张图片

当不知道已经断开连接了,只要不需要使用这个连接的时候是默认不知道的。就当作一直连接,但是这样子就存在如果突然需要用了发现你的连接是断开的临时处理往往代价更高,为了解决这个问题。

内核中就有一个处理的方式,名为心跳(keepalive),可以隔一段时间测一下是否连接像心跳一样这样就可以即使发现因为各种突发原因造成的连接突然断开的问题。

注意:

​ 内核只是检查单独这次连接的心跳。

连接过程

计算机基础——计算机网络_第172张图片

计算机基础——计算机网络_第173张图片

计算机基础——计算机网络_第174张图片

计算机基础——计算机网络_第175张图片

通过socket连接

计算机基础——计算机网络_第176张图片

四次挥手(谁先都可以)

计算机基础——计算机网络_第177张图片

验证TCP/IP中的三次握手和四次挥手

使用tcpdump命令抓取本地使用80端口的包,请求百度80端口地址并且把主页请求回来

同时运行命令

计算机基础——计算机网络_第178张图片

返回的完整数据

数据分析

建立连接

计算机基础——计算机网络_第179张图片

请求回来的主页数据包

image-20211018185956600

最后的四次分手

image-20211018190023336

HTTP

HTTP组成

原文链接:https://www.jianshu.com/p/866f33bdbb58

思维导图

计算机基础——计算机网络_第180张图片

HTTP请求和相应的运作过程图

HTTP报文
  • 用于HTTP协议交互的信息被称为HTTP报文;

  • 客户端的HTTP报文叫做请求报文

  • 服务端的HTTP报文叫做响应报文

报文是通信中的基本单位,由8位组字节流组成,通过HTTP通信传输。

首部报文能够起到额外传递重要信息的作用

HTTP报文组成

计算机基础——计算机网络_第181张图片

​ HTTP报文

  1. 报文首部
HTTP请求报文

HTTP协议的请求和响应报文中必定包含HTTP报文首部

首部内容为客户端和服务器分别处理请求和响应提供所需的信息

在请求中,HTTP报文由方法,rl,HTTP版本,HTTP首部字段等部分构成

请求报文组成图

计算机基础——计算机网络_第182张图片

具体首部

计算机基础——计算机网络_第183张图片

HTTP响应报文

在响应中,HTTP报文由3部分组成:

  1. HTTP版本
  2. 状态码
  3. HTTP首部字段

具体信息

计算机基础——计算机网络_第184张图片

HTTP首部字段

HTTP首部字段是构成HTTP报文的要素之一,能够起到额外传递重要信息的作用

HTTP首部字段类型
  1. 通用首部字段,请求报文和响应报文都会用到的首部
  2. 请求首部字段,从客户端向服务端发送请求报文时使用的首部
  3. 响应首部字段,从服务器向客户端返回响应报文时使用的首部
  4. 实体首部字段,针对请求报文和响应报文的实体部分使用的首部
通用首部字段
首部字段名 描述
Cache-Control 控制缓存的行为
Connection 连接管理
Date 创建报文的时间
Pragma 报文指令
Trailer 报文末端的首部一览
Trailer-Encoding 指定报文主体的传输编码方式
Upgrade 升级为其他协议
Warning 错误通知
请求首部字段
首部字段名 描述
Accept 用户代理可处理的媒体类型
Accept-Charset 优先处理字符集
Accept-Encoding 优先的内容编码
Accept-Language 优先的语言
Authorization Web认证信息
Expect 期待服务器放的特定行为
From 用户的电子邮箱地址
Host 请求资源所在的服务器
Max-Forwards 最大传输组跳数
Range 实体的字节范围请求
Referer 对请求中URL的元素获取方
TE 传输编码的优先级
User-Agent HTTP客户端程序的信息
响应首部字段
首部字段名 描述
Accept-Ranges 是否接受字节范围请求
Age 推算资源创建时间
ETag 资源的匹配信息
Location 令客户端重定向至URL
Proxy-AuthenTicate 代理服务器对客户端的认证信息
Retry-After 对再次发器请求的时机要求
Server HTTP服务器的安装信息
Vary 代理服务器缓存的管理信息
WWW-Authenticate 服务器对客户端的认证信息
HTTP状态码

状态码的职责是当客户端向服务器发送请求时,描述返回的请求处理结果

处理结果图

计算机基础——计算机网络_第185张图片

状态码详解
状态码 描述
1XX 接收的请求正在处理
200 一切正常
204 请求处理成功,但是没有资源返回
301 请求资源被分配新的url
302 请求资源临时被分配新的url
303 请求对应的资源存在着另一个url
400 请求报文中存在错误语法
401 发送的请求需要HTTP认证
403 服务器拒绝客户度访问
404 服务器没有请求的资源
500 内部资源出现故障

测试查看连接过程

linux服务器运行命令,并监听

1.先窃包

//窃端口号80的包:-nn不获取文本信息
tcpdump -nn  -i eth0  port 80

2.建立连接(与百度建立连接)

curl http://www.baidu.com

你可能感兴趣的:(笔记,计算机网络)