面试必备之——TCP/UDP(一)

news2024/12/22 15:50:27

OSI七层模型、TCP/IP四层五层模型

(.森木磊石)(金美)

1、应用层:(七层变为三层)是用户与网络的交互层,负责提供各种应用程序和服务。协议例如HTTP、FTP、TFTP等。

  • 应用层:各种应用软件,包括 Web 应用。

  • 表示层:负责数据格式转换、数据压缩和加密等

  • 会话层:建立、管理和终止会话连接,在不同主机之间建立通信

2、传输层:负责提供端到端的通信服务。协议例如TCP(传输控制协议)、UDP(用户数据报协议)。

3、网络层:负责数据包在网络中的路由和转发、地址信息的初试。核心协议是IP(互联网协议)。

4、网络接口层:(五层变为两层)负责数据的实际传输,包括物理设备(如网卡、路由器等)的规范和功能。

  • 数据链路层:负责定义数据的基本格式,如何传输,如何标识,如网卡MAC地址

  • 物理层:负责底层数据传输,如网线

五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是TCP/IP四层体系结构。而七层模型(OSI模型)则提供了一种更为细致的分层结构,用于理解和设计各个层次的功能和协议。

ping命令属于哪一层

ping命令基于网络层的命令,是基于ICMP协议工作的。

UART与RS485属于那一层

USRT不属于哪一个固定的层,它是串行通信中物理层和数据链路层之间的桥梁

RS485定义了电气特性和接线标准,在OSI模型中属于物理层。

TCP头部有哪些信息

1、源端口号(16bit):

2、目标端口号(16bit):

1、序号(32bit):传输方向上字节流的字节编号

2、确认号(32bit):接收方对发送方TCP报文段的响应,其值是收到的序号值 + 1

3、首部长(4bit):标识首部有多少个4字节 ,最大为15,即60字节。

4、标志位(6bit):SYN(连接报文段)、ACK(确认报文段)、FIN(断开报文段)等

5、窗口(16bit):接收窗口,用于告知发送方本方的缓冲还能接收多少字节数据

6、校验和(16bit):接收端用CRC检验整个报文段有无损坏

三次握手和四次挥手

(联想)

三次捂手

1、客户端向服务器发送一个SYN包,表示希望建立连接,进入SYN_SENT状态等待服务器确认

2、服务器收到SYN包后,向客户端发送确认包ACK(SYN+1)确认客户端的SYN,同时服务器也发送一个SYN包

3、客户端收到SYN+ACK包后,向服务器发送确认包ACK(SYN+1)确认服务器的SYN。此包发送完毕,双方进入ESTABLISHED状态,完成三次握手。

四次挥手

1、客户端向服务器发送一个FIN包,用来停止向服务器发送数据,但仍然可以接收服务器数据,进入FIN_WAIT_1状态。

2、服务器收到FIN包后,向客户端发送确认包ACK(FIN+1),进入CLOSE_WAIT状态

3、服务器向客户端发送FIN包,用来停止接收数据,进入LAST_ACK状态

4、客户端收到FIN包后,向服务器发送ACK(FIN+1)包,然后进入TIME_WAIT状态,等待一段时间后进入CLOSED状态

TCP状态

  • CLOSED:初始状态。

三次握手

  • SYN_SENT:客户端执行connect()函数,发送SYN包,进入此状态。

  • LISTEN:服务器执行listen()函数,处于监听状态。

  • SYN_RCVD:服务端收到SYN包并发送服务端SYN包,进入此状态。

  • ESTABLISHED:表示连接建立。客户端发送了最后一个ACK包后进入此状态,服务端接收到ACK包后进入此状态。

四次挥手

  • FIN_WAIT_1:终止连接的一方(通常是客户端)执行close()函数,发送了FIN报文后进入,等待对方FIN。

  • CLOSE_WAIT:接收到客户端FIN包之后等待关闭的阶段。在接收到对方的FIN包之后,自然是需要立即回复ACK包的,表示已经知道断开请求。但是服务器是否立即断开连接(发送FIN包)取决于是否还有数据需要发送给客户端,若有,则在发送FIN包之前均为此状态。

  • FIN_WAIT_2:此时是半连接状态,即客户端要求关闭连接,等待服务器关闭。客户端接收到服务器的ACK包,但并没有立即接收到服务端的FIN包,进入FIN_WAIT_2状态。

  • LAST_ACK:服务端执行close()函数,发送最后的FIN包,等待最后的客户端ACK响应,进入此状态。

  • TIME_WAIT:客户端收到服务端的FIN包,并立即发出ACK包做最后的确认,在此之后的2MSL时间称为TIME_WAIT状态。

