计算机网络复习笔记

1概述

1.1  电路交换、分组交换、报文交换

  • 电路交换:必须经过“建立连接(占用通信资源)——通话(一直占用通信资源)——释放连接(归还通信资源)”三个步骤的交换方式称为电路交换。
  • 分组交换:采用了存储转发技术,通常我们把要发送的整块数据称为一个报文,在发送报文之前会把较长的报文划分成一个个更小的等长数据段。在每一个数据段前面,加上一些必要控制信息组成的首部后,就构成了一个分组。分组中的首部包含了诸如目的地址、原地址等重要的信息,保证每一个分组在因特网中能被正确的交付到分组传输的终点。路由器的用途就是用来转发分组,即进行分组交换的
  • 报文交换:以报文为单位进行交换传输。与电路交换相比,它不要求交换通信双方预先建立一条专用的数据通路,因此就不存在建立电路和拆除电路的过程。

1.2  计算机网络的类别

(1)按网络的作用范围分:

  • 广域网 WAN
  • 城域网 MAN
  • 局域网 LAN
  • 个人区域网 PAN

(2)按网络使用者进行分类

  • 公用网
  • 专用网

1.3  计算机网络体系结构

                                                   计算机网络复习笔记_第1张图片

图片来源:https://github.com/CyC2018/CS-Notes/blob/master/notes/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%20-%20%E6%A6%82%E8%BF%B0.md

(1)五层协议

  • 应用层:应用层是体系结构中的最高层,它的主要任务是通过应用进程间的交互来完成特定网络应用,应用层协议定义的是应用进程间通信和交互的规则。例如HTTP/DNS等协议等。数据单位为报文
  • 传输层:传输层的任务就是向两台主机中进程之间提供通用的数据传输服务。应用层主要使用两种协议:传输控制协议(TCP)和用户数据包协议(UDP)。TCP提供面向连接的,可靠的数据传输,数据传输的单位是报文段。UDP提供无连接的、尽最大努力的数据传输服务,其数据单位为用户数据报。TCP提供完整性服务,UDP提供及时性服务。
  • 网络层:负责分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据包封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP,因此分组也叫IP数据报,或简称为数据报。
  • 数据链路层:网络层针对的是主机之间的数据传输服务,而主机之间可以有很多联络,数据链路层协议就是为同一链路的主机提供数据传输服务。数据链路层将网络层传下来的IP数据报组装成帧。
  • 物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是具体的传输媒体。所传送的数据的单位是比特。

       数据在各层之间的传递:在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。

(2)OSI

  • 表示层:数据压缩加密以及数据描述,这使得应用程序不必关心在不同主机中数据内部格式不同的问题。
  • 会话层:建立和管理会话。

(3)TCP/IP

  • 它只有四层,相当于五层协议中数据联络层和网络层合并为网络接口层。

2 .物理层

2.1 通信方式

从通信双方信息交互的方式来看,通信方式可分为单工通信、半双工通信及全双工通信三种。

  • 单工通信:只能有一个方向的通信,而没有反方向的交互。如:无线电广播、电视广播。
  • 半双工通信:通信双方都可以发送信息,但不能同时发送(当然不可以同时接收),这种通信方式是一方发送一方接收,然后过一段时间载反过来。
  • 全双工通信:通信的双方可以同时发送和接收消息。

2.2 信道复用技术

  • 信道:一般是用来表示向某一个方向传送信息的媒体。
  • 复用:就是通过一条物理线路同时传输多路用户的信号。

下面介绍几种常见的信道复用技术:

  • 频分复用:频分复用的所有用户在同样的时间占用不同的频率带宽资源。
  • 时分复用:时分复用的所有用户在不同的时间占用同样的频率带宽资源。
  • 统计时分复用:是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来,组成统计时分复用帧然后发送。
  • 波分复用:就是光的频分复用。由于光载波的频率很高,因此习惯上用波长而不是频率来表示所使用的光载波。
  • 码分复用:是另一种共享信道的方法。

3.数据链路层

