TCP/UDP传输层协议字段信息及其内容

传输层协议(TCP/UDP)概述 之前有了解一些网络的一些基本知识,那么数据究竟是怎么进行传输的?我们通过一些信息来描述一条在网络上进行传输的数据。将其称为五元组: 源IP地址+源端口号+目标IP地址+目标端口号+传输层协议 IP地址:用来在网络上标识唯一的主机 用uint32_t(43亿)的数据表示 端口号:用来标识一台主机上进行网络通信的进程 用uint_16的数据表示 通过五元组标识后,就可以将... 阅读详情

传输层:负责端与端之间的数据传输(进程与进程间,端与端)
典型的有 TCP和UDP
UDP协议
特性:无连接,不可靠,面向数据报
字段信息:在这里插入图片描述
四个部分 16位源端口 16位目的端口 16位数据长度 16位校验和 各为2B
16位数据报长度:udp数据报的总长度(包括UDP的首部)为了避免接收半条数据,导致缓冲区的数据长度无法标识,导致交付混乱,由此每次只能整条交付(UDP向应用层交付),同时因为是16位所以整条数据(包括头部)不能超过64K;则发送数据不能大于64K-8k,大于就要分包,且分出的包不能大于64K-8;且不能保证数据包能依次到达;再应用层进行分包后,还需要用户在应用层进行包序管理。
面向数据报: 传输层向应用层交付数据的时候一条一条的交付,如果接收用的缓冲区比一整条的数据小,那么就不会进行交付。如果接收缓冲区很大的话,也只会交付一条。(原因:如果一次先接一半再接一半还需要用一个新的变量进行管理而在udp中没有封装此字段)
1)概念:从IP层来说,通信的两端是两台主机,但是真正进行通信的实体是在主机中的进程,即一台主机的进程和另一台主机的进程交换数据。
传输层基于UDP实现的应用层协议:
DHCP:动态主机配置协议
DNS等

TCP协议(传输控制协议)
特性:面向连接,可靠传输,面向字节流
协议字段信息在这里插入图片描述
16位源/目的端口:实现端于端之间的数据传输
32位序号/确认序号:保证tcp数据的有序交付(包序管理)
4位首部长度:tcp报头长度 以四字节(32位)为单位,包头范围20~60 15*4=60
6位标志位:URG:紧急指针是否有效 ACK:确认号是否有效 PSH:提示接收端程序立刻从TCP缓冲区把数据读走 RST:对方要求从新建立连接(复位报文) SYN:请求建立连接(同步报文) FIN:通知对方,本端要关闭(结束报文)
16位窗口大小:用于实现滑动窗口机制
16位效验和:发送端填充,二进制反码求和算法 接收端再效验如果不一致,认位数据有问题,此处效验不光包含头部,也包含数据部分
16位紧急指针:识别那一部分是紧急数据
40位选项信息
取数据流程:先取20个字节,然后查看字段信息,如果首部长度算出结果大于20字节,那么就继续往后取 X-20;

传输层协议-TCP各个字段含义 本文通过具体的数据包说明TCP协议每个字段的含义和实际的作用 阅读详情

相关推荐

HTTP 传输字段详解

网络传输入门或者想深入学习下必备书籍,方便学习和查找,对HTTP协议有更深的了解

计算机网络笔记:TCP协议 和UDP协议(传输层)

计算机网络:TCP和 UDP协议

YanHSama的博客 2397

数字电路与逻辑设计——组合逻辑篇

在数字电路中,根据逻辑功能的不同而分为两大类,组合逻辑电路与时序逻辑电路。 1、何为组合逻辑电路 我们只需铭记一点就是,这种电路的输出Y只与当时的输入X有关,而与之前的输入X’无关。所以这是一个可以随输入X的变化而瞬变输出Y的电路,如果用我们的Verilog代码来表示,则可能会出现在如下语句中: ①针对wire型变量,assign Y = X1 && X2; ②针对reg型变量,alway

蓝湖江船客的博客 1万+

UDP和TCP详解

在延迟应答的基础上, 我们发现, 很多情况下, 客户端服务器在应用层也是 “一发一收” 的. 意味着客户端给服务器说了 “How are you”, 服务器也会给客户端回一个 “Fine, thank you”;接收端处理数据的速度是有限的. 如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送,就会造成丢包, 继而引起丢包重传等等一系列连锁反应.当某一段报文段丢失之后, 发送端会一直收到 1001 这样的ACK, 就像是在提醒发送端 "我想要的是 1001"一样;

a1058926697的博客 3808

机器学习kaggle案例:风控评分卡模型(Give_Me_Some_Credit)

