计算机网络--运输层

目录

概述:

运输层功能:

端口:

UDP:

概述:

UDP协议的主要特点:

UDP数据报:

TCP:

概述:

TCP协议的主要特点:

TCP报文段:

标志字段:


概述:

运输层(也称为传输层)是OSI七层模型中的第四层,它位于网络层之上、会话层之下。运输层的主要功能是向应用层提供通信服务,确保数据的可靠传输,并负责端到端的通信。它是整个协议层次中最核心的一层,也是面向网络通信的低三层和面向信息处理的最高三层之间的中间层。

根据应用层的不同需要,传输层可以提供两类服务:可靠的服务(TCP)和不可靠的服务(UDP)。

  • 可靠的服务(TCP)。发送进程的应用层报文交给运输层后,运输层能够保证将数据顺序地、无差错地、无丢失地交给接收方应用进程。运输层在完成这个任务时,需要使用下面层次(网络层)的服务。当网络层不能保证可靠性时,交给网络层的数据可能会丢失,但运输层要采取重传等的方式,对应用层屏蔽这些处理细节,为应用层提供一条无差错、可靠的数据通道。
  • 不可靠的服务(UDP)。运输层不能保证数据的有序、可靠的投递,应用层报文可能会丢失乱序和出错。

运输层功能:

  1. 复用和分用复用:多个应用层进程可同时使用下面运输层的服务,不仅在发送方,接收方也存在复用。这就意味着,多个应用可以同时发送和接收数据,运输层负责将这些数据正确地传输到对应的应用进程。分用:运输层从收到的信息中能够识别出是哪一个进程的。也就是说,当数据到达接收方的运输层时,它需要根据某些信息(如端口号)将数据分发给正确的应用进程。
  2. 差错检测:运输层需要检测传输过程中可能发生的错误,并采取相应的措施进行纠正。例如,TCP协议通过校验和来检测数据包在传输过程中是否发生错误。
  3. 流量控制:由于发送方和接收方的处理能力可能不同,发送方可能发送过多的数据导致接收方无法处理。因此,运输层需要实现流量控制机制,确保发送方发送的数据速率不会超过接收方的处理能力。
  4. 可靠传输:对于某些应用(如文件传输),数据必须准确无误地到达接收方。运输层需要实现可靠传输机制,例如通过确认、重传等机制来确保数据的完整性和顺序性。TCP就是一个提供可靠传输服务的协议。
  5. 拥塞控制:当网络中出现拥塞时,如果继续发送大量数据,只会加剧拥塞并可能导致数据丢失。因此,运输层需要实现拥塞控制机制,通过降低发送速率、丢弃部分数据包等方式来避免或减轻网络拥塞。

其中TCP/IP的运输层通过端口来实现多路复用和多路分解。一个应用进程通过系统调用可以绑定到运输层协议(UDP或TCP)的一个端口上,这样通过端口号就能确定对应的应用进程,端口和应用进程是一一对应的。当应用进程有数据需要运输层传递时,他将数据放入对应的端口中;运输层协议会将其取走,并在数据前面添加运输层首部,再首部里写入发送方的端口号(源端口)和接收方的端口号(目的端口)。这样,当对方的运输层协议收到时,就可以根据目的端口号将数据交给正确的应用进程。

端口机制的工作原理

端口:

熟记端口号:0~1023   -----常用应用程序固定使用

登记端口号:1024~49151

动态端口号:49152~65535

在TCP/IP体系中,熟知的服务(web服务、FTP服务等)使用的运输层协议和端口号都是固定的,这些端口被称为数值端口,且其数值一般小于1024。

部分服务器的熟知端口号
应用应用层协议运输层协议端口
网页浏览HTTPTCP80
文件传输FTPTCP21
电子邮件SMTPTCP25
电子邮件POP3TCP110
远程登录TelnetTCP23
动态获取IPDNCPUDP67
域名解析DNSUDP53
网络管理SNMPUDP161

UDP:

概述:

UDP(User Datagram Protocol,用户数据报协议)是传输层协议的一种,与TCP协议一样都位于IP协议之上。与TCP不同的是,UDP不提供数据包分组、组装和排序功能,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

