计算机网络笔记——网络层相关概念及协议

一、一些概念

       因特网(Internet):全球最大的,开放的,有众多网络相互连接而成的特       定计算机网络,采用TCP/IP协议簇,前身为ARPANET。
       互联网(internet):泛指多个计算机网络连形成的计算机网络。

       数据报(datagram)网络提供网络层无连接服务。
       虚电路(virtual-circuit, VC)网络提供网络层连接服务。

       网络层功能:
       转发: 将分组从路由器的输入移动到适当的路由器输出。
       选路: 决定分组从源到目的地所采用的路由。
       路由:分组从源到目的地所经过的端到端路径。

       直接交付:在一个直接连接的网络上时,分组从一台主机上直接传送到另一台主机的过程。
       间接交付:不在一个直接连接的网络上时,源主机必须先把分组发给一个路由器。
计算机网络笔记——网络层相关概念及协议_第1张图片

二、IP协议和ARP协议

1.IP协议

       (1)IP地址

       组成:由网络ID和主机ID两部分组成。
       IP地址是用4个8位(32位)二进制字节表示的。
       用点分十进制表示的话,用三位十进制(0~255)表示四位二进制。
       IP地址一般分为A、B、C、D、E,共5类,主要且常用的有:A类、B类、C类。
       A类地址:前8位为网络号,后24位为主机号,并使用0作为第一个比特。
计算机网络笔记——网络层相关概念及协议_第2张图片
       B类地址:前16位为网络号,后16位为主机号,前两个比特为10。
计算机网络笔记——网络层相关概念及协议_第3张图片
       C类地址:前24位为网络号,后8位为主机号,前三个比特为110。
计算机网络笔记——网络层相关概念及协议_第4张图片
       D类地址:
计算机网络笔记——网络层相关概念及协议_第5张图片
       E类地址(保留做未来使用)
计算机网络笔记——网络层相关概念及协议_第6张图片
计算机网络笔记——网络层相关概念及协议_第7张图片
       特殊的IP地址:
计算机网络笔记——网络层相关概念及协议_第8张图片
       全为0的IP表示自己(本机,不能参与通信),全为1的IP表示广播(只表示本网络的广播),这两个IP地址都不能分配给主机。
       网络号全为0的IP表示本网络的某个主机号,主机号全为1表示某网络的广播地址,主机号全为0表示某网络的网络号。
       网络号为127的IP是loopback address,表示本机,向127.0.0.1(本机)发送数据不会经过数据链路层和物理层的封装和转发,直接会在网络层作为一个loopback address的转发,直接发给接收方的模块。
       如果主机号为n位,则能容纳2^n-2台主机(即不包括全0和全1)。

       (2)子网掩码
       确定网络ID和主机ID的方法是:
       子网掩码 AND IP地址 = 网络地址(ID),即网络号不变,主机号清零

       主机使用子网掩码判断目的IP地址是否与本机处在同一个网络中:
       发送数据前使用目的IP地址与子网掩码进行与运算,结果与本网络的网络号相同则表示在本网络内发送数据,不同则需要把主机所要发送的数据发送到所在网络的出口,发到其他网络中去。

       (3)IP数据报的格式

计算机网络笔记——网络层相关概念及协议_第9张图片
       版本号(Version):4bit,值为4(即IPv4)
报头长(Hlen):4bit,表示IP数据报首部长度,以4字节为单位,比如说当一个IP数据报的首部总长度为20个字节,这是Hlen这一位的值就是(20/4)5。
       服务类型(Type of Service):8bit,前三个bit是优先级比特,它可以给出IP数据报的8个优先级,其余的五个比特中,有四个是目前有意义的,分别为D、T、R、C,最后一个比特是保留比特,D比特被置1的时候表示需要一个低时延的服务,T比特被置1时表示需要一个高吞吐率的服务,R比特被置1时表示需要一个高可靠性的服务,C比特被置1的时候表示需要一个低费用的服务,这四个比特在同一时刻,在某一个特定的IP数据报当中只能有一个比特被置1。
       分组总长度(Total Length):16bit,记录IP数据报的总长度,以字节为单位。
