当前位置: 首页 > article >正文

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

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.kler.cn/news/11987.html

相关文章:

  • St link V2驱动安装方法
  • Spring Security 6.0系列【22】源码篇之防护跨站请求伪造流程分析
  • 全回显SSRF测试两则
  • C语言 字符串解析strchr/strrchr/strtok//strtok_r函数使用
  • 苏州源特VPT87DDF01B 隔离变压器 小体积/SMD/3000VDC 隔离
  • 历代程序员都无法逃脱的诅咒 -- 低代码
  • nodejs+vue家庭菜谱食谱管理系统
  • C++ 图系列之基于有向无环图的拓扑排序算法
  • oracle远程克隆pdb
  • 协议篇之以太网UDP协议
  • python爬虫基础
  • 场景搭建、素材库、在线标绘等,四维轻云地理空间数据云管理平台新增了这些功能
  • 【python学习】基础篇-列表推导式快速生成列表
  • vue2 和 vue3 共存
  • 我在windows10下,使用CMake gui 编译krita源码
  • Matlab simulink上手控制仿真学习笔记3-常用模块S Function及使用案例
  • 在CSDN创作了6个月,我收获了什么?文末送书~
  • 每日刷题记录(十四)
  • WebRTC 系列(二、本地通话,H5、Android、iOS)
  • 亚马逊云科技为游戏全生命周期提供保障,降低游戏整体运营成本
  • 【数据结构与算法】并查集
  • Qt音视频开发38-ffmpeg视频暂停录制的设计
  • 前端引入和html标签
  • 我所认识的设计模式
  • Python+VUE生成PDF小案例
  • Ansible——介绍ansible
  • 计算专题(小计算题)
  • ubuntu中通过vscode编译调试ORB-SLAM3
  • 图文在线翻译-文本翻译
  • 流程管理中间件BPS二期项目立项准备工作经验分享