首页 > 其他分享 >计算机网络(破产版

计算机网络(破产版

时间:2024-06-22 15:29:33浏览次数:7  
标签:主机 报文 网络 计算机网络 IP 破产 路由 路由表

一.分组交换原理,以及报文分段

报文分段

报文分段是TCP协议的一部分,当应用程序生成的数据需要通过TCP发送时,如果数据量超过了TCP接收端所能接收的最大报文段长度(MSS),或者超过了网络的最大传输单元(MTU),TCP会将这些数据分割成更小的片段,每个片段称为一个TCP报文段。这些报文段会在接收端重新组装成原始的数据流。

作用于:传输层,且只限于TCP报文

分组交换原理

分组交换是一种网络技术,它将数据分割成小的数据包,称为分组。每个分组包含必要的路由信息,允许它们独立地通过网络,最终到达目的地。在目的地,这些分组会被重新组装成原始的数据流。

作用于:网络层

二.IP数据分组的片偏移计算。

       已知当分组长度超过数据链路层能封装成桢的极限长度时(及超过MTU时),需要对分组进行分片。而片偏移的作用就是指出某片在原分组中的相对位置;另外还有标志和标识作为辅助。标识符站三位,最低位记为MF,当MF=1即表示后面还有分片的数据报,当MF=0即表示这已经是最后一个分片数据报了(如图1)。(中间这位记为DF,当DF=0即表示能分片)

图1

       片偏移的计算:咱给举个例子,一个总长为3820字节的的数据报,数据部分为3800字节,需要分片为长度不超过1420字节的数据报片。有计算可得三个报片,分别为A,B,C(有序),其长度分别为1420,1420,1000.那么A中数据部分中第一个字节为原数据报的第一个字节(在这里记为第0个字节),而B中数据部分的第一个字节为原数据报数据部分中的第1400个字节,同理C为第2800个字节。由以上可得

长度标识MFDF片偏移
原始数据报382012121000
A142012121100/8=0
B142012121101400/8=175
C100012121002800/8=350

#注意标识是我随意定义的,片偏移那一列中的算式是我为了理解加上去的,实际上并没有过程只有答案。

三.ARP协议的工作原理。

         ARP又被叫做地址解析协议,是网络层协议。ARP的作用就是根据IP地址找出相对应的MAC地址。

        ARP的工作原理 

      已知再每台主机中都有ARP高速缓存,里面存在本局域网上的某些主机和路由的IP地址到MAC地址的映射表(在电脑的密令提示符中执行  arp -a  命令就能够看到),这些都是主机已经知道的MAC地址。那么电脑是如何知道的呢?

      我们知道当主机A要想主机B发送IP数据报时,需要知道主机B的MAC地址,主机A会先在ARP高速缓存中查找,有的话最好,省事,若没有则:

      第一步:在局域网内发送ARP请求(已知主机B的IP:12.12.12.12),即在局域网内发送一个广播,寻找一个叫 12.12.12.12 的主机。

      第二步:当主机B的ARP进程接收到A的ARP请求后会发送一个单播给主机A,叫做ARP响应,其中包含这B的MAC地址。

      第三步:当主机A接收到主机B的响应报文后,进行解析并将主机B的MAC地址写入ARP高速缓存中。

#注意:arp请求中同时包含了主机A的IP和MAC地址,所以最后A和B的ARP高速缓存中都有对方的MAC地址。

  ARP请求报文和响应报文的区别

ARP请求报文ARP响应报文
是否包含原IP和MAC地址
是否包含目标IP和MAC地址有IP,但没有MAC
opcode(操作码)Opcode: request (1)Opcode: reply (2)

#注意:因为ARP请求报文是以广播的形式发送得所以目标MAC可以理解为:

Dst: Broadcast (ff:ff:ff:ff:ff:ff),即全F

四.CRC计算。

      CRC,又叫做冗余检验,是一种数据链路层检中验 数据是否出错的方法。

       CRC的原理

        发送方:

          第一步:将数据换分为组,假设每组为k个bite;

          第二步:在k后面加n个0作为被除数 Q(长度为k+n),接着除以早就规定好的除数 p(长度为n+1),得到余数 R(长度为 n),R就是冗余码,又叫做FCS。

          第三步:组装(长度 k+n),即将 冗余码 n 放在 k后面,接着发送出去。

        接收方:

            第一步:将接收到的每一帧除以同一个除数p,得到余数R1;

            第二步:判断R1是否为0。如果是则表明数据没出错,否则出错。

       #注意:在计算冗余码时,用的是模二运算,无论加减都不进位,即1+1=0,1-1=0,0+1=1,0-1=1,1-0=1,1111+1010=0101;(相同则为0,不同则为1)

例:除数为11101

设;k=101001 ,则被除数=101001000,求冗余码FCS是什么?

         解:FCS=001。

 

五.IP分组如何根据路由表转发分组,RIP的工作原理。

      已知路由是分组交换的关键,那么路由器是如何转发IP分组的呢?在这之前我们得了解RIP协议

RIP协议

       RIP是一种分布式路由选择协议,也可叫做一种分布式的基于距离向量的路由选择协议。RIP要求网络上的路由器记录到其他网络的“距离”。

RIP对距离的定义入下:

路由到直接连接的网络的距离为:1;

路由到其他网络的距离为:经过的路由数+1;

注意:这里的距离也被叫做跳数,跳数最大值为15.所以RIP只适用于小型网络。

RIP信息的获取

       RIP是分布式路由选择协议,它有一个特点——一个路由器需要不断地和其他路由器交换路由信息。

       交换信息的对象:仅和相邻的路由器交换路由信息。

       交换信息的内容:当前本路由器知道的所有信息,及自己先在的路由表。

        交换的时间:按固定的时间交换信息。

RIP的距离向量算法

        路由表的更新原则是找出到目的网络的最短距离。而距离向量算法就具有这样的能力。

对每一个相邻路由发来的RIP报文,执行以下步骤:(假设路由B向A发来RIP报文)

        已知路由表中的每一个项目都包含三个元素——目的网络,跳数,下一跳路由的地址。

      第一步:将地址全部改为B,就是把所有项目的下一跳的地址改为B,此外所有项目跳数都加1;

      第二步:将B发来的路由表同A本身的路由表进行对比——比较目的网络,看是否B的路由表中有A的路由表中没有的目的网络,如果有则需要加入该目的网络所在的项目,如果没有则继续;

      第三步 :将B发来的路由表同A本身的路由表进行对比——比较具有相同目的网络的项目中的下一跳,如果下一跳的路由地址一样,且跳数也不一样,则需要更新;如果下一跳的路由的地址不一样,且跳数比A的路由表中的要小,则需要更新(如果要大就没有必要了);

      第四步:如果超过一定时间没有接收到B路由发来的RIP报文,则B路由将会被A记作不可达路由,即把距离设置为16.

      第5步:返回。

例如:

A的路由表为

路由A的路由表
目的网络距离下一跳路由
Net23B
Net34C

B的路由表为

路由B的路由表

目的网络距离下一跳
Net13D
Net24E
Net31直接交付

在路由B向路由A发送RIP报文后,路由A的路由表为:

路由A的路由表(更新后)

目的网络距离下一跳
Net14B
Net25B
Net32B

IP数据报在路由中

      首先路由会依据IP数据报中的目的地址的IP算出目的网络地址,接着依据路由表来确定IP数据报的去留,如果在路由表中没找到目的网络那么该数据报将会被丢弃;如果找到了,那么IP数据报将会根据路由表中的信息发送到下一跳。

六.首部检验和的计算

       检验和检验的是数据报的首部。

计算过程

第一步:将IP数据报首部划分为许多16位的序列;

第二步:把检验和置于0(及00000000 00000000);

第三步:用反码算术运算把所有的16位的序列相加,得到一个16的序列;

第四步:算出得到的16位序列的反码,该反码就是检验和;

#注意发送端和接收端在第二步是不一样的,发送端需要把检验和置于0,而接收端则不需要(即省略第二步)

如果接收端计算的检验和为0则保留该数据报,否则丢弃

反码算术运算:0+0=0;0+1=1;1+1=0,并进1位;如果最高列相加产生进位,则最后的结果要在最低位加1.

七.子网的划分

子网划分的主要1原因就是为了:跟有效的管理网络资源和提高网络性能

划分子网的前期准备:

   IP地址的构成:

             网络号(主机号位数为 n )   +    主机号  

已知网络号加主机号一共32位,根据网络号的前缀将IP地址分为:

             

A类B类C类
网络号的位数81624
网络号中固定的前缀010110
默认的子网掩码255.0.0.0/8255.255.0.0/16255.255.255.0/24
有效的主机号个数2^24-22^16-22^8-2

注意:除了A,B,C类,还有D类(多播地址)和E类(保留地址)。主机号中全1和全0的IP地址是不能够自由分配的。

计算网络地址

IP地址不仅代表了主机,还标志主机接口所连接的网络。

IP地址根据AND运算可以的到该IP地址所属的网络号,具体操作如下:

           第一步:将十进制的IP地址和子网掩码转化成二进制,并且最低位对最低位,最高位对最高位排成两排;

           第二步:依据 1 AND 1 = 0;1 AND 0 = 0;0 AND 1 = 0;进行计算;

            第三步:将AND计算得到的结果转化成二进制,得到最终的网络地址。

例如:

注意:并且最低位对齐最低位,最高位对齐最高位排成两排,上下两个数为一列,每一列单独进行AND运算。计算得到的结果依旧保持原有的顺序,即最高位计算的结果依旧是最高位,最低位计算的结果依旧是最低位。

IP:128.14.35.7 = 10000000 00001110 00100011 00000111

      子网掩码    \rightarrow  11111111   11111111  11110000  00000000

         网络地址 \rightarrow  10000000  00001110 00100000 00000000= 128.14.32.0/20

子网划分的原理

     子网划分的对象是网络地址,它是将网络地址细分,而并非改变网络地址 。

     进行子网划分的手段是:增加网络前缀的位数,(其表现形式就是子网掩码中1的个数发生改变,1的个数=网络前缀的位数),网络前缀改变的位数决定了子网划分的个数。

     例如:一个网络地址 20.0.0.0/8  把网络前缀改成10  那么原网络地址被划分成4个,分别是: 

20.00000000.0000000.00000000=  20.0.0.0/10       

20.01000000.00000000.00000000 =  20.64.0.0/10 

20.10000000.00000000.00000000 =   20.128.0.0/10 

20.11000000.00000000.00000000 =   20.192.0.0/10

#经过多次计算网络前缀增加 n位,那么子网个数为 2^n 个

     

注意:

网络号是IP地址的主成部分,标志着主机(路由)连接的网络,这网络号在网络中必须是唯一的。

网络前缀是再CIDR中网络号的另一种叫法。

网络地址是IP地址和子网掩码经过AND运算得到的结果表示。

子网掩码中1的个数=网络前缀的位数。

(所以网络号=网络前缀,但是不一定等于网络地址,那怕等于也是在忽略格式的情况下)

###如果子网划分还有不理解的地方可以去看看这位陈漂亮beauty-CSDN博客的文章题目叫做——计算机网络——子网划分(内含习题讲解)

八.TCP流控,拥塞控制。

TCP流控

     流量控制:就是让发送方不要速率不要太快,要让接收方来的及接收,所以流量控制控制的队像是发送方的发送速率。

      流量控制方法:滑动窗控机制。

      滑动窗控机制原理:一直控制对象是发收方,所以在两台主机A,B建立回话,B准备向A发送信息时,A会给B一个非0的窗口值(rawnd),即最大接收总量,当B发送的报文字节总数达到了这个窗口的临界值时,B将停止发送,直到A再一次发送一个非0的窗口值。以达到控制B速率的目的。

TCP拥塞控制

拥塞控制:防止过多的数据注入到网络中,这样使网络中的路由器或链路不至于过载。

控制对象:涉及与降低网络性能有关的所有因素

用赛控制方法:慢开始,拥塞避免,快重传和快恢复。

(假定数据是单向传输的;接收方有足够大的缓存空间,因而发送窗口的大小由网络的拥塞程度来决定)

慢开始:有小到大逐渐增大注入到网络中的数据字节,即逐渐增大拥塞窗口数值。(拥塞窗口是以报文段为单位的动态窗口,控制着发送方单位时间内数据的最大发送量)

拥塞避免:降低拥塞窗口的增大速率,使其不在成倍增加,而是每一个时延的时间加1,。其目的就是让拥塞慢点到来。

快重传:要求接收方,无论消息是否丢失都发生确认报文,当有报文丢失时,则发送连续三次的一样的确认报文,防止发送方误认为出现拥塞。

快恢复:往往在执行了快重传之后执行,即将把拥塞窗口减半再执行拥塞避免,或则增加再执行拥塞避免

TCP流量控制与TCP拥塞控制的差别

TCP流量控制TCP拥塞控制
操作对象两端的主机整条网络线路,包括两端主机
定义点到点的问题全局性的过程
原理控制发送端的输出速率涉及与降低网络性能有关的所有因素

标签:主机,报文,网络,计算机网络,IP,破产,路由,路由表
From: https://blog.csdn.net/2302_79951871/article/details/139744152

相关文章