第三章TCPIP协议栈.ppt

上传人:本田雅阁 文档编号:2519040 上传时间:2019-04-05 格式:PPT 页数:56 大小:1.10MB
返回 下载 相关 举报
第三章TCPIP协议栈.ppt_第1页
第1页 / 共56页
第三章TCPIP协议栈.ppt_第2页
第2页 / 共56页
第三章TCPIP协议栈.ppt_第3页
第3页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第三章TCPIP协议栈.ppt》由会员分享,可在线阅读,更多相关《第三章TCPIP协议栈.ppt(56页珍藏版)》请在三一文库上搜索。

1、第三章 TCP/IP协议栈,本章目标,通过本章的学习,您应该掌握以下内容: 掌握TCP/IP分层模型 掌握IP协议原理 理解OSI和TCP/IP模型的区别和联系,TCP/IP介绍,主机,Internet,TCP/IP,主机,1. TCP/IP是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。 2. TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。 通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。,TCP/

2、IP 和DoD模型,7,6,5,4,3,2,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,1,应用层,主机到主机层,Internet层,网络接入层,是OSI模型的一个浓缩版本,它只有四个层次,应用层概述,应用层,主机到主机层,Internet层,文件传输 - TFTP * - FTP * - NFS E-Mail - SMTP 远程登陆 - Telnet * - SSH* 网络管理 - SNMP * 名称管理 - DNS*,网络接入层,应用层包含了大量的协议,它集成了各种应用和功能来生成一个可以和OSI模型中三个高层(应用层 表示层 会话层)相对应的集合,应用层协议举例,Teln

3、et: 是Internet远程登陆服务的标准协议和主要方式,终端使用者的电脑上使用telnet程序,用它连接到服务器,使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。要开始一个telnet会话,必须输入用户名和密码来登录服务器 FTP: 是Internet文件传送的基础,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。 FTP控制端口号为21,数据端口为20 匿名FTP帐号为 anonymous

4、通过匿名方式登陆后 访问 的内容将会受到一些限制,主机到主机层概述,Transmission Control Protocol (TCP) User Datagram Protocol (UDP),应用层,主机到主机层,Internet层,网络接入层,面向连接 非面向连接,功能类似OSI模型中传输层的功能,它所定义的协议为应用程序提供了在传输层上面的服务。 解决了如何创建可靠的端到端的通信 并确保数据传输是无差错的。,TCP 数据格式,Source port (16),Destination port (16),Sequence number (32),Header length (4),Ac

5、knowledgement number (32),Reserved (6),Code bits (6),Window (16),Checksum (16),Urgent (16),Options (0 or 32 if any),Data (varies),20 Bytes,Bit 0,Bit 15,Bit 16,Bit 31,重要,重要,序列号,确认号,TCP的包结构就决定了它将会是可靠的传输协议,TCP数据格式,Sequence number Acknowledgement number 1.保证数据不会丢失 因为数据都是带有标签的 若发现其中少了某个 序列号的包则会重传 2.保证数据传

6、输的有序性,UDP 数据格式,Source port (16),Destination port (16),Length (16),Data (if any),1,Bit 0,Bit 15,Bit 16,Bit 31,Checksum (16),8 Bytes,没有序列号和确认号,关于UDP,既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢,有些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。 UDP的报文当我们要传输的数据如果对于丢包来说无

7、所谓,那么就使用UDP传输方式效率高一些 UDP协议仍然继续在主流应用中发挥着作用。包括视频电话会议系统在内的许多应用都证明了UDP协议的存在价值。因为相对于可靠性来说,这些应用更加注重实际性能,所以为了获得更好的使用效果(例如,更高的画面帧刷新速率)往往可以牺牲一定的可靠性(例如,画面质量)。,端口号,TCP,端口号,F T P,传输层,T E L N E T,D N S,S N M P,T F T P,S M T P,UDP,应用层,21,23,25,53,69,161,R I P,520,TCP与UDP都具有端口号,端口号是对接应用层和传输层的重要字段,TCP 端口号,源端口,目标端口,

8、Host A,1028,23,SP,DP,Host Z,Telnet Z,目标端口 = 23.,当A访问Z时,源端口都是随机产生的,目标端口是固定的因为此处是TELNET 所以为23 例: 三个浏览器访问一个网站的三个服务,TCP 确认机制,滑动窗口 = 1,发送方,接收方,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,收到,请求2,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,收

9、到,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,请求3,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,发送 3,接收 3,收到,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,发送 3,接收 3,接收 ACK 4,发送 ACK 4,TCP 简单确认,发送 SYN

10、(seq=100 ctl=SYN),接收 SYN,Host A,Host B,TCP 三次握手,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack),Host A,Host B,接收 SYN,TCP 三次握手,序列号300 回复101 回复的是SYN,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack),建立会话 (seq=101 ack=301 ctl=ack),Host A,Host B,接收 SYN,T

