网络进阶学习:重要网络协议(tcp协议,udp协议,http协议)

news2024/11/24 8:44:52

重要网络协议(tcp协议,udp协议,http协议)

  • 网络协议是什么?
  • TCP协议
  • UDP协议
  • HTTP协议
  • TCP与UDP的职能区别
    • ⭐TCP职能
    • ⭐就TCP原理层面说应该分为三部分
      • 建立连接
      • 数据传输
      • 断开连接
    • ⭐UDP职能
    • ⭐就UDP原理层面说应该分为三部分
      • 发送数据
      • 数据传输
      • 断开连接
  • 小结

网络协议是什么?

⭐网络协议是计算机网络中的重要组成部分,它定义了计算机之间通信的规则和标准。常见的网络协议包括TCP协议、UDP协议、HTTP协议等,下面就这些协议进行详细介绍。


TCP协议

⭐TCP协议是一种面向连接的协议,它保证了数据传输的可靠性。TCP协议的特点是通过三次握手建立连接,保证数据传输的可靠性,同时还能实现流量控制和拥塞控制。在传输数据时,TCP协议会将数据分成多个小的数据包进行传输,接收方会确认接收到的数据包,如果有数据包丢失,TCP会进行重传,确保数据的完整性。


UDP协议

⭐UDP协议是一种无连接的协议,它不保证数据传输的可靠性。UDP协议的特点是传输速度快,适用于一些实时性要求比较高的应用,如在线游戏、语音通话等。UDP协议没有建立连接的过程,因此传输数据时不需要等待握手确认,直接发送数据包即可。但是由于UDP协议没有可靠性保障,因此在传输数据时需要自己进行数据完整性的检查和重传等操作。


HTTP协议

⭐HTTP协议是一种应用层协议,它是用来在Web浏览器和Web服务器之间传输数据的协议。HTTP协议的特点是简单、灵活、易于扩展。在HTTP协议中,客户端向服务器发送请求,服务器会返回响应。请求和响应都由多个数据包组成,数据包中包含了请求或响应的头部和正文。HTTP协议的常见应用包括Web浏览器、邮件客户端等。


在这里插入图片描述

TCP与UDP的职能区别

⭐TCP职能

1.建立连接:在数据传输之前,发送方和接收方需要进行三次握手建立连接,确保双方都能进行通信。
在TCP协议中,发送方和接收方需要进行三次握手建立连接,确保双方都能进行通信。具体步骤如下:

2.可靠性:TCP协议能够保证数据的可靠性,它会将数据分成多个小的数据包进行传输,在接收方确认收到数据包之前,会一直进行重传,确保数据的完整性。

3.流量控制:TCP协议还能够实现流量控制,即根据接收方的处理能力,限制发送方的数据发送速度,避免数据包丢失和网络拥塞。

4.拥塞控制:TCP协议还能够实现拥塞控制,即根据网络的拥塞程度,自适应地调整数据发送速度,避免网络拥塞和数据包丢失。


⭐就TCP原理层面说应该分为三部分

建立连接

在TCP协议中,发送方和接收方需要进行三次握手建立连接,确保双方都能进行通信。具体步骤如下:

第一次握手:发送方向接收方发送SYN包,表示发送方想要和接收方建立连接。

第二次握手:接收方收到SYN包后,向发送方发送ACK包和SYN包,表示接收方同意建立连接。

第三次握手:发送方收到ACK包和SYN包后,向接收方发送ACK包,表示发送方也同意建立连接。

数据传输

在建立连接之后,发送方和接收方就可以进行数据传输了。TCP协议会将数据分成多个小的数据包进行传输,在接收方确认收到数据包之前,会一直进行重传,确保数据的完整性。具体步骤如下:

  1. 发送方将数据分成多个小的数据包,并给每个数据包编号。

  2. 发送方将数据包发送给接收方,接收方会确认收到的数据包编号,并将确认信息发送给发送方。

  3. 如果发送方没有收到接收方的确认信息,或者接收方收到的数据包编号不连续,发送方会进行重传,确保数据的完整性。

断开连接

在数据传输完成之后,发送方和接收方需要进行四次挥手断开连接。具体步骤如下:

  1. 第一次挥手:发送方向接收方发送FIN包,表示发送方不再发送数据。

  2. 第二次挥手:接收方收到FIN包后,向发送方发送ACK包,表示接收到了FIN包。

  3. 第三次挥手:接收方向发送方发送FIN包,表示接收方不再发送数据。

  4. 第四次挥手:发送方收到FIN包后,向接收方发送ACK包,表示连接已经断开。