四次挥手中 TIME_WAIT 状态是在哪一端

1、TCP四次挥手中的TIME_WAIT状态主要存在于主动关闭方(客户端),也就是发送第一个FIN请求的那一方,确保TCP全双工连接正确终止,即使在网络状况不佳或连接意外终止的情况下,也能维护TCP连接的稳定和可靠性。

2、保证客户端发送的最后一个 ACK 报文能够到达服务器,因为这个报文可能丢失,站在服务器的角度看来,我已经发送了 FIN+ACK 报文请求断开,客户端没有给我回应,应该是我的请求报文没有收到,于是服务器就会重新发送一次,客户端就能够在这个 2MSL 时间内收到这个重传的报文,接着回应报文。

三次握手中每次握手信息对方没有收到会怎样

如果第一次握手消息丢失,那么请求方不会得到 ack 消息,超时后进行重传

如果第二次握手消息丢失,那么请求方不会得到 ack 消息,超时后进行重传

如果第三次握手消息丢失,那么 Server 端该 TCP 连接的状态为 SYN_RECV,并且会根据 TCP 的超时重传机制,会等待 3 秒、6 秒、12 秒后重新发送 SYN+ACK 包,以便 Client 重新发送 ACK 包,如果重发指定次数之后,仍然未收到 client 的 ACK应答,那么一段时间后,Server 自动关闭这个连接

两次握手可以吗

TCP 协议双方都必须维护一个序列号,三次握手的过程及时通信双方互相告知序列号起始值,并确认对方已经收到了序列号如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则是得不到确认,服务器这边无法判断客户端是否能接收

三次挥手可以吗

(金美)

假设是客户端主动断开,在第一次挥手中客户端发起请求断开,接着服务器回了个应答(第二次),表示我已经收到请求等一段时间,等服务器的数据发送完成之后再向客户端发起断开(第三次)客户端接受到之后发起应答(第四次)如果是三次挥手那么只能是第二和第三次合并,即收到第一次挥手之后,发起应答和断开请求,但是这样会存在服务器有些数据还没发送完成就发起断不开

一句话:服务器回应你的请求断开,服务器可能还有数据没发送,所以应答和 FIN 就分开发

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

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

相关文章

同城便民生活小程序源码系统 二手市场+求职招聘+招聘信息 到源码包以及搭建教程

系统概述 同城便民生活小程序源码系统,是一款专为满足城市居民日常需求而设计的综合服务平台。该系统集成了二手市场、求职招聘、招聘信息三大核心模块,旨在通过数字化手段,优化资源配置,促进信息流通,让城市居民的生…

密码学基础:彩虹表技术

文章目录 一、前期准备1.1 前缀知识1.2 工具准备 二、彩虹表技术2.1 什么是彩虹表?2.2 彩虹表预先计算的散列链原理2.3 其他通过加密摘要攻击用户密码的技术2.4 彩虹表存储规格2.6 彩虹表生成、排序、合并和转换命令 三、彩虹表攻击示例3.1 安装 rainbowcrack3.2 生…

Git是如何工作的

Git 是一个分布式的版本控制系统,这意味着它使用多个本地存储库,包括一个集中式存储库和服务器,它在从前端工作中抽象出底层机制方面做得非常出色。虽然 Git 已经演变成一个成熟的版本控制管理系统,但这并不是作者最初的意图&…

网络硬盘录像机NVR程序源码和NVR模组展示及设备开机配置和主界面使用介绍

NVR软硬一体机支持录像设置,还具有录像回放、录像备份和报警设置等多种功能。接下来,我们首先看一下硬件连接,并开机后的基础配置操作。 NVR的优势(包括不限于): 1.支持录像回放 支持设置冗余录像&#…

Java开发中使用腾讯云OCR进行身份证识别与COS云存储实践

文章目录 完整代码代码讲解总结 在Java开发中,处理身份证识别和云存储是一项常见的需求,尤其是在需要用户身份验证的应用场景中。今天,我想和大家分享一个实际的案例,展示如何利用腾讯云的OCR服务进行身份证识别,并将识…

记一次:Datawhale AI夏令营-第四期-魔搭-AIGC-Task03

前言:书接上回,前面说了AIGC的了解和精读baseline,那么我们可以再次的抽丝拔茧,开始了解GUI部分和微调部分。 一、ComfyUI应用部分 1、什么是GUI? 2、什么是ComfyUI? 3、ComfyUI核心模块 4、ComfyUI图片生…

搭建高可用OpenStack(Queen版)集群(七)之部署dashbord(Horizon)控制节点集群

一、搭建高可用OpenStack(Queen版)集群之部署dashbord(Horizon)控制节点集群 一、Dashboard(horizon)简介 Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的openstack资源及服务。 二、部署da…

