《计算机系统与网络安全》 第二章 计算机网络基础与TCPIP协议安全性

news2024/12/24 2:11:08

在这里插入图片描述

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁
🦄 个人主页——libin9iOak的博客🎐
🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐
🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

2.1计算机网络基础概述

信息网络安全离不开计算机网络,这里我们来学习一下计算机网络的基础,计算机网络是把不同地理区域的计算机系统用专用的外设和通信线路连接起来,在网络软件的控制管理下实现资源共享的系统。计算机网络共享的资源主要包括数据资源、软件资源和硬件资源。目前最大的计算机网络就是internet。

internet的由来:

从某种意义上来看,是美苏冷战的产物。60年代古巴导弹危机发生以后,美苏开始了实验室冷战拼军事,拼科技包括计算机技术,60年代末很多研究中心、商业组织、大学都有了最新技术的电脑设备,将这些计算机连接起来,以便共享数据,并防止单点失效的思想出现了。

基于这个思想,1969年美国国防部高级研究计划局帕尔开始建计算机网络,名为ARPAnet,连接了几个军事及研究用的计算机,最初只连接4台主机。到了83年,帕和美国国防部通信局研制了易购网络互联协议TCP/IP通过这个协议能够连接易购的计算机网络和系统,这个时候真正的internet诞生了。再到90年代,internet彻底商业化,在全球攻城略地。

internet是信息技术的翅膀,有了这对翅膀,各种各样的信息网络应用层出不穷。早期人们通过网络收发电子邮件,后来通过万维网www为人们提供各种各样的资讯。再后来企业组建internet、企业内部网络,再到后来网上商务、购物、聊天、博客、多媒体社交网络、物联网、车联网、自动驾驶等等,如雨后春笋一般不断涌现,这张图肯定还有不完整的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K98AfjR7-1687879859089)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)]
在这里插入图片描述

同学们可以下来想一想,有哪些基于互联网的应用,然后把这张图再来补全。

福祸相依,Internet带着信息技术网络应用远走高飞的同时,也是病毒、蠕虫各种网络攻击的温床。这里又是一张老图,反映了病毒木马以及各种网络攻击随着时间的推移不断发展累积的过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HkMCQD4i-1687879859090)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)]

前面我们提到internet是病毒、蠕虫网络攻击的温床,我们来简单分析一下internet的安全病根。

这里我想到一句诗,“旧时王谢堂前雁,飞入寻常百姓家。”这首诗来自刘禹锡的乌衣巷,原来只是在达官贵人屋檐下做窝的燕子,如今飞到了寻常的百姓家里,计算机信息系统也是如此,就如同那燕子,随着internet的商用普及,飞到了我们普通寻常百姓的家里面、手里面。

全球的互联网用户在今天达到了几十亿人,使用的人群非常复杂,什么人都有,同时他的用途非常的复杂,什么应用、什么用途都有,人均复杂,用途复杂,使internet安全的一个病根。此外,internet的初衷或者说是TCP/IP协议的初衷是开放与共享,就是尽可能的把计算机接入到网络当中,尽可能的方便大家共享数据和资源。从这个互联网创立之初,它就缺乏安全的总体的构想和设计,先天就落下了安全的病根总是在出现漏洞,面临威胁、被动应对、亡羊补牢的循环之中。

2.2网络协议与体系结构

网络协议与体系结构,网络协议是计算机网络中不同实体间进行数据交换而建立的规则标准的结合,不同的网络实体可能采用的字符集信息表达方式是不同的,要进行通信就必须要有统一的标准,统一的信息表达方式。比如我们生活当中很多地方都有方言差距比较大,就不便于人们的交流,所以需要推广普通话便于交流。放大到全球,英语就被选作作为国际的通行语言,便于跨国交流。这里的普通话以及英语就作为统一的标准和信息表达方式,类似于计算机网络当中的协议起着相同的作用。具体而言,网络协议定义了两个或多个通信实体之间交换的报文、格式、次序以及通信实体在传输接收报文时候,以及在其他情况下面所采取的动作。

网络协议通常采用分层的思想,将庞大的复杂的问题转化为若干较小的、简单的、单一的局部问题,易于理解研究和处理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-On7FSIqG-1687879859090)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif)]

从这个图中我们可以看到不同的节点的同一层,具有同样的这个结构和功能,同一节点的相邻,我们可以看到不同节点的同一层具有相同的结构和功能,同一个节点的相邻层之间,通过接口进行通信,每一层使用下层为他提供的服务,同时也向他的上一层提供服务,不同节点的同等层按照协议实现对等层之间的通信。

看了网络协议的定义,我们再来看网络体系结构,主流的网络体系结构有OSI开放系统互联通信参考模型和TCP/IP模型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kT3tNv4S-1687879859091)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg)]

