计算机基础--->网络(2)【TCP、UDP、IP、ARP】

news2024/11/26 1:59:52

文章目录

  • TCP与UDP的区别
  • TCP三次握手和四次挥手
    • 为什么要三次握手?
    • 第二次握手传回了ACK,为什么还要传回SYN?
    • 为什么要四次挥手?
    • 为什么不能将服务器发送的ACK和FIN合并起来,变成三次挥手?
    • TCP如何保证传输的可靠性?
  • IP
    • 什么是IP地址?IP寻址如何工作?
    • 什么是IP地址过滤器?
    • IPv4和IPv6有什么区别?
    • NAT的作用是什么?
  • ARP
    • 什么是MAC地址?
    • ARP协议解决了什么问题?

TCP与UDP的区别

  1. 是否面向连接:UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。
  2. 是否是可靠传输:远地主机在收到 UDP 报文后,不需要给出任何确认,并且不保证数据不丢失,不保证是否顺序到达。TCP 提供可靠的传输服务,TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制。通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。
  3. 是否有状态:这个和上面的“是否可靠传输”相对应。TCP 传输是有状态的,这个有状态说的是 TCP 会去记录自己发送消息的状态比如消息是否发送了、是否被接收了等等。为此 ,TCP 需要维持复杂的连接状态表。而 UDP 是无状态服务,简单来说就是不管发出去之后的事情了。
  4. 传输效率:由于使用 TCP 进行传输的时候多了连接、确认、重传等机制,所以 TCP 的传输效率要比 UDP 低很多。
  5. 传输形式:TCP 是面向字节流的,UDP 是面向报文的。
  6. 首部开销:TCP 首部开销(20 ~ 60 字节)比 UDP 首部开销(8 字节)要大。
  7. 是否提供广播或多播服务:TCP 只支持点对点通信,UDP 支持一对一、一对多、多对一、多对多;

UDP一般用于即时通信,像语音视频,直播等,对数据传输准确度不是特别高。传输协议主要是DHCP协议、DNS主要是IP地址的配置

TCP用于准确性特别高的场景, 像文件传输,发送和接收邮件,远程登录等。

TCP三次握手和四次挥手

在这里插入图片描述

  • 一次握手:客户端发送带有SYN标志的数据包到服务端然后客户端进入SYN_SEND状态
  • 二次握手:服务端发送带有SYN+ACK标志的数据包到客户端,然后服务端进入SYN_RECV状态
  • 三次握手:客户端发送带有ACK标志的数据包到服务端,然后客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手

当数据包丢失的几种情况:

  • 当客户端发送到服务器的过程中SYN包丢失: 服务器没有收到客户端发送的SYN包,客户端没有收到服务器返回的数据包,客户端会周期性的超时重传,知道收到服务器的确认
  • 当服务器发送到客户端的过程中SYN+ACK包丢失: 这时不是服务器超时重传,客户端没有收到服务器的确认,就回进行超时重传,知道收到服务器的确认
  • 当三次挥手客户端发送到服务器的过程中ACK包丢失: 这时服务器没有收到客户端的确认,就回超时重传,直到收到客户端的确认

在这里插入图片描述

  • 一次挥手:客户端发送一个FIN标志的数据包进入服务端用来关闭客户端到服务器的数据传送。然后,客户端进入FIN-WAIT-1状态
  • 二次挥手:服务器收到FIN标志的数据包,然后发送一个ACK标志的数据包到客户端。然后此时服务端进入CLOSE-WAIT状态,客户端进入FIN-WAIT-2状态
  • 三次挥手:服务器关闭与客户端的连接并向客户端发送一个FIN标志的数据包,然后服务端进入LAST-ACK状态
  • 四次挥手:客户端发送ACK标志的数据包到服务端并且进入TIME-WAIT状态,服务器在收到ACK标志的数据包后进入到CLOSE状态。此时如果客户端在等待2MSL后让没有收到回复,就证明服务端已经正常关闭,随后客户端也可以关闭连接