⭐特点:稳!

TCP是现在应用很广泛的协议,非常重要,所以应全方位去了解与学习


⭐UDP职能

1.无连接:UDP协议不需要建立连接,直接发送数据包即可。

2.速度快:由于UDP协议没有建立连接的过程,因此传输速度比TCP协议快。

3.实时性:UDP协议适用于传输实时数据,如音视频流、游戏数据等,对数据传输的时效性要求比较高。

4.不可靠性:UDP协议不保证数据传输的可靠性,传输过程中可能会出现数据丢失、重复、乱序等问题。

⭐就UDP原理层面说应该分为三部分

发送数据

在UDP协议中,发送方不需要进行连接建立,直接发送数据包即可。具体步骤如下:

  1. 发送方将数据分成多个小的数据包。

  2. 发送方将数据包发送给接收方,不需要等待确认信息。

数据传输

在数据传输过程中,UDP协议不保证数据传输的可靠性,可能会出现数据丢失、重复、乱序等问题。具体步骤如下:

  1. 接收方收到数据包后,不会发送确认信息,也不会进行重传。

  2. 如果接收方收到的数据包乱序,需要自己进行排序。

  3. 如果接收方收到的数据包有丢失,需要自己进行数据完整性的检查和重传等操作。

断开连接

在UDP协议中,不需要进行连接的断开操作,发送方可以随时停止发送数据。接收方也可以随时停止接收数据,不需要向发送方发送任何确认信息。

⭐特点:快!


小结

⭐除了上述所说的三种协议之外,还有许多其他的网络协议,如FTP协议、SMTP协议、DNS协议等。它们各自有不同的特点和应用场景,但都是计算机网络中不可或缺的一部分。在实际的网络应用中,不同的协议之间也会相互配合,共同完成数据传输和处理的任务。

诚然,网络协议是计算机网络中的重要组成部分,它们定义了计算机之间通信的规则和标准,保证了网络通信的安全、可靠和高效。在实际的网络应用中,我们需要根据具体的需求选择不同的协议,以达到最好的效果。

但网络中协议太多太多,从osi七层模型中应用层到物理层协议太多了。以学习的角度出发,一定要先了解上层的东西,而离我们最近的就是这三个协议。其他层面的协议可以作为学习了解。有一定的知识积累后,可以深入了解底层。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/530466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单链表(增、删、查、改)的详细介绍 必看!!!

文章目录 链表介绍单链表初始化单链表打印增加节点单链表的头插单链表的尾插在给定位置之后插入在给定位置之前插入 删除节点单链表的头删单链表的尾删删除给定位置之后的节点删除给定位置处的节点 查找节点修改节点单链表销毁 链表介绍 链表是一种物理存储单元上非连续、非顺序…

【Mybatis】如何实现ORM映射-二

唠嗑部分 上篇文章我们说了Mybatis基本的CRUD操作及工具类的封装,相关文章: 【Mybatis】简单入门及工具类封装-一 大家都知道,Mybatis是半自动化的ORM框架,那么它到底是如何帮我们完成ORM映射的呢? 这就是本篇文章和…

SpringBoot整合Dubbo+Zookeeper

第一步、使用IDE创建一个SpringBoot项目 第二步、启动一个Zookeeper服务(如果是第一次安装且没有配置zoo.cfg,此时会报出zookeeper服务器会提示缺少zoo.cfg文件) 在zookeeper安装目录下的conf文件夹内有一个名为zoo_sample.cfg的配置文件&a…

[深度学习思想] ControlNet 工作原理

