📜  计算机网络|传输层协议

📅  最后修改于: 2020-11-10 01:01:14             🧑  作者: Mango

传输层协议

  • 传输层由两种协议表示:TCP和UDP。
  • 网络层中的IP协议将数据报从源主机传递到目标主机。
  • 如今,操作系统支持多用户和多处理环境,执行程序称为进程。当主机向其他主机发送消息时,表示源进程正在将进程发送到目标进程。传输层协议定义了与各个端口的某些连接,称为协议端口。
  • IP协议是一种主机到主机协议,用于将数据包从源主机传递到目标主机,而传输层协议是端口到端口协议,它们在IP协议的顶部工作以从始发端传递数据包从IP服务到目标端口。
  • 每个端口由一个正整数地址定义,它是16位。

UDP协议

  • UDP代表用户数据报协议
  • UDP是一个简单的协议,它提供了无序传输功能。
  • UDP是无连接协议。
  • 当可靠性和安全性不如速度和大小重要时,可以使用这种类型的协议。
  • UDP是一种端到端的传输级别协议,可将传输级别地址,校验和错误控制以及长度信息添加到来自上层的数据中。
  • UDP协议生成的数据包称为用户数据报。

用户数据报格式

用户数据报具有一个16字节的标头,如下所示:

哪里,

  • 源端口地址:它定义了已传递消息的应用程序进程的地址。源端口地址为16位地址。
  • 目标端口地址:它定义将接收消息的应用程序进程的地址。目的端口地址为16位地址。
  • 总长度:定义用户数据报的总长度(以字节为单位)。它是一个16位字段。
  • 校验和:校验和是一个16位字段,用于错误检测。

UDP协议的缺点

  • UDP提供了端到端传输传输所需的基本功能。
  • 它不提供任何排序或重新排序功能,并且在报告错误时不指定损坏的数据包。
  • UDP可以发现已发生错误,但是由于它不包含特定数据段的ID或序列号,因此它没有指定丢失的数据包。

TCP协议

  • TCP代表传输控制协议。
  • 它为应用程序提供完整的传输层服务。
  • 它是一种面向连接的协议,表示在传输的两端之间建立的连接。为了建立连接,TCP在传输期间在发送方和接收方之间生成虚拟电路。

TCP协议的特点

  • 流数据传输: TCP协议以连续字节流的形式传输数据。 TCP以TCP段的形式对字节进行分组,然后将其传递到IP层以传输到目的地。 TCP本身将数据分段并转发到IP。
  • 可靠性: TCP为发送的每个字节分配一个序列号,并期望接收方TCP给出肯定的确认。如果在超时间隔内未收到ACK,则将数据重新发送到目的地。接收方的TCP使用序列号重新组合分段(如果分段顺序不对)或消除重复的分段。
  • 流控制:接收TCP时,将确认发送回发送方,指示其可以接收而不会溢出其内部缓冲区的字节数。字节数以其可以毫无问题地接收的最高序列号的形式在ACK中发送。该机制也称为窗口机制。
  • 复用:复用是一个过程,它接受来自不同应用程序的数据并转发到不同计算机上的不同应用程序。在接收端,数据被转发到正确的应用程序。此过程称为多路分解。 TCP通过使用称为端口的逻辑通道将数据包传输到正确的应用程序。
  • 逻辑连接:套接字,序列号和窗口大小的组合称为逻辑连接。每个连接由发送和接收过程使用的一对套接字标识。
  • 全双工: TCP提供全双工服务,即,数据在两个方向上同时流动。为了实现全双工服务,每个TCP应该具有发送和接收缓冲区,以便段可以在两个方向上流动。 TCP是一种面向连接的协议。假设进程A要发送和接收来自进程B的数据。发生以下步骤:
    • 在两个TCP之间建立连接。
    • 双向交换数据。
    • 连接终止。

TCP段格式

哪里,

  • 源端口地址:用于定义源计算机中应用程序的地址。它是一个16位字段。
  • 目标端口地址:用于定义目标计算机中应用程序的地址。它是一个16位字段。
  • 序列号:数据流分为两个或多个TCP段。 32位序号字段表示数据在原始数据流中的位置。
  • 确认编号: 32字段的确认编号用于确认来自其他通信设备的数据。如果ACK字段设置为1,则它指定接收者期望接收的序列号。
  • 标头长度(HLEN):以32位字为单位指定TCP标头的大小。标头的最小大小为5个字,标头的最大大小为15个字。因此,TCP头的最大大小为60个字节,TCP头的最小大小为20个字节。
  • 保留:这是一个六位字段,保留供将来使用。
  • 控制位:控制字段的每个位分别独立运行。控制位定义了段的使用或用作其他字段的有效性检查。

控制字段中总共有六种类型的标志:

  • URG: URG字段指示段中的数据很紧急。
  • ACK:设置ACK字段时,它将验证确认号。
  • PSH: PSH字段用于通知发送方需要更高的吞吐量,因此,如果可能,必须以更高的吞吐量推送数据。
  • RST:当序列号中出现任何混乱时,重置位用于重置TCP连接。
  • SYN: SYN字段用于在三种类型的段中同步序列号:连接请求,连接确认(设置了ACK位)和确认确认。
  • FIN: FIN字段用于通知接收方TCP模块发送方已完成发送数据。它在三种类型的网段中用于连接终止:终止请求,终止确认和终止确认的确认。
    • 窗口大小:窗口是一个16位字段,用于定义窗口的大小。
    • 校验和:校验和是用于错误检测的16位字段。
    • 紧急指针:如果URG标志设置为1,则此16位字段是序列号的偏移量,指示它是最后一个紧急数据字节。
    • 选项和填充:它定义了将附加信息传达给接收者的可选字段。

黑白TCP和UDP

Basis for Comparison TCP UDP
Definition TCP establishes a virtual circuit before transmitting the data. UDP transmits the data directly to the destination computer without verifying whether the receiver is ready to receive or not.
Connection Type It is a Connection-Oriented protocol It is a Connectionless protocol
Speed slow high
Reliability It is a reliable protocol. It is an unreliable protocol.
Header size 20 bytes 8 bytes
acknowledgement It waits for the acknowledgement of data and has the ability to resend the lost packets. It neither takes the acknowledgement, nor it retransmits the damaged frame.