计算机网络(北邮信息工程期末速通)

计算机网络

计算机网络概述

⭐计算机网络的组成和功能

计算机网络的组成:从组成看,计算机网络主要由三大部分组成:硬件(hardware),软件(software),协议(protocol)。从工作方式看:可分为边缘部分(edge part)核心部分(core part)。从功能组成来看:计算机网络由通信子网(Communication Subnetwork)和资源子网(Resource Subnetwork)组成

计算机网络的功能:

  • 数据通信:最基本最重要的功能,实现信息传输
  • 资源共享:使计算机网络分工协作
  • 分布式处理:把复杂任务分配给网络中的其他计算机系统
  • 提高可靠性:网络中的计算机可以互为替代机
  • 负载均衡:均衡分配工作

⭐计算机网络的分类

按分布范围分类:广域网(WAN):几十千米到几千千米。城域网(MAN):几个街区或整个城市。局域网(LAN):几十米到几千米。个人局域网(PAN):约十米。

按传输技术分类:广播式网络(Broadcast Network):所有计算机共享公共信道。点对点网络(Peer-to-Peer Network):每条物理线连接一对计算机

按拓扑结构分类:总线形网络,星形网络,环形网络,网状形网络

按交换技术分类:电路交换网络,报文交换网络,分组交换网络(packet switch network)

按传输介质分类:有线网络,无线网络

⭐⭐⭐⭐性能指标

计算机网络的性能指标:

  • 时延(Delay):发送时延(Transmission Delay):传输一个数据分组从开始的时间到该分组最后一个bit发送完毕结束的时间。传播时延 (Propagation Delay):一个bit从链路一端另一端所需时间。处理时延 (Processing Delay):分析地址,进行差错检验花费的时间。排队时延 (Queuing Delay):进入路由器的等待时间,当传输链路已达到可以同时传输的最大值,此时再有新的用户加入传输则会导致队列增长。

    往返时延(Round-Trip Time ,RTT):从发送端开始发送数据,到发送端收到接受端确认的时间(中间可能包括了以上四种时延的组合)

  • 吞吐量(Throughput):单位时间通过网络的数据量

  • 速率(Data Rate):传输数据的速率,把最高数据率称为带宽(Bandwidth)

  • 时延带宽积(Bandwidth-Delay Product):指发送的第一个bit到达终点时,此时一共发送了多少bit。时延带宽积=传播时延×信道带宽

⭐体系结构和参考模型

分层结构:基本原则是让每层实现一种相对独立的功能,相互交流尽可能少。保持下层对上层的独立性,上层单向使用下层提供的服务。两个主机通信时,同一层在逻辑上有一条直接信道,不经过下层直接传输数据。

协议,接口与服务:

  • 协议:由语法,语义和同步三部分组成。语法规定了数据格式,语义规定了要完成的功能,同步规定了执行各项操作的时序。
  • 接口:相邻两层交换信息的连接点
  • 服务:下层为紧邻的上层提供的功能调用

只有先实现本层协议,才能向上层提供服务

服务的分类:

  • 面向连接服务与无连接服务:面向连接服务:通信双方必须先建立连接,分配资源,再进行数据传输,结束后释放连接。无连接服务:不需要建立连接,直接发送数据。
  • 可靠服务与不可靠服务:可靠服务:网络具有检错纠错机制,保证数据可靠性。不可靠服务:网络的正确性可靠性由应用或用户保证。
  • 有应答服务和无应答服务:有应答服务:接收方收到数据后向发送方给出相应应答。无应答服务:收到数据后不给出应答。

ISO/OSI模型:

计算机网络(北邮信息工程期末速通)_第1张图片
  • 物理层:传输单位是比特,任务是透明的传输比特流
  • 数据链路层:传输单位是帧,将网络层传来的IP数据包组装成帧
  • 网络层:传输单位是数据包,为分组交换网上的不同主机提供通信服务
  • 传输层:传输单位是报文段(TCP)或用户数据包(UDP),负责主机两个进程间的通信
  • 会话层:允许不同主机上的各个进程间进行对话
  • 表示层:提供数据表示变换
  • 应用层:用户与网络的界面

TCP/IP模型:

osi参考模型与TCP/IP分层模型_大海_sea的博客-CSDN博客

TCP/IP和OSI模型的不同:

  • OSI在网络层支持无连接面向连接的通信,在传输层仅有面向连接的通信。TCP/IP在网络层仅有无连接通信,但在传输层支持无连接面向连接的模式。
  • 相对OSI模型,TCP/IP模型并没有明确区分协议,接口,服务

应用层

⭐网络应用模型

客户/服务器模型(C/S):有一个总是打开的主机称为服务器,服务器一直处于接受请求状态,当其他客户机发送请求,服务器接收请求后,给予对应服务。

P2P模型:相比于C/S模型,P2P模型中网络的传输内容不再保存在中心服务器,而是分配到每个节点,每个节点都具有上传和下载的功能

⭐⭐⭐⭐域名系统[DNS]

层次域名空间:因特网采用层次树状结构命名法,采用这种命名法,任何一个链接到因特网的主机都有一个唯一的层次结构名称,即域名。如www.cskaoyan.com中com为顶级域名,cskaoyan和www分别为二,三级域名。

