计算机网络知识普及之四元组

在涉及到TCP/UDP等IP类通信协议时,存在四元组概念

这里只是普及使用

先来一些前置知识,什么是IP协议?

IP协议全称为互联网协议,处于网络层中,主要作用是标识网络中的设备,每个设备的IP地址是唯一的。

在网络传输中,IP地址主要用于数据包的寻址。

目前IP协议主要有两个版本,IPv4和IPv6,这两个版本目前都在使用,他们的区别为前者只能代表2的32次方个IP,后者能代表2的128次方个IP。

IPv4示例:223.5.5.5

IPv6示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334

什么是TCP协议

TCP协议全称为传输控制协议,它是面向连接的,处于传输层中,主要作用是规定网络传输过程中的一些传输规范、控制规范等。

什么是HTTP协议?HTTPS协议?

HTTP协议称之为超文本传输协议,处于应用层中,主要作用是规定网络传输中特定的一些数据规范,并且优化TCP的部分性能。

HTTPS可以简单理解为安全版本的HTTP。

这些协议之间的关系是什么

简单来说,IP协议负责找到数据传输的路径,TCP协议确保数据传输的可靠性,而HTTP和HTTPS协议则定义了数据的格式和如何在网络上请求和传输数据。HTTPS在HTTP的基础上增加了SSL/TLS层,提供了数据传输的安全性保护。

额外补充:什么是TCP三次握手

三次握手指的是TCP协议在与对方服务器建立连接时保障其连接可靠的手段,因为其建立连接时有三个动作,所以被称为三次握手。

在客户端与服务器建立连接时,只有当三次握手成功后,才会将连接设置为可以交换数据的状态。

这里要注意,三次握手的过程中本质上从网络层面来讲已经建立了连接,只是TCP协议为了确保可靠,在经过三个网络之间的动作后,才允许客户端与服务器之间进行数据的交互。

那么三次握手具体怎么操作的呢?

第一次握手:客户端向服务端发送一个报文,表示希望建立连接

第二次握手:服务端向客户端发送一个报文,表示确认建立连接

第三次握手:客户端向服务端发送一个报文,表示收到服务端的确认报文,此时连接正式建立。

这个过程不仅确保了双方的接收和发送能力都得到确认,还在握手过程中的报文里确认了双方的信息,所以在三次握手完成时,TCP协议里就认为该连接属于正常可交互数据的。在Linux中可以使用tcpdump来直观的查看三次握手过程。

四元组是什么?

进入正题,四元组的概念存在于所有使用IP协议并是面向连接的通信协议都有的特点。

假设目前有一个客户端访问服务端,我们都知道服务端需要监听一个端口,客户端需要通过服务端的IP和端口来找到提供服务的程序。

而四元组在TCP/UDP连接中,是用于对连接的标识,其标识了客户端、服务端的信息。

这些信息包括:

客户端IP、客户端Port、服务端IP、服务端Port。

用这些信息来标识当前连接,要注意,每一个连接都是唯一不会重复的。

使用工具类直观的感受到四元组的存在:打开Windows性能监视器

例如选中的向日葵客户端,它现在建立的一条连接中,标识了客户端IP为192.168.31.96,客户端端口为:49565,服务端IP为:122.246.12.46,服务端端口为443。

可能又有疑问?

为什么系统中客户端请求服务端也需要有端口号的存在?

这是因为在IP类通信协议中,网络传输时需要根据IP和端口号来定位相对应接收网络数据的程序,所以在我们要知道,在一个四元组中,可以很精确的确认来源程序和目的程序,且在整个网络环境中不会重复。

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

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

相关文章

Spring Boot应用的性能监控与优化

Spring Boot应用的性能监控与优化 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Spring Boot应用中进行性能监控与优化,以提升…

【JVM排查问题】JProfiler性能分析工具连接远程服务器Docker容器中的Java服务

1、下载JProfiler https://www.ej-technologies.com/download/jprofiler/version_13 下载Windows版本以及Linux版本 Windows用于可视化、Linux用于在Docker容器中启动 2、将Linux版本的JProfiler上传到Docker容器中,宿主机cp命令到容器中 docker cp /home/data/s…

像学Excel 一样学 Pandas系列-创建数据分析维度

嗨,小伙伴们。又到喜闻乐见的Python 数据分析王牌库 Pandas 的学习时间。按照数据分析处理过程,这次轮到了新增维度的部分了。 老样子,我们先来回忆一下,一个完整数据分析的过程,包含哪些部分内容。 其中&#xff0c…

CAM350如何添加走线?

在CAM350中如何添加走线? 有时候由于PCB文件丢失或其它原因,只有GERBER文件,这时候LAYOUT工程师就只能使用CAM350在GERBER里面修改。 那在CAM350里面如何添加走线呢? 操作方法如下: 1、选择菜单栏Add 选择Line 2、在走线前,要先设置D码,就是走线的形状和宽度。必需选择…

【服务器部署】Jenkins配置前端工程自动化部署

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