OSI参考模型是1984年国际标准化组织 ISO发布的7层网络体系结构模型,从低到高可以分为物理层、数据链、路层、网络层、传输层、会话层、表示层和应用层。tcpip模型不像osi只有模型,还有一组实实在在的协议,最早只有TCP传输协议和IP网际协议后来补充了一些其他的协议,成为今天我们使用的tcpip协议处。tcpip是由帕奈特推出的网络协议,它在一定程度上面参考了osi体系结构,将osi7层模型简化为5层。目前 tcpip协议已经成为了internet的通用语言,这里是osi7层参考模型的示意图,并且我们简要说明一下各层的作用。从下到上,物理层负责在物理传输媒体上传输二进制比特数据,并且提供机械和电气规约。数据链路层将上层的网络分组数据封装成真,并提供各种物理介质的访问。网络层负责IP选址和路由选择,传输层负责建立管理维护端到端的连接,会话层负责建立管理和维护会话,表示成负责数据的格式化转换和这个数据的加减密,应用层为应用程序提供各种服务。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7a3AZbL-1687879859091)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg)]

我们再来看tcpip的5层模型与osi参考模型的关系,osi模型是一种近乎完美的模型,但是并没有流行起来,通常只是作为我们教科书里面的教学模型。原因主要有两个方面,一是提出比tcpip协议晚,已经被tcpip抢占了位置。二是因为osi参考模型比较复杂,相应的协议研发太慢,严重落后于工程实践。

当然我们tcpip也不是一蹴而就,一下就成熟一统天下的,在它逐步成熟和完善的过程当中,也借鉴和参考了osi模型的思想,比如我们前面所介绍的分层的思想,tcpip5层模型将我们osi模型的上面3层,也就是会话成表示层应用层合并为一层,作为它的应用层。有些教科书又把最下面的物理层和数据链路层合二为一,作为网络接口层。tcpip的完整模型有5层,但是通信网络其实只有下面的3层及物理层、数据链路层和网络层,有了这三层就可以足够,有了这三层就足够实现数据的传输和通信了。只有端系统,比如说个人的计算机,智能终端等等,才需要上面的传输层和应用层。

刚才我们提到通信网络只有下三层,所以我们常见的常用的网络设备都工作在tcpip协议的下面三层,常用的网络设备都有哪些都具体工作在哪些网络层上面,我们可以看这张图。从通信网络的层次上来看,物理层上面的网络设备主要是通信线缆,比如说双脚线光纤、同轴电缆等等,还有就是一些中继设备中继器,极限器。中继器的主要作用是把网络的信号在传输媒体上面进行放大,从而可以达到更远的传输距离。这个极限期又叫做HUB,是早期的局域网组网的设备,它有多个接口工作的时候把从一个接口接收到的这个数据简单的广播复制到其他接口,从而实现连接到不同接口上面的计算机可以相互的通信。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqGFcee4-1687879859091)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif)]

数据链路层的设备就包括网桥,以太网交换机,前面我们讲这个哈佛可以来组网,但是用这个HUB来进行组网的话,它的网络通信效率是很低的,现在我们主要使用交换机来组建这个局域网,交换机的这个主网的通行效率就高多了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5dMZPBr4-1687879859093)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Z1z2u0w-1687879859093)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg)]

我们再来看网络层的设备,网络层的设备主要是路由器和三层交换机,路由器是主要的我们网络连接的设备,可以实现把数据包从它的一个接口转发到另外的接口,互联网就通过无数相互连接的路由器,把数据包从通信的源头,一个路由器一个路由器的不断的转发,直到到达目的节点,而三层交换机就是具有部分路由功能的交换机。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XgiIuk1c-1687879859093)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GKvHJ55G-1687879859094)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg)]

接下来我们再来看一下TCP模型中的各层协议,如图所示,我们这个物理层只连接传输媒体,不涉及到具体的协议,数据链路层就包括了各种常见的物理接入协议,包括接入有线以太网的year net,无线局域网、光纤网络等等他们的这个介入协议。

在往上网络层主要包括IP网际协议,ARP地址解析协议以及ARP反向地址解析协议,还有就是IC MP internet控制报文协议。icmp协议主要是在网络不通,主机不可达或者路由不可用的情况下,面传递控制信息,它并不传递用户的数据,传输用户的数据主要是IP协议。

再往上传输层主要是TCP传输控制和udp用户数据报两个协议。

应用层包括了大量的应用协议,比如用于网页访问的HTTP协议,用于文件、传输的、FTP协议,远程登录的telnet协议,邮件传输的smtp、协议,以及域名解析的DNS协议等等。

2.3 TCP IP网络地址

接下来我们来学习TCP网络协议当中的网络地址,

网络地址用于标识网络空间当中的实体,比如计算机、路由器、服务器等网络实体,跟我们人一样,我们人也需要有身份证号,学号、工号以及姓名,对人来进行标识和识别。

Tcp网络协议采用了三层网络地址,他们分别是位于网络接口层的MAC硬件地址,以及网络层的IP地址和这个应用层的域名地址。

首先来看MAC地址,MAC地址是设备网卡的物理地址,又叫硬件地址,它是全球唯一的终身不变的,通常是由这个设备的厂商固化在它的设备里面的,MAC地址的长度48位,正好6个字节,分成了前后两个部分,前面24位用来区分不同的厂家,后面24位由厂家自行分配,通常MAC地址表示为6段16进制数,用这个冒号或者小横杠来进行分割。比如本机的无线网卡的MAC地址就是下面这一串046c59等等,其中每个字节可以表示为两位的16进制数。