11、CP 三次握手,TCP连接建立,序列号101 回复301 确认,TCP 序列号和确认号,源端口,目标端口,序列号 #,确认号 #,Source,Dest.,Seq.,Ack.,1028,23,10,1,我发送 #10.,TCP的三次握手只是安全的一部分(确保连接安全) 剩下的安全性靠序列号和确认号来实现 (确保数据安全),TCP 序列号和确认号,我已收到 #10, 现在我需要 #11.,源端口,目标端口,序列号 #,确认号 #,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我发送 #10.,TCP

12、 序列号和确认号,源端口,目标端口,序列号 #,确认号 #,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我已收到 #10, 现在我需要 #11.,我发送 #10.,TCP 序列号和确认号,源端口,目标端口,序列号 #,确认号 #,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq

13、.,1,Ack.,1028,23,Source,Dest.,12,Seq.,2,Ack.,我已收到 #11, 现在我需要 #12.,我发送 #11,TCP 滑动窗口,发送方,接收方,滑动窗口:窗口大小根据接收方而变化,TCP 滑动窗口,Window size = 3 Send 2,发送方,接收方,Window size = 3 Send 1,Window size = 3 Send 3,Size=3 发送方的窗口大小为3,Window size = 3 Send 2,TCP 滑动窗口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3

14、 Window size = 2,数据 3 被丢弃,接收方,Ack=3 说明未接收到3号包 Size=2 接收方 窗口大小为2,Window size = 3 Send 2,TCP 滑动窗口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,Window size = 3 Send 4,Window size = 3 Send 3,接收方,Window size = 3 Send 2,TCP 滑动窗口,发送方,Window size = 3 Send 1,Window size =

15、3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,Window size = 3 Send 4,Window size = 3 Send 3,ACK 5 Window size = 2,接收方,TCP与UDP,TCP UDP 排序 无序 可靠 不可靠 面向连接 无连接 虚链路 低开销 确认 无确认 窗口流量控制 无流量控制,TCP和UDP的主要协议,TCP UDP Telnet 23 SNMP 161 SMTP 25 TFTP 69 HTTP 80 DNS 53 FTP 21 DNS 53 HTTPS 443,端口号: 1.低于1024的端口号被成为众所周知的端口

16、号 2.大雨1024的端口号被上层用来建立与其他主机的会话 并且在TCP数据段中被TCP用来作为源方的地址,Internet 层概述,OSI 网络层对应的是TCP/IP的internet层,Internet Protocol (IP) Internet Control Message Protocol (ICMP) Address Resolution Protocol (ARP) Reverse Address Resolution Protocol (RARP),应用层,主机到主机层,Internet层,网络接入层,IP 数据,Version (4),Destination IP Addr

17、ess (32),Options (0 or 32 if any),Data (varies if any),1,Bit 0,Bit 15,Bit 16,Bit 31,Header Length (4),Priority & Type of Service (8),Total Length (16),Identification 标识符(16),Flags (3),Fragment offset 分段偏移(13),Time to live (8),Protocol (8),Header checksum (16),Source IP Address (32),20 Bytes,IP报头字段,版

18、本: IP版本号 ipv4 ipv6 总长度: 包括报头和数据的数据包长度 标识: 唯一的IP数据包值 标志: 说明数据是否被分段 分段偏移: 数据包在装入帧的时候过大,则要进行分段和重组,MTU,MTU:最大传输单元(Maximum Transmission Unit) 当数据从传输层和网络层传输到数据链路层时候,如果考虑到了帧的容量的话,就可以减少很多数据充足的问题。这就是MTU设置的意义 通常情况下,默认值为1500 通常不建议更改 例如: 若将MTU设置为9000,我们的数据包是要在internet上面跑的,所以我们无法确认所有的网络媒介都是支持这么大的 MTU, 所以此时你的数据包会

19、被丢弃,要么就是会被对方的网络设备所分片 当然在自己公司的局域网内部,可以把MTU设置的大一些没问题,IP报头字段,存活期TTL:是数据包产生时建立在其内部的一个设置,如果这个包在这个TTL到期时仍没有到达它要去的目的地,那么它将被丢弃。这个设置将防止IP包在寻找目的地的时候在网络中不断循环 主要用来解决环路的问题 环路: 分为二层环路和三层环路 通常情况下 二层环路要比三层环路严重的多,因为二层设备里面的数据是帧,而帧中并没有一个类似于TTL的这样一个字段。 二层环路就是把交换机连成一个圈,这样数据就在里面无限制的循环,为了解决二层环路的问题,思科的交换机上有一种STP(生成树)协议,解决了

20、二层环路。 路由器连接成一个环路没有问题,这个数据每经过一次路由器TTL就减1 当TTL为0的时候 包就丢弃了 所以环路不是很严重 同时路由器与路由器相连,中间是要跑路由协议的,因为路由协议设计时候就考虑到了防止环路。 所以三层设备不会有十分严重的环路 三层防环:总共有两种机制 一个是路由协议 另一个是 TTL 值,决定上层协议,协议域,Transport Layer,Internet Layer,TCP,UDP,Protocol Numbers,IP,17,6,协议:上层协议端口 (TCP为6,UDP为17),ICMP协议,ICMP: (因特网控制报文协议) 是一个错误侦测与回报的机制,最大