注意事项:

  • 标号英文不区分大小写
  • 标号中除"-"字符外,不允许使用其他符号
  • 每个标号不超过63个字符,完整域名不超过255个字符
  • 级别最低的域名写在最左边,级别最高的域名写在最右边

域名服务器:因特网的域名系统被设计出一个联机分布式的数据库系统,采用C/S模型。域名到IP地址的解析是由域名服务器上的程序完成的。主要有四种域名服务器:根域名服务器,顶级域名服务器,权域名服务器,本地域名服务器。

域名解析过程:域名解析是指把域名映射成IP地址或把IP地址映射成域名的过程,前者称为正向解析,后者叫反向解析。当客户端需要域名解析时,会通过本机DNS客户端构造请求报文,以UDP数据包的形式发往本地域名服务器。

域名解析的方式:递归查询,递归与迭代相结合查询

⭐⭐文件传输协议[FTP]

FTP工作原理:FTP提供交互式访问,采用C/S工作方式,使用TCP可靠的传输服务。一个FTP可以为多个客户进程服务。FTP的服务器进程由两大部分组成:主进程:负责接收新的请求。从属进程:负责处理单个请求。

控制连接和数据连接:使用两个并行TCP连接:

  • 控制连接(端口21):用来传输控制信息,一直保持开启
  • 数据连接(端口20):有两种模式,主动模式是服务器连接到客户端,被动模式是客户端连接到服务器

⭐电子邮件

电子邮件组成结构:

  • 用户代理(UA):用户和电子邮件系统的接口
  • 邮件服务器:用于发送和接收邮件
  • 电子邮件使用协议:主要有发送协议(SMTP,使用push)和读取协议(POP3,使用pull)

MIME(多用途网络邮件扩充):解决语言格式问题

SMTP和POP3:SMTP采用TCP连接,端口号为25,使用MAIL命令开始,QUIT命令退出。POP3使用C/S工作方式,在传输层使用TCP,端口号为110,有两种工作方式:下载并保留服务器文件,下载并删除服务器文件。

⭐⭐万维网

万维网:WWW,是一个分布式联机信息存储空间,由全域“统一资源定位符”(URL)对资源进行标识,采用超文本传输协议(http)

万维网内核:

  • 统一资源定位符(URL):负责标识万维网上的各种文档,并且每个文档唯一对应一个URL
  • 超文本传输协议(HTTP):应用层协议,使用TCP连接进行可靠传输,无状态(每次访问服务器响应都相同),可以使用非持久连接或持久连接
  • 超文本标记语言(HTML):一种文档结构标识语言,它使用一些约定标记,对页面上的信息进行描述

HTTP操作过程:

  1. 浏览器分析链接指向页面的URL
  2. 浏览器向DNS请求解析IP地址
  3. 域名系统DNS解析出该网站服务器的IP地址
  4. 浏览器与服务器建立TCP连接
  5. 浏览器发出HTTP请求
  6. 服务器通过HTTP相应把文件发送给浏览器
  7. 释放TCP连接
  8. 浏览器解释文件,并将web页面显示给用户
计算机网络(北邮信息工程期末速通)_第2张图片

常见的应用层程序:

应用程序 FTP数据连接 FTP控制连接 TELNET SMTP DNS TFTP HTTP POP3 SNMP
使用协议 TCP TCP TCP TCP UDP UDP TCP TCP UDP
熟知端口号 20 21 23 25 53 69 80 110 161

传输层

⭐⭐提供的服务

传输层的功能:

  • 应用层提供通信服务,他是面向通信部分的最高层,也是用户功能的最低层。
  • 传输层位于网络层之上,他为运行在不同主机上的进程间提供了逻辑通信(即端对端的通信),而网络层是提供主机间的逻辑通信。
  • 对收到的报文进行差错检测
  • 提供两种传输协议:面向连接的TCP,无连接的UDP

复用和分用:复用是指发送方不同的应用进程都使用同一个传输层协议传送数据。分用是指接收方的传输层在剥去报文的首部后能够把数据正确分配给目的应用进程。

端口的作用:端口能让应用层的数据向下交付给传输层,以及让传输层知道应将报文段中的数据向上通过端口交付给应用层相应的进程

端口号:分为熟知端口号(0-1023):这些端口号被分配给TCP/IP等最重要的应用程序。登记端口号(1024-49151):这类端口号必须先登记,才能使用。短暂端口号(49151~65535):仅供客户端使用

套接字:端口号拼接到IP地址构成套接字Socket

⭐⭐⭐UDP协议

UDP数据包:UDP仅在IP的数据包服务上增加了两个基本服务:复用分用差错检验。

UDP优点:

  • UDP无须建立连接,不会引入连接建立的时延
  • 无连接状态。不需要像TCP一样在端系统维护连接状态
  • 分组首部开销小,仅为8B,而TCP为20B
  • 没有拥塞控制,应用层能更好地控制发送数据和发送时间
  • 支持一对一到一对多,多对多的交互通信

UDP首部格式:具有16位源端口号,16位目的端口号,16位UDP长度,16位UDP检验和(共8字节)