本机的无线网卡的MAC地址:04-6C-59-0C-94-56

接下来我们再来看IP地址,IP地址是用于识别网络当中互联的主机和路由器的逻辑地址,IP地址由32位二进制4个字节构成,通常表示为点分十进制,也就是说用这个点号把这个32位的IP地址分成了4段,每段一个字节,一个直接转换成10进制,它的范围就是0~255。比如我们本机的IP地址就是下面这个192.168.0.105,

本机的IP地址:192.168.0.105

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dypzfuVd-1687879859094)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg)]

IP地址它是有结构的,它的结构它分成两个部分,前面部分就是网络地址,后面部分就是主机地址,这个分割又可以分成几类,分成ABC三类,a类IP地址就是前面的一个字节是作为网络地址,剩下的三个字节是作为主机的地址,它的这个可容纳主机数量可以达到1600多万台。第二类IP地址是b类地址,它是把IP地址的4个字节,前面2个字节用来作为网络地址,后面两个字节作为主机地址。C类IP地址是最常用的,我们使用的IP地址大部分都是c类的,c类IP地址把这个4个字节的前3个字节作为网络地址。最后1个字节是我们主机的弟子。

接下来我们来看应用层的域名地址,我们前面讲的IP地址它是一串数字,是难于记忆的。为了解决这个难以记忆的问题,设计了域名地址,域名地址是一串以点号分割的名字来标识我们互联网上的网站,它的常见格式是下面这一串,首先计算机名,接下来网络名,机构名和域名,这是完整的格式。通常我们可能只有后面的一些部分,比如我们举个例子,我们去访问新浪网站的体育频道,它的域名就是这个 sports,新浪com CN,这个后面这个CN就代表它是中国的一个域名,然后这个 com代表它是一个商业机构,然后在前面是这个它的公司名称以及它相应的频道名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgBSzZRF-1687879859095)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg)]

这里有一张表,这张表是我们常见域名后缀,这个可以分成机构域和地理域,机构域就按照这个机构它的这个类型可以分成商业机构对应com这个后缀,教育机构对应这个 a dio这个后缀,这个非军事性的政府机构通常使用这个 garb,后缀,国际性的机构使用这个 ink,军事机构使用这个 meet,然后还有常见的网络组织使用这个 net,还有就是这个非营利性组织机构org另外还有地域的,我们通常大家比较熟悉这个 CN代表我们中国这个范围的这个域名,这个UK就是英国的域名后缀,然后香港就是 HK等等。

刚才看到tcpip协议使用了三层地址,为什么需要三层地址?首先域名地址它仅仅是我们IP地址的一个驻地服务,实质上这两者是一样的,网络实体需要唯一且终身不变的地址,这个MAC地址它就满足这一需求。现在问题就是为什么有了MAC地址还需要IP地址,它的原因就是我们可以通过IP地址来实现快速的寻址,快速的找到网络设备。另外就是我们使用IP地址,它是支持动态编制的,可以反映网络的动态性。

我们来看一下快速寻址的问题,当通信网络当中的实体数量比较庞大的时候,就需要快速的寻址,可以快速的定位到具体的某一个实体,这个是我们进行快速通信的前提,需要快速寻址就需要层次结构的地址,IP地址它就是一个分层结构的,而Mark地址它是不分层的,

这里举两个实例,我们生活当中每个人都有身份证号码,这个身份证号码大家如果观察的话,会发现它就是一个分层结构的,前面6位是这个地址码,后面接下来8位是这个出生日期码,接下来3位是顺序码,最后一位是校验码。我们拿到一个人的身份证,我们就可以快速的定位这个人是属于哪个省市的,然后什么时候出生的,然后同样学号也是分层结构的,通常包含了学校的代码,学院的代码、专业代码,后面跟上入学的年份,然后再是班级,我们个人的编码。这样的话我们拿到一个学号,我们就可以快速的识别这个同学是属于哪个学校的,哪个专业的,哪个年份的,方便我们可以快速的定位到某个人。

下面这个图展示了我们这个分层结构的网络跟这个不分层结构的网络的一个情况。我们看左边这个图,左边这个图分成两个大的区域,a区和b区,其中这个 a这个区域又可以进一步把它细分成 a杠小A、A杠小b,然后在a杠小a这个区域里面又有两台主机,这个时候我们就给这两台主机给它赋予地址,一个是a杠小a再-1,一个是a杠小a再-2。这就是一个典型的分层地址,如果我们拿到主机的地址它是a杠小a-2的话,我们就可以快速的从这个地址识别到这个主机是属于大a这个区域的小a这个子区第二台主机,

我们再看右边这个图,右边这个图它就没有使用分层结构的低值,把所有的主机一起来进行这个编码,分别给予地址123~78。这个时候这个网络当中的主机地址拿到之后,你是没有办法快速的把它定位到哪个相应的具体区域的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Brd1TKEV-1687879859095)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif)]

