Java教程

计算机网络之网络层

本文主要是介绍计算机网络之网络层,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

网络层主要的作用是:转发和路由

        转发:将当前数据报的信息转发到下一个路由器/主机(通过一个转发表)。

        路由:从源主机到目的主机的路径信息称为路由。

 

ip数据报的格式:

展开之后:

接下来说明各个字段的作用:

        (1)版本号(4位):给出版本号,4:ipv4:6:ipv6.

        (2)首部长度(4位):ip分组首部长度。

                以4个字节为单位:0001表示首部长度为4个字节。0011表示首部长度为12个字节。(只是举例,可以知道首部的固定字节为20个字节,最少也应该是20个字节)。

        (3)服务类型(TOS):区分服务。一般情况下不使用。

        (4)总长度:ip分组的总字节数(首部+数据)。

                最大的ip分组的总长度为:65535B;

                最小的ip分组首部:20B;

                Ip分组可以封装的最大数据:65535-20B;

        (5)标识。标志位和片偏移稍后说。

        (6)生存时间(TTL):ip分组在网络中可以通过的路由器数。

                路由器转发一次分组,TTL-1;

                如果TTL=0,路由器则丢弃该IP分组。

        (7)协议:指示ip分组封装的是哪个协议的数据包。

                实现复用/分解

                6为tcp,表示的是TCP段。17是udp,表示的是UDP数据报。

        (8)首部校验和:实现对ip分组首部的差错检测。

        (9)源ip地址,目的地址。

        (10)选项字段(可变):网络探测等。(基本没有)

ip分片:

        最大传输单元(MTU)

                网络链路存在MTU(最大传输单元)-链路层数据帧可封装数据的上限。

大ip分组向较小MTU链路转发时,可以(不一定分片)被“分片”。

        一个ip分组可以被分为多片ip分组;

        Ip分片到达目的主机后进行重组。

Ip首部的相关字段用于标识分片以及分片的相对顺序。

       (1) 标识字段(16位):标识一个ip分组:ip协议利用一个计数器,每产生ip分组计数器加1,作为ip分组的标识。

        (2)标志位(3位):

Df:(don’t fragment);

MF:(more fragment)。

Df = 1:禁止分片;df = 0:允许分片;mf = 1;非最后一片;mf = 0:最后一片(或者未进行分片)

        (3)片偏移(13位):一个ip分组分片封装原ip分组数据的相对偏移量。

                片偏移字段以8字节为单位

Ip分片过程中:

假设原ip分组总长度为l,带转发链路的MTU为m

若L>m并且DF=0,则可以进行分片

分片时每个分片的标识赋值原ip分组的标识

通常分片时,除了最后一片,其他分片均分为MTU允许的最大分片。

一个最大分片可封装的数据应该是8的倍数,因此,一个分片最大可封装的数据为:

需要总的片数:

 

每片的片偏移字段取值为:

 

 

 

 

 

 

 

这篇关于计算机网络之网络层的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!