传输层:UDP/TCP协议

Linux 网络深度剖析:传输层协议 UDP/TCP 原理详解 摘要:传输层协议是网络通信的核心环节,UDP和TCP作为两种主要协议各有特点。UDP采用无连接方式,协议简单高效但不可靠,适用于实时性要求高的场景;TCP通过三次握手建立可靠连接,提供有序、无丢失的数据传输,但开销较大。在Linux系统中,可通过调整内核参数对两种协议进行优化,如UDP的内存管理和TCP的窗口设置。实际应用中需要根据业务需求选择合适的协议,并通过工具监控网络状态,以获得最佳性能表现。 阅读详情

网络协议图

一.UDP 

特点:

无连接,不可靠,面向数据报,全双工(前面网络编程中介绍过)

 格式:

 

 服务器的端口号一般都是程序员指定的(这样你才能访问到),客户端的端口号是系统自动分配的(如果提前指定好, 可能会与其他程序冲突)

UDP的长度问题

也许你也会有一个问题:在当今的世界, UDP的报文最大长度为64kb,是否够用?

显然是不够用的,这也是UDP的最大痛点,也是被边缘化的主要原因

为什么设计UDP的大佬不做出改变,将UDP报头的表示长度的属性不设计更大一点4字节?6字节?

不是技术问题,是zz问题↓

要传输一个超过64kb的数据该怎么办?

有两个方案

 校验和

 

 上述的比特翻转本来就是小概率事件, 敲好两个反转能抵消的概率小之又小, 工程上可以忽略

UDP发现数据校验不对时,只能丢弃不会重发, 也是不可靠传输的体现,想要重发要么使用TCP,要么在应用层代码中自己实现

二.TCP

特点:

有连接, 可靠传输,面向字节流,全双工

格式

 像上面的32位序号和确认序号16位窗口大小和紧急指针,还有那六个标志位后面会介绍到

三.TCP的十大核心机制

核心机制一:确认应答(可靠性机制)

TCP的可靠传输是内核实现的,写代码的时候是感知不到的
可靠传输的实现机制是 确认应答(我给对方发消息,对方收到之后给我一个应答说确认收到了),确认应答是保证可靠传输的最核心的机制

再说一下确认应答的后发先至
比如我给女神发消息
本来是

结果是可能是

当连续发多条数据的时候,可能就会出现后发先至的情况(一个数据报是先发的,反而后到了)
怎么产生的呢?

 如何解决?

针对数据编号,就要用到报头中的32位序号了

 

 

应答报文可能携带载荷也可能不携带

引入序号之后接收方就可以根据序号顺序排序来依次读取数据了

核心机制二:超时重传(可靠性机制)

在传输数据的过程中,还可能发生“丢包”,也就是发送一个数据在传输的过程中丢了,没有到达对方


在两个主机之间,网络的结构是非常复杂的,中间要经过很多路由器和交换机,这些路由器和交换机同时也连接着其他的路由器和交换机,这些结果错综复杂,传输的数据量也是不确定,有时候传输的数据可能会多点,有时候可能会少点
如果设备太繁忙,这些数据包就需要等待,如果等太久了,就可能被丢弃了,网络负载越高,线路就越繁忙,就越容易丢包

某段路线出现强烈信号干扰也会丢包

真的出现丢包怎么办呢? 

重传!设置一个时间,在规定的时间里面没有收到回应,就重新传输这个数据,这个就叫做超时重传

 两种丢包的情况

以下两种情况接收无法分辨, 都会触发重传

第一种情况(要传输的数据包丢了)

 这种情况发送的数据丢了再重新传一次就好了 主要还是第二种情况

第二种情况(返回的ACK应答数据包丢了)

接收缓冲区在操作系统内核中会分配一个专门缓冲区存储数据等待TCP协议栈处理,类似于生产者消费者模型

确认应答是tcp保证可靠性的最核心机制;超时重传是TCP可靠性机制的有效补充,这两个机制保证了tcp的可靠性传输,并不是三次握手

核心机制三:连接管理 [网络这个模块最常考的部分]

1.建立连接(三次握手)

tcp是有连接的 客户端与服务器是通过三次握手来建立连接的

 这个时候就有疑问了:明明三次握手上面确实是四次握手?