3.1.数据链路层协议的三个基本问题:

  • 封装成帧:网络层的IP数据报必须向下传递到数据链路层,称为帧的数据部分,同时加上首部和尾部,然后封装成一个完整的帧。
  • 透明传输:不管在键盘上输入什么字符,都可以在帧中传输过去。解决透明填充的问题:字节填充法。具体的方法是:发送端的数据链路层在数据中出现控制字符“SOH”(首部开始符)或“EOT”(传输结束符)的前面插一个转义字符“ESC”,而在接收端的数据链路层将数据送往网络层之前删除这个插入的转义字符。
  • 差错检测:比特在传输过程中可能会产生差错。目前数据链路层广泛使用了循环冗余检验CRC的检错技术。即在接收端把收到的数据以帧为单位进行CRC检测:把收到的每一个帧都除以相同的余数P(模2运算,实际上就是异或),然后检查得到的余数。如果传输无误,得到的余数R肯定是0。

  3.2 CSMA/CD协议 

       为了协调总线上各计算机的工作,采取了一种特殊的协议CSMA/CD(带有冲突检测的载波监听多路访问技术)

  • 多点接入:说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
  • 载波监听:就是“发送前先监听”,即一个站在发送数据之前先要检测一下总线上是否有其他站在发送数据,如果有,则暂时不要发送数据,要等待信道空闲时再发送。
  • 碰撞检测: 就是“边发送边监听” ,即适配器边发送数据变监测总线上有没有其他计算机发送的数据信号,以便判断自己在已发送数据时其他站是否也在发送数据。

       CSMA/CD与CSMA/CA的比较:

  • CSMA/CD:带有冲突检测的载波侦听多路访问技术,可以检测信道上有无冲突,但不能避免;CSMA/CA:带有冲突避免的载波侦听多路访问技术,不能检测信道上有无冲突,但能“尽量”避免。
  • 两者的传输介质不同, CSMA/CD用于总线式以太网;CSMA/CA用于无线局域网
  • 检测方式不同:CSMA/CD通过电缆中电压的变化来检测;CSMA/CA采用能量检测、载波检测、能量载波混合检测三种方式来检测。

4. 网络层

4.1    网络层向运输层提供的两种服务

                                                                         虚电路服务和数据报服务的对比

对比的方面 虚电路服务 数据报服务
思路 可靠通信由网络来保证 可靠通信由主机来保证
连接的建立 必须有 不需要
终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组转发 属于同一虚电路的分组,均按同一路由进行转发 每个分组独立选择路由转发
分组到达的顺序 总是按发送顺序到达终点 到达终点不一定按发送顺序
当节点出故障时 所有通过出故障节点的虚电路,均不能正常工作 出故障的节点可能会丢失分组,路由也可能发生变化
端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责。 由用户主机负责

4.2   IP地址的分类

     每一个IP地址都是由网络号主机号两部分组成。

                                               计算机网络复习笔记_第2张图片      

 

 4.3   子网掩码            

  • A类地址默认子网掩码为:255.0.0.0
  • B类地址默认子网掩码为:255.255.0.0
  • C类地址默认子网掩码为:255.255.255.0

子网掩码的好处:

  • 不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,就能立即得到网络地址。

4.4 地址解析协议ARP

       地址解析协议ARP实现了:由一个机器的IP地址得到其MAC地址(物理地址)。

       我们知道网络层使用的是IP地址,但在实际网络链路上传送数据帧时,最终还是必须使用网络的硬件地址。但IP地址和IP下的硬件地址格式不同,而存在一定的映射关系。此外一个网络上,可能经常有新的主机加进来,或撤走一些主机。更换网络适配器也会使主机的硬件地址改变。

        地址解析协议ARP解决这个问题的方法是:在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表动态更新(新增或者超时删除)。

        IP地址就如同一个职位,而MAC地址则像是去应聘这个职位的人。职位既可以由甲担任,也可以由乙担任。

5.运输层

5.1 TCP与UDP

  • TCP:传输控制协议(Transmission Control Protocol)
  • UDP:用户数据报协议(User Datagram Protocol)

相同点:二者都属于传输层协议。

不同点

比较方面 TCP UDP
连接 面向连接 无连接
速度 较慢 较快
数据传输的可靠性 保证 不保证
数据传输类型 报文段 用户数据报
带宽消耗
目的主机 仅能一对一 一对一、一对多

应用场景

  • TCP用在可靠性要求高,但实时性要求不高的场景,如传输文件的FTP、HTTPS协议等。
  • UDP用在可靠性要求不高,但实时性要求高的场景,如qq视频聊天等。

5.2   TCP的首部格式和连接管理

https://blog.csdn.net/qq_42922647/article/details/95854061

