密码学学习笔记(二十四):TCP/IP协议栈

TCP/IP协议栈的基础结构包括应用层、传输层、网络层、数据链路层和物理层。

应用层 

应用层位于TCP/IP协议栈的最顶层,是用户与网络通信的接口。这一层包括了各种高级应用协议,如HTTP(用于网页浏览)、FTP(用于文件传输)、SMTP(用于电子邮件)和DNS(用于域名解析)。应用层协议规定了应用软件如何通过网络进行通信,处理特定类型的网络活动,并为用户提供直观的操作界面。

传输层 

传输层负责在网络中不同主机间的数据传输。这一层主要使用两种协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的、有序的数据传输,通过三次握手建立连接,确保数据完整性。UDP则提供更快但不保证数据完整性的连接,适用于对速度要求高但可以容忍一定丢包的应用,如视频流和在线游戏。

网络层

网络层处理数据包在网络中的路由和转发。最重要的协议是IP(互联网协议),它为每个网络设备分配一个独特的地址(IP地址),确保数据包能够找到正确的目的地。网络层决定数据包的最佳路径,通过路由器进行数据包转发,并处理不同网络之间的互连问题。

数据链路层

数据链路层负责在相邻网络节点间的数据传输。这一层将数据封装成帧,然后进行物理传输。它同时也负责错误检测和纠正,确保数据在局部网络中的准确传输。此层中的以太网(Ethernet)是最常见的技术标准,用于有线网络中。

物理层

物理层是协议栈中最基础的部分,负责在物理媒介上进行原始数据的传输。这包括了电缆、光纤、无线电波等传输媒介的使用,以及数据的编码和信号调制。物理层确保数据可以在不同的物理设备间传输,无论是通过电缆还是无线方式。

示例

在Web浏览会话中,应用层主要使用HTTP协议。当用户在浏览器中输入一个网址或点击一个链接时,浏览器会通过HTTP协议向服务器发送请求。HTTP协议规定了这些请求和响应的格式。

传输层 - TCP:HTTP请求通过传输层的TCP协议传输。TCP提供可靠的数据传输服务,确保数据包的正确顺序和完整性。在TCP层,数据被分割成小的段,并在到达目的地后重新组合。

网络层 - IPv4:网络层使用IP协议(这个例子中是IPv4)来处理数据包的寻址和路由。每个数据包都包含源IP地址和目的IP地址,这些地址确保数据包能够正确地路由到目的地。

数据链路层 - Ethernet:在数据链路层,数据包被进一步封装为帧,用以在局部网络中的物理设备之间传输。以太网是最常见的数据链路层技术。

物理层 - 物理信号:最后,在物理层,数据以电子或光信号的形式通过物理媒介(如铜线、光纤或无线电波)进行传输。

TCP 和 UDP 使用端口允许主机之间的多个主机之间的同时连接

  • 公共IP地址作为唯一标识符:公共IP地址是分配给网络中每个设备的独特标识符。在互联网上,每个设备的IP地址必须是唯一的,以确保数据可以准确地发送到正确的目的地。
  • TCP和UDP的端口使用:TCP(传输控制协议)和UDP(用户数据报协议)都使用端口号来管理多个连接。端口号允许一个IP地址上的不同应用或服务进行区分。例如,HTTP通常使用端口80,HTTPS使用端口443。这样即使多个服务在同一IP地址上运行,也能够被正确地区分和访问

NAT 在多台主机之间共享同一个 IP 地址多个主机共享同一 IP 地址,以应对 IPv4 短缺问题

  • 网络地址转换(NAT):NAT是一种在IPv4地址不足的情况下广泛使用的技术。它允许多个设备共享同一个公共IP地址,通过在私有网络和公共网络之间转换IP地址来实现。这样,内部网络中的多个设备可以使用私有IP地址,而对外表现为单一的公共IP地址。
  • IP数据包的基本结构:IP数据包包括一个头部和数据部分。头部包含了重要的控制信息,如源IP地址、目的IP地址、版本号、长度等。这些信息对于正确路由和传输数据包至关重要。

