传输层TCP/UDP协议

什么是传输层协议TCP/UDP??? ​源端口号发送方进程的端口号。目标端口号接收端进程的端口号。序号发送端将每个字节进行编号,便于接收方正确重组。当TCP从进程接收数据字节时,把它们分片成数据段存储在发送缓存中,并对每一个字节进行编号。当数据达到目的地后,接收端会按照这个序号把数据重新排列,保证数据正确。确认号对发送方的确认消息。接收端响应消息的时候会用它来告诉发送端这个序号的数据段都已经收到,如果确认号是X,就是表示前X-1个数据段都已收到。首部长度用来表示TCP数据包头长度,一般20字节,但是首部长度最多可以扩大到60字节。... 阅读详情

一、TCP协议

1、概述

  • 面向连接网络协议,是指通信双方之间在进行通信之前要先建立连接。比如打电话,双方通话前需要先建立连接。

  • TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,数据可在同时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。

  • TCP提供全双工服务,即数据可在同一时间双向传输
    

2、TCP报文段:

在这里插入图片描述

  1. 源端口号:发送方进程的端口号。

  2. 目标端口号:接收端进程的端口号。接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程。

  3. 序号:发送端为每个字节进行编号,便于接收端正确重组。
    当TCP从进程接收数据字节时,把它们分片成数据段存储在发送缓存中,并对每一个字节进行编号。当数据到达目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性。

  4. 确认号:对发送端的确认信息。
    接收端响应消息时将用会它来告诉发送端这个序号之前的数据段都已经收到,如确认号是x,就是表示前X-1个数据段都已经收到。

  5. 首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节。

  6. 保留:作为扩展位,目前没有用到。

  7. 控制位:
    URG:紧急位。紧急指针有效位。
    ACK:确认位。只有当ACK=1时,确认序列号字段才有效;当ACK=0时,确认号字段无效。
    PSH:急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。
    RST:重置位。当RST值为1时,通知重新建立TCP连接。
    SYN:同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1。
    FIN:断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1。

  8. 窗口大小:说明本地可接收数据段的数目。这个值的大小是可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制机制就是依靠变化窗口的大小实现的。比如下载速度从一开始的几KB逐渐提升到几MB 的过程。

  9. 校验和:用来做差错控制。字段检验的范围包括首部和数据这两部分。数据段在发送时和到达目的地时会进行校验和计算,若这两次的校验和一致,则说明数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据。

  10. 紧急指针:和URG配合使用,当URG=1时有效。

  11. 选项:在TCP首部可以有多达40字节的可选信息.例如:最大报文段长度MSS(Maximum Segment Size).MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”。

3、其他协议类型

端口协议说明
21FTPFTP服务器所开放的控制端口
23TELNET用于远程登陆 可以远程控制管理目标计算机
25SMTPSTMP服务器开放端口 用于发邮件
80HTTP超文本传输协议
110POP3用于邮件接收

二、TCP的三次握手和四次挥手

1、TCP建立连接的过程叫做三次握手

在这里插入图片描述

  1. 客户端想与服务器建立连接,先发送SYN报文(SYN=1)请求建立连接客户端seq序号x。
  2. 服务器接收到之后发送SYN和ACK报文,就是(ACK=1)确认并也(SYN=1)请求建立连接服务器seq是y,Ack=x+1,这个Ack是确认号,代表前面客户端的x已经收到。
  3. 客户端收到服务器的请求建立连接,也进行(ACK=1)确认,并进行回复seq=x+1,Ack=y+1代表服务器的y已收到。

2、TCP断开连接的过程叫四次挥手

在这里插入图片描述

  1. 客户端想要与服务器断开连接,先发送(FIN=1)请求断开和(ACK=1)确认。
  2. 服务器回复(ACK=1)同意断开。这是已成半断开,这时客户端已无法继续连接服务器,但是服务器仍能给客户端发送数据。
  3. 接着服务器也想断开与客户端的连接,发送(FIN=1) 并(ACK=1) 确认。
  4. 客户端 (ACK=1) 确认断开。

三、UDP协议

1、概述