这里的中间两次握手可以合并为一次↓

 

为什么能合并?

其实syn和ack打包是在操作系统内核中完成的 时间上可以说是同步的,tcp也允许在报头中设置多个标志位(ACK和SYN都为1) 同时合并也能减少开销提升效率

三次握手传输的是什么?

传输的数据的序号从几开始,往往两次连接的初始序号差别很大(这里就为了防止前朝的剑斩本朝的官问题后面会介绍到) 还会告诉对端的IP和端口号并且互相保存(有连接的体现)这是网络层IP协议要做的(每次网络传输都会涉及最开头那张图的封装分用)

三次握手TCP层的状态

上述只是简单描述了一下三次握手,实际的三次握手比这个更加复杂,如下图框出的地方(再下面是传输数据和四次挥手的过程)

 各状态的介绍

上述状态常见的就是listen和establish

 为啥tcp要三次握手,有啥用,解决了啥问题?

1.投石问路,先初步探一探网络通信链路是否通畅(网络通常是可靠传输的前提条件)

2.验证通信双方的发送能力和接收能力是否正常

讨论:两次握手是否可行?

不行,两次握手少了一步给服务器发ack,这会让服务器不知道服务端的接收能力是否正常和服务器的发送功能是否正常

四次握手是否可行?

可以,但是没必要,浪费资源,效率较低

3.可以协商一些关键信息

也如前面所说防止出现前朝剑斩本朝官 

2.断开连接(四次挥手) 

过程

问题:四次挥手的中间两次能否合并变成三次挥手?

有时候能有时候不能

不能:ack和fin的交互时机不一样ack是在操作系统内核中就完成了,fin需要应用层应应用程序调用close方法,时机不同所以就不能合并,而三次握手之所以能是因为ack和syn都是在内核中完成的交互时机可以说瞬发,就可以合并

能:tcp有延迟应答机制,可以延迟发送ack,这样就可以和fin同步了

虽然有时候能有时候不能,但是大多数情况下还是不能

四次挥手TCP层的状态

如图圈出来的

 重点就关注close_wait和time_wait状态

close_wait状态介绍 

 time_wait状态介绍

time_wait要等多久才合适呢?

2*MSL(网络上任何两个节点传输所要消耗的最大时间) 通常会配置成60s ,2*MSL也就是两分钟

MSL每个系统配置的都不一样,也能修改

异常情况


再谈TCP式如何实现可靠传输的?


确认应答
超时重传
连接管理(三次握手,四次挥手)(握手挥手的过程也是依靠确认应答和超时重传实现可靠传输的)
这些机制都起到了作用,在三次握手中,一旦路探完了,后续就没它事了,网络环境事多变的,可能这会畅通,过会就堵塞了,而确认应答,是保证每次传输的这些数据都是可靠的,因此真正起到决定性作用的还是确认应答!

核心机制四:滑动窗口(提高提高传输效率)

更准确地说,是让TCP在可靠传输的前提下,效率别太拉跨,因为可靠传输效率已经降低了(可靠和效率不可兼得)
使用滑动窗口,不能让TCP变得比UDP快,但是可以缩小差距

下一组是怎么发的?

1.等待所有ack都收到再发下一组

2.收到一个发一个

很明显是第二种,第一种并不能节省多少时间,甚至会等待更长时间 

如果2001比1001的ack先收到会怎么样?

如果这样的情况窗口直接往后走两个就行了, ack确认序号的含义是该序号之前的数据都已经收到了,比如数据1-50收到了 71-100收到了51-70没收到,返回的ack确认序号也是51不会是101,等到后续收到51-70才会发送确认序号为101的应答报文

丢包问题

 情况一:数据包已经抵达,ack却丢了

这种情况不要紧,因为可以通过后续的ACK进⾏确认; 也就是上面所说的确认序号的作用

情况二:数据包直接就丢了

重传采用的是快速重传机制(滑动窗口下的,超时重传的变种操作)

快速重传就是只要谁丢了就重传谁,其他的数据(都已经在接收缓冲区里呆着)不用重传,整个过程速度很快

接收方的缓冲区情况↓

超时重传和快速重传并不冲突而是相辅相成

核心机制五:流量控制(作为滑动窗口补充)

