网络中两种种交付方式:节点到节点(node-to-node)、端到端(end-to-end)
2007-03-25 17:02
405 查看
端到端的交付包括:主机到主机的交付和进程到进程的交付。
OSI/RM中有如下描述:
数据链路层负责节点到节点的交付;网络层负责主机到主机的交付;传输层负责进程到进程的交付。这三种交付有什么区别呢?
首先让我们区分一下节点到节点的交付与主机到主机的交付
数据链路层监督在同一个网络(链路)上的两个系统之间帧的交付,而网络层则确保每一个分组能从它的源主机到达目的主机。如果两个系统连接在同一条链路上,则一般不需要网络层。
这里要区分两个概念:链路与数据链路 链路是一条无源的点到点的物理线路段,中间没有其他的交换节点;数据链路好像是数字管道,一条链路上可以有很多条数据链路。两个计算机进行通信时通常有许多的链路串联而成。
如上图,假设端系统A要和端系统B通信,A、B间共有三个链路。
端系统A的网络层利用IP地址将分组送交给端系统B,这就是所谓的主机到主机交付(端到端的一种)。但这一交付过程是由三个节点到节点交付完成。端系统A的数据链路层收到上层交下来的分组,利用mac地址将其封装成帧,
下面详解一下端系统A和端系统B通信的过程:
1.端系统A的传输层将报文分段(传输层还会加上端口地址,此外还负责差错和流量控制),分成若干分组后交给网络层
2.网络层给分组加上报头(IP地址)交给数据链路层
3.数据链路层收到加了IP头的分组后,再加上头部(mac地址)和尾部(差错控制)就形成了帧,经物理层传给了中间系统B
4.中间系统B的数据链路层看帧的首部中的mac地址是自己,是就收下。剥掉帧的首部后交给网络层,网络层通过分组的头部IP地址信息决定怎么转发该分组,若转发则再将该分组传到数据链路层,重复3,但交给的是中间系统C
从这一通信过程可看出网络层完成了端系统A到端系统B的交付,这一交付是由三个节点到节点的交付执行的。
其次,让我们区分一下主机到主机的交付与进程到进程的交付,看下图
上图是两个段系统之间是由两个以上的链路组成,传输层通过SAP(service Access Point)即端口号标识应用程序,负责进程到进程的交付;网络层通过IP地址负责主机到主机的交付。通信的最终目的还是为了实现进程到进程的交付。网络层监督单个分组的主机到主机的交付,独立地处理每个分组并部考虑分组之间的关系。但传输层要确保整个的报文原封不动地按序到达。
同时我们还应该注意OSI/RM中的传输层和数据链路层都有流量控制和差错控制。但二者是有区别的,传输层的 流量控制和差错控制是在端到端的意义上实现的,而数据链路层是在节点到节点上实现的。
OSI/RM中有如下描述:
数据链路层负责节点到节点的交付;网络层负责主机到主机的交付;传输层负责进程到进程的交付。这三种交付有什么区别呢?
首先让我们区分一下节点到节点的交付与主机到主机的交付
数据链路层监督在同一个网络(链路)上的两个系统之间帧的交付,而网络层则确保每一个分组能从它的源主机到达目的主机。如果两个系统连接在同一条链路上,则一般不需要网络层。
这里要区分两个概念:链路与数据链路 链路是一条无源的点到点的物理线路段,中间没有其他的交换节点;数据链路好像是数字管道,一条链路上可以有很多条数据链路。两个计算机进行通信时通常有许多的链路串联而成。
如上图,假设端系统A要和端系统B通信,A、B间共有三个链路。
端系统A的网络层利用IP地址将分组送交给端系统B,这就是所谓的主机到主机交付(端到端的一种)。但这一交付过程是由三个节点到节点交付完成。端系统A的数据链路层收到上层交下来的分组,利用mac地址将其封装成帧,
下面详解一下端系统A和端系统B通信的过程:
1.端系统A的传输层将报文分段(传输层还会加上端口地址,此外还负责差错和流量控制),分成若干分组后交给网络层
2.网络层给分组加上报头(IP地址)交给数据链路层
3.数据链路层收到加了IP头的分组后,再加上头部(mac地址)和尾部(差错控制)就形成了帧,经物理层传给了中间系统B
4.中间系统B的数据链路层看帧的首部中的mac地址是自己,是就收下。剥掉帧的首部后交给网络层,网络层通过分组的头部IP地址信息决定怎么转发该分组,若转发则再将该分组传到数据链路层,重复3,但交给的是中间系统C
从这一通信过程可看出网络层完成了端系统A到端系统B的交付,这一交付是由三个节点到节点的交付执行的。
其次,让我们区分一下主机到主机的交付与进程到进程的交付,看下图
上图是两个段系统之间是由两个以上的链路组成,传输层通过SAP(service Access Point)即端口号标识应用程序,负责进程到进程的交付;网络层通过IP地址负责主机到主机的交付。通信的最终目的还是为了实现进程到进程的交付。网络层监督单个分组的主机到主机的交付,独立地处理每个分组并部考虑分组之间的关系。但传输层要确保整个的报文原封不动地按序到达。
同时我们还应该注意OSI/RM中的传输层和数据链路层都有流量控制和差错控制。但二者是有区别的,传输层的 流量控制和差错控制是在端到端的意义上实现的,而数据链路层是在节点到节点上实现的。
相关文章推荐
- 基于循环神经网络(RNN)的端到端(end-to-end)对话系统
- leetcode:Remove Nth Node From End of List (移除从尾部数的第N个节点)
- [LeetCode] 19. Remove Nth Node From End of List 移除链表倒数第N个节点
- 从机器学习算法的发展 理解 端到端(end to end)学习
- Oracle 10g RAC 无法添加节点 Unable to access cluster service while creating node, could not add node rac1
- lintcode 容易题:nth to Last Node In List 链表倒数第n个节点
- 记忆网络之End-To-End Memory Networks
- 174. 删除链表中倒数第n个节点 (remove-nth-node-from-end-of-list)(c++)----lintcode面试题之链表
- Configuring SharePoint 2010 and ADFS v2 End to End-摘自网络
- leetcode:Remove Nth Node From End of List(删除链表倒数第n个节点)【面试算法题】
- leetCode 19.Remove Nth Node From End of List(删除倒数第n个节点) 解题思路和方法
- 旧文备份: 工业网络中单片机节点的地址和波特率设置方式
- [LeetCode] Remove Nth Node From End of List 移除链表倒数第N个节点
- RabbitMQ报错Error: unable to connect to node rabbit@xxx: nodedown的解决方式
- 19. Remove Nth Node From End of List (移除链表倒数第n个节点)
- 面试题15:链表中倒数第k个节点(Leetcode-19:Remove Nth Node From End of List)
- 166. 链表倒数第n个节点(nth-to-last-node-in-list)(c++)----lintcode面试题之链表
- 什么是 end-to-end 神经网络?——知乎解答
- Windows下安装RabbitMQ报错Error: unable to connect to node rabbit@xxx: nodedown的解决方式
- 【LeetCode】Remove Nth Node From End of List 删除链表中倒数第n个节点- Easy +