无连接网络协议,是指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包送到网络线路上,由系统自主选定
路线进行传输。比如QQ、微信发送信息。
UDP协议是无连接、不保证可靠性的传输层协议。发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机
也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更高。

2、特点

  1. 无连接、不可靠的传输协议
    
  2. 花费的开销小
    

3、UDP报文的首部格式

  1. 源端口号(16)UDP长度(16)
  2. 目标端口号(16)UDP校验和(16)
  • UDP长度:用来指出UDP的总长度,为首部加上数据。
    
  • 校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制。
    
端口协议说明
69TFTP简单的文件传输协议
111RPC远程过程调用
123NTP网络时间协议
SUDP:可靠的UDP传输文件 SUDP 立即下载

相关推荐

别再乱删文件了!修复Print Spooler服务自动停止的3个关键检查点(附Win10/Win11实测)

本文深入解析Windows系统中Print Spooler服务自动停止的常见原因及修复方法。从第三方驱动冲突、权限与服务依赖关系到打印队列积压,提供3个关键检查点的详细排查步骤,帮助用户彻底解决打印服务异常问题,适用于Win10/Win11系统。

weixin_31569671的博客 675

Frp内网穿透的配置与启动-linux、windows、Mac

目录 一、客户端下载 二、配置frps.ini和frpc.ini文件(最重要) 一、连接内网windows远程桌面 二、其他需求 三、启动 四、其他 一、客户端下载 https://github.com/fatedier/frp/releases 常用的64位安装包如上图,下载,解压后,得到如下文件(windows示例)。其中 frps 为服务端,frpc为客户端。frps_full.ini为全量配置信息,可以自己阅读后,挑选需要的配置信息,写入frps.ini即可完成配置。 .

韩麸子的博客 1万+

STM32F4使用CUBEMX ADC定时采样+DMA

STM32、FFT、ADC、TIM

m0_62379750的博客 4222

TCP、UDP协议

文章目录前言一、TCP 协议1.1TCP/IP协议簇的传输层协议1.2TCP协议1.3TCP报文段1.4TCP连接二、UDP协议2.1UDP协议2.2UDP报文的首部格式总结 前言 提示:面向连接网络协议,是指通信双方之间在进行通信之前要先建立连接。比如打电话,双方电话前需要先建立连接。 无连接网络协议,是指通信双方不需要事先建立一条通信线路,而是把每个带有目的的地址的包发送到网络线路上,由系统自主选定路线进行传输。比如QQ、微信发送信息。 提示:以下是本篇文章正文内容,下面案例可供参考 一、TCP 协

渡渡甲的博客 322

从科研小白到动物行为分析:我的DeepLabCut 3.0安装与初体验全记录

本文记录了从科研小白到成功安装并使用DeepLabCut 3.0进行动物行为分析的全过程。详细介绍了Anaconda环境配置、CUDA版本选择、DeepLabCut安装步骤及验证方法,并分享了初体验中的实用技巧和跨学科研究心得,为生物研究者提供了AI工具应用的实战指南。

weixin_30235225的博客 402

告别CAPL编程!用Matlab/Simulink+CANoe实现复杂ECU仿真的5个技巧

本文介绍了如何利用Matlab/Simulink与CANoe进行联合仿真,以替代复杂的CAPL编程,高效实现复杂ECU仿真。文章分享了5个核心技巧,涵盖信号映射、模型编译集成、实时参数调整、性能优化及数据分析,帮助算法工程师构建稳定强大的仿真环境,显著提升开发与测试效率。

rgv234567的博客 296

一种基于UDP的可靠传输协议 摘录

http://blog.sina.com.cn/s/blog_54134837010183vw.html TCP和UDP不能很好地满足应用需求,这就需要能够兼顾可靠性和高效性的传输层协议。 SRUDP协议基于UDP之上,它有两个字节的协议头,为一个字节的前向序号与一个字节的后向序号。前向序号表示期望下一次对方发送的SRUDP包序号,后向序号表示带给对方的证实序号。围绕这两个字节的协议头,...

icebergliu1234的博客 372

【开关电源】开关电源实战经验分享