UDP校验:在计算校验和时,会在UDP数据包前面临时添加12B的伪首部,来进行校验和计算。伪首部不参与数据传送,只是用来计算校验和。

⭐⭐⭐⭐TCP协议

TCP协议特点:TCP是在不可靠的IP层上实现的可靠的数据传输协议,TCP是TCP/IP体系中非常复杂的一个协议,主要特点如下:

  • TCP是面向连接的传输层协议
  • 每条TCP连接只能有两个端点,每条TCP连接只能是点对点的
  • TCP提供可靠的交付服务,保证传输数据的无差错,不丢失,不重复且有序
  • TCP提供全双工Full Duplex通信
  • TCP是面向字节流的,应用程序的数据块会被TCP视为一连串无结构的字节流

TCP报文段:TCP传送的数据单元称为报文段,TCP报文段可以用来运载数据,也可以用来建立连接,释放连接和应答。一个TCP报文段分为首部和数据两个部分,整个报文段作为IP数据包的数据部分,封装在IP数据包中,其首部的前20B是固定的。

TCP首部:

  • 源端口和目的端口
  • 序号seq:记录报文段第一个字节的序号
  • 确认号:由接收方返回发送方,表示下一个报文段期望收到的序号,若确认号为N,则代表N-1之前的数据都已经被顺利接收
  • 数据偏移:首部长度,包括固定20B+扩展长度,最大为60B
  • 急位URG:URG=1时,表明紧急指针字段有效。告诉系统应尽快传送该报文段中的紧急数据。
  • 确认位ACK:仅当ACK=1时确认号字段才有效,TCP规定,在连接建立后,所有报文段都要把ACK置1
  • 推送位PSH(push):当接收方TCP收到PSH=1,就应尽快交付给应用进程,不用等到整个缓存填满再一并交付
  • 同步位SYN:SYN=1表示这是一个连接请求或连接接受包
  • 终止位FIN:FIN=1时,表示发送方的数据已经发送完毕,要求释放传输连接

TCP连接管理:TCP连接有三个阶段:连接建立,数据传送和连接释放。TCP采用C/S方式进行连接建立。

TCP的连接建立通常经历三个步骤,称为三次握手

  1. 客户机TCP向服务器TCP发送连接请求报文段。此报文段首部同步位SYN置为1,同时选择一个初始序号seq=x。TCP规定,SYN报文段不能携带数据,但要消耗掉一个序号。
  2. 服务器TCP收到连接请求报文段后,若同意建立连接,则向客户机发回确认信号,并为该TCP连接分配缓存和变量。在确认报文段中,把SYN和ACK位都置为1,确认号是ack=x+1,同时为自己选择一个初始序号seq=y,同理,确认报文段不携带数据,但也要消耗一个序号。
  3. 客户机收到确认报文段后,还要向服务器给出确认,并为该TCP连接分配缓存和变量。确认报文段的ACK=1,确认号ack=y+1,序号seq=x+1.该报文段可以进行数据携带,若不携带数据,则不消耗序号。
计算机网络(北邮信息工程期末速通)_第3张图片

TCP的连接释放通常经历四个步骤,称为四次挥手

  1. 客户机打算关闭连接时,向其TCP发送连接释放报文段,并停止发送数据,该报文段终止位FIN置为1,ACK=1,序号seq=u,u是前面已传送过的数据的最后一位序号+1,FIN报文段即使不携带数据也消耗一个序号。
  2. 服务器收到连接释放报文段后发出确认,ACK=1,确认号ack=u+1,序号seq=v,v等于前面已传送过的数据的最后一个字节的序号+1,此时从客户机到服务器这个方向的连接(客户机发送端)就释放了,但仍未关闭。
  3. 同理,但这次是释放服务器到客户机这个方向的连接,服务器发送连接释放报文段到TCP,FIN=1,ACK=1,seq=w(w=v+步骤2的数据传输,未传数据则w=v),ack=u+1.
  4. 客户机接收到报文段后,发出确认,ACK=1seq=u+1ack=w+1.发送确认后客户机等待2MSL,若在此时钟内服务器成功收到确认报文段,则服务器可以直接关机,等待时钟结束后,客户机也关机。若确认丢失,服务器会再次发送确认请求,此时客户机处于等待时钟,若在时钟内再次收到确认请求,客户机会重新发送确认报文段,同时重新进入新的时钟等待周期。
计算机网络(北邮信息工程期末速通)_第4张图片

TCP可靠传输:主要是通过三个条件来满足:

  • 序号:TCP首部的序号保证数据能有序提交给应用层
  • 确认:TCP采用累计确认,例如传输三组数据之后,才进行一次确认,确认只需回应最近收到的数据,如第三组的最后一位数据
  • 重传:两种事件会引发TCP重传:超时:TCP每发送一次报文段就设置一次计时器,若超时还未收到确认,则重传这一报文段。冗余ACK:就是再次确认某个报文段的ACK,而发送方之前已经收到过该报文段的确认

TCP流量控制:传输层和数据链路层流量控制的区别是:传输层定义端到端用户间的流量控制,数据链路层定义两个中间相邻节点的流量控制。数据链路层的滑动窗口协议的窗口大小不能动态变化,而传输层可以动态变化。

