您好,欢迎访问三七文档
第3讲网络安全协议基础主讲:谢昕2课程主要内容TCP协议概述UDP协议与应用ICMP协议与应用常见网络服务常用网络命令使用3TCP是一种面向连接的、可靠的传输层协议;TCP协议建立在不可靠的网络层IP协议之上,IP不能提供任何可靠性机制,TCP的可靠性完全由自己实现;TCP采用的最基本的可靠性技术是:确认与超时重传;流量控制。传输控制协议TCPTCP协议的主要特点:4TCP协议与其他协议的层次关系...传输层网络层SMTPFTPHTTPDNSSNMP应用层TCPUDPIP...5TCP的端口号分配和Socket地址端口号服务进程说明文件传输协议(控制连接)20FTP文件传输协议(数据连接)21FTP23Telnet虚拟终端网络25SMTP简单邮件传输协议53DNS域名服务器80HTTP超文本传输协议111RPC远程过程调用TCP常用的熟知端口号6端口…发送TCP报文段TCP…TCP接收缓存发送缓存报文段…报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程TCP报文的发送过程7TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前TCP报文段格式8源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义9序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义10确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义11数据偏移——占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义12保留字段——占6bit,保留为今后使用,但目前应置为0。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义13紧急比特URG——当URG为1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义14确认比特ACK——只有当ACK为1时确认号字段才有效。当ACK为0时,确认号无效TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义15推送比特PSH(PuSH)——接收TCP收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义16复位比特RST(ReSeT)——当RST为1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义17同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义18终止比特FIN(FINal)——用来释放一个连接。当FIN为1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义19窗口字段——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义20检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义21紧急指针字段——占16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义22选项字段:TCP只规定了一种选项,即最大报文段长度MSS(MaximumSegmentSize)。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义23填充字段——这是为了使整个首部长度是4字节的整数倍。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充TCP报文各字段域的含义24TCP协议的三次“握手”172.18.25.110172.18.25.109我可以连接到你吗?当然可以那我就不客气了25SYN,SEQ=x主机BACK,SEQ=x+1,ACK=y1被动打开主动打开确认确认主机A连接请求TCP传输连接建立26建立TCP连接1.A的TCP向B发出连接请求报文段,其首部中的同步比特SYN应置为1,并选择序号x,表明传送数据时的第一个数据字节的序号是x。2.B的TCP收到连接请求报文段后,如同意,则发回确认。3.B在确认报文段中应将SYN置为1,其确认号应为x1,同时也为自己选择序号y。4.A收到此报文段后,向B给出确认,其确认号应为y1。5.A的TCP通知上层应用进程,连接已经建立。6.当运行服务器进程的主机B的TCP收到主机A的确认后,也通知其上层应用进程,连接已经建立。27TCP协议的四次“挥手”172.18.25.110172.18.25.109我要结束连接当然可以好,收到终止了28TCP连接释放的过程FIN,SEQ=xACK,SEQ=x+1,ACK=y1应用进程释放连接A不再发送报文FIN,ACK,SEQ=y+1,ACK=x+1主机B主机A通知主机应用进程①应用进程释放连接B不再发送报文②确认确认从A到B的连接就释放了,连接处于半关闭状态。相当于A向B说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”至此,整个连接已经全部释放。29TCP传输连接建立举例TCP传输连接建立:“三次握手”主机A主机BSYN=1,ACK=0,SEQ=1200SYN=1,ACK=1,SEQ=4800,AN=1201SYN,ACK=1,SEQ=1201,AN=4801客户进程服务器进程30主机A主机BFIN=1,ACK=0,SEQ=2500ACK=1,SEQ=6000,AN=2501ACK=1,SEQ=2501,AN=6002FIN=1,SEQ=6001,AN=2501客户进程服务器进程TCP传输的连接释放举例TCP传输连接释放:“四次挥手”31一次完整的FTP会话首先开启目标主机的FTP服务。32一次完整的FTP会话启动Sniffer,利用FTP连接目标主机上的FTP服务器33一次完整的FTP会话34一次完整的FTP会话登录FTP的过程是一次典型的TCP连接,因为FTP服务使用的是TCP协议。其TCP报头的结构:35TCP协议的三次“握手”这个过程在FTP的会话中也明显的显示出来36第一次“握手”37第二次“握手”SYN为1,开始建立请求连接,需要对方计算机确认,对方计算机确认返回的数据包。38第三次“握手”对方计算机返回的数据包中ACK为1并且SYN为1,说明同意连接。这个时候需要源计算机的确认就可以建立连接了39第一次“挥手”40第二次“挥手”第一次交互中,首先发送一个FIN=1的请求,要求断开,目标主机在得到请求后发送ACK=1进行确认41第三次“挥手”之后就发送了一个FIN=1的包,与源主机断开42第四次“挥手”随后源主机返回一条ACK=1的信息,一次完整的TCP会话就结束43UDP是一种无连接的、不可靠的传输层协议;在完成进程到进程的通信中提供了有限的差错检验功能;设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用UDP协议。用户报文协议UDPUDP协议的主要特点44UDP用户数据报的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报45伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。UDP用户数据报的首部格式46伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。UDP用户数据报的首部格式47UDP检验和的检验范围:伪头部、UDP头、应用层数据源IP地址目的IP地址00000000协议号(17)UDP长度源端口号目的端口号校验和UDP总长度数据(必须进行填充使数据是16位的倍数)UDP头部伪头部01624318UDP用户数据报48UDP端口号TCP/IP协议族中用端口号来标识进程;端口号(16bit)是在0到65535之间的整数;客户程序随机选取的临时端口号;每一种服务器程序被分配了确定的全局一致的熟知端口号;每一个
本文标题:网络安全协议基础
链接地址:https://www.777doc.com/doc-1268251 .html