滑动窗口的窗口越大,传输效率越高
但是窗口也不能无限大,如果窗口太大了,就可能使接收方处理不过来了(和你代码有关系),或者是使传输的中间链路处理不过来,这样就会出现丢包,就得重传了,这时候窗口大并没有提高效率,反而降低效率了
流量控制就是给滑动窗口睬踩刹车,避免窗口太大,导致接收方处理不过来 

 *滑动窗口的窗口大小是实时变化的

 具体流程

 光考虑接收方,还是不够的,还需要考虑中间链路的处理能力(也就是拥塞控制)

核心机制六:拥塞控制

总的传输速率是一个木桶效应,取决于最短板

具体怎样衡量中间设备的转发能力呢?
此处并不会对中间设备的转发能力进行量化,因为中间设备那么多也不好逐个进行量化,更何况网络环境还是动态变化的,而是把中间的设备都看成一个整体,采取“做实验”的方式,动态调整,产出一个合适的窗口大小

这样做也可以非常好的适应网络环境的动态变化 

方案↓

 

实际发送方的窗口 取决于拥塞窗口,流量控制窗口的最小值
拥塞控制喝流量控制共同限制了滑动窗口机制,可以让滑动窗口能够在保证可靠性的前提下,提高传输效率了
也就是说拥塞控制和流量控制也是保证可靠性的机制 

核心机制七:延迟应答(提高传输效率的机制).

(延迟应答也是围绕滑动窗口来展开的)
是否有办法在条件允许的基础上,尽可能地提高窗口大小呢?
需要在返回ack的时候,拖延一点时间,利用拖延的这个时间,就可以给应用程序腾出来更多的消费数据的时间,这样接受缓冲区的剩余空间就更大了!

 

此处通过延时应答到底能提高多少速率,还是取决于接收方应用程序实际的处理能力(也不是百分百提升效率还是看应用程序消费的快不快,也有可能延时的时候又收到了其他数据)

 核心机制八:捎带应答

在延迟应答的基础上,引入的第一个进一步提高效率的方式
延迟应答使让ack传输的时机更慢
捎带应答使基于延迟应答,让数据进行合并

核心机制九:面向字节流(粘包问题) 

这里主要讨论粘包问题至于这个粘读zhan和nian的都有

有以下情况 

解决办法

 已经有成熟的方案例如json和protobuf已经解决粘包问题,但是自定义应用层协议的时候就要考虑到这个问题

核心机制十:TCP异常情况的处理(经典面试题)

 网络本身就会存在一些变数,导致tcp连接不能继续正常工作了
比如
1.进程崩溃


进程崩溃=>进程没了=>PCB没了=>文件描述符表也就被释放了=>相当于调用socket.close()(socket在系统内核中也是一个文件,也会被放到文件描述符表中)=>崩溃的这一方就会发出FIN,进一步的触发四次挥手,此时连接就正常释放了,此时tcp的处理和进程的正常退出没啥区别

 2.主动关机

 3.主机掉电了

心跳包

 4.网线断开了

 

以上就是TCP的十个主要特性,并不是只有这十个特性,还有很多特性在标准文档中  

 补充:tcp报头其他属性

TCP和UDP对比

如何实现UDP的可靠传输,就往TCP上面靠

 

 

计算机网络(四):传输层协议TCP/UDP协议 传输层 传输层协议:TCP TCP(transmission control protocal)传输控制协议,在应用程序间建立虚拟链路,进行数据传输。 TCP协议位于TCP/IP协议第3层,将应用层数据进行包装,传输给网络层进一步处理。 具体:传输层在进程与进程之间进行数据传输。端口对应进程。将应用层的数据包装成一个一个的process,通过复用技术转换成message,再进行I... 阅读详情

相关推荐

地平线RDKX3初始配置与USB无线网卡

地平线X3无线网卡配置

Richard_Mei的博客 4076

TCP/UDP协议【工作:传输层】

1.网络7层 应用层 表示层 会话层 传输层【拼接源端口,目的端口】 网络层 【拼接源ip,目的ip】->路由器的工作 数据链路层【拼接源mac地址,目的mac地址】-->交换机工作 物理层 2.什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标...

yinjinshui的博客 3677