BIOS中的设置虽然不少,但其实大部分时候只需进行一些简单的调整

序言 浏览BIOS可能会让人感到不知所措,因为要考虑的设置太多了。但是,你应该在BIOS中进行一些简单的调整,以提高系统的性能和稳定性。我们将向你展示其中的一些调整,并解释你可能想要使用它们的时间和原因。 用密码保护你的BIOS 虽然我们很小心地对用户帐户进行密码保护…

[译]Reactjs性能篇

英文有限,技术一般,海涵海涵,由于不是翻译出身,所以存在大量的瞎胡乱翻译的情况,信不过我的,请看原文~~ 原文地址:https://facebook.github.io/react/docs/advanced-per…

JavaSE阶段面试题(一)

目录 1.int a 1, int b 1, Integer c 1, Integer d 1;四个区别和联系,以及c和d是同一个吗? 2.为什么重写HashCode必须重写euqals,两者之间的关系? 3.创建对象的方式有哪些 4.重写和重载的区别 5.抽象类和接口…

day02-广播机制

广播机制 广播是numpy对不同形状的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行 1.如果两个数组a和b形状相同,即满足a.shape b.shape,那么a*b的结果就是a与b数组对应位相乘。这要求维数相同且各维度的长度相同 a np.a…

Windows和Linux服务器的SSL证书续订方法

在现代互联网中,SSL证书已经成为保障网站安全和数据隐私的必备工具。SSL证书到期后,服务器管理员需要及时续订SSL证书,以确保网站的正常访问和安全性。本文将详细介绍在Windows和Linux服务器上续订SSL证书的步骤。 生成CSR(证书签…

CesiumJS【Basic】- #024A mp4/mov 转 webm

文章目录 mp4/mov 转 webm1 目标2 代码3 参考mp4/mov 转 webm 1 目标 把mp4格式的文件、用mov格式的文件转成用webm格式的文件 2 代码 前提是需要先安装好 FFmpeg # 把原始mp4的尺寸变小(带alpha通道的mov,这样转换后好像透明通道丢死了,可以在AE里直接调整输出mov) f…

路由器是什么?

路由器(Router)是一种网络设备,它的主要功能是用来延伸、拓展网络,特别是在连接多个逻辑上分开的网络时发挥关键作用。逻辑网络可以理解为代表一个单独的网络或者一个子网。当数据需要在不同的子网之间传输时,路由器就…

七大排序算法的深入浅出(java篇)

🍁 个人主页:爱编程的Tom💫 本篇博文收录专栏:Java专栏👉 目前其它专栏:c系列小游戏 c语言系列--万物的开始_ 等等 🎉 欢迎 👍点赞✍评论⭐收藏💖三连支…

【第15章】MyBatis-Plus自动映射枚举

文章目录 前言一、枚举声明1. 方式一:注解标记2. 方式二:实现接口 二、未声明枚举1.修改全局 defaultEnumTypeHandler 三、号外参考: 如何序列化枚举值为前端返回值1.Jackson1.1 重写 toString 方法1.2 注解处理 2.Fastjson2.1 重写 toString 方法 总结 …

【高级篇】第9章 Elasticsearch 监控与故障排查

9.1 引言 在现代数据驱动的应用架构中,Elasticsearch不仅是海量数据索引和搜索的核心,其稳定性和性能直接影响到整个业务链路的健康度。因此,建立有效的监控体系和掌握故障排查技能是每一位Elasticsearch高级专家的必备能力。 9.2 监控工具:洞察与优化的利器 在Elastics…

乘用车副水箱浮球式液位计传感器

浮球式液位计概述 浮球式液位计是一种利用浮球在液体中浮动的原理来测量液位的设备,广泛应用于各种工业自动化控制系统中,如石油化工、水处理、食品饮料等行业。它通过浮球的上下运动来测量液位的高低,具有结构简单、安装方便、测量范围广、…

如何选择适合自己的虚拟化技术?

虚拟化技术已成为现代数据中心和云计算环境的核心组成部分。本文将帮助您了解如何选择适合自己需求的虚拟化技术,以实现更高的效率、资源利用率和灵活性。 理解虚拟化技术 首先,让我们了解虚拟化技术的基本概念。虚拟化允许将一个物理服务器划分为多个虚…

百词斩-英语单词大赛

根据您提供的网页内容,以下是一些可能对您有帮助的信息: 1. **比赛名称**: 全国大学生英语单词大赛。 2. **活动平台**: 比赛通过百词斩App进行。 3. **用户基础**: 百词斩App拥有两亿用户,说明这是一个广泛…

HTTP请求中常用的方法

HTTP(Hypertext Transfer Protocol,超文本传输协议)是客户端(如浏览器)与服务器之间进行通信的基础。HTTP请求中常用的方法主要包括以下几种: 1. GET 方法 用途:用于从服务器获取资源&#xf…

【Linux】多线程(一万六千字)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 线程的概念 线程的理解(Linux系统为例) 在Linux系统里如何保证让正文部分的代码可以并发的去跑呢? 为什么要有多进程呢? 为…