internat(互联网)是一个通用名词,它泛指由多个计算机网络互连而成的网络,在这些网络之间的通信协议可以是任意的。
Iternat(因特网)则是一个专用名词,他指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,他采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET.
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
电路交换
分组交换
报文交换
电路交换:
报文交换:
优点:
缺点:
分组交换:
计算机网络的精确定义并未统一,最简单的定义是:一些互相连接的、自治的计算机的合集
计算机网络的较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如:传送数据或者视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
计算机网络的分类:
性能指标可以从不同的方面来度量计算机网络的性能。
常用的计算机网络的性能指标有以下8个:
比特:计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0.
速率在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率。
往返时间
利用率
根据排队论,当信道的利用率增大的时候,该信道引起的时延也会迅速增加;
因此,信道利用率并非越高越好;
丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量和总分组数量的比率
分组丢包主要有两种情况:
因此,丢包率反映了网络的拥塞情况:
OSI体系结构(法律上的国际标准)
TCP/IP体系结构(事实上的国际标准)
原理体系结构(适用于教学)
协议的三要素:语法 语义 同步
语法:定义所交换信息的格式
语义:定义收发双方所要完成的操作
同步:定义收发双方的时序关系
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下一层所提供的服务。
协议是“水平的”,服务是“垂直的”
实体看的见相邻下层所提供的服务,但是并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的。
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
服务数据单元SDU:同一系统中,层与层之间交换的数据包称为服务数据单元。
多个SDU可以合成一个PDU;一个SDU也可以划分为几个PDU。
并行传输的效率是串行传输的N倍,但是也存在一个严重的缺点,即成本高。
同步传输
异步传输
传输媒体与信道的关系?
严格来说,传输媒体和信道不能直接划等号。
对于单工传输:传输媒体中只包含一个信道。要么是发送信道,要么是接收信道。
对于半双工和全双工传输:传输媒体中要包含两个信道,一个是发送信道,另一个是接收信道。
如果使用信道复用技术,一条传输媒体还可以包含多个信道
常用编码:
基本调制方法:
失真的因素:
奈氏准则:在假定条件下,为了避免码间串扰, 码元传输速率是有上限的。
链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。
数据链路层的三个重要问题:
封装成帧:
如图所示,两台主机通过一条链路互连,两个主机都会对发送或接受的数据包进行五个层次的封装或解封。
发送方将待发送的数据通过应用层封装为应用层协议数据单元。然后交给运输层。
运输层为其添加运输层协议首部,使之成为运输层协议数据单元。然后交付给网络层。
网络层为其添加网络层协议首部,使之成为网络层协议数据单元。然后交付给数据链路层。
数据链路层给网络层协议数据单元添加一个帧头和帧尾,这个操作称为封装成帧。
例如:
差错检测:
发送方将封装好的帧通过物理层发送到传输媒体,帧在传输过程中遭遇干扰后可能会出现误码。
那么,请思考一下:接收方主机如何判断帧在传输过程中出现了误码呢?这可以通过检错码来发现。
发送方在发送帧之前基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。
例如:以太网版本2的MAC帧的帧尾,就是4字节的FCS字段,要写入该字段的内容就是我们所说的检错。
接收方主机收到帧后,通过检测码和检错算法就可以判断出帧在传输过程中是否出现了误码。
可靠传输:
接收方主机收到有误码的帧后,是不会接受该帧的,将其丢弃,如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会有其他措施;如果数据链路层向其上层提供的是可靠服务,那么还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本。
尽管误码是不能完全避免的,但是若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。
使用广播信道的数据链路层(共享式局域网)的问题:
假如说主机A需要将信息传递给主机C,那么B、D、E是如何知道信息不是自己的,并且拒绝该信息呢?主机C又是如何知道该信息是自己的,从而接收该信息呢?
我们可以将帧的目的地址添加在帧中一起传输。
例如,在以太网版本2的MAC帧格式中,在帧头的三个字段中,有两个字段与地址相关,一个是目的地址字段,另一个是源地址字段。
编址问题解决了,那么我们来讨论下一个问题:
当总线上多台主机同时使用总线来传输帧的时候,传输信号就会产生碰撞。这是采用广播信道的共享式局域网不可避免的,以太网的协调方法是使用一种媒体接入控制协议CSMA/CD。
交换式局域网:
无线局域网:
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
在帧头和帧尾中包含有重要的控制信息。
例如:以太网版本2的MAC帧格式,
点对点协议PPP帧格式,
发送方的数据链路层将上层交付下来的协议数据单元封装为帧后,还要通过物理层将构成帧的各比特转换为电信号发送到传输媒体。
那么,接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?
帧头和帧尾的作用之一就是帧定界。
例如,点对点协议PPP帧格式,
其中,帧头和帧尾的一字节的标志就是帧定界的标志,需要注意的是并不是每一种数据链路层协议的帧都包含帧定界标志,例如在以太网版本2的帧格式中,并没有帧定界的标志,那么,接收方又是如何从物理层交付的比特流中提取出一个个的以太网帧呢??
实际上,以太网的数据链路层封装好MAC帧后,将其交付给物理层,物理层会在MAC帧前面添加8字节的前导码,然后再将比特流转换为电信号发送,
前导码中的前7个字节是前同步码,作用是使接收方的时钟同步,之后的一个字节为帧开始定界符,表明其后面紧跟着的就是MAC帧。
另外,以太网还规定了帧间间隔时间为96比特的发送时间。
因此,MAC帧并不需要帧结束定界符。
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
注意:
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能变成0,而0也可能变成1.这称为比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。
奇偶校验
循环冗余校验(CRC)
例如:
数据链路层向上层提供的服务类型:
一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。
分组丢失、分组失序以及分组重复这些错误一般不会出现在数据链路层,而会出现在其上层。
可靠传输服务并不仅仅局限于数据链路层,其他各层均可以选择实现可靠传输。
注意事项:
停止-等待协议的信道利用率:
TA一般都远小于TD,可以忽略。
当RTT远大于TD时,信道利用率会非常低。
点对点协议PPP是目前使用最广泛的点对点数据链。
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
帧格式
标志(Flag)字段:PPP帧的定界符,取值0x7E
地址(Address)字段:取值为0xFF,预留(目前没什么作用)
控制(Control)字段:取值为0x03,预留(目前没什么作用)
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理
帧检验序列(FCS)字段:CRC计算出的校验位
透明传输
当PPP帧的数据部分出现帧首和帧尾的标志字段时,如果不采取措施,则会造成接受方对PPP帧是否结束的误判。
透明传输----面向字节的异步链路采用插入转义字符的字节填充法
发送方的处理:
接收方的处理:进行反变换即可恢复原来的PPP帧的数据部分。
透明传输----面向比特的同步链路采用插入比特0的比特填充法
发送方的处理
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,即立即填充1个比特0。
接收方的处理
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的一个比特0删除。
工作状态?
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC。
载波监听多址接入/碰撞检测CSMA/CD
尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是他们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。
MAC地址有时候也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层。
一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有限网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址,而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,MAC地址是对网络上各个接口的唯一标识,而不是对网络上各设备的唯一标识。
数据包转发的过程中IP地址和MAC地址的变化情况。
作用:
举例:
假如B将要发送数据包给C
但是B不知道C的MAC地址,无法填写目的MAC地址,进而无法构建MAC帧。每个主机都要自己的额ARP高速缓存表,B开始在自己的高速缓存表中查找IP地址为192.168.0.3的MAC地址,发现没有。
这时候,主机B会发送ARP请求报文(广播),来获取MAC地址
C发现问的是自己,开始响应(单播),先将B的IP地址与MAC地址记录到自己的ARP告诉缓存包表中;给B发送ARP响应,以告知自己的MAC地址。
这个时候B将C的IP地址和MAC地址记录到自己的ARP告诉缓存表中
现在主机B就可以给主机C发送之前想要发送的数据包了
这样做的原因是:IP地址和MAC地址的对应关系并不是永久性的,例如当主机的网卡坏了,更换网卡后,主机的IP地址并没有改变,但是主机的MAC地址改变了。
早期的总线型以太网
使用双绞线和集线器HUB的星型以太网
集线器和以太网的区别
==(发送单播帧的情况)==对于使用集线器的共享总线型以太网,各主机中的网卡根据帧的目的MAC地址,决定是否接受该帧。
==(发送单播帧的情况)==对于使用交换机的交换式以太网,交换机收到单播帧后,根据帧的目的MAC地址和自身的帧交换表,将帧转发给目的主机,而不是网络中的其他各主机。
==(发送广播帧的情况)==对于使用集线器的共享总线型以太网,广播帧会传播到总线上的其他主机,各主机中的网卡检测到帧的目的MAC地址是广播地址,就接收该帧。
==(发送广播帧的情况)==交换机收到广播帧后,检测到帧的目的MAC地址是广播地址,于是从除该帧进入交换机接口外的其他各接口转发该帧。网络中除源主机外的其他各主机收到广播帧后,接受该广播帧。
(网络中的多台主机同时给另一台主机发送广播帧的情况),对于使用集线器的共享总线型以太网,
这必然会产生碰撞,遭遇碰撞的帧会传播到总线上的各主机。
(网络中的多台主机同时给另一台主机发送广播帧的情况),对于使用交换机的交换式以太网,交换机收到多个帧后,会将他们缓存起来,然后逐个转发给目的主机,不会产生碰撞。
(使用集线器扩展以太网后发送单播帧的情况)
(使用交换机扩展以太网后发送单播帧的情况)
(使用集线器扩展以太网后发送广播帧的情况)
(使用交换机扩展以太网后发送广播帧的情况)
综上所述:
如何提高以太网的可靠性?
添加冗余链路可以提高以太网的可靠性
但是,冗余链路也会带来负面效应----形成网络环路
网络环路会带来以下问题:
以太网交换机使用生成树协议STP可以在增加冗余链路来增加网络可靠性的同时又避免网络环路带来的各种问题。
广播风暴会浪费网络资源和各主机的CPU资源!
面向连接的虚电路服务
无连接的数据报服务
在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚
IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。
IP地址由因特网名字和数字分配机构ICANN进行分配。
IPv4地址的编址方法经历了如下三个历史阶段:
32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。
8位无符号二进制整数转十进制数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lmQlLSVD-1646556763374)(C:%5CUsers%5C%E6%9D%8E%E5%A4%8F%E7%A7%91%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20220303162213485.png)]
将十进制正整数转8位无符号二进制数
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv4工作组负责研究新版本IP以彻底解决IP地址耗尽问题。
CIDR使用“斜线记法”,即在IPv4地址后面加上了斜线“/”,在斜线后面写上网络前缀所占的比特数量。
路由聚合(构造超网)
IP数据报的发送和转发过程包含以下两部分:
为了将重点放在TCP/IP协议栈的网际层发送和转发IP数据报的过程上,在之后的举例中,我们忽略使用ARP协议来获取目的主机或路由器接口的MAC地址的过程以及以太网交换机自学习和转发帧的过程。
例如:
同一个网络中的主机可以直接通信,这属于直接交付;不同网络中的主机需要通过路由器来中转,属于间接交付。
C主机将自己的地址和自己的子网掩码相与,得出了C的网络的地址;将自己的地址和F的子网掩码相与,得出了F的网络地址,相比较发现不相同,说明C和F在不同的网络中。因此需要通过路由器来间接交付。
给每个主机赋予默认网关,让他们在转发的时候可以通过默认网关来转发。
路由器在收到IP数据报后应该如何转发?
【举例】静态路由配置
【举例】默认路由配置
因特网所采用的路由选择协议的主要特点:
版本:
占4比特,表示IP协议的版本;
通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4
首部长度
可选字段
长度从1个字节到40个字节不等。用来支持排错、测量及安全措施。
可选字段增加了IP数据报的功能 ,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
填充字段
区分服务字段
总长度
标识
标志字段
片偏移字段:
ICMP差错报告报文共有以下五种:
终点不可达
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83yHlSE5-1646556763381)(C:%5CUsers%5C%E6%9D%8E%E5%A4%8F%E7%A7%91%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20220304171958238.png)]
源点抑制
时间超过
参数问题
改变路由(重定向)
以下情况不应该发送ICMP差错报告报文:
常用的ICMP询问报文有以下两种:
回送请求和回答
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。
收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
这种询问报文用来测试目的站是否科大及了解有关状态。
时间戳请求和回答
ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。
在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。
ICMP应用举例
方法二:
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址。
之前课程所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层他们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。
运输层端口号
发送方的复用和接收方的分用
下面介绍这四种拥塞控制算法的基本原理,假定如下条件:
发送方维护一个叫做拥塞窗口的状态变量,其值取决于网络的拥塞程度,并且动态变化。
发送方将拥塞窗口作为发送窗口swnd,即swnd=cwnd。
维护一个慢开始门限ssthresh状态变量:
当cwnd
当cwnd
当cwnd=ssthresh时,既可以使用慢开始算法,也可以使用拥塞避免算法;
慢开始
拥塞避免
快重传
快恢复
慢开始和拥塞堵塞避免算法是1988年提出的TCP拥塞控制算法。
1990年又增加了两个新的拥塞控制算法(改进TCP的性能),这就是快重传和快恢复。
有时,个别报文段会在网络中丢失,但实际上网络并未发生拥塞
采用快重传算法可以让发送方尽早知道发生了个别报文段的丢失。
所谓快重传,就是使发送方尽快进行重传,而不是等超时重传计时器超时再重传。
客户/服务器方式
C/S方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是C/S方式,包括万维网www、电子邮件、文件传输FTP等。
基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少的多的服务器计算机上。
对等(P2P)方式
万维网www并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。
万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑的信息网。
为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。
URL的一般形式由以下四个部分组成:
<协议>://<主机>:<端口>/<路径>