kaggle链接:https://www.kaggle.com/c/GiveMeSomeCredit ipynb文件:https://github.com/824024445/KaggleCases/blob/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0kaggle%E6%A1%88%E4%BE%8B%EF%BC%9A%E9%A3%8E%E6%8E%A7%...

weixin_42662126的博客 1万+

MQTT在智能家居中的实战:用Android手机控制ESP8266设备(基于EMQX)

本文详细介绍了如何利用MQTT协议构建一个完整的智能家居控制系统,通过Android手机App远程操控ESP8266设备。文章提供了从EMQX服务器部署、ESP8266端Arduino固件开发到Android客户端搭建的完整实战指南,并深入探讨了系统联调、稳定性优化与安全加固等关键环节,为物联网开发者提供了一套可复用的解决方案。

ujm567890的博客 457

网络

网络简介 1. 网络常见定义 在网络中随着网络的覆盖范围不同,划分出了几种网络:局域网 ,城域网 , 广域网 因特网:更加国际化的,覆盖范围更大的广域网 互联网:许多路由器之间的星型互联 以太网:子网标准 令牌环网:子网标准 2. 软件结构 C/S:Client/Server结构,客户端–>服务器结构 常见:QQ 百度网盘 B/S:Browser/Server结构,浏览器–>服务器结...

zyj497863419的博客 522

STM32 HAL库ADC+DMA配置详解:从CubeMX到实战调试

在嵌入式系统开发中,模数转换器(ADC)是实现传感器数据采集、信号处理等功能的基石。其工作原理是将连续的模拟信号转换为离散的数字量,为微控制器(MCU)提供可处理的数字信息。为了提升系统效率,直接存储器访问(DMA)技术被引入,它作为独立于CPU的数据搬运工,能在不占用CPU资源的情况下,自动完成外设与内存间的数据传输,从而解放CPU以执行更复杂的控制算法或通信任务。这种ADC与DMA的协同工作模式,对于实现高效、实时的数据流处理具有重要价值,广泛应用于电机控制、环境监测、音频处理等场景。本文聚焦于STM3

weixin_30698297的博客 408

UDP包的最大长度理论上是 64K, 但是实现上一般是 8K.

None

zhaozhanyong的专栏 2849

寒武纪面试——数字IC,数字逻辑岗

面试过程:面试是电话面试,通话时间大致在40分钟左右!面试体验挺不错的。面试的岗位是数字逻辑工程师。本人双非,拿过一个国一(南京FPGA大赛),一个数学建模省二。

FPGA/MATLAB学习教程/源码/项目合作开发 1374

【Matlab】多旋翼无人机视觉伺服跟踪控制程序

本文介绍了基于Matlab的多旋翼无人机视觉伺服跟踪控制程序开发方法。该系统采用视觉感知、坐标转换、伺服控制和仿真验证四个核心模块,通过HOG+SVM目标检测、Shi-Tomasi特征提取和PID双闭环控制算法实现动态目标跟踪。详细阐述了相机标定、目标检测、坐标转换及伺服控制等关键环节的Matlab实现代码,并进行了仿真验证。结果表明该系统在±0.1m的跟踪精度下可实现100Hz的实时处理,适用于室内外复杂场景。文章还提出了工程应用中的优化建议,为无人机视觉伺服系统的开发提供了完整的技术方案。

unber的博客 507

传输层协议 ——— UDP协议

文章目录传输层再谈端口号端口号范围划分认识知名端口号两个问题netstatpidofUDP协议UDP协议格式UDP协议的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议 传输层 再谈端口号 端口号范围划分 认识知名端口号 两个问题 netstat pidof UDP协议 UDP协议格式 UDP协议的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 ......

2021dragon的博客 1万+

【BlueZ】编译产物详解:可执行文件/库文件/工具的生成路径与用途

BlueZ二次开发编译产物机制解析 摘要:在BlueZ蓝牙协议栈二次开发中,90%的报错源于对编译产物类型和路径的混淆。本文系统剖析BlueZ的三阶段编译机制:1)配置阶段生成Makefile;2)编译阶段在.libs目录下产生临时库和可执行文件(不可直接运行);3)安装阶段将产物部署到系统标准路径。重点解析守护进程、命令行工具、动态库的核心路径差异,并针对五大高频问题(如临时库运行崩溃、动态库不匹配、系统覆盖等)给出解决方案。

byte轻骑兵的技术小窝 1万+

弄懂UDP与TCP协议,这一篇就够了