为什么要三次握手?

三次握手的目的是建立可靠通信信道,同时提高了传输效率,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的

第一次握手:客户端什么都不能确定;服务器端确定了对方发送正常,自己接收正常

第二次握手:客户端确认了自己发送接收正常,对方发送接收正常;服务器端确定了对方发送正常,自己接收正常

第三次握手:客户端确认了自己发送接收正常,对方发送接收正常;服务器端确定了自己发送接收正常,对方发送接收正常

第二次握手传回了ACK,为什么还要传回SYN?

因为服务端收到了来自客户端的相应,如果只是传回了ACK那么将收不到客户端向服务端的接收响应。回传SYN则是为了建立并确认从服务端到客户端的通信。

  • SYN是TCP/IP建立连接时使用的握手信号,在客户端建立TCP连接是,客户端会向服务器发送一个SYN请求,要求服务器回应一个ACK消息来确认收到了客户端的请求。

为什么要四次挥手?

TCP是可以双向传输数据。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

简单来说就是服务器发出了中断指令,客户端收到之后对服务端进行了回应,然后客户端发出中断指令,服务器收到之后进行回应。

为什么不能将服务器发送的ACK和FIN合并起来,变成三次挥手?

因为服务器在收到客户端发送的请求时,可能会有一些数据没有发送,这时候先回复ACK,表示接收到了断开连接的请求。等数据发完之后在发FIN,断开服务器到客户端的数据传送

TCP如何保证传输的可靠性?

  1. 基于数据块传输:应用数据被分割成TCP认为最适合发送的数据块,在传输给网络层,数据块被称为报文段或段
  2. 对失序数据包重新排序以及去重:TCP为了保证不发生丢包,就给每个包一个序列号,有了序列号能够将接收到的数据根据序列号排序,并且去掉重复序列号的数据就可以实现数据包去重
  3. 效验和:TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
  4. 超时重传:当发送方发送数据之后,接收端成功接收到后会返回一个确认消息(ACK)。如果在固定时间内未收到确认消息,那么就进行重传。
  5. 流量控制:TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送端发送的数据,能提示发送端降低发送速率防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议
  6. 拥塞控制:当网络拥塞时,减少数据的发送

IP

IP是TCP/IP协议中最重要的协议之一,属于网络层的协议,主要用于在互联网中定义数据包的格式,对数据包进行路由和寻址。目前有两种,一种是IPv4,另一种是IPv6。

什么是IP地址?IP寻址如何工作?

每个连接互联网的设备都会分配一个IP地址,每个IP地址都是一个字符序列。

当网络设备发送 IP 数据包时,数据包中包含了 源 IP 地址目的 IP 地址。源 IP 地址用于标识数据包的发送方设备或域,而目的 IP 地址则用于标识数据包的接收方设备或域。这类似于一封邮件中同时包含了目的地地址和回邮地址。

什么是IP地址过滤器?

简单来说就是限制或阻止特定的IP地址或IP地址范围的访问。IP地址过滤器是一种简单的网络安全措施,比如认证、授权、加密等仪器使用。单独使用IP地址过滤并不能完全保证网络的安全。

IPv4和IPv6有什么区别?

两者最突出的区别是地址长度不一样IPv4使用32位二进制数组,最多可以表示42亿个IP地址。IPv6使用128位二进制数字表示IP地址,可以表示的地址数量高达340万亿亿亿个,避免了IP地址短缺问题

IPv6还有一下有优点

  1. 无状态地址自动配置:主机可以直接通过接口标识和网络前缀生成全局唯一的IPv6地址,而无需依赖DHCP服务器,简化了网络配置和管理
  2. NAT称为可选项:IPv6地址资源充足,可以给全球每一个设备独立的地址
  3. 对标头结构进行了改进:允许在IPv6表头中添加不同的扩展头,用于实现不同类型的功能和选项