我们再来看网络动态性么网络是动态变化的,主机,设备、它的、网络的位置可能会不断的变化,我们都在使用移动的设备,我们使用电脑,可能在家里面使用电脑,也可能在单位使用电脑,也可能移动办公,这个时候就需要它的网络地址不断的变化。MAC地址它是固化在网卡里面的,终身不变,它就没有办法反映网络的动态性,而IP地址它是可以逻辑可变的,可以不断的去配置和分配,所以IP地址是可以反映网络动态变化的,就好比我们人一样,我们刚才说的身份证一出生之后它就固化下来了,不会变化,所以我们还需要在生活当中需要有学号,需要有功耗等等,动态的反映我们不同的状态。接下来我们就把tcpip的网络地址跟人的标识作为一个类比,方便大家来理解MAC地址就可以对应身份证号,唯一的终身不变,解决实体的识别问题,但是它不能反映状态的变化,而IP地址可以对应学号,工号它是可变的,可以用来反映我们状态的变化。上面的MAC地址和IP地址都是数字,不便于我们记忆,所以我们就使用了这个域名以及姓名,便于我们来使用。这里有一个图,我们可以看到这个网络地址跟我们人的标识可以对应起来。

tcpip网络当中的三类地址,它们之间是怎么样一个关系,怎么样进行相互的转化?

这里有一张图,我们可以看到他们是如何转化的,首先IP地址和MAC地址是用两个协议来进行转化的,IP地址要转换成MAC地址,用ARP协议来进行这个转换,叫做ARP地址解析协议。反过来如果已知MAC地址要去获取对应的IP地址的话,就可以用反向的ARP协议来进行转化。域名和IP之间有通过DNS域名服务系统来进行这个相互的转化。

2.4传输方式–分组交换

这里是另外一个分组交换的事宜,早期的网络采用电路交换的方式来进行数据传输,现在的网络采用分组交换的方式来传输,这里有两张图,上面是电路交换的示意图,下面是分组交换的示意图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p7X5Cj6C-1687879859095)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif)]

电路交换需要这个数据的发送方和接收方各自有一个电路交换机,由这个电路交换机为这个通信的,双方来建立这个连接,通信之前先建立连接建立连接好了之后,当前这条通信的电路就被通信的双方所独占了,比如这张图当中计算机a与这个计算机e进行通信,这个时候计算机a和计算机e他们就独占了两条电路当中的一条,其他用户就不能使用这台电路了。建立好连接之后,双方就可以直接把数据发送到这个电路上面进行传输,而这个数据本身是不管寻址的,这种通信方式就类似于电车或者说火车,电车火车在交通之前也需要事先建立好相应的轨道,相应的线路,然后一旦建好之后,其他车就不能再到这个相应的轨道上面跑了。

这种通信方式它的效率相对来说要低一些,因为线路是独占的,所以后来的网络主要采用分组交换的方式来进行传输。

下面这个示意图我们可以看一下,采用分组交换的这个网络需要通信的,双方有这个分组交换机,也就是我们所说的路由器,这个采用这种方式的话,每一个分组需要独自携带它的目的地,这个在通信的时候,路由器根据每一个分组携带的目的地来选择这个通信的线路,直到最后到达目的方,采用这种方式这个网络它是共享的。

像这个示意图当中虽然只有一条通信线路,但是可以被所有的计算机两端他们来共享,这种方式就类似于公路交通,然后汽车在公路上面去跑,每一个汽车都有它自己的司机独自来选入。采用分组交换这样一种方式的话,它的效率就大大提高了,而且它是比较灵活的。

分组交换,每一个分组是一个很小的数据块,所以在传输的时候,发送方需要将它要传输的数据可能比较大的数据拆分成若干的小的分片,然后每一个分片携带一个标签,也就是豹纹的手部里面携带通信的目的地址,然后进行发送,然后这这些若干个小的分片分组分别被网络路由器进行路由转发,然后到达目的端之后,目的端再把这些收到的数据报文逐个的去掉他们的头部,然后再把它组装成原来的大的数据块,完成这个数据的接受工作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbmHMSga-1687879859096)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image030.gif)]

我们在使用网络的时候,有时候会同时需要跟不同的目的地进行通信,比如我们在发送邮件的时候,可能同时会给张三发送邮件,也会给李四发送邮件,这种情况下面,我们采用分组交换这种方式就可以比较方便我们满足这样的需求。

如图中我们左端的这台计算机,它要发送两个数据分别到主机a和主机b这个时候这个发送端它就把要发送给主机a的数据拆分成若干个分组,每一个分组携带主机a的地址,然后同时把这个要发送给b的数据拆分成若干分组,每个携带b的地址,然后把它发送到网络当中,网络就会根据这些分片,这些分组,他们各自携带的目的地址,然后独自的把他们投送到相应的目的,主机a和b,然后a和b收到所有的分片之后,再把它还原,把各自的分组的头部去掉,还原成最后的这个数据。

2.5传输方式–有连接与无连接

我们再来看有连接和无连接。

