计算机网络常见模型分析

常见网络模型

OIS模型: 开放通信系统互联参考模型(Open System Interconnection), 是国际标准提出一个试图解决全世界计算机互联的标准框架

OSI模型按照不同的功能可以划分为七层

应用层 处理网络应用 第七层
表示层 数据表示 第六层
会话层 主机间通信 第五层
传输层 端到端的连接 第四层
网络层 寻址和最短路径 第三层
数据链路层 介质访问(介入) 第二层
物理层 二进制传输 第一层

在OSI模型中, 通信实体的对等层不允许通信, 各层之间严格单向依赖, 上层使用下层提供的服务, 下层向上提供服务


由于OIS的 模型过于复杂, 我们常用的网络模型为TCP/IP模型, 现在TCP/IP已经成为了Internet的工业标准, TCP/IP总共有四层

  • 网络接口: 第一层, 针对不同物理网络的连接形式的协议, 如:Erthernet(局域网之间的通信协议)

    对应OIS模型的 数据链路层 + 物理层

  • 网络层: 第二层, 负责数据传输, 路径以及地址选择, 常用协议: IP ARP(地址解析协议)

    对应OIS模型 网络层

    • 补充IP ARP协议, 由于通信不能跨层, 而本机的MAC地址在第一层网络接口(物理层)中, 而IP地址在第二层网络层中, 所以要实现主机间 的通信必须通过IP ARP协议解析数据包包头的IP地址, 发送端(我们以发送端为自我)来对比本地的主机查看是否有与之对应的MAC地址, 如果没有就, 那么主机就会向网路发送一个ARP协议的广播包, 这个广播包里面待查询的IP地址(接收端), 如果收到广播包的某一个主机发现自己符合条件, 那么就准备好一个包含自己MAC地址的ARP包发送给发送端, 此时发送端就拿到了ARP包, 更新自己的ARP缓存, 发送端就会利用新的ARP包来让数据链路层发送数据.
  • 传输层: 第三层, 确认数据传输的纠错常用的协议有: TCP/UDP

    对应OIS模型 传输层

    • TCP协议

      特点: 面向链接, 提供可靠传输, 内部提供差错校验机制和重传机制, 传输效率低, 通信过程和打电话相似

    • UDP协议

      特点: 无连接, 传输不可靠, 尽力而为, 传输快内部没有差错校验机制和重传机制, 过程与发短信相似

  • 应用层: 第四层, 各种应用服务以及应用程序通过该层利用网络, 常用协议: HTTP, FTP, SMTP

    对应OIS模型 会话层 + 表示层 + 应用层


分割线总结:

对于TCP/IP模型传输过程的一些总结

  • 1537428470826

    以上表述了TCP/IP每个层次的作用, TCP/IP的通信过程就对应着一个入栈出栈的过程,

    入栈的过程, 数据发送方每层不断的封装首部跟尾部, 添加一些传输的信息, 确认能够传输到目的地

    出栈的过程, 数据接收方不断的拆除首部与尾部, 得到最终可以传输的数据

    以HTTP传输的过程为例子上述的传输过程如下图

    1537428730505

    • 数据链路层

      物理层负责 0 1 比特与物理设备高低电平之间的互换, 数据链路层负责将01序列划分为数据帧, 从一个节点传输到另一个临近节点, 这些节点都是通过唯一的MAC地址来标识

      封装成帧: 链路层的作用就是把网络层的数据报封装数据帧 , 帧中包括发送,接收方的MAC地址

      透明传输: (封装的01)在传输的时候对数据的内容,格式编码没有限制, 也没有必要解释信息的意义,

      可靠传输:

      差错检验(CRC): 接收者检测错误, 如果发现差错, 丢弃帧.

    • 网络层(没有端口)

      建立在网络层以上才有安全性可言

      • IP协议

        IP协议是TCP/IP的核心, TCP UDP数据都是以IP数据格式传输, 但是IP不是可靠的协议, IP并没有提供一种数据未传达以后处理机制, 这被认为是TCP/UDP要做的事情

      • IP地址

        在数据链路层我们通过MAC地址来识别不同的节点, 在IP层类似有IP地址

        分为三类

        A类:IP地址: 0.0.0.0~127.255.255.255

        B类:IP地址:128.0.0.0~191.255.255.255

        C类:IP地址:192.0.0.0~239.255.255.255

      • ICMP(网络控制报文)协议

        用于IP主机, 路由器之间传递控制消息(网络是否联通, 主机是否可达, 网络本身消息)

        每台转发IP数据报的机器都要把IP报头中TTL减一, 当TTL为0, 一个ICMP超时消息就会被发送到数据报的发送者

        保证数据送达, 其中的一个重要模块就是ICMP协议, ICMP不是高层协议, 也是属于网络层的协议, 他没有端口, 只有类型代码, 由于被封装在IP数据报中, 所以也是不可靠的

        当传送IP数据包发生错误, 比如主机不可达, 路由器不可达, ICMP协议会把错误信息封包, 然后传送回主机, 给主机一个处理错误的机会

      • ping

        ping 可以说是ICMP最著名的应用, 是TCP/IP协议的一部分, 利用ping命令可以检查网络是否联通,

        原理是发送类型码为0的ICMP请求, 收到请求的主机则用类型码为8的ICMP来回应

      • tracert

        用来检测主机到目标主机所有路由的重要工具

        他的工作原理是收到目标IP的地址以后, 给目的主机发送一个TTL = 1 的UDP数据包, 而经过第一个路由器收到这个数据包以后就自动把TTL - 1, 而TTL变为0, ICMP就会认为这个不能到达所以返回报告给主机, 路由器就会抛弃这个包. 然后主机再发一个TTL = 2的UDP数据包给目标主机…以此反复,这样, tracret就拿到了所有的路由器IP .

    • TCP/UDP(安全)

      TCP UDP
      可靠性 可靠 不可靠
      连接性 面向连接 无连接
      报文 面向字节流 面向报文
      效率
      双工 全双工 一对一,一对多,多对多,多对一
      拥赛控制 慢开始,拥赛避免,快重传,快恢复
      传输速度
      场景 效率要求低, 准确性要求高 效率要求高, 准确性低

      ​ 常用:

      ​ TCP: SMTP(电子邮件), TELNET(远端终端接入), HTTP(万维网),FTP(文件传输)

      ​ UDP: DNS(域名转换), TFTP(文件传输),SNMP(网络管理),NFS(远程文件服务器)


IP地址分配原理

你可能感兴趣的:(网络通信)