IP数据包在网段上的传递不涉及路由器

为了到达同一网络(链路)中的计算机,IP 数据包被封装在数据链路帧中,最常见(在有线帧中)是以太网

以太网实现基本链路功能,例如冲突避免和 CRC

网卡仅将那些发往该主机的帧传递给操作系统(即以其 MAC 地址作为目的地)

IP漏洞和路由

互联网最初的设计没有将安全作为首要考虑因素,导致了许多潜在的安全漏洞。随着网络攻击的增加,改进网络安全成为了一个重要的挑战。 

路由算法决定了数据包在网络中的传输路径。BGP(边界网关协议)是互联网上使用的主要路由协议。然而,BGP自身存在安全问题,如路由劫持,这可能导致数据流量被错误地或恶意地重定向。

IPSec 和 IPv6

IPSec 为 IP 添加身份验证和加密

IPSec 可以验证和加密每个 IP 数据包。IPSec是一个在网络层提供认证和加密的协议框架,以增强数据传输的安全性。它包括两种模式:传输模式和隧道模式。传输模式只加密IP数据包的数据部分,而隧道模式则加密整个IP数据包。

  • 安全关联 (SA):在通信开始之前定义(端点之间)——指定用于身份验证和加密的算法,并通过 IPSec 密钥交换 (IKE) 交换密钥
  • 身份验证标头 (AH):IP 扩展,提供数据报的身份验证和完整性,加上时间戳以防止重放攻击
  • 封装安全有效负载 (ESP):对 IP 的扩展,提供身份验证、完整性和机密性(加密)

IPv6应对了IPv4地址耗尽的问题,提供了几乎无限的地址空间。它还引入了一些其他改进,如自动地址配置、更简单的头部格式和改进的安全性(例如内置IPSec支持)。

IPSec有两种模式:传输(主机到主机)和隧道(VPN)

在传输模式下,IPSec 被“添加”到原始数据包中。

AH 可以为 IP 标头和有效负载提供完整性(通过散列)和身份验证问题:IP 选项是可变的,并且可以在传输过程中更改因此被排除在外 。

在隧道模式下,原始数据包封装在 IPSec 中,例如 用于虚拟专用网络 (VPN)

网关将 IP 数据包封装到附加的 IP 标头中,一旦数据包到达另一个网关,该标头就会被删除。网络中的主机看到彼此就好像它们在同一网络中一样。IPv6的引入大大增加了可用的IP地址数量,并带来了其他改进,例如自动配置和简化的路由器处理。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c# 自定义 滑块TrackBar

辛苦半天做出来的,如果觉得好用,记得点赞 效果图如下: 具体操作: 1 、添加代码(代码在下面),重新生成下整个工程,在工具栏中就出现控件,将控件拖到窗体中 2、只需要调整…

【Qt5】QString的成员函数trimmed

2024年1月19日,周五下午 QString 的 trimmed 方法是用于移除字符串两端的空白字符(空格、制表符、换行符等)的方法。它返回一个新的字符串,该字符串是原始字符串去除两端空白后的结果。 下面是一个简单的示例: #incl…

瑞_Java开发手册_(六)工程结构

文章目录 工程结构的意义(一) 应用分层(二) 二方库依赖(三) 服务器 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的工程结构篇,主要介绍应用分层、二方库依赖、服务器。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c…

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

cloudbeaver默认没有开放impala连接,更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能 1、初始化cloudbe…

MLILY梦百合上榜“2023中国家居行业价值100公司”

2024年1月16日,由搜狐焦点家居联合搜狐财经、搜狐科技、搜狐时尚等主流频道主办的“2023中国家居行业价值100公司”榜单正式公布。MLILY梦百合作为头部睡眠科技品牌,经线上投票和专家评审,凭借强大的创新力、产品力、品牌力、服务力,从千家候选企业中脱颖而出,并最终荣获“2023…