21、功能就是可以确保我们网络的连接状态与连接的正确性 特点 1. 能为主机提供有关网络的故障信息 2. 被封装在IP数据报内,PING,Ping: 使用ICMP数据包来进行网络上计算机之间物理和逻辑的连接性,上面可见 百度 的地址是 61.135.169.125 字节=32 : 表示这次传送的ICMP数据包为 32Bytes 时间=67 : 响应时间 时间越小两台主机之间的网络联机越好 TTL=52 : 数据包的TTL值为52,PING详解,PING 的详细参数,-t: 一直Ping指定的计算机,直到从键盘按下Ctrl+C中断。 默认情况下 发送 4 个 ping 包,PING详解,-n : 发送

22、指定数目的 ping 包 默认为4个,-l :发送指定数据量的ECHO数据包。默认为 32 字节;最大值是65500byt。,PING详解,PING详解,-i :将“生存时间”字段设置为TTL指定的值。,TTL值每经过一个路由器 值就会减少 1,可见显示TTL 在传输中过期,在 Linux 系统中 使用 ping b broadcast 这个命令可以查看该网内有多少主机存活 十分给力 windows下没有,Traceroute详解,Traceroute : 这条命令在 思科 的路由器上使用 Tracert :这条命令在 dos 下使用 以上两条命令功能相同: 通过使用ICMP的超时机制来发现一

23、个数据包在穿越互联网络时候所经历的路径,Traceroute详解,常用参数 -h :指定跳跃点数,地址解析协议ARP,地址解析协议ARP: 可由主机的IP地址在网络上查找它的硬件地址,地址解析(address resolution):就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。 三层的数据包,经过二层时候将会被封装成帧,在封装成帧的过程中 就要加入目的主机的MAC地址 MAC地址 由本机的ARP 表获得 命令 arp -a,详解ARP,问:当PC 10.1 想要与 10.2 进行通信 且10.1 的ARP表中没 有20.1的 MAC 地址 ARP请求过程是怎样的,答: 10.1

24、 的主机将会创建一个 ARP 包 包里面的内容 源IP : 192.168.10.1 目的IP :192.168.20.1 源MAC :自己网卡的MAC 目的MAC :FFFFFFFF,该ARP包经过二层封装成帧 并以广播的方式传播到 局域网中,局域网中的所有设备都能查看到该包 当路由器192.168.1.254 收到该包 并且解封装之后 发现该包的目的地址不是自己,那么将 丢弃 当PC 192.168.10.2 收到该包之后 发现目的 IP 是自己 那么则将自己的信息以单播的形式发给 PC1 包内容 源IP : 192.168.20.1 目的IP 192.168.10.1 源MAC : PC

25、2 的MAC 地址 目的MAC : pc1 的MAC地址,详解ARP,问:当PC 192.168.10.1 要和 192.168.30.1 通信时ARP的请求是什么样子,答: PC 192.168.10.1 首先创建了 一个 ARP 包 源IP : 192.168.10.1 目的IP 192.168.30.1 源MAC : PC1的MAC地址 目的MAC: FFFFFF 上述包内容为错误的 因为路由器是严格隔离广播的 所以该ARP 广播只能在10.0这个网段里面广播 并不能到达30.0 网段 但是为什么 实际上这两个网段是可 以通信的呢?,第一阶段: PC1 在二层封装成帧的时候 会通过IP地

26、址以及子网掩码 判断 源 目的IP地址是否属于一个子网。 若不在一个子网则 将这个包发送到默认网关 所以 PC1 实际上的包内容应该是 源 IP 192.168.10.1 目的IP 192.168.10.2 源MAC :本机MAC地址 目的MAC : 网关的MAC 地址,详解ARP,第二阶段: 此时用PC1 PING 30.1 网段 icmp的包将会发送到网关 路由器。 当路由器进行解包 发现IP 地址为30.1 于是则查看自己的路由表 确定了 30.1网段所在的接口。 之后在自己的网管路由器和下一跳路由器之间发送ARP 包 获得下一跳的 MAC 地址 这样就可以PING通了,数据包在网络中传

27、送时: 源IP 和 目的IP 始终是不变的 但是 源 目的 MAC 地址 是始终改变的 十分重要 CCNA 考试内容,ARP欺骗,举例: 局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗. ARP欺骗存在两种情况:一种是欺骗主机作为“中间人”,被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通讯数据;另一种让被欺骗主机直接断网。 防止ARP 欺骗的方法: 静态绑定 IP 地址 和MAC 地址 (缺点 工作量太大

28、) arp a 可以查看arp缓存表的内容 arp d 可以删除arp缓存表里的所有内容。 arp s 可以手动在arp表中制定ip地址与mac地址的对应关系。,ARP攻击,ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。 ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。,R

29、ARP协议,工作原理: 1. 给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并请求任何收到此请求的RARP服务器分配一个IP地址; 2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址; 3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用; 4. 如果不存在,RARP服务器对此不做任何的响应; 5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。,本章总结,通过本章的学习,您应该掌握以下内容: 掌握TCP/IP分层模型 掌握IP协议原理 理解OSI和TCP/IP模型的区别和联系,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1