UDP协议的主要特点:

  1. 无连接:UDP在发送数据之前不需要建立连接,因此减少了开销和延迟。这种特性使得UDP非常适合于实时通信和广播应用,如音频和视频流。
  2. 不可靠传输:UDP不提供像TCP那样的确认和重传机制,因此它不能保证数据的可靠传输。如果数据包在传输过程中丢失或损坏,UDP不会进行任何恢复操作。UDP提供了差错检测的功能(可选),一旦检测出UDP数据报出现错误就将其丢弃,不向应用层传递。
  3. 面向报文:UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界。因此,应用程序需要自行处理报文的大小和分割。
  4. 支持一对一、一对多、多对一和多对多的交互通信:由于UDP的无连接特性,它可以很容易地支持多种通信模式,包括多播和广播。
  5. 首部开销小:UDP的首部只有8个字节,比TCP的20个字节小得多。这减少了每个数据包的开销,使得UDP在传输大量小数据包时更加高效。
  6. 没有拥塞控制:UDP不会因为网络拥塞而降低发送速率,这可能导致在网络拥塞时丢包率增加。

由于UDP的这些特性,它通常用于那些对实时性要求较高、但对数据传输的可靠性要求相对较低的应用场景,如实时音视频传输、在线游戏、DNS查询等。

使用UDP的应用层协议
应用应用层协议运输层协议
域名解析DNSUDP
网络管理SNMPUDP
路由信息交换RIPUDP
简单文件传输TFTPUDP
网络文件系统NFSUDP
IP电话专有协议UDP
流式多媒体专有协议UDP

UDP数据报:

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它的首部由8个字节组成,这8个字节进一步分为4个字段,每个字段的长度都是2个字节。以下是这四个字段的详细解释:

  1. 源端口号:这是发送方应用进程对应的端口号。当需要对方回复时,会选用这个端口号。如果不需要对方回复,这个字段可以全部置为0。端口号的主要作用是帮助实现数据的定向传输,确保数据能够准确地发送到目标应用进程。
  2. 目的端口号:这是接收方应用进程对应的端口号。利用源端口和目的端口,可以实现多路复用和多路分解。多路复用允许多个应用进程同时使用同一个传输层协议进行通信,而多路分解则确保每个数据报都能被正确地发送到对应的应用进程。
  3. 长度:这个字段表示UDP用户数据报的长度,即数据字段和UDP首部长度的总和。长度字段的值以字节为单位,理论上UDP数据报的长度可以达到2^16字节(即65536字节)。然而,实际上由于数据链路层的限制(如MTU,即最大传输单元的限制),UDP数据报的长度会远远小于这个理论值。
  4. 校验和:这个字段用于检测UDP用户数据报在传输过程中是否有错误。在发送方,校验和是通过特定的算法计算得出的,接收方在收到数据报后会重新计算校验和,并与发送方提供的校验和进行比较。如果两者不一致,说明数据在传输过程中出现了错误,接收方会丢弃这个UDP数据报。这种机制有助于确保数据的完整性和准确性。

TCP:

概述:

TCP(Transmission Control Protocol,传输控制协议)是专门为了在不可靠的互联网络中提供一个可靠的端到端的通信而设计的,是TCP/IP协议体系中运输层的重要协议。TCP为应用层提供面向连接的、可的数据传输服务。发送方应用进程将数据交给TCP,TCP保证将这些数据有序地、无差错地、完整地送达目的应用进程。TCP为应用进程构建了一个可靠的比特流管道,发送方应用进程的报文从一端流人,无差错地、完整地从另一端流出,交给接收方应用进程。

使用TCP的应用层协议
应用应用层协议运输层协议
网页浏览HTTPTCP
文件传输FTPTCP
电子邮件SMTP、POP3TCP
远程登录TelnetTCP

TCP协议的主要特点:

1、TCP是面向连接的运输层协议

  • TCP协议在传输应用层数据之前,要求两端(客户端和服务器)先建立一个可靠的连接。这个过程通常涉及三次握手,确保双方都已准备好进行数据传输。
  • 数据传输完成后,TCP连接会被释放,通常通过四次挥手来完成。这种面向连接的方式确保了数据传输的可靠性和有序性。

2、TCP提供可靠的数据传输服务

  • TCP通过多种机制确保数据的可靠传输,包括校验和、序列号、确认应答和重传控制等。这些机制共同作用,使得TCP能够在不稳定的网络环境中提供可靠的数据传输。
  • 即使下层网络存在不可靠性,TCP也能通过其内部机制屏蔽这种不可靠性,为上层应用提供稳定的数据传输服务。

3、TCP提供流量控制

  • TCP通过滑动窗口机制实现流量控制,允许发送方根据接收方的接收能力来调整发送速率。这可以防止发送方发送数据过快,导致接收方缓冲区溢出。

