UDP/TCP的相关性你知道几个?

news/2025/3/26 7:42:36/

TCP/IP网络原理——主要围绕UDP/TCP进行讲解

文章目录

  • TCP/IP网络原理——主要围绕UDP/TCP进行讲解
    • 应用层
    • 传输层UDP/TCP
    • TCP
    • 丢包
    • 总结

应用层

网络协议的五层协议分别是应用层,传输层,网络层,数据链路层,物理层,这五层构成。
应用层主要是与程序员相关,代码是和应用层息息相关的,代码的功能就相当于对于该应用层的一种扩展,比如说http就是应用层的关键协议,在使用该协议时,程序员会针对该协议进行一系列的约定,约定数据报,数据格式。
约定方法,简单介绍就是两种。
1.确定传输信息:请求信息,响应信息(这些信息的格式都是由产品需求确定的)
2.数据组织方法。例:将二进制数据转化为字符串数据
2.1)如果是一串需要传输的字符串,可以使用在正文外的所有符号将正文属性信息隔开。
例:hello world!=》hello/world/!
2.2)将数据信息使用xml或者json进行组织。(具体信息需要程序员自行决定)

传输层UDP/TCP

初识UDP,我们定要知道UDP的模样,就像我们刚刚开始认识一个人,定要知道他原本的模样。
在这里插入图片描述

udp报头是由8个字节组成
报头存储的信息:源端口,源IP,源端口,目的端口

  • UDP 协议规定报文长度为 16 位,所以 UDP 的报文长度不能超过 2^16 = 65536 字节=64kb

udp报文是64kb,对于当时的计算机使用来说是很巨大的传输包,所有在当时使用并没有出现问题。而现在由于科技的发展迅速,这64KB对当前的数据传输已经不够用了,虽然可以将数据进行拆分传输,这样的话会增加处理数据的复杂度,因此我们的前辈们经过重重困难,创建了TCP数据传输……

TCP

同样的,在我们认识TCP传输模式时,现将报文格式:

在这里插入图片描述

TCP传输的数据没有限制!!!因为TCP的数据传输没有限制,使用时会有其他的问题。网络传输数据不稳定,有时候会被外界干扰导致数据错误,这时候的校验和及CRC算法就可以帮助检验数据是否正确。

使用校验和(checksum)时,当数据通过校验和,数据也不一定正确,不过没有通过校验和的数据一定是错误的

介绍校验和使用原理:

发送方将载荷数据带入校验和中计算得到sum1,将sum1带入载荷,然后接收方将载荷数据带入校验和中进行计得到sum2,对比sum1和sum2,相同数据可使用,不同则将数据丢弃。

TCP特点

  1. 有连接
  2. 全双工
  3. 可靠传输
  4. 面向字节流

TCP的创造是为了可靠传输!!!(可靠传输是将数据尽可能的传输,没有达到100%成功,不过在TCP数据传输失败会有信息返回)
TCP的应答报文:ACK

ACK是用于接收方对数据的响应策略,当发送方将数据发过去时,会生成相应的序号,如果接收方接收到信息,就会返回ACK报文也就是确认号。比如发送方发送了1000个数据,ACK应答报文会回复1001,此时发送方就会知道对方接受到了数据。这里的回应规则是发送序号的下一个序号。
有时候发送数据也会出现其他情况:先发后至

就像你和你女朋友聊天

女朋友:最近心情不好,有没有时间约个饭?

你:随时都可以

女朋友:我把我闺蜜介绍给你认识?

你:还是算了吧。

这样你们的关系还可以维持,但是如果数据发生了先发后至!

//出现先发后至

女朋友:最近心情不好,有没有时间约个饭?

你:还是算了吧。

女朋友:我把我闺蜜介绍给你认识?

你:随时都可以

兄弟,完了!!!

