计算机网络 - 万字长文
计算机网络
- 二、计算机网络
- 2.1 七层模型表格
- 2.2 通俗讲解七层模型
- 2.3 TCP与UDP对比
- 2.4 TCP 三次握手
- 过程
- ==为什么握手是三次,而不是两次或者四次?==
- ==三次握手可以携带数据吗?==
- ==TCP三次握手失败,服务端会如何处理?==
- ==什么是半连接队列?全连接==
- ==ISN(Initial Sequence Number)是固定的吗?==
- 2.5 TCP的四次挥手
- 过程
- ==为什么握手是三次,而挥手时需要四次呢?==
- ==TIME_WAIT状态有什么作用,为什么主动关闭方没有直接进入CLOSED状态释放资源?==
- ==为什么TIME_WAIT状态需要经过2MSL才能进入CLOASE状态?==
- ==一台主机上出现大量的TIME_WAIT是什么原因?应该如何处理?==
- ==一台主机上出现大量的CLOSE_WAIT是什么原因?应该如何处理?==
- 总结
- 2.6 TCP 拥塞控制
- 2.7 TCP粘包、拆包问题
- 2.8 TCP滑动窗口
- 2.4 HTTP-超文本传输协议
- 定义
- 超文本?传输?协议?
- HTTP请求
- HTTP请求报文是由三部分组成: 请求行, 请求报头和请求正文
- HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文
- HTTP 常见错误码与原因
- 2.5 HTTP各版本对比
- 2.6 HTTP 三次握手
- 过程
- 2.7 HTTPS
- 定义
- HTTPS特点
- ttps的ssl加密是如何做的
- 2.8 URI、URL 和 URN
- 2.9 从浏览器 URL 到页面展示发生了什么?
- 2.10 加入给你三台服务器,如何管理
- 2.11 简述DNS进行域名解析的过程
- 2.12 RabbitMQ是什么东西
- 2.13 请列出你了解的web服务器负载架构
- 2.14 讲述一下LVS三种模式的工作过程
- 2.16 keepalive的工作原理和如何做到健康检查
- 2.17 简述cookie和session的区别
二、计算机网络
2.1 七层模型表格
网络设计者以分层的方式组织协议,每一层都是向上服务的,每个分层中所有的协议称为协议栈
| OSI | 功能 | 协议 |
|---|---|---|
应用层 | 文件传输、电子邮件、文件服务、虚拟终端 | TFTP,HTTP,SNMP,FTP,STMP,DNS,Telnet |
| 表示层 | 数据格式化、代码转换、数据加密-解决不同主机的通信的数据格式问题 | |
| 会话层 | 解除或建立与其它接点的联系-建立和管理应用程序之间的通信 | |
传输层 | 提供端对端的接口;TCP、UDP-拆包组包TCP,保证数据的完整性,以及传输过程中可能发生的危险UDP | TCP、UDP |
网络层 | 为数据包选择路由;IP、ICMP、RIP、OSPF-路由解析和地址解析选择适当的网络节点进行路由 | IP |
数据链路层 | 传输有地址的帧 | 以太网 |
物理层 | 定义通信的物理设备规格,网络接口类型,光纤接口类型 | 实际物理传输介质 |
2.2 通俗讲解七层模型
-
物理层:两台计算机想要连接,要做的第一件事就是把这台计算机与另外的其它计算机连接起来,比如通过光纤、电缆等介质。通过高低电频来传送0、1的信号
-
数据链路层:这样一大堆01的信号,
**鬼都看不懂,所以有了一套标识**:以太网- 以太网:一组电信号构成一个数据包,我们把这个数据包称之为帧。每一个桢由标头(Head)和数据(Data)两部分组成,标头部分主要是一些说明数据,例如发送者,接收者等信息。而数据部分是这个数据包具体的,想给接收者的内容
- MAC:那么把一台计算的数据通过物理层和链路层发送给另一台计算机,
究竟是发给谁的,计算机之前如何区分?MAC出现了- 连入网络的每一个计算机都会有网卡接口,每一个网卡都会有一个唯一的地址,这个地址就叫做 MAC 地址
- 广播:新的问题出现了,A计算机虽然知道了B的MAC地址,但是
a却不知道计算机B分布在那边路线上,有了广播的出现- 广播就是A计算机向所有子网中的计算机发送数据包,计算机收到包之后会解析MAC地址,如果与自己的相同,接收,不相同就不接收,就像大街上的广播呼叫某个人一样
- ARP:新的问题又出现了,
A计算机怎么知道B的mac地址的,ARP协议就出现了- 判断完两台主机处于同一个子网之中,通过ARP计算出另一个计算机的MAC地址
-
网络层
- 子网:所处的网络是由无数个子网组成的,广播的时候只有同一个子网里面的计算机能收到,如果所有的计算机都能收到那还得了,所以有了
子网 - IP协议:问题又来了,如何区分MAC地址是属于一个子网的,假如是同一个子网,那么我们就以广播的形式转发出去,如果不是,那就把数据发给网关,让网关转发,于是有了
IP- IP 地址由 32 位的二进制数组成,0.0.0.0~255.255.255.255,IP地址被分为两部分,前面一部分代表网络部分,后面一部分代表主机部分。并且网络部分和主机部分所占用的二进制位数是不固定的,如果两台计算机的网络部分是一样的,那么就是处于一个子网中,
那么网络部分只知道是前部分,具体是占几位,不知道啊,所以子网掩码出现了- 子网掩码与IP地址一样也是32位进制数,不过网络部分都是1,主机部分规定全部为0
- 计算方法:例如,192.168.43.1和192.168.43.2的子码掩码都为255.255.255.0,把IP与子码掩码相与,可以得到他们都为192.168.43.0,进而他们处于同一个子网中
- ARP协议也是通过广播的形式给同一个子网中的每台电脑发送一个数据包,如果接收包的计算机发现MAC与自己的相同,就把自己的MAC回给对方,否则就抛弃
- IP 地址由 32 位的二进制数组成,0.0.0.0~255.255.255.255,IP地址被分为两部分,前面一部分代表网络部分,后面一部分代表主机部分。并且网络部分和主机部分所占用的二进制位数是不固定的,如果两台计算机的网络部分是一样的,那么就是处于一个子网中,
- DNS:如何知道对方的IP地址呢,当然是计算机的操作者来输入,但是我们输入的是域名,会有DNS服务器
- 子网:所处的网络是由无数个子网组成的,广播的时候只有同一个子网里面的计算机能收到,如果所有的计算机都能收到那还得了,所以有了
-
传输层
- 经过物理层、数据链路层以及以太网的互相帮助,已经把数据成功从计算机A送到计算机B了,可是计算机B里面含有各种各样的程序,计算机如何知道这些数据是给谁的?
端口就出现了 也就是说,传输层的功能就是建立端口到端口的通信,相比网络层是建立主机到主机的通信,也就是说有了IP和端口就可以准确通信- 有人说输入IP地址,并没有确定端口啊,其实某些传输协议已经默认端口了,比如http的传输默认端口是80,这些端口信息也包含在数据包里的
- 传输层最常见的两大协议是
TCP、UDP协议
- 经过物理层、数据链路层以及以太网的互相帮助,已经把数据成功从计算机A送到计算机B了,可是计算机B里面含有各种各样的程序,计算机如何知道这些数据是给谁的?
-
应用层
- 这一层最接近用户了,虽然接收到了传输传来的数据,可是这些数据五花八门:html,MP4 等
- 所以要指定这些数据的格式规则,收到后才能解读渲染
2.3 TCP与UDP对比
| 对比项目 | TCP | UDP |
|---|---|---|
| 是否面向连接 | 是 | 否 |
| 是否可靠 | 是 | 否 |
| 是否有状态 | 是 | 否 |
| 传输效率 | 较慢 | 较快 |
| 传输形式 | 字节流 | 数据报文段 |
| 协议 | HTTP、HTTPS、FTP、 SMTP、POP3/IMAP、Telnet | HDCP、DNS、HTTP 3.0 |
2.4 TCP 三次握手
过程