存活时间(TTL:Time to Live):初始时,当一个主机发出IP数据报的时候TTL值为255,每经过一个路由器TTl值减一,当路由器发现一个数据报的TTL值减成0的时候,就会自动挡将这个数据报丢弃掉,这样就可以避免在internet当中出现大量废弃IP数据报。
       传输层协议(Protocol):8bit,指IP协议的数据部分所封装的高层协议的类型。
       头部校验和(Header Checksum):16bit,首部校验和,对IP数据报的首部进行校验和的计算。

       (4)IP分片的问题

       MTU:最大传输单元,指局域网中的最长帧。
       IP数据报被帧封装,其长度受限于MTU的长度,不同的网络MTU的大小不一样,当较大的报文经过MTU较小的局域网之前,应当对该报文进行分片。
       分片由路由器完成,在分片时,只对报文的数据段进行操作,对IP数据报的首部只进行微调(首部不参与分片),将数据段分成若干段小的数据段,并给每一段数据前面加上一个分片的首部,通过分片首部当中的数据去描述和记录当前分片在原始IP数据报当中的位置等相关信息,以便接收方收到数据时方便还原为原始数据报。
       接收方接收到数据重组原始数据报的时候,就会用到IP数据报格式的标识、标志和分片偏移量三个字段。
       标识(identifier):重组时,同一数据报的标识。
       标志(flag):3bit,第一个bit保留,后两个比特为DF和MF,当DF=1时,标识当前数据报不能分片,当MF=1时表示还有分片,当MF=0时表示不再有分片,即当前分片是最后一个分片。
       片偏移:记录当前分片在原始数据报当中的相对位置(片偏移以8字节为单位记录)。
计算机网络笔记——网络层相关概念及协议_第10张图片

2.ARP协议

       ARP(Address Resolution Protocol)协议主要完成MAC地址和IP地址之间的地址转换功能。
计算机网络笔记——网络层相关概念及协议_第11张图片
       主机A要和主机B进行通信,主机A知道主机B的IP地址但不知道MAC地址,先查找本机的ARP Cache(一个IP地址和MAC地址的映射表),如果有B主机的MAC,则直接使用,如果没有,就进行广播(发送ARP请求报文进行询问),捎带上自己的IP和MAC,B主机接收到后,先刷新自己的ARP cache(将A主机的IP地址和MAC地址的对应关系存放进ARP cache),然后将自己的IP地址和MAC地址的对应关系返回给A主机,A主机将其存放在自己的ARP cache中,下一次通信时就不需要进行广播了,要尽量避免广播通信。

       ARP协议的漏洞:
计算机网络笔记——网络层相关概念及协议_第12张图片
       B和C要进行一些敏感数据操作,A想要冒充C与B来进行通信,所以A将向B发送一个虚假的ARP请求,告诉B主机202.118.1.1所对应的MAC地址(C主机的)是我A的MAC地址,而B主机就告诉A主机202.118.1.2所对应的MAC地址是我B主机的MAC地址,这时当B 主机试图向C主机发送数据(即向202.118.1.1发送数据),实际上这个数据会发送给A,因为B会把202.118.1.1所对应的A的MAC地址进行使用,最终这个数据就会发送给A主机。但是这种攻击也有漏洞,比如B主机和C主机的管理员可能会在平时进行沟通,很可能B主机向C主机发完数据之后,管理员会告诉C主机说我把数据发过去了,这时C主机很可能由于没有接到数据而导致发现A主机所进行的攻击。
       因此这种攻击可以再进一步,那就是A主机首先向B主机发送一个假的ARP请求,告诉B主机说202.118.1.1所对应的MAC地址是我A的MAC地址,接下来它再向C主机发送一个假的ARP请求,告诉C 主机说202.118.1.2所对应的MAC地址是我A的MAC地址,这时候A主机就处在一个巧妙的位置,它相当于嵌入在BC主机之间,当B把数据给A的时候,A把数据转给C,当C把数据给A的时候,A再把主句转给B,这样,BC之间所有的数据通信都会被A主机所截获,甚至说A主机可以篡改BC之间所有的数据通信,这样就会造成非常严重的危害。
       ARP协议漏洞的一个很重要的原因在于ARP协议支持了IP地址到MAC地址的动态映射, 要想在一定程度上避免这种问题,就需要采用静态的地址映射。这种方法牺牲方便性换取安全性,在实际应用中会产生一些问题,所以ARP漏洞的防范没有最终的解决方案,只能通过变通的方法做一些变通的解决。

3.静态路由和动态路由

       静态路由是指由用户或网络管理员手工配置的路由信息。动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。动态路由可以使用RIP协议配置。
       当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文,适用于比较复杂的网络环境。
       使用静态路由的好处是网络安全保密性高,但是当路径非常复杂时,静态路由配置起来就很麻烦,所以其适合简单的网络环境。

你可能感兴趣的:(计算机网络,计算机网络,网络层,ARP协议,IP协议)