计算机网络

第一章 基本概念

速率

速率是指:单位时间传输的比特数。单位为bit/s。

带宽

在计算机中,带宽是某通道的最高数据传输速率。单位是bit/s。

吞吐量

表示单位时间内通过某个网络的实际的数据量。

时延

指数据从网络的一端传输到另一端需要的时间。分为发送时延(传输时延),传播时延,处理时延和等待时延。

发送时延指:主机或路由器发送数据帧所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。计算公式为:

\[发送时延= \frac{数据帧长度}{发送速率} \]

传播时延:电磁波在信道中传播一定距离需要花费的时间。与信道长度和电磁波在信道上的传播速率有关。

处理时延:主机或路由器在收到分组时需要花费一定的时间进行处理。例如分析首部,提取数据,查找路由等。

排队时延:分组在进入路由器后,要先在输入队列中排队等待。

总时延 = 发送时延+传播时延+排队时延+处理时延

往返时间RTT:从发出数据到接收到数据的时间。

五层协议

物理层、数据链路层、网络层、传输层、应用层。

七层协议

将应用层分解为会话层、表示层和应用层。

应用层:通过进程间的交互来完成特定的网络应用。应用层协议有:HTTP,DNS,SMTP等。

传输层:向两台主机中的进程直接的通信提供通用的数据传输服务。主要协议有:TCP和UDP。

网络层:为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层的报文段或用户数据报封装成分组或包进行传送。简称数据报。网络层的另一个任务是选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。

数据链路层:在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上传送帧。每一帧包括数据和必要的控制信息(同步信息,差错控制信息)。

只有物理层不加控制信息。

第 3 章 数据链路层

数据链路层使用的信道主要有:

  • 点对点信道
  • 广播信道

用于解决分组在一个网络中传输到另一个设备或者路由器的问题(局域网中传输)。

数据链路层的三个基本问题:封装成帧,透明传输和差错控制。

封装成帧:每个帧的组成包括:帧首部、帧的数据部分(IP数据报)、帧尾部。其中,帧的数据部分的最大长度称为最大传输单元 MTU。帧首部和帧尾部的字符称为控制字符,SOH,EOT。

透明传输:当数据部分存在和控制字符相同的字符时,就不是透明传输了,此时,数据链路层会自动在数据部分的字符前面插入转义字符ESC,对应的值为0X1B。此种方法称为字符填充。如果数据部分出现转义字符,则再插入一个转义字符。

差错控制:在传输过程中,一些比特的值被改变。数据链路层通过CRC 循环冗余校验码进行检错。

点对点协议PPP

设备要联网时,用ppp协议和ISP进行通信,获取ip地址,从而上网。

设备通过网卡或适配器与局域网连接。

集线器仅仅上物理上拓展了局域网规模,属于物理层设备。仅仅起到转发的作用,没有碰撞检测。当有两个接口同时接收到信号时,会产生碰撞。

MAC地址

占48位。可看作每台计算机的物理地址。时计算机的唯一标识。其实就是适配器的地址,或网卡地址。

mac帧最小长度为64位。其中 ip 数据报的最小长度为46位。

数据链路层扩展局域网的方法是使用交换机。交换机有一个地址表,里面存放的是MAC地址和端口之间的映射关系。交换机是通过自学习算法来建立地址表的。

第 4 章 网络层

网络层向传输层提供简单灵活的,无连接的尽最大努力交付的数据报服务。

网络再发送分组时不需要先建立连接。每一个分组独立发送,与前后的分组无关。

与 IP 协议配套使用的还有三个协议:

  • 地址解析协议 ARP
  • 网际报文控制协议 ICMP
  • 网际组管理协议 IGMP

网络中使用的中间设备有:

  1. 物理层的转发器,即中继器
  2. 数据链路层的网桥,即交换机
  3. 网络层的路由器
  4. 网络层以上使用的中间设备时网关。用网关连接两个不兼容的系统需要在高层进行协议转换。

当中间设备时转发器或网桥时,这仅仅是把一个网络扩大了,而从网络层的角度看,这仍然是一个网络,一般并不称之为网络互联。网关由于比较负责,目前使用的较少。

IP 地址

