计算机网络复习

网络模型

计算机网络模型

应用层:提供用户接口,如客户端程序和服务器程序,数据单位为报文。

传输层:提供进程间的通用数据传输服务,包括两种协议:

  • TCP:传输控制协议,提供面向连接、可靠的数据传输服务,单位为报文段。
  • UDP:用户数据报协议,提供无连接、尽最大努力的数据传输服务(不保证数据传输的可靠性),单位为用户数据报。
  • TCP注意提供完整性服务,UDP主要提供及时性服务。

网络层:为主机间提供数据传输服务,将传输层的报文段或用户数据报封装成分组,负责选择最佳路径,规划IP地址,单位是分组(又称数据报)。

数据链路层:不同网络类型,发送数据的机制不同,数据链路层将数据包封装成在不同网络中传输的帧,单位是帧。

物理层:物理层解决如何再连接各种计算机的传输媒体上传输数据比特流,单位是比特。

表示层:数据压缩、加密以及数据描述。应用程序不必担心再各台主机中存储的内部格式(二进制、ASCII)不同的问题。

会话层:建立会话,如session认证,断点续传。

路由器:最下三层协议。

交换机:最下两层协议。

TCP/IP四层模型:将数据链路层物理层合并为网络接口层

传输层

TCP和UDP的特点

  • 用户数据报协议UDP:无连接,无拥塞机制、面向报文。如视频传输、实时通信。
  • 传输控制协议TCP:面向连接、可靠、有流量控制、有拥塞控制,面向字节流。一对一。

TCP如何保证可靠传输

  1. 应用数据被分割为数据块
  2. TCP给每个包进行编号,接收方对数据包进行排序再将有序数据传送给应用层
  3. 校验和,TCP保持它首部和数据的校验和,检验和有差错的包会被丢弃
  4. TCP丢弃重复的数据包
  5. 流量控制,TCP连接的每一方都有固定大小的缓冲空间,TCP接受端只允许发送端发送接收端缓冲区能够接纳的数据,当接收方来不及处理发送方的数据,会提示发送方降低发送的速率,防止包丢失。TCP的流量控制协议是可变大小的滑动窗口协议。(TCP使用滑动窗口实现流量控制)
  6. 拥塞控制,网络拥塞时减少数据的发送速率。TCP发送方维护一个拥塞窗口(cwnd)的状态变量,该变量的大小取决于网络的拥塞程度。TCP的拥塞控制采用四种算法,即慢开始、避免拥塞、快重传、快恢复
    • 慢开始,思路是当主机开始发送数据时,由小到大逐渐增大拥塞窗口数值,cwnd初始值为1,每经过一个传播轮次,cwnd翻倍。
    • 拥塞避免,思路是让cwnd缓慢增大,每经过一个往返时间RTT就把发送方的cwnd加1。
    • 快重传与快恢复,
  7. ARQ协议(自动重传请求)
    • 停止等待ARQ协议,基本原理是每发送完一个分组就停止发送,等待对方确认,收到对方确认后再发下一个分组。若接收方收到重复分组会丢弃该分组并同时发送确认。
      • 优点是简单
      • 缺点是信道利用率低,等待时间长
    • 连续ARQ协议,发送方维持一个发送窗口,位于发送窗口内的分组可以连续发送,不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认。
      • 优点是信道利用率高,容易实现,即使确认丢失也不必重传
      • 缺点是不能向发送方反映出接收方已经正确收到的所有分组信息。例如:发送方发送5条消息,丢失第三条,此时接收方只能对前两条发送确认,而发送方需要重传后三条消息,又称Go-Back-N(回退N),表示需要退回来重传已经发送过的N条消息。
  8. 超时重传,TCP发出一个报文段后,启动一个计时器,等待目的端确认这个报文段,若不能及时收到确认,将重发这个报文段

三次握手与四次挥手

确认ACK:ACK=1确认号字段有效

同步SYN:SYN=1,ACK=0表示这是一个连接请求报文段。若同意建立连接,响应报文中SYN=1,ACK=1。

终止FIN:用于释放一个连接,FIN=1表示请求释放连接。

三次握手

A:客户端

B:服务端

  • B处于监听(LISTEN)状态,等待用户连接
  • A向B发送连接连接请求报文段,SYN=1,ACK=0,选择一个初始的序号seq=x
  • B收到连接请求报文段,若同意建立连接,则向A发送连接确认报文段,SYN=1,ACK=1,确认号为ack=x+1,选择一个初始的序号seq=y
  • A收到B的连接确认报文段后,还要向B发出确认,确认号为ack=y+1,序号为seq=x+1