4、TCP提供拥塞控制

  • 当网络出现拥塞时,TCP通过慢开始、拥塞避免、快重传和快恢复等算法来减小发送速率,从而缓解网络拥塞。这有助于维护网络的稳定性和性能。

5、TCP提供全双工通信

  • TCP支持双向数据传输,即通信双方可以同时发送和接收数据。这使得TCP能够高效地支持交互式应用,如实时聊天和在线游戏等。
  • TCP连接的两端都设有发送缓存和接收缓存,用于临时存储待发送和已接收的数据。这有助于平滑数据传输过程,提高网络利用率。

6、TCP是面向字节流的

  • TCP将应用程序交下来的数据视为无结构的字节流,不对数据进行任何解释或处理。这意味着TCP不关心数据的具体含义或格式,只负责将数据以字节为单位进行传输。
  • TCP对传输的每个字节都进行编号,并在报文段中进行封装。这使得接收方能够按照正确的顺序和顺序重建原始数据,确保数据的完整性和有序性。

总的来说,TCP协议通过其面向连接、可靠传输、流量控制、拥塞控制、全双工通信和面向字节流等特性,为应用程序提供了高效、可靠的网络传输服务。

TCP报文段:

TCP报文段是TCP协议中用于传输数据的基本单位。每个TCP报文段都包含源端口号、目的端口号、序列号、确认序号、数据偏移、保留字段、控制位、窗口大小、校验和以及紧急指针等字段。这些字段共同协作,确保数据的可靠传输。

  • 源端口和目的端口:源端口和目的端口字段(各占 2 字节,16比特)。源端口 用来 标识 发送该TCP报文段的应用进程。目的端口 用来 标识接受该TCP报文段的应用进程。
  • 序列号和确认序号:用于对字节流进行编号和确认,确保数据的按序到达和无损传输。
  • 数据偏移:占4比特。表示TCP报子段中的数据部分距离TCP首部的起始位置有多少字节。数据部分前面是TCP首部,所以数据偏移实际上就是TCP首部的长度。
  • 标志字段:占6比特。每个比特都代表特定的含义,当其值为1时称为置位。
  • 窗口大小:占16比特。窗口大小的值代表了发送方当前TCP连接接收缓存的大小。这个字段用于流量控制,告诉对方下一次可以发送的数据量。通过动态调整窗口大小,TCP可以确保发送方不会发送过多的数据,导致接收方缓冲区溢出。
  • 校验和:占16比特。用于检测数据的传输中是否发生了错误。通过计算校验和,接收方可以验证数据的完整性,确保数据在传输过程中没有被修改或损坏。
  • 紧急指针:紧急指针仅在URG控制位为1时才有意义。它指出了本报文段中的紧急数据的字节数。当发送方需要向接收方发送紧急数据时,可以设置URG控制位,并通过紧急指针来指示紧急数据的长度。
标志字段:

TCP报文段的标志字段是用于控制和管理TCP连接的各种状态和操作的重要部分。这些标志字段包括:

  1. SYN(同步):用于建立连接。当一个TCP数据包携带SYN标志并设置为1时,它表示请求建立连接。在三次握手过程中,客户端发送的第一个报文段就会设置SYN标志。

  2. ACK(确认):用于确认接收到的数据。当ACK标志为1时,表示这是一个应答报文段,其中确认号字段的值表示接收方期望从发送方接收的下一个字节的序号。

  3. FIN(结束):用于结束连接。当FIN标志为1时,表示发送方已经没有更多的数据要发送,并希望关闭连接。在四次挥手过程中,FIN标志用于通知对方准备关闭连接。

  4. RST(复位):用于强制关闭连接。当检测到严重错误或异常时,接收方可以发送一个携带RST标志的TCP报文段来关闭连接。

  5. PSH(推送):通知协议栈尽快把TCP数据提交给上层程序处理。当发送方希望接收方尽快处理接收到的数据时,可以设置PSH标志。

  6. URG(紧急):表示报文段中有紧急数据。当URG标志为1时,紧急指针字段有效,用于指示紧急数据的位置。

这些标志字段在TCP报文段头部中占据一定的位数,并通过设置相应的比特位来表示不同的状态和操作。它们共同协作,确保TCP连接的建立、数据传输的可靠性、连接的正常关闭以及异常情况的处理。

---------------------------------------------------------------------------------------------------------------------------------

这里只是关于UDP、TCP的介绍和报文字段的分析,若想了解关于TCP的数据传输过程,可以观看这篇博客

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值