拥塞控制和流量控制的区别:拥塞控制是控制全局数据量,使网络能够承受现有的网络负载。而流量控制是针对点对点间的通信量控制,抑制发送速率,使接收端能够来得及接收。

接收窗口Flow 和拥塞窗口Congestion:接收窗口rwnd是根据目前接收缓存大小所许诺的最新窗口值,反映接收方容量。拥塞窗口cwnd是发送方根据自己估算的网络拥塞程度设置的窗口值,反映网络容量。发送窗口上限值=min[rwnd,cwnd]

TCP拥塞控制

  1. 慢开始和拥塞避免:TCP刚连接好时,先令cwnd=1每收到一个新报文段的确认cwnd+1,这样逐步增大发送方的cwnd,使诸如网络速率更合理。如一开始cwnd=1,发送一个报文段确认后,cwnd=2,第二次可以发送两个报文段,都确认后,cwnd=4,一直下去就可以达到规定的慢开始门限ssthresh(阈值),然后改用拥塞避免算法:每经过一个往返时延RTT就把cwnd+1,而不是加倍,即转换为线性增长。

    网络拥塞的处理:发送方判断出现拥塞,就把慢开始门限设置为出现拥塞时发送方cwnd值的一半,然后把cwnd置1,重新启动慢开始算法。如最开始ssthresh=16,经过慢开始算法后,采用拥塞避免算法,当cwnd=24时出现拥塞,此时设置ssthresh=12,cwnd=1,重新开始慢开始算法。

  2. 快重传和快恢复快重传:当发送方连续收到三个重复的ACK报文时,直接重传对方未收到的文段,不必等待重传计时器超时。快恢复:当发送方连续收到三个冗余ACK,把ssthresh设置成此时cwnd的一半,然后此时直接把cwnd设置为ssthresh的值,开始拥塞避免算法,不用慢开始。

网络层

⭐功能

异构网络互联:TCP/IP体系在网络互联上采用的做法是在网络层(IP层)采用标准化协议,但是相互连接的网络可以是异构网络

路由与转发:路由器主要完成两个功能:一是路由选择(确定路径),二是分组转发(当一个分组到达时采取的动作),前者会根据路由选择协议构造出路由表,并定期更新维护。后者处理通过路由器的数据流,关键是转发表查询,转发及相关的队列管理和任务调度。

拥塞控制:保证子网能承载所达到的流量,全局性

⭐⭐路由算法

静态路由算法(非自适应路由算法):由网络管理员手动配置路由信息,当网络拓扑结构或链路状态发生变化时,也需要手动进行修改。

动态路由算法(自适应路由算法):路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。这些路由会在一定的时间间隙里不断更新。

距离-向量路由算法:所有结点定期将他们的路由选择表传送给所有与之直接相邻的结点,路由选择表里包括:路径目的地,路径代价(距离),在下面情况会更新路由选择表:1,被通告有一条新加入的路由,2,发来的路由信息中,发现有一条到达目的地的路由更短

链路状态路由算法:此方法要求每个参与算法的结点都具有完全的网络拓扑信息,他们执行下面两项任务:1,主动测试所有邻接结点的状态,两个共享一条链接的结点是相邻结点,他们链接同一条链路。2,定期将链路状态传播给其他路由节点。链路状态路由算法主要有三个特征:

  • 向所有路由器发送信息。路由器通过所有端口向所有相邻的路由器发送信息,而每个相邻路由器又将此信息发给其他路由器
  • 发送的信息是与路由器相邻的所有路由器的链路状态,并不会直接发送给未相邻路由器内容
  • 只有当链路状态变化时,才更新信息

层次路由:因特网将整个互联网划分为比较小的自治系统,每个自治系统有权自主决定本系统采用何种路由选择协议,若两个自治系统需要通信,则需要一种系统间的路由协议来屏蔽差异。因特网把路由协议分为两类:

  • 自治系统内:内部网关协议(IGP),具体有RIP,OSPF等
  • 不同自治系统间:外部网关协议(EGP),具体有BGP

⭐⭐⭐⭐IPv4

IPv4分组格式:

  • 首部长度:占4位,以32位(4字节)为单位,故最大长度可为60B,最常见的首部长度为20B
  • 总长度:占16位,指首部和数据之和的长度,单位为字节,最大为65535B,以太网帧的最大传送单元为MTU(1500B),因此当数据包被封装为帧时,数据包总长一定不能超过MTU
  • 标识:每产生一个数据包就+1,当一个数据包长度超过MTU时,需采用分片传输,此时每个数据包片都复制一次标识号,以便重新组装
  • 标志:占3位,最低位为MFMF=1代表后面还有分片。中间一位是DF只有DF=0时才允许分片片偏移(分片后,某片在原分组中的相对位置,以8字节作为偏移单位)。

IP数据包分片:一个数据链路层数据包能承载的最大数据量称为最大传送单元(MTU),不同的数据链路层协议有不同的MTU,IP分片涉及一定计算。

IP数据报分片例题:一个长为4000B的数据包(首部20B,数据部分3980B),到达一个路由器,需要转发到一条MTU=1500B的链路上。

