IP协议原理是什么_第1页
IP协议原理是什么_第2页
IP协议原理是什么_第3页
IP协议原理是什么_第4页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 什么是tcp/ip协议原理是什么 tcp/ip不是一个协议,而是一个协议族的统称。里面包括ip协议、imcp协议、tcp协议。这里有几个需要注意的知识点:互联网地址:也就是ip地址,一般为网络号+子网号+主机号域名系统:通俗的来说,就是一个数据库,可以将主机名转换成ip地址rfc:tcp/ip协议的标准文档端口号:一个逻辑号码,ip包所带有的标记socket:应用编程接口数据链路层的工作特性:为ip模块发送和接收ip数据报为arp模块发送arp请求和接收arp应答(arp:地址解析协议,将ip地址转换成mac地址)为rarp发送rarp请求和接收rarp应答接下来我们了解一下tcp/ip的工

2、作流程:数据链路层从arp得到数据的传递信息,再从ip得到具体的数据信息ip协议更多c/c+学习资料,请私信我“代码”,即可获取ip协议头当中,最重要的就是ttl(ip允许通过的最大网段数量)字段(八位),规定该数据包能穿过几个路由之后才会被抛弃。ip路由选择更多c/c+学习资料,请私信我“代码”,即可获取arp协议工作原理更多c/c+学习资料,请私信我“代码”,即可获取icmp协议(网络控制文协议)将ip数据包不能传送的错误信息传送给主机查询报文ping查询:主机是否可达,通过计算间隔时间和传送多少个包的数量子网掩码时间戳:获得当前时间差错报文不产生的情况:icmp差错报文不产生差错报文源地

3、址为零地址、环目地址、广播地址、多播地址ip路由器选择协议静态路由选择更多c/c+学习资料,请私信我“代码”,即可获取静态路由选择配置接口以默认方式生成路由表项,或者使用route add手动添加表项icmp报文(icmp重定向报文)更新表项动态路由选择(只使用在路由之间)rip(路由信息协议)分布式的基于距离向量(路由器到每一个目的网络的距离记录)的路由选择协议router承担的工作:给每一个已知路由器发送rip请求报文,要求给出完整的路由表如果接受请求,就将自己的路由表交给请求者;如果没有,就处理ip请求表项(自己部分+跳数/没有的部分+16)接受回应,更新路由表定期更新路由表(一般为30

4、s,只能说太频繁)ospf(开放最短路径优先协议)分布式链路状态(和这两个路由器都有接口的网络)协议当链路状态发生变化时,采用可靠的洪泛法,向所有的路由器发送信息(相邻的所有路由器的链路状态)最终会建立一个全网的拓扑结构图tcp/ip的三次握手,四次分手首先我们先来了解tcp报文段更多c/c+学习资料,请私信我“代码”,即可获取重要的标志我在图中也有标记,重点了解标志位ack:确认序号有效rst:重置连接syn:发起了一个新连接fin:释放一个连接三次握手的过程(客户端我们用a表示,服务器端用b表示)前提:a主动打开,b被动打开更多c/c+学习资料,请私信我“代码”,即可获取在建立连接之前,b

5、先创建tcb(传输控制块),准备接受客户进程的连接请求,处于listen(监听)状态a首先创建tcb,然后向b发出连接请求,syn置1,同时选择初始序号seq=x,进入syn-send(同步已发送)状态b收到连接请求后向a发送确认,syn置1,ack置1,同时产生一个确认序号ack=x+1。同时随机选择初始序号seq=y,进入syn-rcvd(同步收到)状态a收到确认连接请求后,ack置1,确认号ack=y+1,seq=x+1,进入到established(已建立连接)状态。向b发出确认连接,最后b也进入到established(已建立连接)状态。简单来说,就是建立连接时,客户端发送syn包(

6、syn=i)到服务器,并进入到syn-send状态,等待服务器确认服务器收到syn包,必须确认客户的syn(ack=i+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时服务器进入syn-recv状态客户端收到服务器的syn+ack包,向服务器发送确认报ack(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手在此穿插一个知识点就是syn攻击,那么什么是syn攻击?发生的条件是什么?怎么避免?在三次握手过程中,server发送syn-ack之后,收到client的ack之前的tcp连接称为半连接(half-open connect)

7、,此时server处于syn_rcvd状态,当收到ack后,server转入established状态。syn攻击就是 client在短时间内伪造大量不存在的ip地址,并向server不断地发送syn包,server回复确认包,并等待client的确认,由于源地址 是不存在的,因此,server需要不断重发直至超时,这些伪造的syn包将产时间占用未连接队列,导致正常的syn请求因为队列满而被丢弃,从而引起网 络堵塞甚至系统瘫痪。syn攻击时一种典型的ddos攻击,检测syn攻击的方式非常简单,即当server上有大量半连接状态且源ip地址是随机的,则可以断定遭到syn攻击了,使用如下命令可以让

8、之现行:#netstat -nap | grep syn_recv四次分手的过程(客户端我们用a表示,服务器端用b表示)由于tcp连接时是全双工的,因此每个方向都必须单独进行关闭。这一原则是当一方完成数据发送任务后,发送一个fin来终止这一方向的链接。收到一个fin只是意味着这一方向上没有数据流动,既不会在收到数据,但是在这个tcp连接上仍然能够发送数据,知道这一方向也发送了fin,首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。前提:a主动关闭,b被动关闭tcp/ip协议详解内容总结(怒喷一口老血)更多c/c+学习资料,请私信我“代码”,即可获取有人可能会问,为什么连接的时候是三次

9、握手,而断开连接的时候需要四次挥手?这是因为服务端在listen状态下,收到建立连接请求的syn报文后,把ack和syn放在一个报文里发送给客户端。而关闭连接时,当收到对方的fin 报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再 发送fin报文给对方来表示同意现在关闭连接,因此,己方ack和fin一般都会分开发送。a发送一个fin,用来关闭a到b的数据传送,a进入fin_wait_1状态。b收到fin后,发送一个ack给a,确认序号为收到序号+1(与syn相同,一个fin占用一个序号),b进入cl

10、ose_wait状态。b发送一个fin,用来关闭b到a的数据传送,b进入last_ack状态。a收到fin后,a进入time_wait状态,接着发送一个ack给b,确认序号为收到序号+1,b进入closed状态,完成四次挥手。简单来说就是客户端a发送一个fin,用来关闭客户a到服务器b的数据传送(报文段4)。服务器b收到这个fin,它发回一个ack,确认序号为收到的序号加1(报文段5)。和syn一样,一个fin将占用一个序号。服务器b关闭与客户端a的连接,发送一个fin给客户端a(报文段6)。客户端a发回ack报文确认,并将确认序号设置为收到序号加1(报文段7)。a在进入到time-wait状态后,并不会马上释放tcp,必须经过时间等待计时器设置的时间2msl(最长报文段寿命),a才进入到closed状态。为什么?为了保证a发送的最后一个ack报文段能够到达b防止“已失效的连接请求报文段”出现在本连接中ok是不是很难懂的感觉?那我们来说的“人性化点的”吧三次握手流程客户端发个请求“开门呐,我要进来”给服务器服务器发个“进来吧,我去

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论