6 传输层

6.1 传输层的作用

网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。

传输协议TCP、UDP通过接收数据中的目标端口号识别目标处理程序。以上图为例,传输协议的数据将被传递给HTTP、TELNET以及FTP等应用层协议。

6.2 两种传输层协议TCP和UDP

TCP是面向连接的可靠的流协议。流就是指不间断的数据结构,所以如果应用程序在发送端连续发送了不同的数据,应该在发送的消息中设置一个表示长度或者间隔的字段信息。TCP为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、力高网络利用率等众多功能。

UDP是不具有可靠性传输的数据报协议。细微的处理它会交给上层的应用去完成。在UDP的情况下,虽然可以确保发送消息的大小(与TCP不同,UDP中消息的长度数据也会发送到接收端,所以无需设置表示长度或者间隔的字段信息),却不能保证消息一定会到达。因此应用有时会根据自己的需要进行重发处理。

6.3 TCP与UDP区分

TCP用于在传输层有必要实现可靠传输的情况。由于它是面向有连接并具备顺序控制、重发控制等机制,所以他可以为应用程序提供可靠传输。

UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信。例如,通过IP电话进行通信,如果使用TCP,数据在传送中如果丢失会被重发,但这样无法顺利的传输通话人的声音,显然是不合理的。

6.4 端口号

6.4.1 端口号的定义

数据链路和IP中的地址,分别四MAC地址和IP地址。前者用来识别同一链路中不同的计算机,或者用来识别TCP/IP网络中互连的主机和路由器。在传输层中也有这种类似于地址的概念,就是端口号。用来识别同一台计算机中进行通信的不同应用程序。因此也被称为程序地址。

6.4.2 通过IP地址、端口号、协议号进行通信识别

仅凭目标端口识别一个通信是远远不够的。

①和③的目标端口号和源端口号完全相同,但是它们各自的源IP地址不同。这种情况下也会认为是两个不同的通信。

因此,TCP/IP和UDP/IP通信中通常采用5个信息来识别一个通信。它们是“源IP地址”,“目标IP地址”,“协议号”,“源端口号”,“目的端口号”。只要其中某一项不同,则被认为是其他通信。

原文地址:https://www.cnblogs.com/xlzfdddd/p/10325144.html