用户数据报协议UDP和传输控制协议TCP

article/2025/10/11 19:54:50

目录

UDP

UDP的功能

UDP的特点

UDP的首部格式

TCP

TCP的功能

TCP的特点

TCP面向流的概念

套接字(socket)

无连接工作流程和面向连接的工作流程对比


UDP

UDP的功能

UDP只在IP的数据报服务上增加了很少一点功能:

1.复用和分用功能

2.差错检测功能

UDP的特点

UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延

UDP使用尽最大努力交付,不保证可靠交付,因此主机不需要维持复杂的连接状态表

UDP是面向报文的,即UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,一次交付一个完整的报文

UDP没有拥塞控制, 因此网络出现的拥塞不会使源主机的发送速率降低,很适合实时应用的要求

UDP支持一对一,一对多,多对一,多对多交互通信

UDP首部开销小,只有8字节,比TCP的20字节短很多

UDP的首部格式

 伪首部仅仅为了计算校验和

  

 

TCP

TCP的功能

在无连接的、不可靠的IP网络服务基础之上,通过增加保证可靠性的一系列措施,提供可靠交付的服务

TCP的特点

面向连接的传输层协议

每一条TCP连接只能由两个端点(endpoint),每一条TCP连接只能是点对点的

TCP提供可靠交付的服务

TCP提供全双工通信

面向字节流:TCP中的流(stream)指流入或流出进程的字节序列,面向字节流的含义是,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流

TCP面向流的概念

 

  • TCP连接是一条虚连接而不是一条真正的物理连接
  • TCP不关心应用进程一次把多长的报文发送到TCP的缓存中
  • TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)
  • TCP可把太长的数据块划分短一些再传送
  • TCP可等待积累有足够多的字节后再构成报文段发送出去

  • TCP把连接作为最基本的抽象。每一条TCP连接有两个端点
  • TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口
  • 端口号拼接到(contatenated with)IP地址即构成了套接字
     

 

套接字(socket)

  • TCP连接就是由协议软件所提供的一种抽象
  • TCP连接的端点是个很抽象的套接子,即(IP地址:端口号)
  • 同一个IP地址可以有多个不同的TCP连接
  • 同一个端口号也可以出现在多个不同的TCP连接中

Sockey的不同含义

  • 应用编程接口API称为socket API,简称为socket。socket API中使用的一个函数名也叫作socket。调用socket 函数的端点称为socket
  • 调用socket函数时其返回值称为socket描述符,可简称为socket
  • 在操作系统内核中连网协议的 Berkeley实现,称为socket 实现

无连接工作流程和面向连接的工作流程对比

 不同之处在于,服务器开启后等待连接,客户机请求连接,建立连接之后再进行相应请求和应答


http://chatgpt.dhexx.cn/article/9I4fk4QY.shtml

相关文章

TCP(传输控制协议)

TCP 最主要的特点 TCP 是应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。 在传送数据完毕后,必须释放已经建立的 TCP 连接面向连接的运输层协议每一条 TCP 连接只能有两个,每一条 TCP 连接只能是(一对一)点对点TCP 提供的服务。 通过 TCP…

传输层-传输控制协议(TCP)

目录 TCP 协议概述TCP 报文段结构TCP连接管理三次握手四次挥手 TCP 可靠数据传输TCP拥塞控制 TCP 协议概述 传输控制协议(TCP)是Internet传输层协议。提供面向连接、可靠、有序、字节流传输服务。 面向连接:应用程序在使用 TCP 之前&#x…

传输控制协议---TCP协议【详解】

目录 一、协议简介 二、TCP报文格式 1、字段解析 2、报文解析 三、TCP的重传机制 1、超时重传 2、快速重传 3、 SACK 方法 4、Duplicate SACK 四、TCP的滑动窗口机制 五、流量控制 六、拥塞机制 1、慢启动 2、拥塞避免算法 3、拥塞发生 4、快速恢复 七、TCP的三…

传输控制协议(TCP)

可靠的流传输服务 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。本文介绍TCP把他当成TCP/IP网际协议族的一部分,是一个独立的通信协议。 五个可靠交付特征 1.面向流…

传输控制协议TCP

