网络协议总结(编写中...)

  计算机网络参考模型:

    OSP七层模型 :  物理层 数据链路层   网络层   传输层   会话层 表示层 应用层

    五层模型 :   物理层 数据链路层   网络层   传输层   应用层

    TCP/IP模型 :   物理接口层       网络层   传输层   应用层

  五层模型中各层的作用简单概括 : 

    物理层 : 利用线路的机械特性,实现各种材质(光纤,电流)对二进制的表示。

    数据链路层 : 使用MAC地址作为标识(每个联网设备都具有自己的MAC地址,且全球唯一)与MAC地址表(每个联网设备都有自己的MAC地址表)来进行局域网的通信。

    网络层 : 使用IP地址作为标识来进行计算机到计算机的通信,解决了数据链路层无法达成的路由到路由之间的通信的难题

    传输层 : 使用端口作为标识来进行端口到端口的通信(每个联网进程都有自己的端口)。

    应用层 : 数据的表示(编码,加密之类的),以及灵活地制定不同计算机的程序之间交互的方式,为应用程序提供网络服务。

  五层模型中各层数据的名称 :

    应用层 : 报文,报文其实就是数据的表示方式,可以是各种编码的数据,也可以在编码之后再进行加密。

    传输层 : 数据段,在报文的基础上,添加了TCP/UDP头,无论什么协议,都要有源端口目标端口,其他属性则是为了实现各个协议而特殊设计的。

    网络层 : 数据包,在数据段的基础上,添加了IP头,IP头的主要内容是 IP地址目标IP地址。

    数据链路层 : 数据帧,如若数据包过大则会进行拆分,将一个数据包拆为多个帧。再将头部加上去。

    物理层 : 二进制流,将所有数据都作为二进制的形式在管道中进行传输。

  备注 :

    在网络层以及以下的数据都是不可靠,无连接的服务的。如若发现数据出错,就会直接丢弃

  分层的好处 :

    层与层之间的好处 :

    1.开发 : 各层之间只需要根据制定的接口标准,就可以直接使用下一层的接口,而不用考虑下一层的实现,可以很灵活地使用各种技术完成这一层的工作,实现上一层的接口。

    2.维护 : 因为每一层相互独立,如若发生故障,只需要从物理层到应用层去进行排查,而不用担心是两层之间连接出现问题。可以更轻松便捷地找到问题。

    3.更新 :因为当前层的实现只关于当前层,所以只要在保证接口不变的情况下,就能直接修改更新,而不用担心这层发生改变,上层的结构都要随之改变。使得更新成本变低。例如:IPV4 -> IPV6的升级。

     标准化同层之间的好处 :

    不同的厂商可以利用标准化的接口,自行使用自己的技术设计自己的硬件与软件。避免了因标准不同而不兼容的尴尬。提高了运行效率维修成本等。

    例如 : 思科的路由器和华为的路由器完全可以兼容,用户有更多更方便的选择。

        光纤与电话线能处于同一条数据链路中。

  五层模型中几个重要的表 : 

    MAC地址表 : 记录着 MAC地址端口(这里的端口指硬件端口) 之间的关系。

    路由表 : 记录着 IP地址AIP地址B 之间的关系,表示想要去A可以从B中转。

    ARP表 : 记录着 IP地址MAC地址 之间的关系,提供查询 IP地址 -> MAC地址 的服务。

    RARP表 : 记录着 MAC地址IP地址 之间的关系,提供查询 MAC地址 -> IP地址 的服务

    NAT表 : 记录着 内网地址:端口外网地址:端口 之间的关系

 

  五层模型中重要协议与技术的概括:

    差错检测技术 : 对于一个二进制数,如何保证它再物理层传输中,不会因为电流的不稳定或者宇宙射线等原因出现 bit的0和1互换 呢?

      差错检测技术(奇偶校验和和循环冗余检验)一般在二进制数尾部添加一个检错码,这个检验码是根据二进制数与一个函数关系生成的,如若出错,就能利用函数关系的数学原理得知,然后直接抛弃这个帧

    透明传输技术(数据链路层) : 将数据包转换为数据帧,首先要添加数据帧头部和尾部,但是如何识别数据是否到达尾部?如若有一个 帧尾部符号 等值的二进制 处于帧中,那是否就直接将该符号后的二进制数都丢弃了?

    网络地址转换技术NAT(网络层技术) :

      解决的问题 : 因IPV4的设计原因,导致IP地址不够用。

      原理 : 将网络地址分为内网地址外网地址,利用NAT表来进行内网地址到外网地址的转换。

      网络协议总结(编写中...)_第1张图片

      NAT表处于路由器之中,路由器会为每个联网设备分配一个IP地址,然后将其记录在NAT表中,当有帧到达路由器时要出去时,路由器就会将这个帧的 源MAC地址(修改成当前路由器的MAC地址),目标MAC地址(通过路由表得到下一跳的IP,再通过ARP表得到下一跳的IP地址),源IP地址(通过NAT表),源端口(通过NAT表),全部修改。然后根据目标MAC地址和MAC地址表,得到目标MAC地址对应的路由器端口,发出。

    网络控制报文协议(ICMP协议)(网络层协议):

      ICMP处于IP数据报(身体)内,并且数据包头部会有一个协议类型标志着当前IP数据报内所用的协议(TCP,UDP,ICMP等),ICMP主要用于差错报告询问报文的。

 

  重点知识解答:

    为什么TCP要三次握手而要四次挥手?

      TCP协议利用问答形式来保证其可靠性,首先假设为 客户端与服务端。

      网络协议总结(编写中...)_第2张图片

      三次握手:

      客户端发送一个SYN seq=x,表示 : 我要连接你了,收到请回复x+1。

      服务器端收到上一条信息发送SYN ACK seq=y,ack=x+1表示 : 我知道你要连接我了x+1,并且我也要连接你了,收到请回复y+1。

      客户端收到后发送 ACK seq=x+1 ack=y+1表示: 我知道你要连接我了y+1。

      网络协议总结(编写中...)_第3张图片

       四次挥手:

      客户端发送一个FIN seq=x,表示 : 我要与你断开连接了,收到请回复x+1。

      服务器端收到,发送 ACK ack=x+1 seq=y表示: 我知道你要与我断开连接了x+1。

      此时,客户端停止向服务器端发送数据(但还能发送ACK),但服务器端还没停止向客户端传输数据

      服务器端数据传输完毕后

      服务器发送一个FIN ACK seq=w,ack=x+1,表示: 我知道你要与我断开连接了x+1,我也要与你断开连接了,收到请回复w+1。

      客户端收到后,发送 ACK seq=x+1,ack=w+1表示 : 我知道你要和我断开连接了w+1。

      连接真正关闭

      也就是说无论是关闭和连接可以分为两个动作 : A开始或停止向B传输数据, B开始或停止向A传输数据。则AB连接开启或关闭。

      无论是开启传输还是关闭传输,都是一问一答,但是三次握手时,回答客户端和请求传输数据给客户端使用了同一条消息来进行!故而三次握手,四次挥手。

      

你可能感兴趣的:(网络协议总结(编写中...))