ubuntu恢复分区表——testdisk

testdisk恢复ubuntu分区表testdisk介绍安装testdisk使用testdisk恢复分区表 testdisk介绍 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,也经常被用来恢复被误删的文件。 安装testdisk 如果系统分区表被删除,需要使用ubuntu的启动盘,选择try ubnutu模式进入试用系统。 1、可以直接在终端安装testdisk: sudo apt-get install testdisk 通过命令直接打开testdisk: t

ZNestor的博客 6459

【Linux】传输层协议:TCP/UDP

传输层的作用就是负责数据能够从发送端接收数据端口号端口号(Port)标识了一个主机上进行通信的不同应用程序;在TCP/IP协议中,用“源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”这样一个五元组来标识一个通信(可以通过netstat -n查看)端口号范围的划分0 - 1023:知名端口号,HTTP,FTP,SSH 等这些广为使用的应用层协议,他们的端口号都是固定的。认识知名端口号有些服务器是非常常用的为了使用方便人们约定一些常用的服务器都是用以下这些固定的端口号。

lzb_kkk的博客 1299

Scrum中敏捷项目经理(Scrum Master)扮演什么角色?

Scrum Master是Scrum团队中的“服务员”,负责确保所有人都能理解Scrum的理论、实践和规则,以及帮助团队最大化Scrum的利益。Scrum Master服务于Product Owner,帮助Product Owner理解如何使团队的工作最有效地满足产品目标。Scrum Master服务于Development Team,移除开发团队工作上的障碍,保证团队按照Scrum的方式运作。Scrum Master不是团队领导。Scrum团队是自组织的,意味着团队具有做出决策的能力。

huaqianzkh的专栏 2515

静态时序分析—门控时钟检查(clock gating check)

clock gating check的条件与类型

m0_61544122的博客 9603

【Linux网络】网络基础:传输层UDP/TCP协议(一)

传输层协议,特别是用户数据报协议(UDP)和传输控制协议(TCP),是网络通信中最为基础也最为重要的部分。它们不仅决定了数据的传输方式,还影响着数据的可靠性、顺序性和实时性。对于想要深入了解互联网运行机制、掌握网络通信技术的朋友们来说,学习UDP/TCP协议无疑是必经之路。

EterNity_TiMe_的计算机学习之路 6709

【推荐100个unity插件】将UE的资源导出到unity使用—— Exporter for Unreal to/for Unity插件

Unreal to Unity导出器是一款帮助开发者将Unreal Engine项目转换为Unity的工具。文章详细介绍了使用步骤:1)安装虚幻引擎并创建项目;2)在Plugins文件夹中安装导出插件;3)导入UE资产到Content文件夹;4)配置导出参数并完成转换。文末推荐了多个Unity开发专栏,涵盖C#编程、2D/3D开发、特效制作等内容。作者向宇提供了博客地址,欢迎读者交流学习。该工具能有效提升项目迁移效率,适合需要跨引擎开发的用户使用。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 848

波奇学网络:传输层之UDP/TCP协议

TCP/UDP在传输层,IP地址标识主机,端口号标识运行在主机上的进程,端口号划分 netstat:查看网络状态,UDP,TCP,TCP报文,确认应答机制,32位序号和32位确认序号 序号,确认序号,确认序号和序号同时存在的原因,6个标志位,RST应用场景,URG应用场景 TCP可靠性策略,确认应答机制,超时重传机制,TCP的连接管理机制,连接流程,为什么有三次握手?为什么四次挥手?TIME_WAIT状态,TIME_WAIT的时间为什么是2MSL?,TCP流量控制

Boki 1149

【26美赛B题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

2026美赛数学建模B题解析与备赛指南:本文针对B题"数据+预测+决策优化"的特点,提出通用建模路线图,包含数据预处理、特征工程、预测模型构建、策略优化和稳定性验证等关键环节。提供赛题拆解方法、Python/Matlab双实现方案、AI辅助建模技巧及论文写作模板。适用于2026美赛B题参赛者及其他数学建模竞赛选手,帮助掌握从数据到决策的闭环建模流程,特别强调逻辑严谨性和结果可视化呈现。订阅者可获取历年真题解析和持续更新的备赛资源。

一键难忘的博客 2109