文章目录一.协议1.1什么是协议?1.2为什么要制定协议?二.OSI七层模型1.1什么是七层模型?1.2都有哪七层?三.面向连接的TCP协议TCP总结四.无连接的UDP协议UDP总结五.总结参考文献 一.协议 1.1什么是协议? 协议(Protocol)是指通信双方就如何进行通信的一种约定。通俗来讲,协议就是标准,大家要遵循相同的标准才能正常交流通讯。比如我们日常生活中,来自不同国家的人不可能用各...

Kevin.wang 1万+

基于STM32、HAL库的ZMOD4510AI4R气体传感器驱动程序设计

ZMOD4510AI4R是Renesas公司推出的一款数字空气质量传感器,主要用于检测臭氧(O₃)和总挥发性有机化合物(TVOC)浓度。(status & 0x80)) // 检查数据就绪位。// 等待测量完成 (实际应用中应该使用非阻塞方式)// 转换为ppb (简化转换,实际应根据传感器文档校准)* @param hzmod: ZMOD4510句柄。* @param tvoc: TVOC浓度(ppb)* @param ozone: 臭氧浓度(ppb)* @param hi2c: I2C句柄。

corlin6688的博客 311

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

传输层TCP与UDP

传输层 负责数据能够从发送端传输接收端,进程到进程 再谈端口号 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信 端口号范围划分 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的. 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的 我们自己写一个程序使用端口号时, 要避开这些知名端口号 pidof

hbbfvv1h的博客 1万+

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

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

传输层协议UDP详解

传输层协议 ———— UDP,一篇即懂

小白成长之路 5393

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机网络 —— 传输层:TCP/UDP

传输层实现源端主机和目标端主机上对等实体间会话,TCP/IP中两个代表性的传输层协议分别是TCP和UDP,本文对其进行了详细介绍。

聚集机器学习、信息安全 4539

UDP / TCP 协议

UDP / TCP 协议

Excuse_lighttime的博客 3828

网络基础二——传输层协议UDP与TCP

传输层协议 UDP和TCP的认识

qq_33093885的博客 2427

【TCP/IP协议栈】4. 传输层协议(TCP、UDP)

协议森林07 傀儡 (UDP协议) - Vamei - 博客园TCP和UDP详解(非常详细)_tcp udp-优快云博客我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer),协议的种类又开始繁多起来(比如TCP、UDP、SCTP等)。

m0_74209072的博客 2590

传输层协议——UDP协议

当主机从网络中获取到数据后,需要自底向上进行数据的交付,而这个数据最终应该交给上层的哪个应用软件进程,就是由该数据当中的目的端口号来决定的。因为最终我们需要将数据交给应用层,而且是通过传输层将最终数据交给应用层的,所以传输层必定能够提取出相应的端口号,从而知道应该将数据交付给应用层的哪一个进程。在传输层,将报头和有效载荷分开后,提取出报头中的16位UDP长度,用其减去报头固定长度8字节,就是有效载荷的大小。比如HTTP,FTP,SSH等这些广为使用的应用层协议,它们的端口号都是固定的。

zdlynj的博客 1772

传输层协议:TCP协议和UDP协议

TCP是面向连接的、可靠的进程到进程通信的协议(在传输真实数据之前先要进行连接测试(三次握手),如果测试通过才会发送真实数据,否则不会发送真实数据)TCP提供全双工服务,即数据可在同一时间双向传输TCP报文​ ①、TCP将若干字节构成一个分组,叫报文段(Segment)​ ②、TCP报文段封装在IP数据报中工作在传输层提供不可搞得网络访问无连接有限的错误检查传输性能快无数据恢复特性telnet协议:明文传输,远程管理协议。

2301_81272194的博客 2204

传输层TCP/UDP

目录 传输层相关名词解释 UDP协议 UDP协议特点 适用场景 UDP首部 TCP协议 TCP协议特点 常见面试题 传输层相关名词解释 1.传输层: 传输层是TCP/IP协议五层模型中的第四层。它提供了应用程序间的通信,它负责数据能够从发送端传输到接收端。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。TCP/IP中有两个具有代表性的传输层协议,它们分别是TCP和UDP。TCP提供可靠的通信传输,而UDP则

weixin_48035827的博客 2937

传输层协议UDP,TCP

所以1001-1050为紧急数据;以上就是TCP结构的基本内容,下面我们来看看TCP到底做了哪些工作来对通信进行控制保证通信效率与可靠性;

m0_75260318的博客 1437

传输层协议:UDP、TCP

传输层协议

YQY18289570091的博客 2009
上一篇: C++练习题
下一篇: TCP协议的三次握手,与四次挥手
Advsance
博客等级 码龄8年 37粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值