- 微信搜索:编程笔记本
- 微信搜索:编程笔记本
- 微信搜索:编程笔记本
点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏
小伙伴儿们看完以后可不可以帮我点亮一下在看呀~
传输层概述
文章目录
1 传输层协议概述
1.1 进程之间的通信
从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。当网络的边缘部分中的两台主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有传输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
下图说明了传输层的作用。设局域网 LAN1 上的主机 A 和局域网 LAN2 上的主机 B 通过互连的广域网 WAN 进行通信。我们知道,IP 协议能把源主机 A 发送出的分组,按照首部中的目的地址,送交到目的主机 B 。那么,为什么还需要传输层?
图1
**从 IP 层来说,通信的两端是两台主机。**IP 数据报的首部明确地标志了这两台主机的 IP 地址。但“两台主机之间的通信”这种说法还不够清楚。这时因为,真正进行通信的实体是在主机中的进程,是这台主机中的一个进程和另一台主机中的一个进程在交换数据(即通信)。因此严格地讲,两台主机进行通信就是两台主机中的应用进程互相通信。
IP 协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付到主机中的应用进程。从传输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信实际上是应用进程之间的通信。
在一台主机中,经常有多个应用程序同时分别和另一台主机中的多个应用程序通信。例如上图中,主机 A 的应用进程 AP1 和主机 B 的应用进程 AP3 通信,与此同时,应用进程 AP2 也和对方的应用进程 AP4 通信。
这表明传输层有一个很重要的功能——复用(multiplexing)和分用(demultiplexing)。这里的“复用”是指发送方不同的应用进程都可以使用同一个传输层协议传送数据(加上适当的首部),而“分用”是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付给目的应用进程。
上图中两个传输层之间有一个双向粗箭头,写明“运输层提供应用程序间的逻辑通信”。
逻辑通信的意思是:从应用层来看,只要把应用层的报文交给下面的传输层,传输层就可以把这个报文传送到对方的传输层,就好像这种通信就是沿水平方向直接传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。数据的传送是沿着图中的虚线方向(经过多个层次)传送的。
图2
从上图可以看出网络层和传输层有明显的区别。网络层为主机之间提供逻辑通信,而传输层为应用进程之间提供端到端的逻辑通信。另外