开关电源原理设计、Layout设计经验分享

weixin_42098658的博客 4169

frp stcp远程桌面使用sudp加速(toml配置)

frps.toml 远程桌面 sudp加速

qq_43201447的博客 3036

本地部署大模型 vs 网页版大模型区别

fill:#333;color:#333;color:#333;fill:none;本地服务器/工作站硬件资源私有化部署GPU集群高速存储模型文件训练框架推理引擎。

Ds-Rag的博 1712

《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)

《C++面向对象程序设计》✍千处细节、万字总结 文章目录《C++面向对象程序设计》✍千处细节、万字总结一、面向对象程序设计二、C++基础2.1 C++的产生和特点2.2 一个简单的C++示例程序2.3 C++在非面向对象方面对C语言的扩充输入和输出cinconst修饰符void型指针内联函数带有默认参数值的函数函数重载作用域标识符"::"强制类型转换new和delete运算符引用三、类和对象(一)3.1 类的构成3.2 成员函数的定义3.3 对象的定义和使用3.4 构造函数与析构函数构造函数成员初始化列表

像写诗一样优雅地写代码~ 78万+

传输层UDP/TCP协议

本文摘要:文章深入解析了TCP/IP协议栈中UDP和TCP的工作原理。UDP作为无连接协议,通过端口号标识通信,采用固定8字节报头,无需连接管理但缺乏可靠性保证。TCP作为面向连接的可靠协议,通过三次握手建立连接,引入序号确认、滑动窗口、拥塞控制等机制确保可靠性。重点探讨了TCP的可靠性机制(确认应答、超时重传)、连接管理(三次握手/四次挥手)、流量控制(滑动窗口)和拥塞控制算法。同时分析了粘包问题、异常处理及全连接队列等实现细节,对比了两种协议在缓冲区管理、报文处理等方面的差异,全面阐述了TCP/IP传输

KEEP ON KEEPING ON 3507

DDR5 输入时钟抖动规范全解析!技术宅必看

简单说,时钟抖动就是时钟信号边沿的“颤抖”——信号本来应该在某个固定时间跳变,但实际时刻可能会前后波动。这种波动可能是随机的,也可能是确定性的。随机抖动(Random Jitter, Rj):符合高斯分布,像是你家猫咪不经意的晃动。确定性抖动(Deterministic Jitter, Dj):受限于特定周期或模式,像是邻居装修时的规律敲击声。⚠️ 注意,如果时钟抖动超出规格,DDR5可能无法正确接收或发送数据,内存错误、系统崩溃可就跟着来了!

weixin_43199439的博客 391

关于传输层的TCP/UDP协议

单纯的学习笔记。 在计算机网络中,传输层位于网络层之上,应用层之下。网络层负责提供主机与主机之间的逻辑通信,而传输层负责进程与进程之间的逻辑通信。传输层位于网络层之上,依赖和利用网络层提供的服务,对网络层的服务进行进一步的加强,为应用层提供服务。 主要提供了下面的服务: 1.复用/分用 2.可靠数据传输机制 3.流量控制机制 4.拥塞控制机制 不同的传输层协议提供的服务功能是不一样的。 ...

weixin_43786976的博客 448

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

传输层协议——UDP/TCP

大家观察上图,在这种情况下,滑动窗口就没有进行右移,只是变窄了,其实这也很好理解,发送端发送了1001-2000的报文,假设对方窗口大小为4000,且对方上层一直不拿其接收缓冲区中的数据,此时ACK报文中确认序号是2001,表示刚才发的1000字节对方收到了,那么此时对方接收缓冲区就只剩3000字节的空间了,此时发送端就不能将滑动窗口右移,只能将滑动窗口变窄,所以滑动窗口是不一定右移的,因为对方接收能力可能不断在变化,从而滑动窗口也会随之不断变宽、变窄或者不变。,这样就陷入了一个死循环。

2302_81486993的博客 1717

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

传输层协议——UDP/TCP协议

上一篇说过了HTTP,这一篇就来看一下UDP和TCP,UDP简单,TCP可靠,一篇文章让你直到原因。

m0_64607843的博客 1678

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

