一、运输层概念
1、运输层的定义
运输层,也叫传输层,
实现端对端的传输
,应用层进程得到消息后交给传输层变成数据段,然后交予网络层。它位于网络层之上,应用层之下,为运行在不同主机上的应用进程之间提供了逻辑通信功能
2、传输层的两大功能
(1)多路复用:发送方不同的应用进程都可以使用同一个运输层协议传送数据(加上适当的头部)。
源主机从不同应用进程的套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层
(2)多路分用:接收方的传输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
在主机上的每个应用进程的套接字能够分配一个端口号,当报文段到达接收主机的时候,运输层检查报文段的目的端口号,并将其定向到相应的套接字,然后报文段中的数据通过套接字进入其所连接的进程。
3、传输层的主要作用
● 运输层为应用进程之间提供
端到端的逻辑通信
(但网络层是为主机之间提供逻辑通信) 。
● 运输层还要对收到的报文进行差错检测
。
● 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
4、传输层的端口
端口简言之就是为应用层的各个应用进程的数据通过这个“门”向下传递给传输层,反过来呢就是让传输层知道接受到的报文数据如何正确传递交付到对应的应用层上的进程上。
端口用一个 16 位端口号进行标志,其大小也就有 65536 个,是从 0~65535,也就是一台计算机有 65536 个端口。
● UDP常用熟知端口号
● TCP常用熟知端口号
端口种类:
传输层的端口分为两大类:
(1) 服务器端使用的端口号
其中又分熟知端口号(端口号0 - 1023范围)和登记端口号(端口号1024 - 49151范围)。熟知端口号又叫系统端口号,是IANA指派给了TCP/IP最重要的一些应用程序,让所有用户都熟知。登记端口号是为没有熟知端口号的应用程序使用的,当一个新的应用程序出现后,在IANA处登记使用的端口号,防止重复。
(2)客户端使用的端口号
也叫短暂端口号,端口号为 49152 ~ 65535 。这类端口号是仅在客户端进程运行时动态选择,暂时使用进程结束端口号即不存在了,又可以被其他客户进程使用。
5、套接字
套接字(Scoket) = Host的IP + port
应用层通过传输层进行数据通信时,TCP 和 UDP 会遇到需要同时为多个应用程序进程提供并发服务的问题。
多个 TCP 连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCP/IP 协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。我们知道在网络中通过 IP 来唯一标识一个主机,而通过端口号来标识一台主机中的不同应用进程。所以在网络连接中就出现了 Socket 套接字来标识一个主机上的某进程,其实际是一个通信端点。
套接字是由主机的 IP 地址加上主机上的端口号组成的地址。
``套接字来标识一个主机上的某进程,其实际是一个通信端点`。
套接字是由主机的 IP 地址加上主机上的端口号组成的地址
运输层就是将两个套接字连起来通信的介质
,端口怎么使用,怎么通信,靠两个协议,UDP 和 TCP 协议。
6、面向连接和无连接
(1)、面向链接
面向连接就是通信双方在通信时,要事先建立一条通信线路,然后进行通信。其过程分为三个阶段。第一阶段是建立连接。第二阶段是连接成功建立之后,进行数据传输。第三阶段是在数据传输完毕后,释放连接
(2)、面向无连接
无连接是指通信双方不需要事先建立通信线路,而是把每个带有目的地址的包(报文分组)发送到线路上,由系统选定路线进行传输,不需要目标方进行回复
二、运输层的协议
1、用户数据报协议 UDP
UDP 只在 IP 的数据报服务之上增加了很少一点的功能:
复用和分用
的功能、差错检测
的功能。
(1)UDP的主要特点
● UDP 是
无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
。
● UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表
。 UDP 是面向报文
的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
● UDP
没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低
。这对某些实时应用是很重要的
。很适合多媒体通信的要求。
● UDP支持一对一、一对多、多对一和多对多
的交互通信。 UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
(2)、首部的格式
2、传输控制协议UDP
(1)、TCP 的主要特点
① TCP 是
面向连接
的
通信前需要建立连接,通信结束需要释放连接
。② 每一条TCP 连接只能有两个端点
TCP 只能提供点到点的通信,而UDP可以任意方式的通信
。③ TCP 提供可靠交付的服务
可靠指的是:
TCP 发送的数据无重复、无丢失、无错误、与发送端顺序一致
。④ TCP 提供全双工通信
⑤ TCP 是面向字节流的
TCP 三次握手
TCP 四次挥手