四次挥手

  • (双方都可以释放连接)A发送连接释放报文段FIN=1,序号seq=u,等待B的确认
  • B发出确认,确认号ack=u+1,序号seq=v
  • 此时从A到B方向的连接就释放了,TCP连接处于半关闭状态。A不能向B发送数据;B若发送数据,A仍要接收
  • 当B不再需要连接时,发送连接释放请求报文段,FIN=1
  • A收到后发出确认,进入TIME-WAIT状态,等待2MSL(2倍报文最大生存时间)时间后释放连接
  • B收到A的确认后释放连接

RTT:从发送方发送数据到收到来自接收方确认的时间叫做往返时延(RTT)

应用层

应用层的任务是通过应用进程间的交互来完成特定网络应用

域名系统DNS

端口53,提供主机名和IP地址之间相互转换的服务。

文件传输协议FTP

动态主机配置协议DHCP

工作过程如下:

  • 客户端发送Discover报文,该报文目的地址为255.255.255.255:67,源地址为0.0.0.0:68,被放入UDP中,该报文被广播到同一子网的所有主机上。如果客户端和DCHP服务不在一个子网,则需要使用中继代理。
  • DCHP服务器收到Discover报文之后,发送Offer报文交给客户端,该报文包含了客户端所需要的信息。因为客户端可能收到多个服务器提供的信息,所以客户端要进行选择。
  • 如果客户端选择了某个DCHP服务器的信息,就发送Request报文给该服务器。
  • DCHP服务器发送ACK报文,表示客户端此时可以使用提供的信息。

远程登录协议TELNET,用于登录到远程主机

电子邮件协议

  • 发送协议SMTP
  • 读取协议POP3
  • 读取协议IMAP

网络层

与IP网际协议配套使用的三个协议:

  • ARP地址解析协议,从IP解析出在数据链路层使用的硬件地址,未来解决同一个局域网上主机或路由器的IP地址与硬件地址的映射问题。若寻找的主机与源主机不在同一个局域网中,需要通过ARP找到一个位于本局域网的某个路由器的硬件地址,然后将分组发送给这个路由器,让这个路由器将分组转发给下一个网络
  • ICMP网际控制报文协议,是为了更有效的转发IP数据报和提高交付成功的机会,封装在IP数据报中,分为差错报告报文和询问报文
    • 差错报告报文:
      • 3 重点不可达
      • 11 时间超过
      • 12 参数问题
      • 5 改变路由
    • 询问报文:
      • 8或0 回送请求或回答
      • 13或14 时间戳请求或回答
    • 具体应用:
      • Ping,测试两台主机之间的连通性
      • Traceroute,跟踪一个分组从源点到终点的路径
  • IGMP网际组管理协议

IP地址划分,网络号+主机号

IP地址划分

每一类地址的最大主机个数按主机号位数来算,再减去2个

一个是主机号全0(标识这个网络)一个是主机号全1(用于广播)

广播地址的作用,同一个链路种相互连接的主机之间发送数据包

广播地址分为本地广播和直接广播,本地广播只能在当前网络下传播,不能到达本网络之外的其他链路上。

路由器不发送广播包

多播地址的作用,将包发送给特定组内的所有计算机

IP分类的缺点

  • 同一网络下没有地址层次,确实地址的灵活性
  • 不能与现实网络匹配,C类过少达不到要求,B类过多浪费

无分类地址CIDR,前网络号,后主机号即a.b.c.d/x,其中/x表示前x位属于网络号

还有一种划分网络号和主机号的方法,就是子网掩码。将子网掩码和IP地址进行与运算,得到的结果就是网络号

子网划分,就是将主机号分成子网网络地址和子网主机地址

电路交换,由电话连通的方式而来,面向连接的,在传送计算机数据时,通信线路的利用率很低

N部电话两两相连需要N(N-1)/2对线,为了避免这种情况,有了交换机

电路交换

报文交换,是存储转发的一种,整个报文会先传到相邻的节点,全部存储后在查找转发,时延会很大

分组交换,采用存储转发技术,在发送端先将报文划分成较短的、固定长度的数据段。在传输时,给分组的数据加上特定首部,接收完数据后,将数据组合起来。

高效:动态分配传输带宽,对通信线路逐段占用

灵活:每一个分组独立地选择最合适的转发路由

迅速:以分组作为传送单位,可以不先建立连接就可以向其他主机发送分组

可靠:网络协议

不足:分组在个节点的存储转发需要排队,会造成时延;分组携带首部,造成一定的开销