NAT的作用是什么?

NAT(网络地址转换)是一种用于将私有IP地址转换为公共IP地址的技术。从而实现局域网中的多个设备通过单一共有IP地址访问互联网。NAT不光可以缓解IPv4地址资源短缺问题,还可以隐藏内部网络的实际拓扑结构,使得外部网络无法直接访问内部网络中的设备,从而提高了内部网络的安全性。

ARP

ARP(地址解析协议,Address Resolution Protocol)是一种用于在网络层和数据链路层之间进行通信的协议。它主要功能是将网络层中的IP地址(逻辑地址)转换为数据链路层中的MAC地址(物理地址),以便支持实现网络通信。

什么是MAC地址?

MAC 地址的全称是 媒体访问控制地址(Media Access Control Address) 如果说,互联网中每一个资源都由 IP 地址唯一标识(IP 协议内容),那么一切网络设备都由 MAC 地址唯一标识。

MAC 地址有一个特殊地址:FF-FF-FF-FF-FF-FF(全 1 地址),该地址表示广播地址

ARP协议解决了什么问题?

ARP 协议,全称 地址解析协议(Address Resolution Protocol) 它解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。

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

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

相关文章

推荐召回-Swing

概述 swing 是阿里原创的 i2i 召回算法,在阿里内部的多个业务场景被验证是一种非常有效的召回方法。据笔者了解,swing 在工业界已得到比较广泛的使用,抖音,小红书,B 站等推荐系统均使用了swing i2i。 1.传统 icf 算法…

MySql常见问题(长期更新)

基于mysql 8.0.3版本 一、忘记root密码1.1 、linux 系统下忘记密码1.2、Windows 系统下忘记密码1.3 Unix 和类 Unix 系统 二、账号问题2.1 远程访问账号设置 一、忘记root密码 1.1 、linux 系统下忘记密码 啥?你问我为什么会忘记密码?别问,…

Flutter状态管理新的实践 | 京东云技术团队

1 背景介绍 1.1 声明式ui 声明式UI其实并不是近几年的新技术,但是近几年声明式UI框架非常的火热。单说移动端,跨平台方案有:RN、Flutter。iOS原生有:SwiftUI。android原生有:compose。可以看到声明式UI是以后的前端发…

大数据从0到1的完美落地之sqoop优化

Sqoop的Job与优化 Job操作 job的好处: 1、一次创建,后面不需要创建,可重复执行job即可 2、它可以帮我们记录增量导入数据的最后记录值 3、job的元数据默认存储目录:$HOME/.sqoop/ 4、job的元数据也可以存储于mysql中。 复制代码…

C# 特性总结