5.3     滑动窗口机制

     滑动窗口是两台主机间传送数据时的缓冲区。每台TCP /IP 主机支持两个滑动窗口,一个用于接收数据, 另一个用于发送数据。窗口尺寸表示计算机可以缓冲的数据量大小。TCP 协议通过采用滑动窗口的方式控制数据流的传输,进行流量控制。

      具体通过三个指针来实现的

计算机网络复习笔记_第3张图片

  • P1左部:已经发送并且收到了确认的字节,即滑动窗口的开始
  • P1~P2:已经发送,但未收到确认的字节
  • P3右侧:不能发送的字节,即滑动窗口的结束

流程:

  • 如果发送窗口左部的字节已经发送并且收到了确认,那么就将发送窗口向右滑动一定距离,直到左部第一个字节不是已发送并且已确认的状态;接收窗口的滑动类似,接收窗口左部字节已经发送确认并交付主机,就向右滑动接收窗口。
  • 接收窗口只会对窗口内最后一个按序到达的字节进行确认,例如接收窗口已经收到的字节为 {31, 34, 35},其中 {31} 按序到达,而 {34, 35} 就不是,因此只对字节 31 进行确认。发送方得到一个字节的确认之后,就知道这个字节之前的所有字节都已经被接收。

发送数据的时机——缓冲区满,缓冲区大小的设置有两种情况:

  • 不与应用程序交互,按TCP协议最大报文长度MSS。
  • 与应用程序交互,发送方应用程序指定报文长度。

接收数据时发送应答的时机:

  • 发送的报文只剩最大不到一个报文段的长度
  • 缓冲区接收的数据段到一半了

5.4     拥塞控制

TCO建立的是逻辑信道,但交换机、路由器等硬件(属于网络资源)等,会由于对某一网络资源的需求大于可用资源,造成阻塞。

TCP 主要通过四个算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。

发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量,注意拥塞窗口与发送方窗口的区别:拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。

为了便于讨论,做如下假设:

  • 接收方有足够大的接收缓存,因此不会发生流量控制;
  • 虽然 TCP 的窗口基于字节,但是这里设窗口的大小单位为报文段。

