网络传输层协议

本文概述

  • UDP协议
  • 用户数据报格式
  • TCP协议
  • TCP协议的特点
  • TCP段格式
  • 黑白TCP和UDP
  • 传输层由两种协议表示: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
比较基础 TCP协议 UDP协议
Definition TCP在传输数据之前建立虚拟电路。 UDP将数据直接传输到目标计算机, 而无需验证接收方是否准备好接收。
连接类型 它是面向连接的协议 它是无连接协议
Speed slow high
Reliability 这是一个可靠的协议。 这是不可靠的协议。
标头大小 20字节 8字节
acknowledgement 它等待数据确认, 并能够重新发送丢失的数据包。 它既不接受确认, 也不重新传输损坏的帧。

    推荐阅读