目录 特性是什么? 如何使用特性? (1).Net 框架预定义特性 (2)自定义特性 为什么要使用特性? 特性的应用 特性实现枚举展示描述信息 特性是什么? 特性(Attribute&…

拉新、转化、留存,一个做不好,就可能会噶?

用户周期 对于我们各个平台来说(CSDN也是),我们用户都会有一个生命周期:引入期–成长期–成熟期–休眠期–流失期。 而一般获客就在引入期,在这个时候我们会通过推广的手段进行拉新;升值期则发生在成长期…

智能制造工厂的SCADA解决方案应用

智能制造工厂是当今工业领域的一个重要趋势,它将传统的生产模式与现代信息技术相结合,实现了生产过程的智能化和自动化。 SCADA是一种监控与数据采集系统,广泛应用于工业自动化领域,它通过传感器、控制器和网络等设备&#xff0c…

基于Python机器学习算法小分子药性预测(岭回归+随机森林回归+极端森林回归+加权平均融合模型)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境配置工具包 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练 系统测试工程源代码下载其它资料下载 前言 《麻省理工科技评论》于2020年发布了“十大突破性技术”预测,其中包括“AI药物分子发现”…

一文说透!华熙生物如何步步为营炼就品牌势能?

据华熙生物2022年财报,华熙生物2022年营收同比增长28.53%,净利润同比增长24%,成为全球最大的。同时,近年来也在C端也大展身手。华熙生物此前与故宫博物院合作,推出6 款故宫国宝色口红和2款“故宫美人面膜”。凭借精美的…

中小型企业需要官网和帮助中心吗?为何这样说?

随着互联网技术的不断发展,越来越多的中小型企业开始重视拥有自己的官网和帮助中心。但是,对于许多刚刚起步的中小型企业来说,官网和帮助中心的建设可能需要一定的成本和时间投入。那么,中小型企业是否需要官网和帮助中心呢&#…

python(11):python读取excel、csv文件

1.python读取excel文件 要读取Excel表格的指定行和列范围,可以使用Python中的第三方库pandas。pandas库提供了强大的数据分析和处理工具,包括读取和处理Excel文件的功能。以下是一个示例代码,演示了如何使用pandas库读取Excel表格中的指定行…

[Go]-Go语言第一课

1-1 Go语言特点 特点: 1. 静态类型,编译开源语言2. 脚本化的语法,支持多种编程范式(函数式,面向对象)3. 原生,给力的并发支持并发编程1-2 Go语言优势与劣势 Go语言的优势: 1.脚本化…

软考A计划-系统集成项目管理工程师-信息化知识(三)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

加密市场与上一轮周期有何异同?五大因素探讨加密市场未来之路

数字资产市场在一季度表现不俗,但二季度的表现却出现了相反的情况。数据显示,BTC 在一季度累计上涨了 71.69%,而二季度截至目前下跌了 7.31%。这样的变化主要是由金融监管机构针对整个数字资产行业采取的监管行动造成的。虽然 BTC 今年以来仍…

uniapp中uni-popup的用法——实例讲解

uni-pop弹出层组件,在应用中弹出一个消息提示窗口、提示框等,可以设置弹出层的位置,是中间、底部、还是顶部。 如下图效果所示:白色区域则为弹出的pop层。 一、 创建一个自定义组件: 1.项目中安装下载uni-pop插件。 2.把pop内容…

2023.6.19项目部署(一)前端项目部署

文章目录 项目部署(一)前端项目一、安装宝塔面板1、安装宝塔面板2、放行端口3、安装相关软件4、添加站点 二、项目打包1、Springboot打包2、vue项目打包 三、前端项目部署1、安装nginx2、修改配置文件 项目部署(一)前端项目 将开…

SQL优化的几种方法

目录 避免使用select *用union all代替union小表驱动大表批量操作多用limitSQL查找是否"存在",别再count了!in中值太多增量查询高效的分页用连接查询代替子查询join的表不宜过多join时要注意控制索引的数量选择合理的字段类型提升group by的效…

HTTPHTTPS协议详解

目录 一、HTTP是什么? 理解 "应用层协议" 理解 HTTP 协议的工作过程 二、HTTP 协议格式 抓包工具的使用 抓包工具的原理 抓包结果 协议格式总结 三、HTTP 请求 (Request) 认识 URL URL 基本格式 认识 "方法" (method) 认识请求 &quo…

使用Java设计实现一个高效可伸缩的计算结果缓存

目录 概述1.缓存实现1.1 使用HashMapSynchronized实现缓存1.2 使用ConcurrentHashMap代替HashMap改进缓存的并发1.3 完成可伸缩性高效缓存的最终方案1.4 测试代码 2.并发技巧总结 概述 现在的软件开发中几乎所有的应用都会用到某种形式的缓存,重用之前的计算结果能…

回收站数据恢复方法有哪些?五招走起,趁早上手

回收站数据恢复方法是我们在日常操作电脑时不可避免需要面对的问题。本文将对几种常用的回收站数据恢复方法进行介绍,为大家解决恢复回收站数据的常见问题。 一、使用快捷键恢复回收站文件 在我们的电脑中,有很多实用的快捷键,其中有效地恢…