基于YOLOv5s的RK3588多线程部署16FPS暴涨到120FPS 轻量化深度学习部署实战教程(包括性能优化与加速)37

本文介绍了如何在RK3588平台上利用线程池优化YOLOv5模型的推理性能。RK3588内置3个NPU核心,支持多核并行处理。作者设计了一个线程池架构:1个线程负责数据读取,10个线程处理NPU运算,1个线程输出结果。该架构包含任务队列、线程管理和工作线程三个核心组件,通过合理设置线程数、任务队列大小等参数确保性能稳定。文章提供了详细的C++实现代码,包括线程池初始化、任务提交、结果获取等功能模块,并讨论了多线程同步和内存管理的关键技术要点。该方案可显著提升深度学习模型在嵌入式设备上的部署效率。

FJN110的博客 9225

以太网详解(八)传输层协议:TCP/UDP 协议

OSI网络层是通过 “逐节点”(Hop-by-Hop)实现源主机到目的主机间网络协议数据单元(Internet 中的 IP)的 “端到端” 传输的。即使网络层在节点间提供服务确认,仍不能保障 “端到端” 可靠传输(如果中间节点对收到的数据确认后,在前传前出现节点故障)。网络层地址仅能标识网络设备或端系统的网络端口,不能作为标识系统内部的多个应用进程(用户平台的应用进程或信控管理平台的特殊应用进程)的标识符,因此需要应用进程传输层标识符(TSAP);在 Internet 中称为 “端口号”。

s1_mple的博客 2161

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

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

7.传输层协议:TCP/UDP

7.传输层协议:TCP/UDP 前言 传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP和用户数据包协议UDP; TCP/UDP工作原理、报文格式、应用场景 面向连接:建立连接前先发数据包 面向无连接:不用建立连接,就是打电话和发短信的区别; TCP 面向连接的传输层协议,可提供可靠的传输服务 转存失败重新上...

运维开发工程师 225

jre9下载 jdk9

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【网络协议安全】任务3:传输层协议TCP/UDP

TCP头部中的确认标识位有什么作用?在TCP头部中,ACK标志位(Acknowledgment Flag)是一个重要的控制字段。当此位被设置时,表示该报文段包含了接收方期望接收到的下一个字节的数据序列号1。具体来说,在建立连接之后传输数据的过程中,每当一方成功接收到另一方发来的数据后,会在返回给对方的TCP报文中将ACK位置,并且在确认应答字段内填写已正确接受到的最大按序字节数加一作为下一次期待收到的第一个字节编号。这有助于实现可靠的数据流传输机制并支持丢失重传等功能。

不羁的博客 1301

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TCP/IP协议之传输层:TCP/UDP协议详解(一)

简介: 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Controll Protocol、UDP(用户数据报协议,User Data Protocol)是传输层最重要的两种协议,为上层用户提供级别的通信可靠性。 传输层的功能 传输层的主要功能是实现分布式进程之间的通信。利用网络层提供的服务,在源主机的应用进程与目的主机的应用进程建立“端—端”连接。 传输层之间传输的报文称...

一个Android菜鸟的博客 3164

网络原理(四):传输层协议 TCP/UDP

我们介绍了 udp 协议,和 tcp 协议 确认应答,超时重传(确保可靠性的核心机制) 链接管理(网络链接的核心机制,三次握手和四次挥手面试常考) 滑动窗口(优化手段,增加效率) 流量控制,拥塞控制(组成滑动窗口的机制,也是优化手段,其中流量控制也是保证可靠性的一种) 延时应答,捎带应答( 提升效率的机制 )】

weixin_67807492的博客 1803

Linux:带你理解传输层的UDP/TCP协议

UDP/TCP协议再谈端口号端口号范围划分netstatpidof传输层UDP协议协议实现对上层应用的影响:TCPTCP数据传输的过程TCP 和 UDP 对比面试系列 再谈端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过 netstat -n查看); 端口号范围划分 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为

AngelDg的博客 811

【网络与配置:传输层和tcp协议/udp协议】

七层模型的传输层、传输层的tcp协议和udp协议。

Mits_Ximu的博客 337

Linux网络:传输层协议 TCP/UDP(1)