答:每个分片最大能发送1480B的数据(有20B的头部),故能分为三片。第一片:MF=1,DF=0,代表可分片且右侧仍有分片,片偏移为0,有效数据为1480B.第二片:MF=1,DF=0,片偏移为185(1480/8)有效数据为1480B.第三片:MF=0(右侧已经没有剩余分片),DF=0,片偏移=370,有效数据为1020B(3980-2×1480)

网络层转发分组的流程:

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

IPv4地址与NAT:IPv4的基本格式举例:192.168.1.10。共有四部分,每部分占8位,所有每部分最大可为255.按网络号占用将IPv4地址分为5类:

  • A类:第一部分为1-126,默认子网掩码为255.0.0.0,即第一部分为网络号,后三部分为主机号
  • B类:第一部分为128-191,默认子网掩码为255.255.0.0,即第一,二部分为网络号,第三,四部分为主机号
  • C类:第一部分为192-223,默认子网掩码为255.255.255.0,即第一,二,三部分为网络号,第四部分为主机号
  • D,E类不常用,此处不介绍

主机号全为0表示网络本身。主机号为1表示网络的广播地址,也称直接广播地址,可以通过该地址为连接到网络的所有主机传输信息。

127.0.0.0保留为环回自检地址,0.0.0.0表示本网络上的本主机,255.255.255.255表示整个TCP/IP网络的广播地址,但由于路由器对广播域的隔离,255.255.255.255等效于本网络的广播地址

网络地址转换(NAT)是指通过将专用网络地址转换为共用地址,从而对外隐藏内部管理的IP地址,NAT路由器至少有一个有效的外部全球地址,使用本地地址主机和外界通信时,NAT路由器使用NAT转换表将本地地址转换为全球地址,私有IP网段:

  • 1个A类:10.0.0.0-10.255.255.255
  • 16个B类:172.16.0.0-172.31.255.255
  • 256个C类:192.168.0.0-192.168.255.255

子网掩码:是一个与IP地址相对应的二进制串,1对应IP地址的网络号和子网号0对应主机号。只需要将IP地址子网掩码按位与,就能得到相应网络的子网地址

无分类域间选择(CIDR):CIDR使用网络前缀来代替子网络的概念,因此IP地址的无分类两级编址为IP=<网络前缀>,<主机号>.使用CIDR时路由表由“网络前缀”和“下一跳地址”组成。查找时可能获得多个匹配结果,此时具有最长前缀的网络路由就是最具体的结果

变长子网类型题目例:对于128.14.32.5/20这个地址,计算出他的网络前缀

答:由20可以知道,前20位是网络前缀,即网络号,是1.经计算:IP=10000000.00001110.00100000.00000101.掩码=11111111.11111111.11110000.0000000000。二者按位与后得到网络地址为:10000000.00001110.00100000.00000000.由于后12位全0的是主机号,所以网络前缀就是前20位=10000000.00001110.0010

IP地址与硬件地址:IP地址是网络层及以上使用的地址,存放在IP数据包的首部,硬件地址(MAC地址)是数据链路层使用的地址,存放在MAC帧的首部。数据封装后,数据链路层看不到数据包组中的IP地址。

地址解析协议ARP:工作原理,假设主机A向主机B发送IP数据包:

  1. 先在ARP高速缓存中查看有没有B的IP地址,若有,则查出其硬件地址,再将此地址写入MAC帧,通过局域网将MAC帧发送到硬件地址
  2. 若没有,使用目的地址位FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求,网络内的所有主机均收到请求。主机B收到请求后,向主机A发出相应ARP分组,其中包含主机B的IP地址和MAC地址的映射关系。主机A收到后再进行传输。

动态主机配置协议(DHCP):常用于给主机动态分配IP地址,提供了即插即用的联网机制,DHCP是应用层协议,基于UDP,DHCP服务器和DHCP客户端的交换过程如下:

  1. DHCP客户机广播“DHCP发现”消息,来寻找DHCP服务器
  2. DHCP服务器收到该消息后,向网络中广播“DHCP提供”消息,其中包括提供DHCP客户机的IP地址和相关配置信息
  3. DHCP客户机收到“DHCP提供”消息后,如果接收DHCP服务器提供的相关参数,那么通过广播“DHCP请求”来向DHCP服务器请求提供IP地址
  4. DHCP服务器广播“DHCP确认”信息,将IP地址分配给DHCP客户机

网络控制报文协议(ICMP):ICMP报文种类有两种,即ICMP差错报告报文和ICMP询问报文

ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源路由器报告差错和异常:终点不可达(路径有误),源点抑制(路由器主机过于拥塞),时间超过。

不应发送差错报告报文的情况:1,对ICMP差错报告报文不再发送ICMP差错报告报文。2,第一个分片的数据报片的所有后续数据报片都不再发送ICMP差错报文。3,对具有组播地址的数据包都不发生ICMP差错报告报文。

⭐⭐IPv6

分八段,每段由一个十六进制数编号:如0010 0000 0000 0001:0000 1101 1011 1000:… 编码后变为2001:0db8:…

IPv6的特点:

  • 更大的地址空间,从IPv4的32位增大到128位
  • 支持即插即用(自动配置)
  • IPv6只有在包的源节点才能分片
  • IPv6首部长度必须是8B的整数倍(IPv4是4B)
  • 从根本上解决了IP地址的耗尽问题