IPv4地址有32位,分为4段,每段8位。IP地址的编址方法共经历过三个历史阶段。

  • 分类的IP地址.A、B、C类地址,网络号分为占1,2,3字节。且在网络号字段的最前面有1~3 位的类别位,数值分别规定位0,10和110。
  • 子网的划分
  • 构成超网

A,B和C类IP地址的主机号可取值不能位全0和全1,全0主机号位本主机,全1主机号位表示本网络号中的所有主机。

A类地址的网络号不能位全0和全1.全0为本网络,全1为回环测试。

B类的网络号不能为128.0.0.0;最小的网络号为128.1.0.0。所以网络号要减1。

C类的网络号可取的21位也不能位全0.网络号也要减1。

路由器仅根据目的主机所连接的网络号来转发分组,这样可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间和查找路由表的时间。

ip地址是标记一台主机和一条链路的接口。当一台主机同时连接到两个网络上时,该主机必须具备两个相应的ip地址,其网络号必须不同。由于路由器至少连接到两个网络,因此一个路由器至少应当有两个不同的ip地址。同时具备两个mac地址。

数据在网络中传输时,数据中的源ip和目的IP不会改变,但是源MAC和目的MAC会一直改变。

地址解析协议ARP

由 ip 地址查询 MAC 地址。由于 ip 协议使用 arp 协议,所以,通常将 arp协议划归为网络层。但 ARP 协议的用途是为了从网络层使用的 ip 地址,解析出在数据链路层使用的MAC 地址。

每一台主机有一个 ARP高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。下面是主机如何建立映射表的过程。

当主机A要向本局域网上的主机 B 发送数据时,先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就在 ARP 高速缓存中查出对应的 MAC 地址,再把这个硬件地址写入 MAC 帧。通过局域网把 MAC 帧发往主机B。

当无法查到 B的 MAC 地址时,主机A自动运行ARP:

  1. ARP进程再本局域网上广播一个ARP请求分组。分组内容包括源MAC,源IP,目的IP。
  2. 再本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
  3. 主机B的IP地址与ARP请求分组中要查询的IP地址一致,就手下这个ARP请求分组,并向主机A发送ARP响应分组,再分组中写入自己的MAC地址。
  4. ARP请求时广播发送,但是ARP响应时普通的单播,即从一个源地址发送到一个目的地址。
  5. 主机收到ARP响应后,就将B的Mac地址写入ARP高速缓存中。
  6. ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间。凡超过生存时间的项目就从高速缓存中删掉。

请注意,ARP时解决同一个局域网中的主机或路由器的IP地址和MAC地址的映射问题。如果要找的主机和源主机不再同一个局域网上,就无法解析出另一个局域网中主机的MAC地址。此时,主机会将第一跳路由的MAC地址作为目的MAC。写入ARP高速缓存

下面归纳出ARP的四种典型情况:

  1. 发送方是主机,要把IP数据报发送到同一个网络上的另一台主机。这时,源主机发送ARP请求分组,找到目的主机的MAC地址。
  2. 发送方是主机,要把数据报发送到另一个网络上的主机。这时发送方发送ARP请求分组,找到同网络上的一个路由器的MAC地址。剩余的工作由路由器来完成。
  3. 发送方是路由器,要把数据报转发到同一个网络中的主机,这时,路由器发送 ARP 请求分组,找到目的主机的 MAC 地址。
  4. 发送方是路由器,要把数据报发送到另一个网络上的主机。这时,路由器发送 ARP 请求分组,找到连接在同一个网络上的另一个路由器的 MAC地址。剩余工作由目的路由器来完成。

互联网使用ip而不是mac地址进行通信的原因是mac地址结构不同,要进行通信,需要非常负责的转换。

IP数据报格式

1

一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分之和是一些可选字段,其长度可变。下面介绍首部各字段的含义。

  1. 版本:占4位,指IP协议的版本通信双方使用的IP协议的版本必须一直。
  2. 首部长度:占4位,可表示的最大十进制数是15。但是,首部长度字段所表示数的单位是32位字。因为IP首部的固定长度为20字节,因此首部长度字段的最小值为5.而当首部长度为最大值时,就表明首部长度达到最大值15个32位字长,即60个字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此IP数据报的数据部分永远在4字节的整数倍时开始。
  3. 区分服务:8位,一般不使用。
  4. 总长度:指首部长度和数据长度之和,单位为字节。总长度字段为16位,因此数据报的最大长度为65535个字节。现实中很少有这么长的数据报。