如果缓冲区的数据满了,再来的UDP数据会被直接丢弃。32位确认序号:发送报文的末端序列号+1,告知对方发送报文的末端序列号前的数据已经收到,下次发送从发送报文的末端序列号+1处开始发送。在接受到对端的报文时,根据确认应答机制将缓冲区中剩余空间的大小通过响应告知对端,当接近为0时对端就会停止发送报文,避免了上述问题。但TCP在接受报文时会根据报文号进行排序,所以最后在缓冲区的TCP报文最后是跟发送时的顺序是一致的。在TCP缓冲区中进行报文重排(数据有序性),上层来不及读取的报文暂时保存在接受缓冲区中等等。

m0_61088872的博客 1054

传输层协议:TCP/UDP (内涵三次 四次)

面向连接,慢 稳定。

MCB134的博客 1155

传输层之TCP/UDP 核心原理全解析:从协议基础到实战机制

本文以三万字超详细系统梳理 TCP/IP 传输层核心知识,涵盖 TCP 与 UDP 协议差异、TCP 报头关键字段、三次握手 / 四次挥手连接管理,以及滑动窗口、流量控制、拥塞控制等核心机制,详解超时重传、快速重传、延迟应答等优化策略与异常处理逻辑,结合实例与场景类比,层层拆解传输层可靠通信的底层原理,让你一篇搞懂传输层协议!

Zach_yuan的博客 1207

Windows编程——网络概念(二):传输层协议、TCP/UDP

文章目录简介UDP(用户数据报文协议)TCP(传输控制协议)TCP简介TCP选项滑动窗口TCP连接的建立和终止三次握手三次握手状态转换过程与对应函数TCP连接终止TCP的状态转换图三次握手时的状态转换四次挥手的状态转换被动关闭端read到EOF的处理TIME_WAIT状态对已经调用close函数之后的描述符进行读写操作SO_REUSEADDR——套接字端口重用TCP_NODELAY选项端口套接字对(socketpair)TCP发送数据TCP消息丢失问题 简介 传输层包括:TCP、UDP和SCTP(stre

卢然小子的博客 1068

TCP/IP协议模型:传输层(TCP/UDP)

TCP协议主要信息: (1)TCP头部信息。TCP头部信息出现在每个TCP报文段中,用于指定通信的源端端口号,目的端端口号,管理TCP连接,控制两个方向的数据流。 (2)TCP状态转移过程。TCP连接的任意一端都是一个状态机。在TCP连接从建立到断开整个过程中,连接两端的状态机将经历不同的状态变迁。 (3)TCP数据流。通过分析TCP数据流,可从网络应用程序来了解应用层协议和通信双方交换的应用程序...

a_s_u_y_u的博客 3073

网络基础:传输层的典型协议:TCP/UDP协议、三次握手、四次挥手

传输层 传输层的功能:负责两个进程或者应用程序之间的数据传输 UDP协议 协议格式 16位源端-对端端口:用于识别通信两端进程 16位数据报长度:能够描述的最大数字为65535,即一个udp报文总大小不能超过64K 16位校验和:采用二进制反码求和算法,用于校验接收到的数据与发送方的数据是否一致 协议特性 无连接:通信时不需要建立连接,只需要知道对方的地址就可以直接发送数据 不可靠:不保证数据安全有序地到达对端 面向数据报: 面向数据报的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一

weixin_43962381的博客 681

传输层 :TCP/UDP 协议(用于封装接口)

一、UDP协议 16 位源端口号、目的端口号:用于定位进程 。 端口号上限是 216^{16}16 - 1 = 65535。 二、TCP协议 TCP 数据报:除了拥有端口号,还拥有 (1)32 位为序号、确定序号:用于校验是否投递成功以及递达顺序。 (2)16 位窗口大小:滑动窗口。 注意:IP 地址可以在网络环境中标识唯一的主机;端口号可以在主机中标识唯一的进程。 网络层定义了源和目的 IP,传输层定义了源和目的的 端口,这样就可以指定由“源主机的某进程”到“目的主机的某进程”的通信。 ...

weixin_42374938的博客 364
上一篇: 应用层:HTTP/HTTPS协议
下一篇: 网络层(IP协议) && 数据链路层(以太网)
刘 大 望
博客等级 码龄1天 896粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值