一文看懂计算机网络中数据是如何可靠传输的

文章目录

  • 数据传输详解
    • OSI(开放系统互联参考模型)
    • Internet网络体系结构
    • OSI模型与TCP/IP模型对比
    • 数据包转发实例详解
    • 数据链路层的三个基本问题
      • 链路与数据链路概念的区别?
      • 封装成帧
      • 透明传输
      • 透明传输的解决方法
      • 差错检测
    • 数据链路层提供的可靠性与传输层提供的可靠性的区别

数据传输详解

OSI(开放系统互联参考模型)

  OSI(Open System Interconnection),开放式系统互联参考模型。是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分成了7层。每一层都有相关、相对应的物理设备,比如常规的路由器是三层交换设备,常规的交换机是二层交换设备。
  OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为了解决异种网络互连时所遇到的兼容性,其最主要的功能就是帮助不同类型的主机实现数据传输。它最大的优点是将服务、接口和协议这三个概念明确的区分开来,通过七个层次化的结构模型使不同的网络之间实现可靠的通信。
一文看懂计算机网络中数据是如何可靠传输的_第1张图片

经典比喻:
一文看懂计算机网络中数据是如何可靠传输的_第2张图片
一文看懂计算机网络中数据是如何可靠传输的_第3张图片

Internet网络体系结构

emsp; Internet目前使用的协议式TCP/IP协议。TCP/IP协议是4层结构的集网络通信,应用,服务,管理等多种功能的协议族,这4层协议分别是物理网络接口层协议、网际层协议、传输层协议、和应用层协议。
一文看懂计算机网络中数据是如何可靠传输的_第4张图片
一文看懂计算机网络中数据是如何可靠传输的_第5张图片

OSI模型与TCP/IP模型对比

一文看懂计算机网络中数据是如何可靠传输的_第6张图片

数据包转发实例详解

一文看懂计算机网络中数据是如何可靠传输的_第7张图片

1. 数据生成(应用层提交请求)
一文看懂计算机网络中数据是如何可靠传输的_第8张图片
2. 调用传输层服务
将数据分段后加上传输层首部,传输层首部的格式以及每个字段是为了实现传输层功能,比如可靠传输、流量控制、拥塞避免等。传输层首部的一个重要功能是为这些数据段编号(保证传输的有序性),传输层首部的各个字段以及各个字段数值代表的具体含义是由传输层的协议决定的。添加了传输层首部的TCP协议的数据单元称为数据段(Segments)添加UDP协议的数据单元称为数据报(Datagrams)。
一文看懂计算机网络中数据是如何可靠传输的_第9张图片
3. 调用网路层服务

数据段要想通过网络层进行传输,就必须给数据段添加源IP地址,目标IP地址以及网络层控制信息,也就是网络层首部。网络层首部的格式和每个字段是为了实现网络层的功能,以便网络中的路由器根据网络层首部为数据包选择路径。添加了网络层首部的数据段称为数据包(Package)。
一文看懂计算机网络中数据是如何可靠传输的_第10张图片

  • 查找主机路由表
    一文看懂计算机网络中数据是如何可靠传输的_第11张图片

4. 通过arp表查找下一跳mac的地址

一文看懂计算机网络中数据是如何可靠传输的_第12张图片

  • 发送arp请求
    一文看懂计算机网络中数据是如何可靠传输的_第13张图片

  • 收到arp响应报文
    一文看懂计算机网络中数据是如何可靠传输的_第14张图片
    一文看懂计算机网络中数据是如何可靠传输的_第15张图片

5. 封装数据链路层包头并发送出接口
一文看懂计算机网络中数据是如何可靠传输的_第16张图片
6. 交换机1接收到数据包
一文看懂计算机网络中数据是如何可靠传输的_第17张图片
7. 查找mac地址表
一文看懂计算机网络中数据是如何可靠传输的_第18张图片
8. 数据包到达路由器1接口
一文看懂计算机网络中数据是如何可靠传输的_第19张图片
9. 解封装链路层包头,检查ip层
一文看懂计算机网络中数据是如何可靠传输的_第20张图片
10. 封装链路层包头,发送数据包
一文看懂计算机网络中数据是如何可靠传输的_第21张图片

  • 数据包到达路由器2
    一文看懂计算机网络中数据是如何可靠传输的_第22张图片
    11. 数据包到达交换机2
    一文看懂计算机网络中数据是如何可靠传输的_第23张图片
    12. 数据包达到PC3
    一文看懂计算机网络中数据是如何可靠传输的_第24张图片
    13. 送网络层处理
    一文看懂计算机网络中数据是如何可靠传输的_第25张图片
    13. 送网络层处理
    一文看懂计算机网络中数据是如何可靠传输的_第26张图片
    14. 应用程序处理
    一文看懂计算机网络中数据是如何可靠传输的_第27张图片

数据链路层的三个基本问题

链路与数据链路概念的区别?

链路:

  • 从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。
  • 在进行数据通信时,两个计算机之间的通信路径往往要经过多段这样的链路,可见链路只是一条路径的组成部分。

数据链路:

  • 当需要在一条线路上传输数据时,除了需要有一条物力路线外,还需要有一些必要的通信协议来控制数据的传输。若把这些协议和硬件加到链路上就构成了数据链路。
    一文看懂计算机网络中数据是如何可靠传输的_第28张图片
    数据链路层协议有许多中,但是有三个基本问题则是共同的。这三个基本问题是:

封装成帧

一文看懂计算机网络中数据是如何可靠传输的_第29张图片

透明传输

当传送的帧是用文本文件组成的帧(文本文件中的字符都是从键盘上输入的)时,其数据部分显然不会出现像SOH(0x01)或者EOT(0x04)这样的帧界定控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。
一文看懂计算机网络中数据是如何可靠传输的_第30张图片

透明传输的解决方法

一文看懂计算机网络中数据是如何可靠传输的_第31张图片

差错检测

现实的通信链路都不会是理想的。比特在传输过程中会产生差错。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测错误措施。
目前在数据链路层广泛采用了循环冗余校验(CRC)的检错技术。
一文看懂计算机网络中数据是如何可靠传输的_第32张图片
一文看懂计算机网络中数据是如何可靠传输的_第33张图片

数据链路层提供的可靠性与传输层提供的可靠性的区别

  数据链路层关心的是任何数据的可靠性传送,例如尾部插入校验码等方法,也就是说在数据封装的最后一层上提供校验,在数据通过网络层封装之后,网络层也会做一个校验的,然后数据链路层对封装的所有数据做校验。传输层提供的针对特定端口的校验,顺序为:在封装时,传输层封装数据,同时提供可靠性校验,然后网络层封装同时提供可靠性校验,最后数据链路层封装数据并提供校验,所谓封装数据只不过是打上自己层的标签而已,传输层提供端口,网络层提供IP,数据链路层提供mac;当数据到达对端时,解封便使按照相反的顺序了。

你可能感兴趣的:(Java开发,计算机网络)