<网络> 传输层的TCP/UDP协议

TCP的面向字节流是指它将数据视为连续的字节流,而不是将数据划分为离散的消息或数据包。这意味着在TCP连接中,数据被视为一系列无结构的字节,发送方和接收方之间没有明确的消息边界。这与UDP不同,因为UDP是面向数据报的,每个数据包都是独立的单元,有明确的边界。TCP:数据在TCP连接中被视为一个无间断的字节流。发送的数据可以被拆分成多个小块,然后在接收端重新组装,但这一切都在传输层进行,上层应用程序不需要关心数据的分段和重组。UDP:UDP以数据报的形式传输数据,每个数据报都是独立的消息。

weixin_61522065的博客 1335

传输层协议UDP/TCP

服务器:服务器收到客户端的SYN请求后,会发送一个带有SYN和ACK标志的数据段作为响应,服务器在响应中设置自己的初始序列号,并确认客户端的序列号,确认号字段设置为客户端的初始序列号加1。2. 发送方:发送方根据接收方的ACK中的窗口大小调整自己的发送窗口,如果接收方的窗口大小增加,发送方可以发送更多的数据,如果窗口大小减少,发送方需要减少未确认数据的量。2. 发送方:发送方收到接收方发送的数据段,检查TCP头部中的ACK字段,确认接收方已经收到的数据,根据ACK字段更新自己的发送窗口,继续发送后续数据。

2301_80655639的博客 1607

传输层/UDP/TCP协议

TCP/IP协议用“源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”,这样一个五元组来标识一个通信(可以用netstat -n来查看)。

m0_74099572的博客 2590

传输层协议——udp/tcp

UDP/TCP 报文格式,TCP的可靠性机制以及效率机制,全连接半连接,滑动窗口,拥塞窗口,连接管理,延迟应答,捎带应答,流量控制

weixin_64099089的博客 1262

传输层协议之TCP/UDP

详解TCP和UDP两个传输层协议,从协议的报文结构、特性入手展开描述,重点对TCP协议深入的剖析。

weixin_43164548的博客 1475

【网络】传输层--UDP/TCP协议

UDP协议又叫用户数据报协议,属于传输层协议,它是一种无连接、不可靠、面向数据包的一种协议。核心作用是实现两台设备上应用程序的端到端数据传输。知道对方IP+port就直接进行通信,不需要进行连接。没有确认/重传机制,入果传输的数据报在网络中丢失,将没有任何错误返回。数据被打包成一个个独立的“数据包”,每个数据包都是独立的、完整的,互不关联。

2301_80820096的博客 417

[ 网络 ] 传输层协议——TCP/UDP

传输层协议:UDP/TCP

优快云博客 2295

认识传输层协议—TCP/UDP

本篇博客主要讲述以下几点1.网络编程的情况2.如何使用ip+port3.socket的使用4.UDP的特点不可靠,无连接,面向数据报文(数据内容在经过通信时不进行拆封,也就是我不会打开这封信,也就不存在数据改变的问题,对方可以完整接收到数据,当然前提是传出去了)httpshttpshttpshttpshttps。.........

weixin_65278827的博客 652

传输层:UDP/TCP协议

本文对比分析了TCP和UDP两大网络协议的核心特性。UDP作为无连接协议,具有不可靠但高效的特点,其64KB报文长度限制是主要痛点。TCP通过十大核心机制实现可靠传输:1)确认应答保证数据有序到达;2)超时重传应对丢包;3)三次握手/四次挥手的连接管理;4)滑动窗口提高效率;5)流量控制防止接收方过载;6)拥塞控制适应网络状况;7)延迟应答提升吞吐量;8)捎带应答减少报文;9)字节流特性带来的粘包问题及解决方案;10)异常处理机制。文章详细解析了TCP各机制的工作原理,包括状态转换、窗口调整策略等,并讨论了

C语言 1837

传输层的重要协议UDP/TCP

学习网络协议,主要就是在学习协议格式。

2301_81012314的博客 1083
上一篇: 路由概述
下一篇: 虚拟路由器冗余协议-VRRP
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值