三种转发方式

时延:

  • 发送时延
  • 传播时延
  • 处理时延
  • 排队时延

IP

IP数据报 = 首部 + 数据部分

其中首部包含固定20字节部分和可变部分

IP数据报的格式

  • 版本
  • 首部长度
  • 区分服务
  • 总长度
  • 生存时间
  • 协议
  • 首部检验和
  • 标识
  • 片偏移

虚拟专用网VPN

网络地址转换NAT

路由器

路由器在功能上划分为路由选择和分组转发

路由器分组转发流程

  • 从数据报的首部提取目的主机IP地址D,目的网络地址N
  • 若N就是与此路由器直接相连的网络地址,则直接进行交付
  • 若路由表中有目的地址为D的特定主机路由,则把数据传送给表中指明的下一跳路由器
  • 若路由表中有到达网络N的路由,则把数据报传送给表中指明的下一跳路由器
  • 若路由表中有一个默认路由,则把数据报传送给表中指明的默认路由器
  • 报告转发分组出错

路由选择协议

路由选择协议分为两大类:

  • 自治系统内部的路由选择:RIP和OSPF
  • 自治系统间的路由选择:BGP

RIP,基于距离向量的路由选择协议。距离指跳数,直接相连的路由器跳数为1 ,最多15跳,超过15表示不可达。

RIP按照固定的时间间隔和相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器会知道到达本自治系统中任何一个网络的最短距离和下一跳路由地址。

缺点是RIP的最大距离是15,限制了网络的规模。

OSPF,开放最短路径优先,为了克服RIP的缺点而开发出来的,最短路径优先使用了Dijkstra提出的最短路径算法SPF。

BGP,边界网关协议

物理层

物理层考虑的是怎样才能在连接计算机的传输媒体上传输数据比特流

带通调制,将数字信号转换为模拟信号

基带调制,调制的过程为编码,常用编码方式:

  • 不归零制:正电平为1,负电平为0
  • 归零制:正脉冲为1,负脉冲为0
  • 曼彻斯特编码:位周期中心的向上跳表为0,位周期中心的向下跳表为1,也可反过来
  • 差分曼彻斯特编码:位开始边界有跳变为0,无跳变为1

数据链路层

  • 封装成帧,就是在一段数据的前后分别添加首部和尾部,然后构成一个帧

    首部和尾部的作用是进行帧定界

  • 透明传输,用字节填充或字符填充的方式,添加转义字符

    透明传输问题

  • 差错控制,要做到“可靠传输”,还得加上确认和重传机制

    • 循环冗余检验CRC,是一种检错方法,只能做到无差错接受
    • 帧检验序列FCS,是一种冗余码

PPP协议,点对点协议

网卡:网络接口卡NIC,MAC地址用于标识网卡,功能:

  • 进行串行/并行转换
  • 对数据进行缓存
  • 在计算机的操作系统安装设备驱动程序
  • 实现以太网协议

局域网拓扑结构

  • 星型(以太网)
  • 环形
  • 直线型

信道复用技术

  • 频分复用,所有主机在相同时间占用不同的频率带宽资源
  • 时分复用,所有主机在不同时间占用相同的频率带宽资源
  • 统计时分复用,是对时分复用的改进,不固定每个主机在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧进行发送
  • 波分复用,光的频分复用
  • 码分复用

CSMA/CD协议,载波监听多点接入/碰撞检测

  • 多点接入表示许多计算机以多点接入的方式连接在一根总线上

  • 载波监听表示每一站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据

  • 碰撞检测,由于电磁波在总线上的传播速率是有限的,当某个站点监听到总显示空闲的时候,可能总线并非真正的空闲

    一旦发生碰撞,应该:立即停止发送数据,在继续发送人为干扰信号,以便让用户都知道发生了碰撞

集线器与交换机

交换机是多个集线器

交换机的 交换方式:

  • 存储转发方式,将数据帧先缓存在处理
  • 直通方式,接收数据帧的同时立即按数据帧的目的MAC地址决定该帧的转发接口,缺点是没有检错
  • 以太网交换机运行自学习算法自动维护交换表

PPPoE,将PPP帧再封装到以太网中传输

MAC地址

区分MAC和IP之间的关系

IP负责在两个没有直连的两个网络之间进行通信传输

MAC实现直连的两个设备之间通信

如同一次旅行,车票记录出发地和目的地,但是没有行程表就无法到达,需要两者结合才能实现。

参考文章:https://mp.weixin.qq.com/s/waV4C0bUzAq5GUXM23-wpA