网络层作用:网络层是实现数据交互的地方,但无法进行可靠传输,向上的话,它只提供尽最大努力的交付数据,不提供服务质量的承诺。
虚电路(将可靠性依托于网络,但本身数据传输并不能保证,每条数据都是不失序,不重传,不丢失的,虚电路只是将可靠性依托于网络):
网络可靠传输的必要条件:不出错,不重复,不丢失,不失序。
虚电路是一条逻辑链路,是在发送方he接受方之间建立的一条链路,这样保证了数据发送接受不被其他人干扰。虚电路也可以实现数据的可靠传输,但是虚电路要求传输线路同一时刻只能被独占,其他用户想要发送数据就要等待路由器等网络设备空闲,所以虚电路实现的可靠传输对资源的调配要求是很大的,也是复杂的(虚电路缺点),不常用。
另一方面,就是将可靠保证依托给端系统(同样并不能实现数据的不重复,不丢失不失序),让端系统自己来决定是怎样的传输过程,也就是后面的传输层三次握手建立连接,四次挥手断开连接,通过tcp来建立可靠连接,使用udp来建立不可靠连接,无论是哪种方式,都取决于端系统自己,这是常用的网络层处理方法,即交给传输层进行可靠处理,这样做的好处是不用单独建立链路节省成本,灵活。
前面为网络号,后面为主机号,网络号表示有多少个网络,主机号表示每个网络里有多少主机。A类地址网络号为8,表示拥有的网络应该有2的8次方个网络,每个网络又有2的24次方个主机。
判断IP地址是哪一类方法:若IP化成二进制第一个bit为0,即地址a.b.c.d中的a<127,就是A类,若前两个bit为10,即地址a.b.c.d中的a<191就是B类。开头为110,即地址a.b.c.d中的a<223就是C类。
如图:地址前两个bit为10,即为B类地址。
127.0.0.1此地址不会从网卡出去,用来测试本机协议,功能等是否正确。
IP地址的网络号相同才是在同一个网络中。A,B,C类地址的网络号不同。
路由器的每一个端口都在不同的网段,都有不同的网络号。
MAC地址是设备的固有属性,而IP地址是逻辑地址。
网络层不关心下层的是怎么实现的,对下层的实现是透明的。
ARP地址解析协议:
ARP主要作用是将ip地址映射到MAC地址上,这样才能在网络层正确的通过IP地址将数据转发到对应的MAC的设备上。
ARP的工作过程如上图所示。当前待发送的主机会在局域网内广播询问目标IP地址的MAC是多少,如果局域网中存在该MAC地址的主机则该主机做出响应,然后接受发送方的数据。不存在的话就通过其他主机进行广播看看能不能找到。实在找不到就丢弃。
ARP高速缓存将最近的IP地址和MAC地址进行绑定,方便下次发送数据时不用广播询问目标在那。从而减少广播消耗的时间,提高网络性能。
首部长度:
ip数据报规定首部长度最短20字节,最长60字节。计算过程:
由上图可知:首部长度占4字节,即0000--> 1111的取值范围,当首部长度填充值为0101时,代表每个首部长度占5个单位(0101 = 5),而首部长度占4字节,所以填充值为0101时总共占4*5=20个字节。同理,当为1111时,共占4*15 = 60个字节。
当首部长度不足4个单位或4个单位的整数倍时,就需要使用上图可变部分的填充选项进行填充。
总长度:
总长度 = 首部长度 + 黄色的数据部分;总长度不能超过MTU,不能大于65535.
标识:由上图可知占16个字节,起到统计作用,最长的统计数量为2的16次方,超过清零。
标志:这个字段里面有三个小字段,分别是MF,DF,.DF=0表示可以分片,=1不可以分片,MF=0表示最后一个分片,=1表示该数据报后面还有分片。通常和片偏移结合使用。
片偏移:指的是当前分片到前面分片的长度。注:IP分片是不会均等分的,总是按照最大传输单元进行分配,这是为了尽量提高网络的效率。
生存时间:超过这个时间就死亡了。每经过一个路由器TTL就会减一,减为0就被丢弃。
协议:网络层使用的是IP协议族,包括ICMP,IGMP
首部校验和:只检测首部,首部小好计算,因为网络层只进行最大努力交付。
源地址:发件人
目的地址:收件人
IP分片:
看一个例题:
偏移量计算:
路由:
路由交换中:路由过程优先走直连路由,然后是特定路由,最后是默认路由。
路由表中记录的是下一跳网络的网络号。
子网划分:
如上图可知:子网越多,主机号越少。
网络地址 = 网络号和子网号 & 1111 1111 1111
实际子网长度 - 默认子网长度 = 子网数量。
子网掩码网络位全为1,主机位全为0.判断两个ip是否在同一网络,需要看子网掩码是不是一样,然后需要各自的掩码和ip相与运算结果相同在同意网罗。
202.115.0.0是网段号(相与的结果),后面是掩码(有题可知掩码有18个1,其余全为0)
注意:子网全0全1都不能用。第一个子网为202.115.00000100.0,最后一个子网为202.115.00111000.0,ip主机地址也是全0全1都不用。(视频29集https://www.bilibili.com/video/BV1yE411G7Ma?t=1897&p=28)
内部网关协议RIP是一种逐跳式的协议,他会将相邻路由器之间的信息进行交换并更新保存,以此来确定哪些路由器是可达的,当跳数大于15仍旧未到目标路由器,则表示不可达。他的优点是简单,逐跳式的。实际上路由器到目标路由器的跳数并不一定短的是最优的,因为还和那条路的带宽和延时有关。所以有了另一个内部网关协议:
ospf:
路由器结构:
路由器丢包存在的原因:1.超时。2,路由器内存已满。
IPV6:
IPV6长度由32变为128.数据报的格式和ipv4不一样,数据部分放在有效载荷里面。
ipv6记法:
IPV4过度ipv6方式:1.双协议栈;2.隧道技术
隧道技术就是将发送的IPv6数据包在经过IPv4网络时,将数据包转化为IPV4数据包(即给IPV6数据包以IPV4方式进行封装)进行发送,在离开网络时再还原回IPv6。
VPN:(翻墙用的)
VPN原理由上图可知,两个不同站点之间由于是要跨越公网的,会导致数据不安全或其他原因被对方拒绝接受,但是一旦使用对方的VPN通过隧道进行传输后,就可以伪装成对方站点被信任的数据,从而实现翻墙。
NAT网络地址转换:
内网中的ip地址在即将出去到公网的时候,会在边缘路由器处通过NAT转换为相应的公网IP。缺点就是由于很多安全策略是基于IP地址来做的,在出外网时,地址变了安全策略就不起作用了。