您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > TCP-IP协议概述
一、传输控制/网际协议TCP/IP:TCPIP一般通过internet串行线路协议SLIP或点对点协议PPP在串行线上进行数据传送。TCP/IP协议的基本传输单位是数据包(datagram)。TCP协议负责把数据分成若干个数据包/段,并给每个数据包加上包头,IP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方。如果传输过程中出现数据丢失、数据失真等情况,TCP协议会自动要求数据重新传输并重新组包。TCP协议保证数据传输的质量,总之IP协议保证数据的传输。数据在传输时每通过一层就要在数据上加个包头,其中数据供接收端同一层协议使用,而在接收端每经过一层要把用过的包头去掉,这样来保证传输数据的格式完全一致。TCP/IP协议需要针对不同的网络进行不同的设置,且每个节点一般需要一个“IP地址”、一个“子网掩码”、一个“默认网关”。不过可以通过动态主机配置协议(DHCP),给客户端自动分配一个IP地址,这样避免了出错也简化了TCP/IP协议的设置,我们可以指定一台计算机具有多个IP地址,因此在访问互联网时不要以为一个IP地址就是一台计算机;另外通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。在TCP/IP中所有的协议都被封装在IP分组中通过IP网间网传输。IP是一个路由协议这就意味着使用IP通信的两个节点不必连接到同一物理线路上(不进行路由)。二、要对信息是如何穿越有一个基本的了解要理解以下六个问题:(1)、该协议中的地址格式是什么?(2)、设备如何获得一个地址?(3)、协议中的地址如何映射到一个物理地址?(4)、终端节点如何查找路由器?(5)、路由器如何由网络的拓扑结构进行路由?(6)、用户如何查找网络上的服务(服务名字解析:DNS等)?三、TCP/IP协议的四层结构:应用层与OSI关系对应OSI的应用层、表示层。功能应用程序通过这一层访问网络。协议文件传输协议FTP、超文本传输协议HTTP、远程终端协议Telent、简单邮件传送协议SMTP、网络新闻传输协议NNTP、因特网中继会话IRC、Finger、Whois、Gopher传输层与OSI关系对应OSI的传输层。功能传输协议在计算机之间提供提供两种端到端的通信服务,传输协议的选择根据数据传输方式而定。1、传输控制协议tcp:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。2、用户数据报协议udp:提供无连接通信,且不对传送包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。协议传输控制协议tcp、用户数据报协议udp。互联层/网间层/网络层与OSI关系对应OSI的网络层。功能互联协议将数据包封装成internet数据报,并运行必要的路由算法。这里有四个互联协议:1、网际协议ip:负责在主机和网络之间寻址和路由数据包。使用网络设备接口规范ndis向网络接口层提交帧,支持广域网和本地网接口技术。2、地址解析协议arp:获得同一物理网络中的硬件主机地址。3、网际控制消息协议icmp:发送消息,并报告有关数据包的传送错误。4、互联组管理协议igmp:被ip主机拿来向本地多路广播路由器报告主机组成员。协议路由信息协议RIP、网际协议IP、地址解析协议arp、网际控制消息协议Icmp、互联组管理协议igmp。网络接口层与OSI关系对应OSI的物理层和数据链路层。功能负责数据帧的发送和接收,帧是独立的网络信息传输单元。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。协议TCP三次握手过程:TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接,三次握手的目的是同步连接双方的序列号和确认号并交换TCP窗口大小信息。1、第一次握手:主机A发送同步序列编号syn=1的TCP报文(数据包)到服务器,这个TCP报文包含TCP连接的初始序列号和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)以及客户端使用的端口。然后进入SYN_SEND状态,等待服务器确认。主机B由SYN=1知道A要求建立联机。2、第二次握手:服务器收到客户端发送过来的SYN报文后向A发送确认标志ack=顺序号码seq+1,syn=1,ack=1,随机产生seq=7654321的包服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)3、第三次握手:主机A收到后检查acknumber是否正确,即第一次发送的seqnumber+1,以及位码ack是否为1,若正确,主机A会再发送acknumber=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。完成三次握手,主机A与主机B开始传送数据。客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。完成三次握手后客户端与服务器开始传送数据,TCP三次握手是SynFlood存在的基础未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包并向客户发出确认正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包后就删除该条目,而后服务器进入ESTABLISHED状态。Backlog参数:表示未连接队列的最大容纳数目。服务器发送完SYN-ACK包后如果未收到客户确认包,服务器就进行首次重传,等待一段时间仍未收到客户确认包进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意每次重传等待的时间不一定相同。半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。三次握手欺骗欺骗例子:假设有3台接入互联网的机器。A为攻击者操纵的攻击机。B为中介跳板机器(受信任的服务器)。C为受害者使用的机器(多是服务器),这里把C机器锁定为目标机器。A机器向B机器发送SYN包,请求建立连接,这时已经响应请求的B机器会向A机器回应SYN/ACK表明同意建立连接,当A机器接受到B机器发送的SYN/ACK回应时,发送应答ACK建立A机器与B机器的网络连接。这样一个两台机器之间的TCP通话信道就建立成功了。B终端受信任的服务器向C机器发起TCP连接,A机器对服务器发起SYN信息,使C机器不能响应B机器。在同时A机器也向B机器发送虚假的C机器回应的SYN数据包,接收到SYN数据包的B机器(被C机器信任)开始发送应答连接建立的SYN/ACK数据包,这时C机器正在忙于响应以前发送的SYN数据而无暇回应B机器,而A机器的攻击者预测出B机器包的序列号(现在的TCP序列号预测难度有所加大)假冒C机器向B机器发送应答ACK这时攻击者骗取B机器的信任,假冒C机器与B机器建立起TCP协议的对话连接。这个时候的C机器还是在响应攻击者A机器发送的SYN数据。TCP协议栈的弱点:TCP连接的资源消耗,其中包括:数据包信息、条件状态、序列号等。通过故意不完成建立连接所需要的三次握手过程,造成连接一方的资源耗尽。网络标准字节顺序:在PC机中低位存储地址包含数据的低位字节,这种存储顺序被称作为LittleEndial。而在因特网传输中TCP/IP协议规定采用低位存储地址包含数据高位字节的BigEndial存储顺序,并把这种存储次序称作网络标准字节顺序。实际网络传输时数据按每32位二进制数为一组进行传输。在传输每个八位二进制时,按照从左到右、从最高的符号位到最低位依次进行传输。为了使通信的双方都能理解数据分组所携带的源地址、目的地址以及分组的长度等二进制信息,主机和路由器在发送一个分组之前必须把二进制信息项从本地表示转换成网络标准字节顺序,并且当分组到达目的网络时又把它们从网络字节顺序换成特定的主机顺序。至于分组中用户数据区的数据则可以选择任何数据格式,他们不会被转换成网络标准字节顺序,而是由具体通信的双方负责解释。网间控制报文ICMP:IP协议只是尽力地、最快地传递数据到目的站点,因此很难诊断错误情况,必须通过另外的协议返回相应的信息。ICMP报文是封装在IP数据报的数据区中发送的,因此并不能保证它的可靠性。ICMP提供网间层的错误诊断、拥塞控制、路径控制和查询服务的报文。例如当一个分组无法到达目的站点或TTL超时后路由器就会废除这个分组,同时向源站点返回一个目的站点不可达的ICMP报文;另外当网络拥塞(congestion)时路由器就会废除过载的分组,同时向源站点返回一个源站点抑制的报文。、ICMP报文格式┌───┬───┬───────┐│类型│代码│校验和│├───┴───┴───────┤│数据│├───────────────┤1、头标:(1)、类型:是一个单字节整数,它指出报文的类型。(2)、代码:是一个单字节整数,它提供关于报文类型更进一步的信息。(3)、校验和:计算校验和的算法与IP报头校验和的算法相同,也是16位二进制反码和的反码,但要注意的是它是整个ICMP数据报的校验和而不仅仅是头标的校验和。2、数据区:四、传输控制协议TCP:TCP也是建立在IP协议之上,封装在IP数据区中,但它是在基于无连接的IP协议之上提供面向连接的高可靠性数据传输和与进程通信的能力。它利用确认与超时重传、滑动窗口机制进行流控和拥塞控制来保证高可靠性的,为了保证可靠性,它以牺牲效率为代价。五、传输控制协议TCP的格式:1、序号:指出段中数据在发送端数据流中的位置。2、确认号:指出本机希望下一个接收的字节的序号。3、头长:指出以32比特为单位的段头长度。它是针对便长的“选项”域设计的。4、码位:有些报文段是用于传输数据的,但有些报文段仅仅携带了确认信息,另一些报文段携带的是建立和关闭连接的请求,它使用“码位”来指出段的目的与内容。这6个比特各位的意义如图:0URG,紧急指针字段可用1ACK,确认字段可用2PSH,本报文段请求急迫(PUSH)操作3RST,连接复位4SYN,序号同步,用于建立连接中的同步5FIN,发送方字节流结束5、窗口(滑动窗口):用于通知接收端接收缓冲区的大小。六、TCP的面向连接特性:一条TCP连接是一条虚电路,它通过主机IP地址和端口号来标识一条连接。如(192.168.2.37,21;192.168.2.30,21)就标识了一条TCP连接,所以两个程序可以共享主机上的同一端口,因为连接不同。连接的建立和拆除需要得到对方的认可,而UDP中,一方发送数据是不需要得到对方的认可的。连接能保持状态并实现可靠性,而无连接不能保持状态。一般来说,控制信息是通过TCP来传递的。它是在无连接的协议--IP协议之上来实现面向连接的。七、TCP/IPInternet环境中的协议层次:TCP/IPInternet环境中的协议层次:终端节点在通过ARP用路由器的IP地址找到其MAC地址后,在IP头中的“目标IP地址”中的内容是什么呢,是路由器的IP地址,还是最终节点的IP地址?当然是最终节点的IP地址,否则路由器不会知道把该分组送到那里去。事实上,分组在网络中穿梭的过程中,IP头中的“目标IP地址”和源“源IP地址”始终不变,都是最终节点的IP地址。而两个MAC地址是随着穿越不同的网络而改变的。八、给TCP/IP设备分配IP地址:要将网络连接到Internet,可以向InterNIC(InternetNetworkInformationCenter)申请IP地址,可通过E-MAIL到hostmaster@internic.net联系,也可以向ISP申请IP地址。现在已不以地址类别为地址分配单位了,而采用CIDR(C
本文标题:TCP-IP协议概述
链接地址:https://www.777doc.com/doc-2851509 .html