⭐移动IP

移动IP:基于IPv4的移动IP定义三种功能实体:移动结点,本地代理,外部代理。

  • 移动结点:具有永久IP地址
  • 本地代理:一个移动节点的永久居所被称为归属网络,在归属网络中代表移动结点执行移动管理功能的实体称为本地代理
  • 外部代理:在外部网络帮助移动结点完成移动管理的结点称为外部代理

移动IP通信流程:

  1. 移动节点漫游到一个外地网络时,仍使用固定IP进行通信。为使得能正常通信,移动结点需要向本地代理注册当前地址(称为转交地址)
  2. 本地代理收到注册请求后,会构建一条通向转交地址的同道,将发送给移动结点的IP分组通过通道送到转交地址处
  3. 在转交地址处解除封装,恢复原始IP分组,送到移动结点

⭐IP组播

组播的概念:有的程序需要把一个分组发给多个目标主机,不是让源主机一个个发送给目标主机,而是让源主机把单个分组发给组播地址,由组播地址标识一组地址。使用因特网组管理协议IGMP来加入组播组。

IP组播地址:使用D类地址格式(224.0.0.0~239.255.255.255),组播可分为两种:一种只在本局域网内进行硬件组播,一种在因特网范围内进行组播

IGMP与组播路由算法:

  1. 某台主机加入新组播组时,该主机应向组播组的组播地址发送IGMP报文,声明自己要成为该组的成员,本地路由器收到报文后,将新成员关系转发给其他组播路由器
  2. 由于组成员关系时动态的,本地组播路由器要周期性探寻本地局域网上的主机,若多次探寻仍未响应的主机,则被认为推出组播组,并转发新成员关系

⭐⭐⭐⭐路由协议

路由信息协议RIP:RIP规定:

  • 网络的每个路由器都要维护自身到其他目的网络的距离记录,距离也称跳数,规定一个路由器之间连接网络的跳数为1,每经过一个路由器,跳数加1.
  • RIP认为好的路由就是跳数最少的路由
  • RIP允许一条路径最多只能包含15个路由器(有一个路由器是源路由器),最多允许15跳(路由器到网络1+14个路由器),因此距离等于16时表示不可达
  • RIP默认任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息(动态维护)

RIP特点:仅和相邻路由器交换信息,交换的信息是当前路由器知道的所有信息(自己的路由表),按固定时间间隔交换信息

开放最短路径优先协议OSPF:基本特点:

  • 使用洪泛法向本系统所有路由器发送信息
  • 发送信息是相邻所有路由器的链路状态
  • 只有当链路状态变化时才会更新

OSFP是网络层协议,不使用TCP,UDP,而是之间用IP数据包传输(首部协议字段为89),而RIP是应用层协议,他在传输层使用UDP。通过信息交换,最终能建立一个链路状态数据库(路由拓扑图),每个路由器根据这个数据库,采用Dijkstra算法计算自己到各目的网络的最优路径(代价最小),来优化自己的路由表

边界网关协议BGP:用于不同自治系统路由器间交换信息的协议。BGP采用路径向量路由选择协议(而不是距离向量协议和链路状态协议),这种协议使得他会尽力寻找一条较好的能抵达目的地的路由(不一定是最佳)。BGP是基于TCP的应用层协议。

协议 RIP OSPF BGP
类型 内部 内部 外部
路由算法 距离-向量 链路状态 路径-向量
传递协议 UDP IP TCP
路径选择 跳数最少 代价最低 较好,非最佳
交换结点 和本结点相邻的路由器 网络中的所有路由器 和本结点相邻的路由器
交换内容 当前本路由器知道的所有信息,路由表 相邻的所有路由器的链路状态 首次:整个路由表;非首次:变化部分

数据链路层

⭐功能

数据链路层的功能主要是为网络层提供服务:

  • 无确认的无连接服务:源机器发送数据帧时不需要先建立链路连接,不需要收到确认,不负责对丢失帧的重发
  • 有确认的无连接服务:源机器发送数据帧时不需要先建立链路连接,但需要收到返回确认,对规定时间内未收到确认信号的数据,会重传丢失帧,以提高可靠性
  • 有确认的面向连接服务:帧传输过程分为三阶段:建立数据链路,传输帧,释放数据链路。目的机器需对收到的每一帧都进行确认,可靠性最高。

⭐组帧

帧计数:

  • 字符计数法:是指在帧头部使用一个计数字段来表明帧内字符数,目的结点可以根据此字符数来确定帧结束的位置。

  • 字符填充的首尾定界符法:符填充法使用特定字符来定界一帧的开始SOH与结束EOT,在数据内部若有特殊字符,则需添加转义字符ESC作为标注,表示该字符是数据内的内容,而不是本身需要识别的字符

    例:a)网络层发送一串数据:SOH | A EOT ESC B | EOT (此处用“ | ”来分隔真正的开始和结束符)。 b)数据链路层对数据进行处理填充: SOH | A ESC EOT ESC ESC B | EOT 可见在数据内部EOT,ESC前都被添加了一个ESC,来表示读取时,他们至少数据内部的内容,本身不参与此次数据的编译。c)接收方传送给网络层的数据:SOH | A EOT ESC B | EOT 数据内部的ESC又被重新解标识,发送原始数据给网络层

  • 零比特填充的首尾标志法:使用01111110来标志一帧的开始和结束(6个1),而对于数据,数据链路层中每遇到5个“1”就会自动在后面+一个0,来避免标志混淆,而接收方做该过程的逆操作,每接收到五个1,就自动删除其后面紧跟的0

    例:原始数据(为了便于理解,手动找出了11111数据组):0110 11111 11111 0 11111 0010 传输数据:0110 111110 1111100 111110 0010

  • 违规编码法:如曼彻斯特编码:规定数据中用“高-低”电平表示“1”,“低-高”电平表示“0”,而“高-高”,“低-低”电平违规,不存在于数据组中,则可以令“高-高”表示开始,“低-低”结束,就不会混淆

