基础不牢,地动山摇
TCP/IP概述
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/ 际协议, 络协议,也叫作 络通讯协议)是指能够在多个不同 络间实现信息传输的协议簇,是在 络的使用中的最基本的通信协议。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP传输协议对互联 中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证 络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、 络层和数据链路层都包含其中。
TCP/IP协议是Internet最基本的协议,其中
- 应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;
- 传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息 内部数据结合的通道,可以实现数据传输与数据共享;
- 络层的主要协议有ICMP(ping命令基于)、IP、IGMP,主要负责 络中数据包的传送等;
- 而 络访问层,也叫 络接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。
- ARP协议在TCP/IP模型中属于IP层( 络层),在OSI模型中属于链路层。
TCP/IP协议组成
TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、 络层、运输层、会话层、表示层和应用层。在TCP/IP协议中,它们被简化为了四个层次。
(1)应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次。
(2)由于运输层和 络层在 络协议中的地位十分重要,所以在TCP/IP协议中它们被作为独立的两个层次。
(3)因为数据链路层和物理层的内容相差不多,所以在TCP/IP协议中它们被归并在 络接口层一个层次里。
(4)只有四层体系结构的TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低。
分别介绍TCP/IP协议中的四个层次。
应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。
(1)对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维 应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
(2)应用层还能加密、解密、格式化数据。
(3)应用层可以建立或解除与其他节点的联系,这样可以充分节省 络资源。
运输层:作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中,TCP和UDP也同样起到了中流砥柱的作用。
络层: 络层在TCP/IP协议中的位于第三层。在TCP/IP协议中 络层可以进行 络连接的建立和终止以及IP地址的寻找等功能。
络接口层:在TCP/IP协议中, 络接口层位于第四层。由于 络接口层兼并了物理层和数据链路层所以, 络接口层既是传输数据的物理媒介,也可以为 络层提供一条准确无误的线路。
TCP/IP特点
- 协议标准是完全开放的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统。
- 独立于 络硬件系统,可以运行在广域 ,更适合于互联 。
- 络地址统一分配, 络中每一设备和终端都具有一个唯一地址。
- 层协议标准化,可以提供多种多样可靠 络服务。
在 络通信的过程中,将发出数据的主机称为源主机,接收数据的主机称为目的主机。当源主机发出数据时,数据在源主机中从上层向下层传送。
源主机中的应用进程先将数据交给应用层,应用层加上必要的控制信息就成了 文流,向下传给传输层。传输层将收到的数据单元加上本层的控制信息,形成 文段、数据 ,再交给 际层。 际层加上本层的控制信息,形成IP数据 ,传给 络接口层。 络接口层将 际层交下来的IP数据 组装成帧,并以比特流的形式传给 络硬件(即物理层),数据就离开源主机。
- 链路层
以太 协议规定,接入 络的设备都必须安装 络适配器,即 卡,数据包必须是从一块 卡传送到另一块 卡。而 卡地址就是数据包的发送地址和接收地址,有了MAC地址以后,以太 采用广播形式,把数据包发给该子 内所有主机,子 内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。所以链路层的主要工作就是对电信 进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。 - 络层
- IP协议
络层引入了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个 络,这套地址就是 络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表 络地址,后面部分表示该主机在局域 中的地址。如果两个IP地址在同一个子 内,则 络地址一定相同。为了判断IP地址中的 络地址,IP协议还引入了子 掩码,IP地址和子 掩码通过按位与运算后就可以得到 络地址。 - ARP协议
即地址解析协议,是根据IP地址获取MAC地址的一个 络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太 数据包,最终由以太 广播给子 内的所有主机,每一台主机都会接收到这个数据包,并取出包头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 - 路由协议
首先通过IP协议来判断两台主机是否在同一个子 中,如果在同一个子 ,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子 内的主机发送数据包;如果不在同一个子 ,以太 会将该数据包转发给本子 的 关进行路由。 关是互联 上子 与子 之间的桥梁,所以 关会进行多次转发,最终将该数据包转发到目标IP所在的子 中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。
所以, 络层的主要工作是定义 络地址、区分 段、子 内MAC寻址、对于不同子 的数据包进行路由。
- IP协议
- 传输层
链路层定义了主机的身份,即MAC地址,而 络层定义了IP地址,明确了主机所在的 段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份。- UDP协议
UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口 ,并且规定 络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口 找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高 络可靠性,TCP协议就诞生了。 - TCP协议
TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证 络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
传输层的主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性。
- UDP协议
- 应用层
理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。
所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据。
各层安全隐患
- 链路层上的攻击
在TCP/IP 络中,链路层这一层次的复杂程度是最高的。其中最常见的攻击方式通常是 络嗅探组成的TCP/IP协议的以太 。当前,我国应用较为广泛的局域 是以太 ,且其共享信道利用率非常高。以太 卡有两种主要的工作方式,一种是一般工作方式,另一种是较特殊的混杂方式。这一情况下,很可能由于被攻击的原因而造成信息丢失情况,且攻击者可以通过数据分析来获取账户、密码等多方面的关键数据信息。 - 络层上的攻击
- ARP欺骗
ARP(地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。通常情况下,在IP数据包发送过程中会存在一个子 或者多个子 主机利用 络级别第一层,而ARP则充当源主机第一个查询工具,在未找到IP地址相对应的物理地址时,将主机和IP地址相关的物理地址信息发送给主机。与此同时,源主机将包括自身IP地址和ARP检测的应答发送给目的主机。如果ARP识别链接错误,这样的话ARP直接应用可疑信息,那么可疑信息就会很容易进入目标主机当中。
ARP协议没有状态,不管有没有收到请求,主机会将任何受到的ARP相应自动缓存。如果信息中带有病毒,采用ARP欺骗就会导致 络信息安全泄露。因此,在ARP识别环节,应加大保护,建立更多的识别关卡,不能只简单通过IP名进行识别,还需充分参考IP相关性质等。 - ICMP欺骗
ICMP协议也是因特 控制 文协议,主要用在主机与路由器之间进行控制信息传递。通过这一协议可对 络是否通畅、主机是否可达、路由是否可用等信息进行控制。一旦出现差错,数据包会利用主机进行即时发送,并自动返回描述错误的信息。该协议在 络安全当中是十分重要的协议。但由于自身特点的原因,其极易受到入侵,通常而言,目标主机在长期发送大量ICMP数据包的情况下,会造成目标主机占用大量CPU资源,最终造成系统瘫痪。
- ARP欺骗
- 传输层上的攻击
- 在传输层还存在 络安全问题。如在 络安全领域中,IP欺骗就是隐藏自己的有效手段,主要是通过将自身IP地址进行伪造,并向目标主机发送恶意的请求,攻击主机,而主机却因为IP地址被隐藏而无法准确确认攻击源。或者通过获取目标主机信任而趁机窃取相关的机密信息。
- 此外,在ICMP传输通道,由于ICMP是IP层的组成部分之一,在IP软件中任何端口向ICMP发送一个PING文件,借此用作申请,申请文件传输是否被允许,而ICMP会做出应答,这一命令可检测消息的合法性。所有申请传输的数据基本上传输层都会同意,造成这一情况的原因主要是PING软件编程无法智能识别出恶意信息,一般 络安全防护系统与防火墙会自动默认PING存在,从而忽视其可能带来的安全风险。
- 应用层上的攻击
- 对于因特 而言,IP地址与域名均是一一对应的,这两者之间的转换工作,被称为域名解析。而DNS就是域名解析的服务器。
- DNS欺骗指的是攻击方冒充域名服务器的行为,使用DNS欺骗能将错误DNS信息提供给目标主机。所以说,通过DNS欺骗可误导用户进入非法服务器,让用户相信诈骗IP。另外,PTP 络上接口接受到不属于主机的数据,这也是应用层存在的安全问题,一些木马病毒可趁机入侵,造成数据泄露,从而引发 络安全问题。
需要考虑的安全策略
- 防火墙技术
防火墙技术的核心是在不安全 络环境中去构建相对安全的子 环境,以保证内部 络安全。可以将其想成为一个阻止输入、允许输入的开关,也就是说防火墙技术可允许有访问权限的资源通过,拒绝其他没有权限的通信数据,在调用过滤器时,会被调到内核当中实现执行,而在服务停止时,会从内核中将过滤规则消除,内核当中所有分组过滤功能运行均在堆栈深层中。
同时,还有代理服务型防火墙,其特点是将内 与外 之间的直接通信进行彻底隔离,内 对外 的访问转变为代理防火墙对外 的访问,之后再转发给内 。代理服务器在发现被攻击迹象的时候,会保留攻击痕迹,及时向 络管理员进行示警。- 代理服务器(Proxy Server)其功能就是代理 络用户去取得 络信息,形象的说:它是 络信息的中转站。(为了安全,隐藏请求主机IP地址)
在一般情况下,我们使用 络浏览器直接去连接其他Internet站点取得 络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。而代理服务器是介于浏览器和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回 页而是向代理服务器发出请求,信 会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
一般来说代理服务器的主要作用有以下三种:
1.连接互联 与局域 充当防火墙
因为所有内部 的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部 ;同时可以设置IP地址过滤,限制内部 对外部的访问权限;另外,两个没有互联的内部 ,也可以通过第三方的代理服务器进行互联来交换信息。
2.节省IP开销
所有用户对外只占用一个IP,所以不必租用过多的IP地址,以此降低 络的维护成本。这样,局域 内没有与外 相连的众多机器,就可以只通过内 的一台代理服务器连接到外 ,大大减少费用。
3.提高访问速度
如果用户本身带宽较小,可以尝试通过带宽较大的代理服务器与目标主机连接。而且通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。
- 代理服务器(Proxy Server)其功能就是代理 络用户去取得 络信息,形象的说:它是 络信息的中转站。(为了安全,隐藏请求主机IP地址)
- 入侵检测系统
入侵检测系统是近些年兴起的 络安全技术。该技术属于一种动态安全技术,通过对入侵行为特点与入侵过程进行研究,安全系统即刻做出实时响应,在攻击者尚未完成的情况下逐步进行拦截与防护。入侵检测系统也属于 络安全问题研究中的重要内容,借助该技术可实现逻辑补偿防火墙技术,可以实时阻止内部入侵、误操作以及外部入侵,还具有实时 警功能,更是为 络安全防护增添了一道保护 。入侵检测技术有智能化入侵检测、全面安全防御方案与分布式入侵检测三个发展方面。 - 访问控制策略
访问控制是保护与防范 络安全的主要策略。由于每一个系统要访问用户是要有访问权限的,只有拥有访问权限才能允许访问,这样的机制就被称为访问控制。这一安全防范策略并不是通过直接抵御入侵行为来实现的,但是,是实际应用的 络防护的重要策略,也是用户迫切需要的。其主要包括两个方面的功能,一个是对外部访问进行合法性检查,这种功能和防火墙相类似,另一个是对从内到外的访问进行一些目标站点检查,封锁非法站点,在服务器上,可以对那些用户进行访问服务限制。 - 数据的时新性
随着现代 会的高速运转,人们接收的数据信息数量呈爆炸式增长,但数据信息的质量则是参差不齐。所以,人们对于接收到的信息往往会随着时间的流逝便抛之脑后。一般性的事件信息在很短的时间内就可能失去时效。所以说,具有时效性的数据信息一定有着时新性特点,能够与时俱进。而计算机 络中的TCP/IP传输协议的时效性则恰好具有时新性特点。它能利用高速运转的 络技术,及时捕捉科学有效的数据信息。并且能随着时间的变化,自动淘汰过时的无用信息,做到与时俱进。 - 数据的灵活性
数据在传输之后,它最终是要满足使用者的需要。计算机 络中的TCP/IP传输协议除了能保障数据信息的时新性,还能根据使用者的不同需求,提供与实际相符的数据信息,具有充分的灵活性和可扩展性。 - 数据的安全准确性
数据信息在传输过程中会一般会受传输者、接收者、传输渠道以及外部环境的影响。这些因素会不同程度上影响数据信息输送的及时性。例如由于传输者自身的计算机专业能力的水平有限,没有认识到信息传输的重要性,对数据的收集不够完整和有效,或者是采用了错误的传输方式,都会影响信息传输的时效性。而计算机 络中的TCP/IP传输协议的数据传输,不仅能处理好复杂的信息结构,繁多的数据信息,还能维护数据信息的安全,确保数据信息的科学准确性。 - 数据传输过程的流畅性
为了满足当今 会对数据信息的需求,计算机 络中的TCP/IP传输协议在对传统的数据传输过程进行了改善,使得 络信息的传输具备时效性特点,更加快速便捷。基于计算机 络的TCP/IP协议,数据传输流程主要是建立TCP/IP连接、数据发送、数据接收这三个主要环节。这三个环节的无缝连接使得数据信息实现了实时性传输。在TCP/IP传输协议的通信中,为保证数据信息到达目的地址,数据的发送端口和数据的接受端口需要向双方发送信息以确认是否能够建立通信连接。建立TCP/IP连接站口是数据信息传输的前提条件。在建立了TCP/IP连接站口后,就可以进行数据信息的发送。数据信息首先进入发送缓冲区传输层,然后一层一层进行传输。在发送的过程中,传输层协议会对数据信息进行相应地封装,以便实现完整准确的传输。数据信息的接收主要就是接收计算机发送的数据传输电路板的控制命令。目的主机在接收到数据信息包后,首先会进行识别,确定该数据包的有效载体是IP、ARP还RARP,然后进行相应地数据解封处理。最后将数据信息发送到需要的应用程序。数据信息传输的过程中三个环节环环相扣,实现了基于计算机 络TCP/IP传输协议的时效性。 - 传输技术的先进易用性
能够实现实时性的信息传输,最主要的是离不开 络技术的支持。TCP/IP传输协议能够保证数据信息及时传输,它采用的技术具有先进性,并且容易理解和使用。计算机 络中TCP/IP传输协议主要采用的是先进的数据压缩技术。数据压缩就是文本编码的过程,以便将相同的数据信储存在更少的字节空间。文本占用空间减少、传输速度加快。数据压缩技术允许以最快的操作速度进行实时编码。
TCP/IP缺陷
像OSl模型一样,TCP/IP模型和协议也有自己的问题。
(1)该模型没有明显地区分服务、接口和协议的概念。因此,对于使用新技术来设计新 络,TCP/IP模型不是一个太好的模板。
(2)TCP/IP模型完全不是通用的,并且不适合描述除TCP/IP模型之外的任何协议栈。
(3)链路层并不是通常意义上的一层。它是一个接口,处于 络层和数据链路层之间。接口和层间的区别是很重要的。
(4)TCP/IP模型不区分物理层和数据链路层。这两层完全不同,物理层必须处理铜缆、光纤和无线通信的传输特征;而数据链路层的工作是确定帧的开始和结束,并且按照所需的可靠程度把帧从一端发送到另一端。
TCP/UDP专场
TCP和UDP协议是TCP/IP协议的核心。
定义
TCP (传输控制协议,Transmission Control Protocol)和UDP(用户数据 协议,User Datagram Protocol)协议属于传输层协议,为上层用户提供级别的通信可靠性。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。
(1)在建立通道时,客户端首先要向服务端发送一个SYN同步信 。
(2)服务端在接收到这个信 之后会向客户端发出SYN同步信 和ACK确认信 。
(3)当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。
握手之前主动打开连接的客户端结束CLOSED阶段,被动打开的服务器端也结束CLOSED阶段,并进入LISTEN阶段。随后开始“三次握手”:
(1)首先客户端向服务器端发送一段TCP 文,其中:
标记位为SYN,表示“请求建立新连接”;
序 为Seq=X(X一般为1);
随后客户端进入SYN-SENT阶段。
(2)服务器端接收到来自客户端的TCP 文之后,结束LISTEN阶段。并返回一段TCP 文,其中:
标志位为SYN和ACK,表示“确认客户端的 文Seq序 有效,服务器能正常接收客户端发送的数据,并同意创建新连接”(即告诉客户端,服务器收到了你的数据);
序 为Seq=y;确认 为Ack=x+1,表示收到客户端的序 Seq并将其值加1作为自己确认 Ack的值;随后服务器端进入SYN-RCVD阶段。
(3)客户端接收到来自服务器端的确认收到数据的TCP 文之后,明确了从客户端到服务器的数据传输是正常的,结束SYN-SENT阶段。并返回最后一段TCP 文。其中:
标志位为ACK,表示“确认收到服务器端同意连接的信 ”(即告诉服务器,我知道你收到我发的数据了);
序 为Seq=x+1,表示收到服务器端的确认 Ack,并将其值作为自己的序 值;
确认 为Ack=y+1,表示收到服务器端序 Seq,并将其值加1作为自己的确认 Ack的值;
随后客户端进入ESTABLISHED阶段。
服务器收到来自客户端的“确认收到服务器数据”的TCP 文之后,明确了从服务器到客户端的数据传输是正常的。结束SYN-SENT阶段,进入ESTABLISHED阶段。
在客户端与服务器端传输的TCP 文中,双方的确认 Ack和序 Seq的值,都是在彼此Ack和Seq值的基础上进行计算的,这样做保证了TCP 文传输的连贯性。一旦出现某一方发出的TCP 文丢失,便无法继续”握手”,以此确保了”三次握手”的顺利完成。
此后客户端和服务器端进行正常的数据传输。这就是“三次握手”的过程。
- 为什么要进行第三次握手/li>
- 为了防止服务器端开启一些无用的连接增加服务器开销以及防止已失效的连接请求 文段突然又传送到了服务端,因而产生错误。
- 由于 络传输是有延时的(要通过 络光纤和各种中间代理服务器),在传输的过程中,比如客户端发起了SYN=1创建连接的请求(第一次握手)。如果服务器端就直接创建了这个连接并返回包含SYN、ACK和Seq等内容的数据包给客户端,这个数据包因为 络传输的原因丢失了,丢失之后客户端就一直没有接收到服务器返回的数据包。
- 客户端可能设置了一个超时时间,时间到了就关闭了连接创建的请求。再重新发出创建连接的请求,而服务器端是不知道的,如果没有第三次握手告诉服务器端客户端收的到服务器端传输的数据的话,服务器端是不知道客户端有没有接收到服务器端返回的信息的。
通道的关闭——四次挥手:
所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。以下为客户端主动发起释放连接的图解:
TCP传输的过程中,发送端开始发送数据的时候,如果刚开始就发送大量的数据,那么就可能造成一些问题。 络可能在开始的时候就很拥堵,如果给 络中在扔出大量数据,那么这个拥堵就会加剧。拥堵的加剧就会产生大量的丢包,就对大量的超时重传,严重影响传输。
所以TCP引入了慢启动的机制,在开始发送数据时,先发送少量的数据探路。探清当前的 络状态如何,再决定多大的速度进行传输。这时候就引入一个叫做拥塞窗口的概念。发送刚开始定义拥塞窗口为 1,每次收到ACK应答,拥塞窗口加 1。在发送数据之前,首先将拥塞窗口与接收端反馈的窗口大小比对,取较小的值作为实际发送的窗口。
拥塞窗口的增长是指数级别的。慢启动的机制只是说明在开始的时候发送的少,发送的慢,但是增长的速度是非常快的。为了控制拥塞窗口的增长,不能使拥塞窗口单纯的加倍,设置一个拥塞窗口的阈值,当拥塞窗口大小超过阈值时,不能再按照指数来增长,而是线性的增长。在慢启动开始的时候,慢启动的阈值等于窗口的最大值,一旦造成 络拥塞,发生超时重传时,慢启动的阈值会为原来的一半(这里的原来指的是发生 络拥塞时拥塞窗口的大小),同时拥塞窗口重置为 1。
在TCP协议的 头信息当中,有一个16位字段的窗口大小。在介绍这个窗口大小时我们知道,窗口大小的内容实际上是接收端接收数据缓冲区的剩余大小。这个数字越大,证明接收端接收缓冲区的剩余空间越大, 络的吞吐量越大。接收端会在确认应答发送ACK 文时,将自己的即时窗口大小填入,并跟随ACK 文一起发送过去。而发送方根据ACK 文里的窗口大小的值的改变进而改变自己的发送速度。如果接收到窗口大小的值为0,那么发送方将停止发送数据。并定期的向接收端发送窗口探测数据段,让接收端把窗口大小告诉发送端。
HTTP协议
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
HTTP请求头字段
1, HTTP请求方法
(1)OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送”*”的请求来测试服务器的功能性。
(2)HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
(3)GET:向特定的资源发出请求。注意: get方法不应当被用于产生“副作用”的操作中。例如在Web APP中,其中一个原因是GET可能会被 站蜘蛛等随意访问。
(4)POST:向指定资源提交数据进行处理请求(比如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。
(5)PUT:向指定资源位置上传其最新内容。
(6)DELETE:请求服务器删除Request-URI所标识的资源。
(7)TRACE:回显服务器收到的请求,主要用于测试或者诊断。
(8)CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
在大部分情况下,只会用到GET和HEAD方法,并且这些方法是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405,当服务器不认识或不支持对应的请求方法的时候,应当返回状态行501
HTTP与HTTPS的区别
1、http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
2、HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是SSL加密的,安全性较好。
3、使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
,而http不需要。
4、HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
5、HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源
HTTPS证书验证

ARP协议
ARP概述
ARP协议详解
地址解析协议,ARP(Address Resolution Protocol),ARP协议在TCP/IP模型中属于IP层( 络层),在OSI模型中属于链路层,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域 络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在 络中各个主机互相信任的基础上的,局域 络上的主机可以自主发送ARP应答消息,其他主机收到应答 文时不会检测该 文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答 文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
OSI模型把 络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太 发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的包头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据 络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。
ARP工作过程
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地 络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地 络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。
工作要素:ARP缓存
查看ARP缓存
ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址–>MAC地址的对应表,表中每一个条目分别记录了 络上其他主机的IP地址和对应的MAC地址。每一个以太 或令牌环 络适配器都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域 查询。
为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。静态项目一直保留在缓存中,直到重新启动计算机为止。
ARP欺骗
地址解析协议是建立在 络中各个主机互相信任的基础上的,它的诞生使得 络能够更加高效的运行,但其本身也存在缺陷:
ARP地址转换表是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的, 络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答 文时不会检测该 文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答 文,从而篡改本地的MAC地址表。ARP欺骗可以导致目标计算机与 关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。
ARP防御措施
不要把 络安全信任关系建立在IP基础上或MAC基础上(RARP同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。
设置静态的MAC–>IP对应表,不要让主机刷新设定好的转换表。
除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
使用“proxy”代理IP的传输。
使用硬件屏蔽主机。设置好路由,确保IP地址能到达合法的路径(静态配置路由ARP条目),注意,使用交换集线器和 桥无法阻止ARP欺骗。
管理员定期用响应的IP包中获得一个RARP请求,然后检查ARP响应的真实性。
管理员定期轮询,检查主机上的ARP缓存。
使用防火墙连续监控 络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
若感染ARP病毒,可以通过清空ARP缓存、指定ARP对应关系、添加路由信息、使用防病毒软件等方式解决。
RARP
地址解析协议是根据IP地址获取物理地址的协议,而反向地址转换协议(RARP)是局域 的物理机器从 关服务器的ARP表或者缓存上根据MAC地址请求IP地址的协议,其功能与地址解析协议相反。与ARP相比,RARP的工作流程也相反。首先是查询主机向 路送出一个RARP Request广播封包,向别的主机查询自己的IP地址。这时候 络上的RARP服务器就会将发送端的IP地址用RARP Reply封包回应给查询者,这样查询主机就获得自己的IP地址了。
参考
TCP/IP-百科
文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树跨区域 络的通信学习 络层的作用22515 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!