目录
一、传输服务
二、UDP(用户数据报协议)
三、TCP(传输控制协议)
四、TCP连接的建立和终止
传输层与网络层一起构成了网络协议层次的核心。传输层架构在网络层提供的服务之上,把数据传递服务从两台计算机之间扩展到了两台计算机上的进程之间,并且服务所需的可靠性程度独立于当前使用的物理网络。
一、传输服务
传输层的最终目标是向它的用户提供高效的、可靠的和成本有效的数据传输服务,它的用户通常是应用层的进程。为了实现这个目标,传输层需要充分利用网络层提供给它的服务。在传输层内,完成这项工作的软件或硬件叫传输实体。
传输服务类似于网络服务,但是两者之间有一些重要的区别。最主要的区别在于网络服务毫不掩饰地按照实际网络提供的服务来建立模型。实际网络可能会丢失数据包,所以网络服务一般来说是不可靠的。网络服务和传输服务第二个区别在于它们的服务对象不同。网络服务仅仅被传输实体使用。通常用户不会编写自己的传输实体,因此,很少有用户或者程序看到裸露的网络服务。相反,很多程序(和程序员)可以看到传输原语。因此,传输服务的使用非常方便、容易。
二、UDP(用户数据报协议)
UDP为应用程序提供了一种无需建立连接就可发送封装的IP数据报的方法。UDP传输的段由8字节的头和有效载荷字段构成。下图描述了头信息:
UDP没有做的事情:
没有流量控制、拥塞控制,或者接收到一个坏段后的重传机制。所有这一切必须由用户进程来完成。它只是提供了一个与IP协议的接口,并在此接口上增加通过端口号复用多个进程的功能,以及可选的端到端错误检测功能。
UDP的应用:
客户机—服务器开发、实时多媒体应用。
三、TCP(传输控制协议)
TCP是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。每台支持TCP的机器都有一个TCP传输实体。TCP实体可以是一个库过程、一个用户进程,或者内核的一部分。在所有这些情况下,它管理TCP流,以及与IP层之间的接口。
所有的TCP连接都是全双工的,并且是点到点的。所谓全双工,意味着同时可在两个方向上传输数据;而点到点则意味着每个连接恰好有两个端点。TCP不支持组播或者广播。TCP的头格式如下:
源端口和目标端口字段标识了连接的本地端点。TCP端口加上所在主机的IP地址组成了48位的唯一端点。源端点和目标端点一起标识了一条连接。这个标识符就称为5元组,因为它由5个信息组成:协议(TCP)、源IP地址和源端口号、目标IP地址和目标端口号。
四、TCP连接的建立和终止
连接过程也称为3次握手:
(1)请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN,在这个例子中为1415531521)。这个SYN段为报文段1.
(2)服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。
(3)客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)。
这三个报文段完成连接的设置。
终止连接过程也称为4次挥手:
上图中的报文段4发起了终止连接,它由Telnet客户端关闭连接时发出。
TCP客户端发送一个FIN,用来关闭从客户到服务器的数据传送。当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。同时TCP服务器还向应用程序传送一个文件结束符。接着这个服务器程序就关闭了它的连接,导致它的TCP端发送一个FIN(报文段6),客户必须发回一个确认,并将确认序号设置为收到序号加1(报文段7)。