学习网络大家都可能看到过,有这个有连接的传输方式,还有无连接的传输方式,有连接的传输方式,是我们前面讲的电路交换的一种模拟,它是相对来说是比较可靠的,我们可以作为一个类比,比如说我们打电话或者用微信的语音视频通话,在我们打电话之前我们需要先拨号,拨完号之后就要等对方的一个响应它要接通,接通之后这个连接就建立好了,接下来通信的双方他们就可以各自来说话,来发送数据了。

这里有一张示意图,我们可以看到通信的双方,事先他们要建立连接一方,然后说我要发送了,这个时候把这个请求发送给这个接收方,接收方他要进行应答,如果他说可以把这个线路建立好了之后,这个时候就可以把他们的数据发送到这个建立好连接上面,然后完成这个传送了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCrkCQ3p-1687879859096)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif)]

我们再来看无连接类型的通信方式,无连接就是不需要事先建立这个连接,不见连接自然就无所谓断开了,彼此之间也不确定对方是否存在。这个时候发送方他可以在任何时间发送数据,而接收端他不知道什么时候从什么地方会有数据来,这种传输方式通常需要接收方对接收到数据进行一个确认,这种方式相对来说是不太可靠的。这种通信方式可以类比短信或者微信的普通消息,我们在通信之前不需要先去拨号等对方的确认,直接随时都可以发送消息给对方,对方也不需要这个知道什么时候会有消息来,不需要在那等待,当它在线的时候自然就会受到这个笑笑,下面就是它的一个示意图,我们可以看到没有事先的连接建立过程,有数据的时候直接发送给对方就完了,然后对方可以对这个数据进行应答,也可以不应答,这种方式不可靠,为什么不可靠?你发送的数据过去有可能这个数据就丢失了。然后如果需要对方确认的话,对方确认的消息也有可能会被传丢,所以这种方式不太可靠。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OlaAuiQL-1687879859096)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif)]

2.6 TCP IP协议传输过程

TCPIP协议的传输过程,tcpip协议的传输过程可以分为三段,发送端主要完成数据的封装操作,中间的网络完成路由转发,接收端则完成这个数据的解封,这个类似快递过程,发送端进行快递的封装,封装好之后进行快递的传输过程,接收端收到这个快递之后再把这个快递进行拆封拆开。我们首先来看数据的封装过程,我们在使用网络的时候,通常都通过各种应用程序来使用网络,应用程序准备好数据之后把它交给传输层,传输层要明确当前这个应用程序它使用什么样的端口,什么样的协议类型,然后生成它的这个传输层的头部,如果是采用有连接的方式,就使用TCP协议加一个TCP协议的头部,生成了TCP报文,然后这个时候再进一步把它交到网络层,网络层就确定当前通信双方的IP地址,然后生成IP头部,把这个 IP头部加到这个上层的传输成的报文当中,形成IP数据包,进一步的交到数据链路层,链路层再根据当前的链路填上它的MAC头部,包含目的和原MAC地址,然后生成链路层的帧,链路层进一步把这个针交到物理层,然后形成二进制序列发送到网络当中。接下来我们看数据解封,数据解封是我们前面讲的数据封装的一个相反的过程,目的端接收到数据之后,接收到从物理层来的二进制序列数据之后,根据它的 MAC地址来判断一下当前这个数据是否是发送给他的。如果是发送给他的,这个时候就把这个数据交到数据链路层,然后去掉它的MAC头部,然后进一步把这个数据交到网络层,网络层根据这个协议的类型,根据IP地址,然后把这个数据包进行一个解析,完成之后去掉IP头部,再交到上层传输层,传输层再来根据传输层的头部,它是什么端口,什么类型的,然后进一步把它交到应用层,对应的应用程序,应用程序再取出相应的数据,进行相应的解读,这个通信过程就结束了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMsR1tOb-1687879859097)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image036.jpg)]

这儿有一张图,我们以QQ为例说明一下tcpip协议的传输过程。假设有两个QQ用户在进行通信,QQ1和QQ2,这个时候QQ1的用户要向QQ2打一个招呼,发送一个消息,你好,它的通信过程是这样一个过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtIkDqCz-1687879859097)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image038.jpg)]

首先 QQ1准备好“你好”,把这个数据交给应用层,应用层应用协议会加上它的一个头部生成一个应用层的数据包,然后这个数据包交到传输层传输层,根据QQ采用的传输协议通常是TCP的,会加上一个TCP的头部,同时填入他的所使用的端口信息等等其他一些信息,然后生成我们传输层的报文,然后进一步把这个报文交到IP层, IP层再来根据QQ二它的IP地址,然后生成它的IP头部,然后形成IP数据包,然后把这个IP数据包交到下一场链路厂,链路层再来结合当前这一条链路的沿河目的麦克地址生成它的针头部,然后形成传输层的数据增,然后再把它交到网卡上面,生成二进制序列发送到网络当中,然后这个二进制序列的数据,经过我们网络当中若干个路由器的路由转发,最终到达目的主机,也就是我们QQ2所处的主机,然后这个目的主机会根据这个数据包当中包含的 MAC地址,然后来判断这个是否是发送给他的数据。如果是的话把它交到链路层,然后列入成把它的针头针尾去掉,交到 IP层,IP层再来解析IP头部它是什么协议类型的,然后把它交到上层传输层TCP,然后这个时候传输层看到TCP的报文之后,再来结合它当中携带的端口类型信息,然后把它交到上层相应的应用程序,上层再把应用层的头部去掉,就获取到了最终的这个信息。“你好”这个通信过程到这儿就结束了。