不过这里的TCP可以帮助你把发送的数据进行排序,所以在这里不会出现先发后至!TCP有一个接收缓冲区,会将接收的数据进行排序。这是TCP非常重要的一个用途。

丢包

丢包也是网络传输经常会遇到的事情,出现丢包的可能情况就是网络传输中设备分配网络不均匀,在多转发,达到转发上限的情况下会出现丢包的情况,注意这里连续丢包是十分严重的问题,需要检查网络设备。
TCP用于解决丢包问题是一把好手!
超时重传:针对丢包时,不会返回确认序号,会等待一段时间后,会重新发送数据,以此类推,没丢包一次系统等待的时间会变长,多次无果会尝试重置连接,如果重置连接失败,最后才会关闭连接。

ACK丢失,也就是确认序号丢失,作为发送方是不会知道ACK丢失的,所以这里会发生数据重传,会发生重复数据的问题,然而TCP有一个重复数据处理机制,可以自动去重。

总结

网络协议的五层模型中应用层与程序员契合度最高,协议约定和组织数据格式都是由程序员决定的。传输层中两大主角UDP/TCP中,UDP的数据稳定但是适用场景不多对于TCP的四大特性,和对数据的传输中的困难和出现的错误都有针对的解决方案,对于TCP中序号的传递可以知道数据传输中的错误和应对错误的解决方法。以上,希望能帮助大家理解UDP/TCP的特性。


http://www.ppmy.cn/news/44626.html

相关文章

一名开发者眼中的TiDB与MySQL选择

作者: angryart 原文来源: https://tidb.net/blog/60200e06 TiDB长期霸榜国产数据库第一名,社区活跃人气旺盛。作为TiDB其中的一个粉丝,我把近年的学习调研实践归纳如下,TiDB是一款通用性的数据解决方案&#xff0c…

C++ 位运算做题技巧,位运算基础知识,位运算题目清单(不断更新)

位运算基础知识 位运算(Bitwise Operations)是一种用于处理整数的基本操作,它对整数的二进制表示进行操作。位运算在算法和数据结构、编程竞赛以及其他计算机科学领域有着广泛的应用。 关于位运算符的一些基础知识,我写在这篇文章…

Python 深度学习架构实用指南:第一、二部分

原文:Hands-On Deep Learning Architectures with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象&#xff…

计算机图形学——游戏方向 第一章 计算机图形学概述

计算机图形学——游戏方向 第一章 计算机图形学概述前言第一章 计算机图形学概述1.为什么设计专业要学习计算机图形学?计算机图形学与计算机视觉等领域的关系计算机图形学基础自学体系2.计算机图形学的辨析3.计算机图形(学)的发展历史1951:N…

【马蹄集】第七周作业

第七周作业 目录 MT2115 五彩斑斓的世界MT2116 栈间MT2117 双端队列MT2123 前k小数MT2124 前k小数(进阶) MT2115 五彩斑斓的世界 难度:钻石    时间限制:1秒    占用内存:128M 题目描述 小码哥是一个喜欢字符串的男…

Day946.厂商定制的Android系统为什么也要解耦? -系统重构实战

厂商定制的Android系统为什么也要解耦? Hi,我是阿昌,今天学习记录的是关于厂商定制的Android系统为什么也要解耦?的内容。 一、Android 系统架构 AOSP,全称是 Android Open Source Project,中文译为“An…

0基础学习软件测试有哪些建议

其实现在基础的资料和视频到处都是,就是看你有没有认真的去找学习资源了,去哪里学习都是要看你个人靠谱不靠谱,再好的教程和老师,你自己学习不进去也是白搭在正式选择之前,大可以在各种学习网站里面找找学习资源先自己…

程序设计方法学

体育竞技分析 问题分析 体育竞技分析 需求:毫厘是多少? 如何科学分析体育竞技比赛? 输入:球员的水平 输出:可预测的比赛成绩 体育竞技分析:模拟N场比赛 计算思维:抽象 自动化 模拟&am…