TLP184(GR-TPL,SE 晶体管输出光电耦合器的特性与概述

TLP184(GR-TPL,SE 是一种交流输入型光电耦合器,由一个光电晶体管组成,该光电晶体管与两个砷化镓红外发射二极管光学耦合。 TLP184(GR-TPL,SE封装在非常小且薄的SO6封装中,具有高抗噪声性和高隔离电压。 由于TLP184(GR-TPL,SE比DIP封装更小&…

navigateTo失效-跳转不了页面解决办法!uniapp\vue

改了一个小时多的错误,跳转页面无论怎么样都跳转不了,有2个问题: 注意:uniapp的报错可以在console里检查! 1.pages.json文件没有配置路径, 在pages:[ ]里面加 (根据自己的路径进行修改 {&qu…

嵌入式操作教程:7-1 基于CMOS数字摄像头的灰度转换实验

一、实验目的 学习灰度转换的原理,掌握OV2640 摄像头和VPIF总线的工作原理,实现OV2640 摄像头采集图像并进行实时灰度转换显示在 LCD 上。 二、实验原理 OV2640摄像头 OV2640 是世界上第一个 1/4 英寸 2 百万像素视频传感器,同时是 OmniV…

SCSI/UFS储存架构/协议/电源管理/命令处理流程

UFS子系统架构 1.UFS协议 无论是ufs host controller部分还是ufs device部分,他们都将遵循统一的UFS规范 UFS Application Layer(UAP)应用层 1.UFS command set (UCS) UCS处理命令集,如读、写命令等,.使用的命令是简化的SCSI命令(…

【01】mapbox js api加载arcgis切片服务

需求: 第三方的mapbox js api加载arcgis切片服务,同时叠加在天地图上,天地图坐标系web墨卡托。 效果图: 形如这种地址去加载http://zjq2022.gis.com:8080/demo/loadmapboxtdt.html 思路: 需要制作一个和天地图比例…

2023年度因子大盘点

基本信息: 指标说明: 2023年市场表现最佳 2023年市场单项最佳 2023年各分域最佳因子

【昇思技术公开课笔记-大模型】Bert理论知识

NLP中的预训练模型 语言模型演变经历的几个阶段 word2vec/Glove将离散的文本数据转换为固定长度的静态词向量,后根据下游任务训练不同的语言模型ELMo预训练模型将文本数据结合上下文信息,转换为动态词向量,后根据下游任务训练不同的语言模…

从数据到决策:项目管理和度量领域必备技能

0、引言 “效率”作为得物技术部的关键词之一,大家在研发效能、会议效率、协作效率、办公效率等方面一直进行着持续地探索。在实际落地的过程中,为了更好地评估应用效果,往往需要将定性描述转换为可量化的数据指标。这些数据指标可以帮助我们…

【大咖云集】2024年机械应用与机器视觉研究国际会议(ICMAMVR 2024)

2024年机械应用与机器视觉研究国际会议(ICMAMVR 2024) 2024 International Conference on Mechanical Applications and Machine Vision Research 数据库:EI,CPCI,CNKI,Google Scholar等检索 一、【会议简介】 2024年机械应用与机器视觉研究国际会议(ICMAMVR 2024)将…

C和指针课后答案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 第八章课后答案 提示:以下是本篇文章正文内容,下面案例可供参…

C语言:预处理详解

创作不易,来个三连呗! 一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…

python—01虚拟环境

文档结构 1、概念简介2、环境配置2.1、多版本解释器2.2、指令创建虚拟环境2.3、idea创建虚拟环境2.3.1、pycharm 1、概念简介 虚拟环境 在某些场景下,不同的项目需要基于不同版本的Python解释器来开发,或者不同的项目需要的第三方包或模块版本也不同。当…

【C语言编程之旅 5】刷题篇-if语句

第1题 解析 上述代码本来的想法应该是:循环10次,每次循环时如果i5则打印i的结果。 但if语句中表达式的写成了赋值,相当于每次循环尽量都是将i的值设置成了5,5为真,因此每次都会打印5 i每次修改成5打印后&#xff0c…

【面试突击】硬件级别可见性问题面试实战(上)

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复…

【LeetCode热题100】【子串】和为 K 的子数组

题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,…