一、概述 概念:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP最主要的特点: (1)TCP是面向连接的运输层协议。 (2&a…

[2] SDL的基础知识以及利用SDL播放视频

此博文相关知识点从雷神的博客以及视频学习,截图也是用了他的课件, 雷神博客地址:http://blog.csdn.net/leixiaohua1020/ 日期:2016.10.1 作者:isshe github:github.com/isshe 邮箱:i.ssheoutlook.com …

Start Game:SDL2简介

Start Game:SDL2简介 官网简介: Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级别访问。它被视频播放软件、模拟器和流行游戏使用,包括Valve的获奖目录和许…

SDL2的学习之路<三>显示文字

前言 上节介绍了怎么利用SDL接口去显示图片,这节主要介绍怎么去显示文本信息。 SDL2展示文字需要在官网下载SDL2_ttf的扩展库。这个第一节已经讲过了。 使用时需要先初始化库,使用结束时释放库资源。 TTF_Init(); //初始化库 … TTF_Quit(); //释放 显…

VS2019配置SDL2库

“SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、MacOS…

SDL系列教程(一):SDL简介

SDL教程(一) 作者:akinggw 在阔别半年后,我又回来了。这次回来,首先要向大家问声好,然后继续我们的游戏开发之旅。在以前的日子里,我主要在翻译一些游戏开发方面的文章,而现在&…

SDL2源代码分析1:初始化(SDL_Init())

SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL2源代码分析2:窗口(SDL_Window) SDL2源代码分析3:渲染器(SDL_Renderer) SDL2源代码…

SDL2入门教程(01_hello_SDL)

注: 本教程翻译自 lazyfoo的教程,原网址戳这里。翻译目的为鼓励自己坚持下去,可能语言不准确,仅供参考。 Hello SDL: 你的第一个图形窗口 这一篇教程包含最主要也最基础的一步——弹出一个窗口(Window) …

SDL2源代码分析2:窗口(SDL_Window)

SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL2源代码分析2:窗口(SDL_Window) SDL2源代码分析3:渲染器(SDL_Renderer) SDL2源代码…

SDL2使用简介

转自我的Gitee项目 SDL2使用简介 SDL2使用简介开发环境搭建WindowsVisual StudioCode::BlocksDev-Cpp CMake(CLion)问题总结 SDL2库使用介绍初始化创建窗口绘制矩形刷新屏幕读取输入直接扫描键盘读取系统事件 实例 绘制图片 SDL2使用简介 开发环境搭建 Windows Visual Stud…

SDL2 简明教程(二):创建一个空的窗口

系列文章目录 SDL2 简明教程(一):使用 Cmake 和 Conan 构建 SDL2 编程环境 SDL2 简明教程(二):创建一个空的窗口 文章目录 系列文章目录创建空窗口总结 创建空窗口 在上一篇文章中,我们了解…

强大无比的嵌入式多媒体开发神器:SDL2

SDL 是什么? SDL(Simple DirectMedia Layer)是一套开源的跨平台多媒体开发库,使用 C 语言写成。 它提供了绘制图像、播放声音、获取键盘输入等相关的 API,大大降低多媒体应用开发难度的同时,也让开发者只要…

SDL2 简明教程(五):OpenGL 绘制

系列文章目录 SDL2 简明教程(一):使用 Cmake 和 Conan 构建 SDL2 编程环境 SDL2 简明教程(二):创建一个空的窗口 SDL2 简明教程(三):显示图片 SDL2 简明教程&#xf…

SDL —— SDL2及API简介

SDL2框架 SDL( Simple DirectMedia Layer) 是一套开放源代码的跨平台多媒体开发库, 使用 C 语 言写成。 SDL 提供了数种控制图像、 声音、 输出入的函数, 让开发者只要用相同或是相似的 代码就可以开发出跨多个平台( L…

SDL2学习笔记(一):SDL2初步

一、Windows系统下的安装 MinGW ①安装MinGW并配置好环境变量; ②官网下载SDL for MinGW; ③将解压文件中的 .\i686-w64-mingw32\include\SDL2 复制到 .\MinGW\include ; //有的设备需要用x86_64-w64-mingw32中的文件,下同 ④将解…

ISCC2021—ISCC客服一号冲冲冲(二)

ISCC客服一号冲冲冲(二) 呦,又见面了,狗子 打开链接,发现登录接口似乎是个图片截了一块啊,把图片下载下来,lsp隐写发现源代码,同时php弱比较登录页面 (都看到这里啦&a…