⭐差错控制

检错编码:奇偶校验码,循环冗余码,海明码(纠错编码)

⭐⭐⭐⭐流量控制和可靠传输机制

滑动窗口机制:窗口指的是每次能发送或接收数据包大小

  • 停止-等待流量控制:发送方每发送一帧,都要等待接收方的应答信号后,才能发送下一帧,接收方每接收一帧,都要反馈一个应答信号
  • 多帧滑动窗口与后退N帧协议(GBN):当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧
  • 多帧滑动窗口与选择重传协议(SR):类似于GBN,但是他只会重传未能正确接收的数据,如第2位未能收到应答,但是收到了第3位到第8位的应答,那么会直接重传第2位,其他位不需要重传。(GBN则会直接丢弃3-8位的数据,全部从2开始重传)
  • 接收窗口WR+发送窗口WR最大为2n,且发送窗口需小于等于接收窗口,n是帧序号

⭐⭐⭐⭐介质访问控制

信道划分介质访问控制:

  • 频分多路复用(FDM):将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术

  • 时分多路复用(TDM):将一条物理信道按时间分为若干时间片,轮流分配给多个信号使用,每个时间片只能一个信号使用

  • 波分多路复用(WDM):即光的频分多路复用,利用光纤传播不同波长(频率)的光信号,由于波长不同,各路光信号互不干扰,最后再用波长分解器将各路波长分解出来

  • 码分多路复用(CDM):采用不同的编码来区分各路原始信号,如A的码片序列为00011011,则对于A站,发送比特1就是发送00011011,发送比特0就是发送11100100.按惯例习惯将码片序列中的0写为-11写为+1,所以A的码片序列为S=(-1-1-1+1+1-1+1+1)

    设还有B站,其码片序列为T=(-1-1+1-1+1+1+1-1).假设A,B站向C站分别发送数据1,0.A站发送向量S=(-1-1-1+1+1-1+1+1)B站发送向量-T=(+1+1-1+1-1-1-1+1).二者在公共信道上线性叠加后得到S-T=(0 0-2+2 0-2 0+2).到达C站对向量解码:A数据等于S叉乘S-T(8),B数据等于T叉乘S-T(-8),最后得到的结果除以码片位数就能得到发送数据,A(1),B(-1,-1即0)

  • ALOHA协议:纯ALOHA协议:网络中站点需要发送数据时可以不进行检测就发送数据,若在一段时间未收到确认,则被认为发生了冲突,发送站点需要等待一段时间才能再发送;时隙ALOHA协议:规定只能在每个时隙开始才能发送一个帧,避免了用户发送数据的随意性,减少了数据冲突的可能性。

  • CSMA协议:一个结点要发送数据时首先侦听信道

    信道状态 1-坚持 非坚持 p-坚持
    空闲 立即发送数据 立即发送数据 以概率p发送数据,以概率1-p推迟到下一个时隙发送
    继续坚持监听 放弃侦听,等待下一个随机时间侦听 持续侦听,直到信道空闲

