首页 > 其他分享 >【计算机网络】传输层协议TCP与UDP

【计算机网络】传输层协议TCP与UDP

时间:2025-01-20 23:57:46浏览次数:3  
标签:UDP 重传 TCP 发送 拥塞 传输层 数据

传输层

        传输层位于OSI七层网络模型的第四层,主要负责端到端通信,可靠性保障(TCP),流量控制(TCP),拥塞控制(TCP),数据分段与分组,多路复用与解复用等,通过TCP与UDP协议实现。

端到端通信

        传输层通过端口号(Port)来区分不同进程。端口号为16位数字(0-65535),用于标识主机上具体的应用程序,比如HTTP服务通常使用80端口,HTTPS通常使用443端口。

可靠性保障(TCP)

        传输层可以提供可靠的数据传输服务,确保数据能够完整、有序地到达接收端。这主要通过TCP协议实现,它使用确认应答(ACK)超时重传滑动窗口等机制来保证数据的可靠性。

流量控制(TCP)

        传输层可以调节发送端和接收端之间的数据流量,避免发送端发送过多数据导致接收端无法处理。TCP通过滑动窗口机制实现流量控制。

拥塞控制(TCP)

        传输层可以感知网络的拥塞情况,并根据网络状态动态调整发送速率,避免网络拥塞加剧。TCP协议提供了拥塞控制机制,如慢启动拥塞避免快速重传等。

数据分段与重组

        传输层可以将应用层的大型数据分割成较小的数据段(TCP)或数据报(UDP),在网络层传输后再进行重组。

多路复用与解复用

        传输层允许多个应用进程同时使用网络资源。它通过端口号将不同应用的数据复用到同一个传输连接中,并在接收端将数据正确地分发到对应的应用进程。

TCP

        TCP(传输控制协议)是一种面向连接的可靠的基于字节流的传输层协议,主要用于需要高可靠性和完整性的应用场景。

TCP的特点

面向连接:发送数据前后,分别通过“三次握手”和“四次挥手”进行建立连接和关闭连接

可靠性:

     确认和重传:接收方收到数据后会发送ACK给发送方,若发送方未收到ACK则会重传数据

     流量控制:接收方通过滑动窗口(循环数组)机制告诉发送方可接受数据大小

     拥塞控制:发送方通过慢启动拥塞避免快速重传和恢复等机制动态调整发送速率

     有序性:接收方根据序列号重新组装数据,保证数据顺序正确

     超时重传:发送端若未在超时时间内收到ACK,就会重传数据

头部开销大:报文头部包含确认号(ACK)序列号窗口大小

全双工通信:允许通信双方同时进行数据的发送和接收

TCP的三次握手

TCP的四次挥手

TCP应用场景

文件传输:FTP

网页浏览:HTTP/HTTPS

电子邮件:SMTP/POP3

数据库通信

UDP

        UDP是一种无连接的、不可靠的传输层协议,主要用于对速度和实时性要求较高的场景。

UDP的特点

无连接性:无连接,数据包互相独立

简单和轻量:头部开销小,适合网络通信受限情景

高性能:无复杂机制,延迟低,适用于实时性高应用:视频通话,网络游戏

不可靠性:

     丢包风险

     不保证数据顺序

     无确认和重传

     无流量控制和拥塞控制

标签:UDP,重传,TCP,发送,拥塞,传输层,数据
From: https://blog.csdn.net/qq_64751004/article/details/145261262

相关文章

  • TCP 和 UDP
    目录运输层概述TCP和UDP前置知识套接字套接字类型套接字处理过程IP端口号确定端口号多路复用和多路分解无连接的多路复用和多路分解面向连接的多路复用与多路分解UDPUDP特点UDP报文结构TCPTCP报文段结构序号、确认号实现传输可靠性累积确认传输控制利用窗口控制提高速度窗口......
  • C#网络调试助手源码(TCP/UDP)
    C#网络调试助手源码(TCP/UDP)文件列表NetWork/.vs/NetWork/v14/.suo , 47616NetWork/NetWork/App.config , 187NetWork/NetWork/bin/Debug/app.ini , 64NetWork/NetWork/bin/Debug/NetWork.exe , 28672NetWork/NetWork/bin/Debug/NetWork.exe.config , 187NetWor......
  • 嵌入式Linux之基于TCP协议的程序
    一、服务端(single_conn_server.c)#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<arpa/inet.h>#include<pthread.h>#incl......
  • 学技术学英语:TCP的三次握手和四次挥手
    单词汉语意思音标acknowledge承认,确认/əkˈnɒl.ɪdʒ/acknowledgment确认,承认/əkˈnɒl.ɪdʒ.mənt/duplex双向的/ˈdjuː.pleks/establish建立/ɪˈstæb.lɪʃ/handshake握手,握手协议/ˈhænd.ʃeɪk/re-transmission重传/ˌri......
  • [2025.1.19 JavaSE学习]网络编程-2(netstat指令 && TCP补充)
    netstatnetstat-an:可以查看当前主机网络情况,包括端口监听情况和网络连接情况netstat-an|more:可以分页显示在dos控制台执行Listening表示某个端口在监听如果有一个外部程序(客户端)连接到该端口,就会显示一条连接信息PS:netstat-anb,可以发现,8888端口号在上一节程序运行......
  • ingress-nginx代理tcp使其能外部访问mysql
    一、helm部署mysql主从复制helmrepoaddbitnamihttps://charts.bitnami.com/bitnamihelmrepoupdate helmpullbitnami/mysql 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类)117##@paramarchitectureMySQLarchitecture(`standalone`or`re......
  • Profibus DP转Modbus TCP协议转换网关模块功能详解
    ProfibusDP和ModbusTCP是两种不同的工业现场总线协议,ProfibusDP常用于制造业自动化领域,而ModbusTCP则在工业自动化和楼宇自动化等领域广泛应用。实现ProfibusDP转ModbusTCP功能,通常需要特定的网关设备,以下为你详细介绍:捷米JM-DPM-TCP网关模块这......
  • base中TCP/IP基础学习笔记
    base中的网络模型的学习笔记一.关于TCP/IP网络模型引言对于同一台设备上的进程间通信,有很多种方式,有管道、消息队列、共享内存、信号等方式,对于不同设备上的进程间通信,就需要网络通信,设备是多样的,所以要兼容各种各样的设备,就协商出了一套通用的网络协议。网络协议是分层......
  • linux kernel tcp丢包分析
     现象使用netstat-s能看见如下丢包统计  1352910failedconnectionattempts1352910resetsreceivedforembryonicSYN_RECVsockets 查看netstat的代码https://sourceforge.net/p/net-tools/code/ci/master/tree/ 取的这两个文件:/proc/net/netstat, /pro......
  • 基于C语言实现UDP服务器
    UDP(UserDatagramProtocol,用户数据报协议)是一种无连接的传输层协议,适用于对实时性有较高要求的应用场景,如视频流传输、语音通信、在线游戏等。与TCP不同,UDP不保证数据的可靠性和顺序性,但其传输速度较快。本文将介绍如何使用C语言编写一个简单的UDP服务器程序,以及如何接收和处理......