Stable Diffusion (2021 https://arxiv.org/abs/2112.10752) 带领了vision领域,具体是AI绘画领域达到了一个新高度。但是可控性成为使用的一个大瓶颈。Controlnet (2023 https://arxiv.org/abs/2302.05543) 提出一个深度学习模型框架,很好解决这个问题&a…

Liunx基础命令 - touch命令

touch命令 – 创建空文件与修改时间戳 touch命令的功能是用于创建空文件与修改时间戳。如果文件不存在,则会创建出一个空内容的文本文件;如果文件已经存在,则会对文件的Atime(访问时间)和Ctime(修改时间&a…

带头双向循环链表(增、删 、查、改)基本操作详细介绍 必看!!!

文章目录 链表介绍链表初始化链表打印查找元素增加节点头插尾插在指定位置插入 删除节点头删尾删删除指定位置节点 链表判空获取链表中元素的个数链表销毁 链表介绍 前面说到,链表的结构一共有八种:带头单向循环链表、带头单向非循环链表、带头双向循环…

渗透测试--3.2捕获和监听网络数据

目录 1.监听捕获数据方法 2.kali监听捕获工具介绍 arpspoof driftnet 1.监听捕获数据方法 渗透测试中,捕获和监听网络数据是非常重要的一项任务,可以帮助我们发现潜在的漏洞和攻击面。以下是一些常见的捕获和监听网络数据的方法: 抓包工…

Liunx基础命令 - cp复制命令

cp命令 – 复制文件或目录 cp命令来自英文单词“copy”的缩写,中文译为“复制”,其功能是用于复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记添…

网络编程——UDP编程

UDP编程 UDP编程步骤通信流程serverclient 函数接口socketbindrecvfromsendto 举例UDP客户端UDP服务器 UDP编程步骤 在C语言中进行UDP编程的一般步骤如下: (1)包含头文件: 在代码中包含必要的头文件,以便使用UDP编程所…

借助国内ChatGPT平替+剪映/百度AIGC平台快速制作短视频

系列文章目录 借助国内ChatGPT平替MindShow,飞速制作PPT 借助国内ChatGPT平替markmap/Xmind飞速生成思维导图 文章目录 系列文章目录前言一、科大讯飞“星火”认知大模型二、使用步骤1.借助讯飞星火生成短视频的文案2.选择剪映生成短视频3.选择百度AIGC平台生成短…

redis复制机制

文章目录 1. Redis 复制机制2. 基本命令3. 修改配置文件4. 代码案例4.1 一主二仆4.2 薪火相传4.3 反客为主 5. Redis复制工作流程6. Redis 复制的缺点 1. Redis 复制机制 概念 : Redis 复制机制 能干的活 : 读写分离 : 写 就找 主机 master , 读就找从机…

Centos7离线安装Docker

在我们部署Docker镜像时,难免会遇到服务器没有网络情况,这时候我们就需要离线安装Docker 参考文档:https://docs.docker.com/engine/install/binaries 下载Docker安装包 下载地址:https://download.docker.com/linux/static/st…

玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数

一、前言 使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。…

OpenCL编程指南-4.3类型转换

隐式类型转换 隐式类型转换是一种自动的类型转换,只要混合使用不同的类型,编译器就会完成这种隐式类型转换。这里支持表4-1中定义的标量类型(除void、double和half以外)的隐式转换。完成隐式转换时,并不只是重新解释一…

c/c++中的数据内存分布

c/c中的数据内存分布 1. C/C内存分布2. C语言中动态内存管理方式3. C中动态内存管理4. operator new与operator delete函数5. new和delete的实现原理6. malloc/free和new/delete的区别7.内存泄漏**什么是内存泄漏,内存泄漏的危害****内存泄漏分类(了解&a…

练习时长两年半的扫雷

目录 设计思路 游戏运行效果 函数的声明 头文件game.h 游戏主体(源文件) 1.game.c 2.test.c 各文件的阐述 各部分设计心得 1.打印菜单 2.初始化雷池 3.打印雷池以及玩家界面 打印效果 如何改变雷的数量与雷池大小 4.生成随机雷 5.排雷与对局判断 对于越界的看法 设计…

Pruning 系列 (五)Dropout、Dropconnect剪枝

环境 python 3.9numpy 1.24.1pytorch 2.0.0+cu117一、Dropout dropout在全连接层使用。 假设丢弃概率是P,有两种实现方式,不管是在《测试阶段》还是《训练阶段》对每层的输出做缩放,都是为了保持伯努利分布的期望np。《测试阶段》没dropout 而是全量神经元参与运算,不然预…

JAVA8的新特性——lambda表达式

JAVA8的新特性——lambda表达式 此处,我们首先对于Java8的一些特性作为一个简单介绍 Java 8是Java编程语言的一个重要版本,于2014年发布。Java 8引入了许多新特性和改进,以提高开发效率和性能。以下是Java 8的一些主要新特性: Lam…

Liunx基础命令 - pwd命令

pwd命令 – 显示当前工作目录的路径 ​ pwd 命令来自英文词组“print working directory”的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路…

【Android】Exam5 ListView组件简单应用

Exam5 ListView组件简单应用 ListView组件简单应用 Exam5 ListView组件简单应用目的实验内容及实验步骤采用SimpleAdapter自定义Adapter运行及结果:实验总结 目的 掌握常用的UI布局及组件; 掌握使用Intent启动Activity的方法 掌握ListView组件的简单应用…