2.7 TCP IP主要协议格式

这一节我们来讲一下tcpip的主要协议格式,tcpip、协议模型当中包含了很多协议,这里我们捡几个重要的协议来进行介绍,我们从上面来看,应用层的协议太多太细,我们就不再具体介绍了。

这里我们首先看一下传输层的TCP协议,这里有一张图,上面这个部分是TCP协议的头部格式,最下面是这个选项和填充等等字段,然后在接下来是校验和紧急指针,然后是数据偏移,一些标志位,以及滑动窗口用来控制这个用塞的。然后接下来是这个确认号序号,然后其中tcpip协议头部最重要的两个字段就是端口一个源端口一个目的端口。我们在封装这个 TCP报文的时候,我们就把这个数据部分加上TCP的头部,赠送TCP报文,然后再进一步把它交到IP层,添加IP头部,然后把它发送传输层,传输层,除了TCP协议之外,还有udp协议,TCP协议它是有连接的,所以我们刚才看到它的协议的格式是比较复杂的,需要建立连接维护连接,所以有很多字段是用来做这个工作的。udp是无连接的,所以我们可以看到相对来说udp协议格式是比较简单的,它主要有几个字段,一个是这个端口号,源端口、目的端口,另外就是这个 udp的长度,udp的调研和下面就跟上数据,这个是比较简单的一种格式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wnXL9xaq-1687879859098)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image040.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CfNi6ryw-1687879859098)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image042.jpg)]

接下来我们到网络层去看一看IP协议的格式,ip协议是我们网络层的主要协议,所有的数据通信都是通过IP包来进行传输的,IP协议格式也是相对来说比较复杂,有很多字段,包括版本号、包头长度、服务类型、总长度等等。其中这个IP协议的头部当中最重要的两个字段就是我们用红框框起来的语音IP地址和目的IP地址。另外还有就是我们有一个生存期,然后有这个降烟盒等等这样一些字段,具体这些字段的作用,大家可以下来查阅一些资料去把它补充一下。

接下来我们下到数据链路层去看一看,我们以太帧的格式,这里有一张图是我们以探针的格式图,然后这个针当中的数据就是我们上一层网络层生成的IP数据包,我们数据链路层拿到这个IP数据包之后就要生成数据帧,怎么来生成需要添加一些字段,重要的就是添加MAC头部当中最重要两个字段就是元和墓地地址,这是原墓地的这个 MAC地址,然后加上这个前刀、马,然后再加上一个类型,再加上增效应序列就生成了以太真。

2.8 TCP IP协议安全性

接下来我们来介绍一下tcpi p协议的安全性。

我们从网络接口层开始进行分析,网络接口层存在由网络环境及物理特性产生的网络设施和线路的安全隐患,包括设备的问题,意外故障等等。比如说我们网络接口仓,我们需要介入到网络的线缆,进入到各种设备,这些设备通信线路如果出现故障,也会危害我们网络的安全。但是我们这一层主要的网络安全威胁是这个网络嗅探,又叫做窃听或者叫做监听。通过这样一种攻击方式,攻击者可以获取我们通信的账户,密码以及隐私等敏感数据。要进行网络嗅探的话,要根据不同的网络环境采取不同的方式,如果网络是采用hub来进行主网的话,那这个时候是一个广播的环境,攻击者可以通过设置混杂模式来进行嗅探,如果网络是采用交换机进行主网的这样一个交换环境的话,就可以针对交换机来进行攻击,进行交换机毒化攻击,或者采用ARP欺骗的方式来进行攻击。接下来我们分析网络层的安全性,网络层主要的协议一个是IP协议,另外一个是icmp协议,IP协议有两个版本,ipv4和v6,现在主要采用的还是ipv4,ipv6正在逐步的试用过程当中,ipv4在设计之初根本没有考虑网络的安全性问题,可以说不具备任何的安全特性,IP协议的主要安全威胁,包括对原ip地址不进行认证,利用这一点就可以构造IP欺骗攻击。这个类似快递,我们在发送快递的时候,我们要填写快递的目的地址,还要填写快递的发件人地址,对发件地址可以填写虚假的信息,构成这个虚假的构成这个欺骗,所以后来国家也出台了一些相应的政策,要求我们在发送快递的时候需要携带身份证件来避免进行欺骗。第二个威胁是可以设置原路由选项,利用这个原路由选项可以构造原路由欺骗攻击。我们刚才看到IP地址头部有一个原路由这个字段,这个原路由字段可以填上我们这个数据包期望经过的路由节点,期望经过的这个传输线路,这个字段是可以进行这个虚假填写的,构成欺骗。第三点是IP分片威胁,当IP数据包它的豹纹长度比较长的时候,IP层就会对它进行一个分片,利用这一点可以构造这个分片扫描和拒绝服务,我们后面章节会进行介绍。针对ipv4的这样一些安全问题, Ipv6进行了一些改进,简化了,ipv4当中的头部结构,然后增加了很多安全性的设计,可以进行加密进行认证以及签名。