数据链路层的最大传送单元,MTU(mac帧数据部分的最大长度)。以太网中MTU为1500字节。IP协议规定,数据报最大长度不超过576字节。从而IP层接收到的数据最大长度不超过512字节,这是假定IP首部为最大长度60字节,外加4字节冗余。就得到576字节。否则,要进行分片。在进行分片时,数据报首部的总长度字段是指分片后每一个分片的首部长度与该分片的数据长度的总和。

  1. 标识:占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1。当数据报需要分片时,此标识会复制给所有的数据报片的标识字段。相同的标识字段的值使分片后的各数据报片最后能正确地重装为原来的数据报。
  2. 标志:占3位,但只有两位有意义。
    • 最低位MF。MF = 1 表示后面还有分片。MF = 0 表示这是若干数据报片的最后一个。
    • 中间一位记为 DF,意思是不能分片。只有当 DF = 0时才允许分片。
  3. 片偏移:占13位。片偏移指出;较长的分组在分片后,某片在原分组中的相对位置。也就是说,片偏移以8字节为偏移单位。也就是说,每片的长度一定是8字节的整数倍。值当当前片第一个字节在整个数据部分的序号。序号从0开始。
  4. 生存时间:占8位,缩写位TTL,表明数据报在网络中的寿命。由发出数据报的源点设置这个字段。目前该字段表示跳数限制。路由器在每次转发数据报之前就把TTL值减1.若TTL值减小到0,就丢弃这个数据报。
  5. 协议:占8位,协议字段指出此数据报携带的数据是使用何种协议,以便目的主机的IP层应将数据部分上交给哪个协议进行处理。
  6. 首部校验和:占16位。这个字段只检验数据报的首部,不包括数据部分。因为数据报没经过一个路由器,路由器都要重新计算首部检验和(一些字段,如生存时间,标志,片偏移可能发生变化)。

IP层转发分组的流程

分组转发算法如下:

  1. 从数据报的首部提取目的主机的IP地址 D,得到目的网络地址为N。
  2. 若N就是此路由器直接相连的某个网络地址,则进行直接交付,不需要经过其他的路由器,直接把数据交付目的主机(这里包括把目的主机D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧)。否则就是间接交付。执行下一步。
  3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中指明的下一条路由;否则执行下一步。
  4. 若路由表中有到达网络N的路由,则把数据报传送给路由表中指明的下一跳路由,否则执行下一步。
  5. 若路由表中有默认路由,则把数据报传送给路由表中指明的默认路由,否则执行下一步。
  6. 报告转发分组出错。

划分子网

二级IP地址到三级IP地址

给IP地址增加一个子网号字段,使两级IP地址变为三级IP地址。提高IP的利用率。这种做法叫做划分子网。

划分子网的思路如下:

  1. 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。划分子网是网络内部的事,对外仍然表现为一个网络。
  2. 划分子网的方法是从网络的主机号借用若干位作为子网号,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部变成了三级IP地址:网络号、子网号和主机号。
  3. 反射从其他网络发送给本单位某台主机的IP数据报,仍然根据IP数据报的目的网络号找到连接本单位网络的路由其。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。
子网掩码

路由器中为了提取出子网的网络地址,需要再路由表中插入一列,对应各自目的IP地址的子网掩码。从而不管是否采用了子网,都能正确的提取出网络地址。

无分类编址CIDR(构造超网)

CIDR 消除了传统的A、B、C类地址以及划分子网的概念,因而能更加有效地分配ipv4的地址空间。CIDR把32位的IP地址分为前后两个部分。前面部分是网络前缀,用来指明网络,后面部分用来指明主机。即IP分为网络前缀和主机号。

  • CIDR使用斜线记法,即再IP地址后面加上斜线"/",然后写上网络前缀所占的位数。
  • CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块。但是,一般主机号为全0或者全1的地址不使用。

CIDR不使用子网是指CIDR并没有在32位地址中指明若干位作为子网字段。但分配到一个CIDR地址块的单位,仍然可以在本单位内根据需要划分子网。

posted @ 2018-09-12 21:44  Echie  阅读(329)  评论(0编辑  收藏  举报