计算机网络笔记(湖科大教书匠版本)

慈云数据 1年前 (2024-03-15) 技术支持 87 0

第一章、

①三种交换方式

电路交换、分组交换、报文交换(被分组交换所取代)

1.电路交换:会一直占用通道,不适合计算机之间的数据通信

2.分组交换:通常我们把表示该数据的整块数据称为一个报文。

  • 先把较长的报文划分为一个个更小的等长数据段
  • 在每个数据段前面,加上一些由必要的控制信息组成的首部后,就构成了一个个分组
    • 添加首部的作用:存放目的地址
  • 发送主机将所构造出各分组依次发送出去,这些分组,经过途中各分组交换机(也就是路由器)的存储转发,最终达到目的地主机
  • 目的地主机接收到这些分组后,去掉首部,将各数据段组合还原出原始报文

    计算机网络的定义和分类

    1.计算机网络最简单的定义:一些互相连接的、自治的计算机的集合

    • 互联:指计算机之间可以通过有线或无线的方式进行数据通信
    • 自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用
    • 集合:指至少需要两台计算机

      2.分类

      • 按照交换技术分类:电路交换网络、报文交换网络、分组交换网络
      • 按照使用者分类:公用网、专用网(某些特殊单位会有,不给单位外的人使用)
      • 按照传输介质分类:有线网络、无线网络(目前,无线局域网使用的WiFi技术,应用普遍)
      • 按照网络的覆盖范围分类:广域网WAN、城域网MAN、局域网LAN、个域网PAN
      • 按照拓扑结构分类:总线型网络、星型网络、环型网络、网状型网络

        ③计算机网络的性能指标

        1.速率

                连接在计算机网络上的主机在数字信道上传送比特的速率,通常也称为:比特率、数据率

        单位:bit/s (b/s,bps)

        注意区分:数据量上的M:“兆”  和  速率单位上的M:“兆”的大小取值

        2.带宽

                指网络的通信线路传送数据的能力

        3.吞吐量

                指在单位时间内,通过某个网络(或信道、接口)的数据量

        4.时延

                分为发送时延、传播时延、处理时延

        5.时延带宽积

                传播时延 * 带宽。可以抽象为圆柱体 的体积

        6.往返时间

                双向交互一次所需要的时间

        7.利用率

                分为信道利用率和网络利用率

        8.丢包率

        •  又称:分组丢失率。是指在一定时间内,传输过程中,丢失的分组数量与总分组数量的比率。
        • 分组丢失的两个主要原因:分组误码、结点交换机缓存队列满(网络拥塞)
          • 无拥塞时,路径丢包率为0
          • 轻度拥塞时,路径丢包率为1%~4%    
          • 严重拥塞时,路径丢包率为5%~15%    

          ④常见的三种计算机网络体系结构

          ⑤计算机网络体系结构分层的必要性

          ⑥计算机网络体系结构中的专业术语

          实体、对等实体、协议(水平)、服务(垂直)

          第二章、物理层

          ①物理层定义接口特性

          ②物理层下面的传输媒体

          1.传输媒体是计算机网络设备之间的物理通路,也成为传输介质、传输媒介

          2.传输媒体不包含在计算机网络体系结构中

          ③传输方式

          1.串行传输:在发送端和接收端仅有一条数据传输线路,一般适用于远距离传输

          并行传输:在发送端和接收端之间有多条数据传输线路,一般适用于近距离传输。计算机内部通常采用并行传输。

          2.同步传输:以比特为传输单位。

          异步传输:以字节为传输单位。是指每个字节之间的异步,即字节之间的时间间隔不确定;但字节内的每个比特仍需同步。需要在每个字节的前后分别添加起始位和终止位

          3.单工、半双工、全双工

          ④编码与调制

          1.双极性不归零编码:正电平表示1,负电平表示0,不会出现零电平。编码效率高,但是存在同步问题

          下图,解释如何判断这是一个码元还是两个码元还是三个码元:通过时钟信号,来严格确定

          2.双极性归零编码:自同步,但编码效率低 。通过在每个码元里添加 零电平 实现时钟同步。

          下图,解释了其实归零编码就是将时钟信号用“归零”的方式编码在了数据之内,这成为“自同步”信号。

          3.曼彻斯特编码:每个码元的中间时刻,电平发生跳变:正跳变表示0还是1,负跳变表示0还是1,可以自行定义

          下图,解释了码元中间时刻跳变又表示时钟,又表示数据。

          4.差分曼彻斯特编码:码元中间时刻的电平跳变仅仅是表示时钟信号,而不是表示数据;数据的表示在于每一个码元的开始处,是否有电平跳变:无跳变表示1,有跳变表示0

          下图,解释了码元中间时刻跳变仅仅表示时钟,然后开始处电平是否发生变化表示数据。

          基本调制方法:调幅、调频、调相

           如何让一个码元来包含更多的比特:通过混合调制

          此时,每种码元可以对应表示4的比特,采用格雷码,使得16种码元相邻之间只会存在一个比特位不同

          ⑤信道的极限容量

          奈氏准则、香农公式

          准确的来说,传输媒体不能和信道画等号:例如,在单工传输中,传输媒体中只能有一个信道,要么是发送信道,要么是接收信道

          码元传输中失真的因素:码元传播速率、信号传输距离、噪声干扰、传输媒体质量

          码元传输速率,又称波特率、调制速率、波形速率、符号速率。

          奈氏准则:理想低通信道的最高码元传播速率为2W Baud , 。其中W表示信道带宽(单位:Hz),Baud表示波特,码元/秒

          香农公式:信道的信道带宽W或者信道中的信噪比S/N越大,信道的极限信息传输速率C就越高

          要想提高信息的传输速率,必须采 用多元制(即更好的调制方法)和努力提高信道中的信噪比 

           数据传输速率=波特率(码元传输速率)* 每个码元所携带的信息量

          信噪比:

          第三章、数据链路层

          ①数据链路层概述

          ②封装成帧

          封装成帧:在上层交付过来的协议数据单元,添加帧头和帧尾,使之称为帧

          透明传输:

          ③差错检测

          比特差错:比特在传输过程中产生差错,0可能变成1,1可能变成0

          那么,数据链路层所要解决的重要问题之一就是:使用差错检测码来检测数据是否在传输过程中发生了比特差错

          方法一:奇偶校验

                  在待发送的数据后面添加一位奇偶校验位,添加1表示比特1的数量为奇数,添加0表示比特1的数量为偶数

                  缺点:如果有偶数个比特发生误码,那么接收方会误认为接收到的数据是正确的

          方法二:循环冗余校验CRC

          ④可靠传输

          不可靠传输服务:仅仅丢弃有误码的帧 

          可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。注意:可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。

          1.停止-等待协议SW:

          发送方每次发完一个数据分组之后,必须停止,等待接收方发确认分组或否认分组,之后才可继续发送下一个分组。这样才可以确保发送方发送什么,接收方收到什么。

          • 为了避免,迟迟没有接收到确认分组或否认分组(由于数据分组在路上丢失),通过添加一个超时计时器,一般设置重传时间为略大于“从发送方到接收方的平均往返时间”
          • 为了避免,分组重复(由于确认分组在路上丢失),通过 给每个数据分组添加一个比特序号 0或1,
          • 为了避免,确认分组 混淆,通过 给每个确认分组也添加一个比特序号

            2.回退N帧协议GBN

            如果WT变成1,就是停止等待协议。

            一个数据分组的误码,会导致其后续的多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序误码),这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。

            3.选择重传协议SR

            为了进一步提高“回退N帧协议”的性能,可设法只重传出现了误码的数据分组,因此,接收窗口WR不应该再等于1,以便接收方先  收下失序到达但是没有误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后,再一并送交上层,这就是选择重传协议。

            3.5  点对点协议PPP

                    PPP协议是在数据链路层中,它为点对点链路传输各种协议数据报提供一个标准方法,主要由以下三部分组成:

            1. 各种协议数据报的封装方法(封装成帧)
            2. 链路控制协议LCP
            3. 一套网络控制协议NCPs

            PPP帧透明传输方法:

            1. 面向字节的异步链路使用字节填充法(插入转义字符)
            2. 面向比特的同步链路使用比特填充法(0比特填充法------在连续的5个1后面插入一个0)

            3.6  媒体接入控制

            复用技术:复用是将单一媒体的频带资源划分为很多子信道,这些子信道相互独立,

            时分多址、频分多址、码分多址都是物理层的信道复用技术,属于静态划分信道,不会发生冲突

            而CSMA属于争用型的媒体接入协议,连接在同一媒体的多个站点使用该协议以竞争方式发送数据帧,会发生冲突

            频分复用:  频分多址FDMA

            时分复用:   时分多址TDMA

            波分复用WDM:

            码分复用CDM:码分多址CDMA

            随机接入:总线局域网使用的协议:CSMA/CD协议

            CSMA/CD:载波接听多址接入/碰撞检测   

            随机接入:无线局域网使用的协议:CSMA/CA协议

            CSMA/CA:载波接听多址接入/碰撞避免collision avoidance    

            为什么无线局域网不用碰撞检测?   因为隐蔽站问题,如下图,

            在CSMA/CA协议中,有信道预约和虚拟载波监听

            3.7MAC地址、IP地址、以及ARP协议

            MAC地址相关知识

            当多个主机连接在同一个广播信道上时,如果想要发送帧,那么必须携带标识发送主机和接收主机的地址,由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址

            注意:MAC地址也称为物理地址,但是!这不意味着MAC地址属于网络体系结构的物理层!MAC地址属于数据链路层的范畴。

            随机MAC地址:主要是因为美国的安全局通过用户MAC地址,来监测用户的移动轨迹。因此,在后续的IOS系列设备、Windows10、安卓6.0等  都应用了随机MAC地址

            IP地址相关知识

            数据包转发过程中,

            主机H1知道应该把数据包传给R1,由R1帮其把数据包转发出去,

            但是H1只知道R1相应接口的IP地址为IP3,不知道其对应的MAC地址是什么

            如何通过IP地址推出MAC地址?     通过ARP协议

            ARP地址解析协议相关知识(Address Resolution Protocol)

            ARP协议只能在一个网络上使用、或者一段链路上使用。

            首先要发送ARP广播请求,来获取目的主机的MAC地址

            ARP工作原理

                    一个网络设备要发送数据给另一个网络设备时,必须要知道对方的IP地址,但是,仅有IP地址不够,因为IP数据包必须封装成帧才能通过数据链路进行发送,而数据帧必须要包含目的MAC地址,因此发送端必须还要获取MAC地址。每一个网络设备在数据封装成帧前都需要获取下一跳的MAC地址。IP地址通过网络层获得,MAC地址通过ARP协议获取。

                    如果发送主机A的ARP缓存表中,不存在下一跳的MAC地址,那么主机A就要发送广播请求,所有主机接收到该报文后,检查它的目的协议地址字段与自身的IP地址是否匹配。如果不匹配就不响应该报文,如果匹配,那么该主机C会首先将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。ARP Reply报文的源协议地址是主机C的IP地址,目标协议地址是主机A的IP地址,目的MAC地址是主机A的MAC地址,源MAC地址是自己的MAC地址。

                    主机A收到ARP  Reply后,会检查ARP报文中目的MAC地址是否与自己的MAC匹配,如果匹配,就将该报文中的源IP地址和源MAC地址  记录到主机A的ARP缓存表中。

            3.8集线器和交换机的区别

            集线器HUB、交换机SWITCH

            情况1:发送的数据是   广播帧

            在集线器连接的总线型网络中,若主机A想要发送广播帧给主机C,那么这条广播帧会发送给连接在这个总线的所有主机

            而交换机,若主机A想要发送广播帧给主机C,那么这条广播帧只会发送给主机C,不会发送到其他的主机上

            情况2:发送的数据是  单播帧

            在集线器连接的总线型网络中,若主机A和主机C同时想要发送数据给主机B,那么数据会发生碰撞,遭遇碰撞的帧  会传播到总线上的各主机

            对于使用交换机的交换式以太网中,交换机收到多个帧时,会将他们同时缓存起来,然后逐个转发给目的主机,不会产生碰撞

            下图:分别使用集线器、交换机来扩展以太网

            3.9以太网交换机自学习和转发帧的流程

            以太网交换机工作在数据链路层(也包括物理层)

            使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于 同一个广播域

            交换机里面有一个  “帧交换表”,当收到一个帧时,便会记录下MAC地址和相对应的接口  到自己的帧交换表中,然后还会判断目的地址是否为自己,如果是,则接收该帧,如果不是,就丢弃该帧。

            注意:如果说 在“帧交换表”中,没有目的物理地址,那么就会进行 盲目转发,即,将该帧转发给所有接口,并且在帧交换表中,记录下  1.该帧由哪个物理地址转发的,且2.记录对应的接口

            3.10以太网交换机的生成树协议STP

            为了提高网络的可靠性,可以通过增加冗余链路,

            但是这会导致  网路形成环路,从而造成“广播风暴”、“主机收到重复的广播帧”等,

            因此,以太网交换机使用生成树协议STP,来避免网络环路带来的各种问题。

            3.11.1虚拟局域网VLAN

            由来:

            当一个个较小的广播域  ,通过交换机连接起来,  形成了一个  非常大的广播域,这样子,当任何一台主机发送  广播请求时,会造成“广播风暴”,这会对CPU造成极大地浪费,但是广播请求又是不可以避免的,那么如何将一个巨大的广播域分隔成较小的呢?

                    使用路由器就可以隔离广播域,         路由器默认情况下不对广播数据包进行转发。

            但是路由器的成本较高,在巨大的广播域中,全部使用路由器隔离是不太现实,从而,虚拟局域网VLAN(Virtual Local  Area Network)出现了。

            实现机制:

            通过“加标签”、“去标签”

            第四章、网络层

            4.3.1   IPV4地址

            IPV4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32比特的标识符

            分类编址的IPV4地址

             根据分类的IP地址,写出类别:

            1. 根据地址的左起第一个十进制的值,可以判断出网络类别:小于127的为A类,128~191的为B类,192~223的为C类
            2. 根据网络类别,就可以找出地址中网络号部分和主机号部分:A类地址网络号是左起第一个字节,B类是左起前两个字节,C类是左起前三个字节
            3. 有三种情况的地址不能指派给主机或路由器接口:①A类网络号0和127②主机号全0,这是网络地址③主机号全1,这是广播地址  

            注意:地址0.0.0.0只能作为源地址使用;地址255.255.255.255只能作为目的地址使用;127开头的,且后面的三个字节非全“0”非全“1”  ,既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试

                                    

              划分子网的IPV4地址

            如何将一个大的网络分成一个个子网呢?IPV4地址分为,网络号和主机号,如果申请不同的网络号,会浪费资源。因此,我们通过占用主机号的比特位,用来区分子网,如果占用1位,那么就是说有两个子网。      

            子网掩码

            32比特的子网掩码,对应的IPV4的网络号和子网号的比特位上全部为1,主机号对应的全部为0,然后做   按位与操作。

            无分类编址的IPV4地址

            一般在地址后面  添加   “/数字”,比如在地址后面添加“/19”,表示该地址的前面19比特是代表网络号

            中继器、集线器、网桥、交换机、路由器

            4.6.2路由信息协议RIP的基本工作原理

            RIP要求自治系统 AS  内的每一个路由器,都要维护从它自己到AS内每一个网络的距离的记录。这是一组距离,称为“距离向量D-V(Distance-Vector)”

                                                                                    

            注意:最多支持15跳;距离为“16”的时候,就不可达了 

            4.6.3开放最短路径优先OSPF

            OSPF是基于链路状态的,而不像RIP基于距离向量的。

            采用SPF算法计算路由

            第五章  传输层

            5.3  UDP和TCP对比

            UDP:用户数据报协议(User  Datagram Protocol)

            TCP:传输控制协议(Transmission Control Protocol)

            • 在运输层使用 UDP协议的两台主机,可以直接进行 数据传输
            • 在运输层使用TCP协议的两台主机,需要先“三报文握手”建立连接,然后才能进行数据传输,最后还需要“四报文挥手”释放连接。

              综上,可以看出 :无连接的UDP,和  面向连接的TCP

              UDP向上提供无连接不可靠传输服务,适用于IP电话、视频会议等实时应用

              TCP向上提供 有连接可靠传输服务

              5.4  TCP的流量控制

              通过滑动窗口来实现

              接收方可以控制发送方的发送窗口大小

              5.5  TCP的拥塞控制

              四种拥塞控制算法

              慢开始、拥塞避免、快重传、快恢复

              5.8.1 TCP的连接建立

              TCP运输连接有三个阶段:

              1. 建立TCP连接         “三报文握手”
              2. 数据传送
              3. 释放TCP连接         “四报文挥手”

                              

                              

              第六章   应用层                 

              6.4  域名系统DNS                                           

                  DNS 采用UDP协议进行封装               

                                                                                                                                                                              

              6.5文件传送协议FTP

              FTP客户和服务器之间要建立以下两个并行的TCP连接:

              1. 一个是控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令
              2. 另一个是数据连接,用于文件传输,在每次文件传输时建立,传输结束就关闭

                    

              6.6 电子邮件

              发送方通过邮件发送协议(例如SMTP)发送邮件给发送方邮件服务器,

              然后发送方邮件服务器通过邮件发送协议(例如SMTP)再将邮件发送给接收方邮件服务器,

              最后,接收方在方便的时候,使用邮件读取协议(例如POP3)从接收方邮件服务器读取邮件

微信扫一扫加客服

微信扫一扫加客服