IPv6简化了IPv4中的IP头结构,并增加了对安全性的设计

网络层的另外一个协议,icmp也会带来安全威胁,一个是利用smp协议来实施网络扫描,另外一个是基于smp协议的拒绝服务攻击,我们后面章节会进行相应的介绍。

TCP协议的安全威胁,第一个是我们TCP要建立连接,需要进行三次握手,如果这个三次握手过程与我们刚才讲的IP欺骗进行结合的话,就可以形成这个拒绝服务攻击。另外TCP三次握手进行连接的时候,它需要有一个随机的序列号,而这个序列号往往在实施过程当中,它并不是真正随机的,这个时候就会被猜测形成这个会话、劫持、攻击,另外攻击者可以定制特殊标志位的TCP包来实施隐蔽的网络扫描。我们udp协议的安全威胁主要是它是无连接的不可靠的协议,我们可以利用udp来实施拒绝服务攻击。我们再到应用层,我们来看一下应用层的安全性,应用层有很多协议,比如说HTTP FTP smtp,dns, talent等等这样一些协议,这些协议很多都有它的安全隐患,由于数量太多,我们就不再一一的进行分析,这里应用层主要的安全隐患有三个,一个是网页的恶意代码,web网页当中可以被注入一些具有破坏性的控件插件或者设e代码。当用户通过HTTP协议取回网页之后,这个置入到网页当中的这些恶意的代码就被激活被运行,然后进行相应的破坏,可以收集用户的数据,然后可以破坏用户的这个程序等等。第二个威胁是外部欺骗外部欺骗,主要就是攻击者伪造一个网站,外部欺骗主要就是假冒其他网站,攻击者可以构造一个假的网站出来,比如说对标银行,构造一个工行的网站,然后诱骗用户去访问这个网站,留下他的账户,他的密码,那这个时候用户的信息他的账号就被泄露了。应用成另外一个安全隐患,是DNS欺骗。我们知道DNS系统它的作用是进行域名的解析,那我们在访问一个网站的时候,我们拿到这个网站的域名,我们需要借助DNS域名解析系统去查询它对应的IP地址,然后用IP地址来进行实际的通信,攻击者就可以假冒成DNS服务器,当用户在查询的时候,给用户返回一个错误的IP地址,通过这个错误的IP地址把用户导向到一个虚假的、假冒的网站当中,比如攻击者搭建的钓鱼网站,这个时候在钓鱼网站当中,我们用户输入,个人的账户密码以及其他一些信息,这个时候就构成了这个泄露。

原创声明

=======

作者: [ libin9iOak ]


本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任。

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

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

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

相关文章

苹果app用发布证书打包后怎么装手机测试

一、背景 iOS 的开发证书打包后可以通过爱思助手安装到手机上测试,但发布 (Production) 证书是不允许安装在手机上的。而在实际开发过程中,尽管通过开发证书测试过了,iOS生产包仍然可能会出现一些问题,需对生产包也进行测试。 而…

【Stable diffusion教程】AutoDL云部署超详细步骤说明【外婆都会】

1 AutoDL云端部署操作流程 1.1 登录/注册 官网:https://www.autodl.com/home,点击右上角登录/注册。此处我已经注册了 如果你是学生的话,注册完之后,进入控制台,在右上角点一下学生认证,然后你就可以享受…

23.6.24

1、grep:查找字符串 grep 字符串 文件名 -w:按单词查找 -R:实现递归查找,主要用于路径是目录的情况 -i:不区分大小写 -n:显示行号 grep -w "^ubuntu" /etc/passwd ---->查找以ubuntu单词作为开头位置的所在行 grep -w "ubuntu$"…

html简单实现b站评论回车发布

头像&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wi…

Linux系统:进程概念

文章目录 1 操作系统1.1 概念1.2设计操作系统的目的 2进程2.1 进程是什么2.2 如何管理进程2.2查看进程2.3 程序中获取自己的pid2.4 创建一个进程2.5 进程状态2.6 进程优先级2.6.1为什么要有优先级2.6.2 什么是优先级2.6.3 linux下优先级的做法 2.8 其他概念 3进程地址空间3.1 初…

基于Docker环境下的Jenkins搭建及使用

目录 前言&#xff1a; Docker下安装Jenkins 启动Jenkins Jenkins插件下载 配置Jenkins 修改Jenkins时间 配置Python3环境 配置HTML报告/Allure报告 Allure报告配置 简单使用-实例构建 参数化构建 构建后操作 配置成功 控制台输出 Allure报告查看 HTML报告查看 前言&#xff1a…

macOS上下载安装Kibana并连接ES

下载Kibana 执行以下命令进行&#xff0c;版本号根据你所用的ES版本选择&#xff0c;比如我的是7.10.0 curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-darwin-x86_64.tar.gz解压安装Kibana tar -zxvf kibana-7.10.0-darwin-x86_64.tar.gz进行config…

Visual modflow Flex地下水数值模拟