随机访问介质访问控制:

  • CSMA/CD协议:载波侦听多路访问/碰撞检测,遵循“先听后发,边听边发,冲突停发,随机重发”

    1. 适配器从网络层获取一个分组,封装成以太网帧,放入适配器缓存,准备发送

    2. 如果适配器侦听信道空闲,则开始发送帧。若信道忙,则持续侦听,直到空闲,然后发送

    3. 发送过程中,适配器持续检测信道,若无碰撞则顺利发送,若检测到碰撞,则中止发送,并发送拥塞信号

    4. 中止发送后,适配器执行指数退避算法

      设单次端到端的传播时延为τ,在A端发送帧后至多经过2σ后就知道所发生的帧有没有产生碰撞(因为若在期间发生碰撞,说明B端在0

      为使得A端能够确保知道数据是否发生碰撞,规定A数据的发送时间必须大于争用期2τ,才能保证在数据发完之前就已经检测到数据碰撞,故会规定一个最小帧长(总线传播时延×数据传输速率×2),来确保帧的发送时间足够长.

      以太网规定争用期长度为51.2微秒,为解决发生后的冲突,CSMA/CD采用二进制指数退避算法来解决碰撞问题。

  • 二进制指数退避算法:

    1. 确定基本退避时间,一般取争用期2τ
    2. 定义参数k,它等于重传次数,k不超过10,即k=min[重传次数,10]
    3. 从整数集合[0,1,…,2k-1]随机取出一个数r,重传需要的退避时间就是r倍基本退避时间,即2rτ
    4. 当重传16次仍不能成功,说明网络拥塞严重,则向高层报告错误

在无线局域网环境下CSMA/CD协议不能简单搬用:一是因为无线介质信号强度动态变化范围大,检测不便,二是无线通信存在隐蔽站问题,可能检测不到

轮询访问介质访问控制:

在轮询访问中,用户不能随机发送信息,而是要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道分配,只能同时有一个结点在使用信道

  • 令牌传递协议:令牌是由一组特殊比特组合组成的帧,一个令牌会在各结点之间以固定次序交换。只有拿到令牌的计算机才能发送数据帧

⭐⭐⭐局域网,广域网

局域网基本概念和结构:局域网常见拓扑结构有四类:总线形网络,星形网络,环形网络,网状形网络。局域网的主流传输介质是双绞线。局域网的介质访问控制方法主要是CSMA/CD,令牌总线/令牌环

以太网与IEEE 802.3:以太网采用总线型拓扑结构,所有计算机共享一条主线,以广播形式发送信息,采用CSMA/CD来对总线进行访问控制。以太网采用两项措施简化通信:1.无连接的工作方式:不编号,不确认,尽最大努力交付数据,不可靠服务。2.发送数据采用曼彻斯特编码信号。

计算机与外界局域网的连接是通过插入主机箱的网络接口卡,每块网卡都有唯一地址MAC(介质访问地址或硬件地址)

以太网的MAC帧:地址:通常使用6字节MAC地址。数据:46-1500字节,以太网帧要求必须满足最小长度64字节,数据较少时必须加以填充

高速以太网:

  • 100BASE-T 以太网(100MB/s):支持全双工和半双工模式,全双工模式下不会发送碰撞,故不需要CSMA/CD协议
  • 吉比特以太网(1GB/s):同理,在半双工模式下才需要使用CSMA/CD协议
  • 10吉比特以太网(10GB/s):只工作在全双工模式

广域网:通常指覆盖范围广的长距离网络。局域网使用的协议主要在数据链路层,而广域网主要在网络层

PPP协议组成:

  • 链路控制协议LCP:一种扩展链路控制协议,用于管理链路
  • 网络控制协议NCP:PPP协议允许多种网络层协议,对不同的网络层都要用一相应的NCP来配置
  • 一个将IP数据包封装到串行链路的方法
  • PPP面向字节,对特殊字符采用字节填充法

PPP协议状态:

  • 线路处于静止状态,不存在物理层连接
  • 线路处于载波状态,建立物理连接,线路变为建立状态
  • LCP开始选项商定,商定成功进入身份验证状态
  • 身份验证通过,进入网络状态
  • 采用NCP配置网络层,配置成功后进入打开状态,进行数据传输
  • 数据传输完成后进入终止状态,载波停止后返回静止状态

HDLD协议:HDLD有三种站类型:主站,从站,复合站

  • 主站:负责控制链路操作,主站发出的帧称为命令帧
  • 从站:受控于主站,按主站命令进行操作,发出响应帧
  • 复合站:拥有主站和从站的功能

数据操作方式:

  • 正常响应方式:一种非平衡结构操作方式,主站向从站传输数据,从站收到主站许可后才可以传输响应
  • 异步平衡方式:一种平衡结构操作方式,这种方式中,每个复合站都能对另一站进行数据传输
  • 异步响应方式:一种非平衡结构操作方式,这种方式中,从站未收到主站许可也可以传输

PPP和HDLC的区别:

  • PPP面向字节,HDLC面向比特
  • PPP不采用序号和确认机制,只保证无差错接收,端到端差错检测由高层负责,HDLC使用编号和确认机制保证可靠传输

⭐设备

网桥:多个以太网通过网桥连接形成一个更大的以太网,原来的以太网就成为一个网段(LAN).网桥工作在链路层的MAC子层,可以使各网段称为隔离开的碰撞域

网桥的基本特点:1,具备寻址和路径选择能力。2,从源网络接收帧,采用目的网络的介质访问控制协议向目的网络转发该帧。3,可使用不同物理层,可互联不同局域网。

透明网桥(可能不是最佳路由):假设有一需转发帧:

  1. 如果源LAN和目的LAN相同,丢弃该帧,不需要转发
  2. 如果源LAN和目的LAN不同,转发该帧
  3. 如果目的LAN未知,扩散该帧

源路由网桥(最佳路由):路由选择由源站负责,源路由生成过程如下:

  1. 未知路径时,发送一个发现帧
  2. 途中每个网桥都转发此帧,最终发现帧可以通过多个途径到达目的站
  3. 目的站一一发送应答帧,应答帧原路返回,途径网桥把自己标注在应答帧中
  4. 源站选出一个最佳路由

以太网交换机主要采用两种交换模式:

  • 直通式交换机:只检查目的地址,这种方式速度快,但不可靠
  • 存储转发式交换机:先将数据存入高速缓存器并检查数据是否正确,确认无误后再通过输出端口将该帧发出,若帧有误则丢弃。可靠性高,并且支持不同速率的端口转换,但延迟较大。

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