AAAI Reproducibility Checklist Latex 模板

官网介绍 AAAI-25 Reproducibility Checklist - AAAI This paper: Includes a conceptual outline and/or pseudocode description of AI methods introduced (yes/partial/no/NA)Clearly delineates statements that are opinions, hypothesis, and speculation from object…

Science Robotics封面 | 当机器人学会用‘快照‘导航,轻重量小内存实现‘长途跋涉‘

一个仅重56克的微型无人机实现了自主视觉导航,这听起来似乎不可思议。 然而,荷兰代尔夫特理工大学的研究人员通过向大自然学习,成功让这样一个轻如鸿毛的小家伙完成了长达100米的自主视觉路径跟随。 这一突破性成果不仅为微型机器人的自主导…

【Vue3】高颜值后台管理模板推荐

ELP - 权限管理系统 基于Vue 3框架与PrimeVue UI组件库技术精心构建的高颜值后台权限管理系统模板。该模板系统已成功实现基于RBAC(Role-Based Access Control)模型的权限管理系统和字典数据管理模块,后端则使用了Spring Boot框架&#xff0…

008 | 基于RNN和LSTM的贵州茅台股票开盘价预测

👉👉👉 《玩转Python金融量化专栏》👈👈👈 订阅本专栏的可以下载对应的代码和数据集 🚀 上一篇🌟 下一篇⬅️ 007 期权定价与布莱克-斯科尔斯计算009 上证50ETF基金数据分析及预测…

WebRTC音视频开发读书笔记(一)

一、基本概念 WebRTC(Web Real-Time Communication,网页即时通信)于2011年6月1日开源,并被纳入万维网联盟的W3C推荐标准,它通过简单API为浏览器和移动应用提供实时通信RTC功能。 1、特点 跨平台:可以在Web,Android、…

Unity扩展 Text 彩虹文本

本文章用于原生组件 Text 的扩展 TextRainbow,对于新版TextMeshPro不适用。 一、效果预览图: 默认: 随机: 循环: 二、原理 通过强制刷新顶点数据,来修改颜色。 通过Unity中自带的 BaseMeshEffect 抽…

五、OpenCVSharp 中的图像滤波与平滑

文章目录 简介一、均值滤波1. 原理和数学公式2. 不同大小的滤波核效果对比3. 边界处理方式二、高斯滤波1. 高斯核的生成2. 标准差对滤波效果的影响3. 高斯滤波的应用场景(如去除高斯噪声)三、中值滤波1. 中值的计算方法2. 中值滤波对椒盐噪声的处理效果3. 中值滤波的性能分析…

AWS Lambda 十年回顾:功能总览、更新记录与入门指南

这次,我为2014年11月发布的AWS Lambda创建了一个历史时间表。AWS Lambda 是一项无服务器、全托管的代码执行服务,今年2024年11月将迎来其宣布发布的十周年纪念。虽然提前了一些,但为了提前庆祝这一重要时刻,我写了这篇文章。 文章…

空间间隔组(Spacers)-Qt-思维导图-学习笔记

空间间隔组(Spacers) 空间间隔组(Spacers) (1)Horizontal Spacer:水平间隔 (2)Vertical Spacer:垂直间隔 QSpacerItem 控件简介 继承关系:QSpacerItem 继承自 QLayou…

面试必备之——TCP/UDP(二)

TCP流量控制 让发送方发送的速率不要太快,要让接收方开的及接收,防止发送方发送太快,导致接收方来不及接收。是端到端之间的控制 滑动窗口是实现流量控制的方法之一 TCP流量控制-滑动窗口 滑动窗口是传输层进行流控的一种措施,…

电脑版视频剪辑软件哪个好?适合新手使用的剪辑软件!

电脑版视频剪辑软件哪个好?在电脑版视频剪辑软件的选择上,每位用户都有其独特的偏好和需求。对于初学者而言,寻找一款操作简便、功能齐全的软件至关重要。为大家推荐几款常用的视频剪辑软件: 1、福昕视频剪辑 2、HitFilm 3、DaVin…

天了噜,IDEA竟然还有这种坑!

问题描述 IDEA 编辑器 idea Cannot resolve symbol 鼠标聚焦时,错误信息为:” idea Cannot resolve symbol “ IDEA自动修复功能 提示信息如下,然而并没有什么卵用。 问题梳理: IDEA 这个目录下的包都引入不了 import org.s…

Redis的分布式部署方案-哨兵

Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量 的客⼾端需要被通知切换到新的主节点上,对于上了⼀定规模的应⽤来说,这种⽅案是⽆法接受的, 于是 Redis 从 2.8 开…