TCPIP协议详解.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP/IP协议 TCP/IPIP协议、IMCP协议、TCP协议。 TCP/IP: : IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:地址解析协议,将IP地址转换成MAC地址) 为RARP发送RARP请求和接收RARP应答 接下来我们了解一下TCP/IP的工作流程: ARP得到数据的传递信息,再从IP得到具体的数据信息 ? IP议 IPTTL(IP允许通过的最大网段数量)字段(八位),规定该数据包能穿过几个路由之后才会被抛弃。 ? IP择 ? ARP理 ? ICMP) IP数据包不能传送的错误信息传送给主机 文 ping 子网掩码 时间戳:获得当前时间 差错报文 : ICMP 源地址为零地址、环目地址、广播地址、多播地址 IP路由器选择协议 : 择 route add手动添加表项 ICMP报文(ICMP重定向报文)更新表项 动态路由选择(只使用在路由之间) RIP(路由信息协议) 议 router: RIP请求报文,要求给出完整的路由表 如果接受请求,就将自己的路由表交给请求者;如果没有,就处理IP请求表项(自己部分+跳数/没有的部分+16) 接受回应,更新路由表 定期更新路由表(一般为30s,只能说太频繁~) OSPF(开放最短路径优先协议) 议 最终会建立一个全网的拓扑结构图 TCP/IP的三次握手,四次分手 TCP报文段 位 ACK RST:重置连接 SYN:发起了一个新连接 FIN:释放一个连接 三次握手的过程(客户端我们用A表示,服务器端用B表示) A主动打开,B被动打开 B先创建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包(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),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是 Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址 是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网 络堵塞甚至系统瘫痪。SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行: 1 #netstat -nap | grep SYN_RECV A表示,服务器端用B表示) TCP连接时是全双工的,因此每个方向都必须单独进行关闭。这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的链接。收到一个FIN只是意味着这一方向上没有数据流动,既不会在收到数据,但是在这个TCP连接上仍然能够发送数据,知道这一方向也发送了FIN,首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。 A主动关闭,B被动关闭 ? LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档