5.4.1.慢开始与拥塞避免

  •   发送的最初执行慢开始,令 滑动窗口cwnd = 1,发送方只能发送 1 个报文段;当收到确认后,将 cwnd 加倍,因此之后发送方能够发送的报文段数量为:2、4、8 ...(呈指数增长
  •   慢开始每个轮次都将 cwnd 加倍,这样会让 cwnd 增长速度非常快,从而使得发送方发送的速度增长速度过快,网络拥塞的可能性也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd 加 1(变为线性增长,加法增大原则)。
  • 如果出现了超时,则令 ssthresh = cwnd / 2(乘法减小),然后重新执行慢开始。

5.4.2.快重传与快恢复

  • 在接收方,要求每次接收到报文段都应该对最后一个已收到的有序报文段进行确认。例如已经接收到 M1 和 M2,此时收到 M4,应当发送对 M2 的确认。

  • 在发送方,如果收到三个重复确认,那么可以知道下一个报文段丢失,此时执行快重传,立即重传下一个报文段。例如收到三个 M2,则 M3 丢失,立即重传 M3。

  • 慢开始和快恢复的快慢指的是 cwnd 的设定值,而不是 cwnd 的增长速率。慢开始 cwnd 设定为 1,而快恢复 cwnd 设定为 ssthresh

  • 慢开始 拥塞窗口 cwnd 设置为 1,而快恢复设置为 ssthresh + 3 ; 

    若收到的重复的 ACK 为 个(n> 3),则将 cwnd 设置为 ssthresh + n

计算机网络复习笔记_第4张图片

6.应用层

6.1域名系统DNS

  •  域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
  • 域名解析的作用主要就是为了便于记忆。

DNS解析过程

  1.  打开浏览器,输入一个域名。比如输入WWW.163.com。你的电脑会向本地DNS服务器发送请求,本地DNS服务器一般由网络接入服务商提供,如中国移动,中国联通等
  2. 本地DNS服务器进行查询,如果缓存中有则直接返回结果,如果没有,则向DNS根服务器发送请求。
  3. DNS根服务器不会告诉你IP地址与域名的关系,而是告诉你可以去域服务器上去找,并告诉你域服务器的地址。
  4. 域服务器同样不会告诉你IP地址与域名的关系,而是告诉你可以去解析服务器上去找,并告诉你解析服务器的地址。
  5. 解析服务器上存放着IP地址与域名的对应关系,它会返回查询的IP地址对应的域名,本地DNS服务器会把这个对应关系存放在缓存中,以便下次查询的时候可以直接返回结果,加快查询速率。

6.2 HTTP协议

6.2.1 HTTP协议的特点

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST、HEAD。
  • 灵活:HTTP允许传输任意类型的数据对象。
  • 无连接:即限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答后,即断开连接,这种方式可以节省传输时间。
  • 无状态:HTTP无状态的意思是它对事务没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则必须对之前的信息进行重传,这样可能会出现传输的数据量过大的情况;另一方面,在服务器不需要先前消息时它的处理就很快。
  • 支持B/S(Browser/Server”,即“浏览器/服务器”)以及C/S(“Client/Server”,即“客户端/服务器”模式。)模式。

6.2.2 HTTP长连接和短连接

  • HTTP的长连接和短连接实质上是TCP的长连接和短连接。HTTP协议是无状态的,就是这次你打开的网页和上一次打开的之间没有任何的连接。
  • HTTP的版本有:HTTP/1.0和HTTP/1.1两种。HTTP/1.0默认是短连接的,客户机与服务器每进行一次HTTP操作,就建立一条连接,任务结束即连接中断。HTTP/1.1默认使用长连接,会在响应头加入:connection:keep-alive
  • 当使用长连接时,当一个网页打开完成后,客户端与服务器之间用于传输HTTP协议的TCP连接不会关闭,当再次访问这个服务器时,会继续使用这条已经建立的连接。keep-alive不会永久保持连接,它有一个保持时间,可以设定。
  • 实现长连接的客户端和服务器都要求支持长连接。

应用场景

  • 长连接:用于操作频繁,点对点的通讯,而且连接数量不能太多的情况,如数据库连接。
  • 短连接:WEB网站的服务一般都是用短连接,因为长连接对服务端好非自愿,web网站频繁的成上亿的http服务一般都用短连接更省资源,降低并发量。

6.2.3 HTTP状态码的分类

                                      计算机网络复习笔记_第5张图片

  • 100 continue:截止到目前为止都很正常,客户可以继续发送或忽略这个响应。
  • 200:OK 服务器成功处理了请求
  • 301:(永久移动)请求的网页已永久移动到新位置,服务器返回此响应时,会自动将请求者转到新位置。
  • 302:(临时移动)服务器目前从不同位置的网页响应请求,但请求者之后还是以原来的位置来进行以后的请求。
  • 400:(错误请求)服务器不理解请求的语法。
  • 403:(禁止)服务器拒绝请求。
  • 404:(未找到)服务器找不到请求的网页。
  • 500:(服务器内部错误)服务器遇到错误,无法完成请求。

6.2.4  HTTP的缺点

  • 通信内容为明文,容易被窃听。
  • 通信双方身份没有进行验证,可能出现伪装身份的情况。
  • 接受报文完整性无法确定,可能中途被改动。

6.2.5 HTTPS

             HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,相当于SSL被嵌在了HTTP和TCP之间。鉴于HTTP的缺点,HTTPS在HTTP的基础上增加了:

  • 通信加密(防窃听)
  • 证书认定(防伪装)
  • 完整性保护

普遍的加密方式:

    1.共享(对称)密钥加密:加密解密使用同一密钥

  • 优点:运算速度快。
  • 缺点:无法安全的将密钥传输给通信方。

      2.公开(非对称)密钥加密:加密和解密使用不同的密钥。一把是公有密钥,一把是私有密钥公有密钥是对通信双方公开的,任何人都可以获取,而私有的不公开。

  • 优点:可以更安全的将公开密钥传输给通信发送方。
  • 缺点:运算速度慢。

     3.HTTPS采用的加密方式

        HTTPS采用了混合加密的方式。即先通过公开密钥(非对称)对共享密钥(对称)进行加密来保证传输过程的安全性,当共享密钥安全传输给对方后,双方则采用共享密钥的方式来加密报文,以此提高传输的效率。

HTTPS的缺点

  • 通信速率降低。除了进行TCP连接,发送请求外,还要进行SSL通信。通信信息量增加。
  • 加密过程消耗资源。每个报文都要进行加密和解密的运算处理。比起HTTP消耗了更多资源。
  • 证书开销。需要支付证书授权的高额费用。

HTTP与HTTPS的选择

  如果传输的是非敏感信息,则较多的选择HTTP协议。而当通信过程中涉及个人隐私或其他安全信息时,会较多选择HTTPS。

 

 

你可能感兴趣的:(计算机网络)