- 服务器新建套接字,绑定地址信息后开始监听,进入listen状态
客户端新建套接字绑定地址信息后调用connect,发送连接请求SYN,进入SYN_SENT状态,等待服务器确认服务器监听到请求之后,将连接放入内核等待队列中,并向客户端发送SYN和确认报文段ACK,进入SYN_RECD状态客户端收到sYN+ACK报文段后向服务端发送确认报文段,并进入established状态,开始读写数据- 服务端接收到客户端的确认报文,就进入established状态,进行读写数据
为什么握手是三次,而不是两次或者四次?
- 两次不安全,四次没必要。tcp通信就是确保双方都具有数据收发的能力,得到ACK响应则认为对方具有数据收发的能力,因此双方都要发送SYN确保对方具有通信能力
- 第一次握手是客户端发送SYN,服务端接收-服务端得出
客户端的发送能力和服务端的接收能力都正常- 第二次握手是服务端发送SYN+ACK,客户端接收-客户端得出
客户端接收能力正常,服务端发送能力正常,但是服务端还不知道客户端能否接收正常- 第三次握手是客户端发送ACK,服务器接收,-服务端得出
客户端的收发
相关文章:
计算机网络 - 万字长文
计算机网络 二、计算机网络2.1 七层模型表格2.2 通俗讲解七层模型2.3 TCP与UDP对比2.4 TCP 三次握手过程==为什么握手是三次,而不是两次或者四次?====三次握手可以携带数据吗?====TCP三次握手失败,服务端会如何处理?====什么是半连接队列?全连接====ISN(Initial Sequence…...
基于java+springboot+vue实现的仓库管理系统(文末源码+lw+ppt)23-499
第1章 绪论 伴随着信息社会的飞速发展,仓库管理所面临的问题也一个接一个的出现,所以现在最该解决的问题就是信息的实时查询和访问需求的问题,以及如何利用快捷便利的方式让访问者在广大信息系统中进行查询、分享、储存和管理。这对我们的现…...
网络安全概述
这里写目录标题 信息安全现状及挑战概念常见的网络安全术语恶意程序的特点 信息安全的脆弱性网络环境的开放性协议栈道的脆弱性(缺乏认证和加密 完整性) 常见安全攻击传输层 ---TCP SYN Flood攻击分布式拒绝服务攻击(DDOS)社会工程学攻击钓鱼攻击水坑攻击…...
Java传引用问题
本文将介绍 Java 中的引用传递,包括其定义、实现方式、通过引用修改原来指向的内容和通过引用修改当前引用的指向的区别 目录 1、引用传递的概念 2、引用传递的实现方式 3、传引用会发生的两种情况: 通过引用修改当前引用的指向 通过引用修改原来指…...
P8086 『JROI-5』Music
题目背景 请注意到并不正常的时间限制。 本题读入量较大,建议使用较快的读入方式。 小 C 每年都要给丁总氪钱。 题目描述 小 C 喜欢在网易云听歌,她希望你能帮助她计算一下她的网易云的听歌时间。 小 C 有 n 条听歌记录,每条形如 x t&a…...
【Java]认识泛型
包装类 在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。 除了 Integer 和 Character, 其余基本类型的包装类都是首字母大写。 泛型 泛型是在JDK1.5引入的…...
git要忽略对文件的本地修改
要忽略对文件的本地修改(即,使Git忽略对该文件的任何未提交更改),可以使用以下命令将该文件标记为假设未更改(assume-unchanged): sh git update-index --assume-unchanged runtime/x64/skin/s…...
Linux学习笔记(三)文件权限
一、权限的分类 Linux权限分为r(读取)、w(写入)、x(执行)。我们在终端执行ls -l命令查看文件详细信息显示如下: [root@srv sun]# ls -l 总用量 0 drwxr-xr-x. 2 sun root 6 7月 5 14:05 公共 drwxr-xr-x. 2 sun root 6 7月 5 14:05 模板 drwxr-xr-x. 2 sun root…...
自定义类TMyLabel继承自QLabel ,实现mouseDoubleClickEvent
自定义类TMyLabel ,继承自QLabel TMyLabel 中重新实现了 event 方法,重写了mouseDoubleClickEvent 发射信号 在主窗体中放入TMyLabel组件,将TMyLabel mouseDoubleClickEvent 信号, 绑定到实现方法do_doubleClick()槽函数 TMy…...
逻辑回归模型(非回归问题,而是分类问题)
目录: 一、Sigmoid函数:二、逻辑回归介绍:三、决策边界四、逻辑回归模型训练过程:1.训练目标:2.梯度下降调整参数: 一、Sigmoid函数: Sigmoid函数是构建逻辑回归模型的重要函数,如下…...
qt hasPendingDatagrams() 函数
hasPendingDatagrams 是 Qt 框架中 QUdpSocket 类的一个方法,用于检查是否有待处理的数据报到达。在 UDP 通信中,数据以数据报的形式发送,而 QUdpSocket 类提供了用于接收和处理这些数据报的功能。 功能描述 hasPendingDatagrams() 方法用于…...
数据结构第08小节:双端队列
双端队列(deque,double-ended queue)是一种具有队列和栈特性的数据结构,允许在其两端进行插入和删除操作。在Java中,java.util.Deque接口就是双端队列的实现,而ArrayDeque和LinkedList是其中的具体实现类。…...
Python骨架肌体运动学数学模型
🎯要点 🎯运动学矢量计算 | 🎯跳远的运动学计算 | 🎯关节肢体运动最小加加速度模型 | 🎯膝关节和踝关节角度二维运动学计算 | 🎯上下肢体关节连接运动链数学模型 | 🎯刚体连接点速度加速度计算…...
二叉树的序列化和反序列化(Java)
概述 关于面试中常见的其他二叉树算法题,参考面试算法之二叉树(Java)。二叉树的定义(注意到有使用lombok提供的两个注解): lombok.Data lombok.AllArgsConstructor private static class TreeNode {private TreeNode left;priva…...
Java中的泛型类
Java中的泛类 Java 的泛型(Generics)是一种语言特性,允许你定义类、接口和方法时使用类型参数。这使得代码更具可读性和安全性,因为编译器能够在编译时检查类型,而不是在运行时。 泛型类 定义泛型类时,可…...
57、Flink 的项目配置概述
1)概览 1.开始 要开始使用 Flink 应用程序,请使用以下命令、脚本和模板来创建 Flink 项目。 可以使用如下的 Maven 命令或快速启动脚本,基于原型创建一个项目。 a)Maven 命令 mvn archetype:generate \-Darch…...
零基础自学爬虫技术该从哪里入手?
零基础学习Python并不一定是困难的,这主要取决于个人的学习方法、投入的时间以及学习目标的设定。Python是一门相对容易入门的编程语言,它有着简洁的语法、丰富的库和广泛的应用领域(如数据分析、Web开发、人工智能等),…...
Vue.js 基础入门指南
前言 在前端开发的广阔领域中,Vue.js 无疑是一颗璀璨的明星,以其渐进式框架的特性吸引了无数开发者的目光。Vue.js 旨在通过简洁的 API 实现响应式的数据绑定和组合的视图组件,使得构建用户界面变得既快速又简单。本文将带你走进 Vue.js 的世…...
山泰科技集团陈玉东:争当数字化时代的知识产权卫士
随着互联网和数字技术的飞速普及,大版权时代已经悄然到来。在这个新时代,信息的传播速度、广度和深度均达到了前所未有的高度,极大地拓展了人们的精神世界和知识视野。然而,这一科技发展的浪潮也为版权保护带来了前所未有的挑战。…...
WBCE CMS v1.5.2 远程命令执行漏洞(CVE-2022-25099)
前言 CVE-2022-25099 是一个影响 WBCE CMS v1.5.2 的严重安全漏洞,具体存在于 /languages/index.php 组件中。该漏洞允许攻击者通过上传精心构造的 PHP 文件在受影响的系统上执行任意代码。 技术细节 受影响组件:/languages/index.php受影响版本&…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