专题一 地下水数值软件的操作流程、建模步骤和所需资料处理及相关注意事项 [1] Visual MODFLOW Flex特征 [2] Visual MODFLOW Flex软件界面及模块 [3] 地下水数值模拟的建模步骤及数据需求 专题二 模型建模操作方法 技巧、真实案例演练、特殊问题处理 [1] 直接模型建模的操…

【信号】信号处理与进程通信:快速上手

目录 0. 信号概述 1. 产生信号的方式&#xff1a; 1.1 当用户按某些终端键时&#xff0c;将产生信号。 1.2 硬件异常将产生信号。 1.3 软件异常将产生信号。 1.4 调用kill函数将发送信号。 1.5 运行kill命令将发送信号。 2. 信号的默认&#xff08;缺省&#xff09;处理…

用for循环----输出0-999的水仙数

输出0-999的水仙数 水仙算法&#xff1a;一个数它各位的立方和&#xff0c; 例如&#xff1a;1531*1*15*5*53*3*3 提示&#xff1a;for循环&#xff0c;求余数(%)取整&#xff08;/&#xff09;运算符。 答案&#xff1a; 代码如下&#xff1a; #include <stdio.h> …

物理备份xtrabackup

物理备份xtrabackup Xtrabackup 是一个开源的免费的热备工具&#xff0c;在 Xtrabackup 包中主要有 Xtrabackup 和innobackupex 两个工具。其中Xtrabackup 只能备份 InnoDB 和 XtraDB 两种引擎; innobackupex则是封装了Xtrabackup&#xff0c;同时增加了备份MyISAM引擎的功能。…

STM32开发——智能小车(循迹、避障、测速)

目录 1.循迹小车 1.1CubeMX配置 1.2函数代码 2.避障小车 3.小车测速 1.循迹小车 需求&#xff1a;用左右轮实现PWM调速、红外传感器获取道路信息改变方向。 左边红外D0——PB12 右边红外D0——PB13 1.1CubeMX配置 1.2函数代码 motor.c代码 #include "gpio.h"…

TCP三挥四握

TCP三挥四握 TCP最关键的三个步骤&#xff1a;建立连接、数据传输、释放连接&#xff0c;这里的三次握手实现的是服务端和客户端建立连接&#xff1b;四次握手实现的是服务端和客户端释放连接。 三次握手&#xff1a; 建立数据连接 TCP连接需要三次握手的原因&#xff1a; 三次…

【Free】基于主从博弈的主动配电网阻塞管理

目录 1 主要内容 程序亮点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 《基于主从博弈的主动配电网阻塞管理》文献介绍&#xff1a;主要采用一种配电网节点边际电价统一出清的主从博弈双层调度框架。上层框架解决用户在负荷聚合商引导下的用电成本最小化问题&#xff0…

力扣题库刷题笔记18--四数之和

1、题目如下&#xff1a; 2、个人Python代码实现&#xff1a; 首先看到这题就会想到两种方式&#xff0c;一是四层循环暴力破解&#xff0c;二就是基于前面的三数之和外面加加一层嵌套。 先看一下暴力破解&#xff1a; 这里可以看到&#xff0c;当数据量足够大时&#xff0c;依…

Openresty原理概念篇(十)为什么 lua-resty-core 性能更高一些

一 为什么 lua-resty-core 性能更高一些 ① 回顾 lua-resty-core和lua-nginx-module各自都有哪些API? --> 看下面两个仓库的文档 lua-nginx-module lua-resty-core 下面&#xff1a;一起看下Lua C API和FFI 的实现有何不同之处,这样可以对它们的性能有个直观认识…

14. python从入门到精通——GUI编程

目录 常用的GUI框架 wxPython&#xff1a;比较常用 PyQt6&#xff1a;比较常用 Kivy Flexx Tkinter 安装PyQt5 要开发PyQt5程序需要安装三个模块&#xff1a; 安装命令&#xff1a; 安装 安装命令&#xff1a; window安装&#xff1a; PyCharm软件安装&#xff1a…

Android跳转具体应用权限管理,三种方式

背景&#xff1a;Android越来越安全合规&#xff0c;在应用里&#xff0c;需要给用户所有可选择和取消的明确方式。 比如&#xff1a;设置了权限&#xff0c;也要给用户关闭权限的入口。被要求在应用的设置里&#xff0c;提供权限管理入口。 解决方式有三&#xff1a; 方式一…

ansible实训-Day2(ansible基本问题及部署安装)

一、前言 该篇是对ansible实训第二天内容的归纳总结&#xff0c;主要包括ansible的一些基本问题以及ansible的部署安装。 二、理论部分 Q1&#xff1a;什么是ansible Ansible是一种自动化IT工具&#xff0c;它可以帮助管理和自动化IT基础架构。使用Ansible&#xff0c;管理员…

神仙级编程神器,吹爆!

Visual Studio 编程领域公认的“最强IDE”&#xff0c;Visual Studio是目前最流行的Windows平台应用程序的集成开发环境&#xff0c;提供了高级开发工具、调试功能、数据库功能和创新功能&#xff0c;帮助在各种平台上快速创建当前最先进的应用程序&#xff0c;开发新的程序。 …