tcpip协议基础教学.ppt

上传人:tia****nde 文档编号:7764577 上传时间:2020-03-24 格式:PPT 页数:171 大小:3.67MB
返回 下载 相关 举报
tcpip协议基础教学.ppt_第1页
第1页 / 共171页
tcpip协议基础教学.ppt_第2页
第2页 / 共171页
tcpip协议基础教学.ppt_第3页
第3页 / 共171页
点击查看更多>>
资源描述
2020 3 24 1 第2章 TCP IP协议 2020 3 24 2 主要内容 2 1 TCP IP协议栈的结构以及各层功能2 2 IP地址2 2 1IP互联原理2 2 2IP协议特点2 2 3IP地址的格式2 2 4IP地址的定义2 2 5IP地址分类2 2 6特殊IP地址2 2 7子网掩码2 3IP数据报格式2 3 1IP数据报各字段的功能2 3 2IP数据报分片与重组2 3 3IP数据报选项2 4 TCP UDP 2020 3 24 3 2 1TCP IP协议栈的结构 现今网络使用最为广泛的协议组 2020 3 24 4 2 1TCP IP协议栈的结构 TCP IP协议和OSI参考模型 2020 3 24 5 2 1TCP IP协议栈的结构 TCP IP协议栈 2020 3 24 6 2 1TCP IP协议栈的结构 TCP IP协议数据封装与解封 2020 3 24 7 2 1 1物理层 10Base T100Base TX光纤 物理层 2020 3 24 8 2 1 1物理层 物理层位于OSI参考模型的最底层 它直接面向实际承担数据传输的物理媒体 即信道 物理层的传输单位为比特 物理层是指在物理媒体之上为数据链路层提供一个原始比特流的物理连接 物理层协议规定了与建立 维持及断开物理信道所需的机械的 电气的 功能性的和规程性的特性 其作用是确保比特流能在物理信道上传输 2020 3 24 9 2 1 1物理层 物理层的功能为数据端设备提供传送数据的通路 数据通路可以是一个物理媒体 也可以是多个物理媒体连接而成 一次完整的数据传输 包括激活物理连接 传送数据 终止物理连接 传输数据 物理层要形成适合数据传输需要的实体 为数据传送服务 一是要保证数据能在其上正确通过 二是要提供足够的带宽 带宽是指每秒钟内能通过的比特 BIT 数 以减少信道上的拥塞 传输数据的方式能满足点到点 一点到多点 串行或并行 半双工或者全双工 同步或异步传输的需要 2020 3 24 10 2 1 1物理层 常见的物理层接口10M以太网接口100M以太网接口1000M以太网接口 2020 3 24 11 2 1 1物理层 10M以太网接口10Base T目前使用最广泛的局域网标准之一使用双绞线作为物理传输介质10Base5曾经广泛应用于主干局域网使用粗同轴电缆作为物理传输介质10Base2使用细同轴电缆作为物理传输介质 2020 3 24 12 2 1 1物理层 10Base T的物理介质3类双绞线4类双绞线5类双绞线超5类双绞线6类双绞线 有屏蔽与非屏蔽之分均为8芯电缆双绞线的类型由单位长度内的绞环数确定 2020 3 24 13 2 1 1物理层 5类双绞线的线序 直连网线5类双绞线的线序交叉网线 2020 3 24 14 2 1 1物理层 100M以太网接口100Base TX物理介质采用5类以上双绞线网段长度最多100米100Base FX物理介质采用单模光纤 网段长度可达10公里物理介质采用多模光纤 网段长度最多2000米快速以太网由IEEE802 3u标准定义 2020 3 24 15 2 1 1物理层 1000M以太网接口1000Base T物理介质采用5类以上双绞线 网段长度最多100米1000Base F物理介质采用多模光纤 网段长度最多500米IEEE802 3z和802 3ab 2020 3 24 16 2 1 2数据链路层 数据链路层 2020 3 24 17 2 1 2数据链路层 数据链路层是OSI参考模型的第二层 在物理层基础上向网络层提供服务数据链路层为物理链路上提供可靠的数据传输局域网的数据链路层协议有以太网 令牌环网等广域网数据链路层协议有PPP HDLC FrameRelay等 2020 3 24 18 2 1 2数据链路层 数据链路层的功能帧同步功能差错控制功能流量控制功能链路管理功能 2020 3 24 19 2 1 2数据链路层 帧同步是指能够从接收到的比特流中明确地区分出数据帧的起始与终止的地方常见帧同步的方法有 字节计数法字符填充的首尾定界符法比特填充的首尾定界符法违法编码法 2020 3 24 20 2 1 2数据链路层 流量控制和链路管理流量控制功能不是只有数据链路层才提供流量控制功能是控制发送方发送数据的速率链路管理是指数据链路层连接的建立 维持和释放 2020 3 24 21 2 1 2数据链路层 LAN数据链路层标准IEEE802制定了系列局域网标准IEEE802 3 以太网IEEE802 4 令牌总线IEEE802 5 令牌环IEEE802 11 无线局域网IEEE802标准涵盖了物理层和数据链路层 2020 3 24 22 2 1 2数据链路层 WAN数据链路层标准WAN服务通常由电信运营商提供WAN数据链路层标准包括 HDLCPPPX 25FrameRelay 2020 3 24 23 2 1 2数据链路层 数据链路层常见设备交换机 2020 3 24 24 2 1 3网络层 网络层 2020 3 24 25 2 1 3网络层 地址是网络设备和主机的标识 网络中存在两种寻址方法 MAC地址 是设备的物理地址 位于OSI参考模型的第2层 全网唯一标识 无级地址结构 一维地址空间 固化在硬件中 寻址能力仅限在一个物理子网中 IP地址 是设备的逻辑地址 位于OSI参考模型的第3层 全网唯一标识 分级地址结构 多维地址空间 由软件设定 具有很大的灵活性 可在全网范围内寻址 2020 3 24 26 2 1 3网络层 ARP 地址解析协议 2020 3 24 27 2 1 3网络层 RARP 反向地址解析协议 2020 3 24 28 2 1 3网络层 ICMP协议 2020 3 24 29 2 1 3网络层 网络层常见物理设备路由器 2020 3 24 30 2 1 4传输层 传输层 2020 3 24 31 2 1 4传输层 端口号传输层协议用端口号来标识和区分各种上层应用程序 2020 3 24 32 2 1 4传输层 TCP连接 2020 3 24 33 2 1 4传输层 断开TCP连接 2020 3 24 34 2 1 4传输层 滑动窗口 2020 3 24 35 2 1 5应用层 应用层 2020 3 24 36 2 2IP地址 MAC地址 2020 3 24 37 2 2IP地址 IP地址 2020 3 24 38 2 2 1IP互联原理 面对一个由很多网络连接而成的互联网 在进行数据通信时 数据是如何从源端传输到目标端的呢 我们可以举一个日常生活中的例子来说明这个问题 下图所示的一个城市交通图 2020 3 24 39 2 2 1IP互联原理 城市交通图示例 2020 3 24 40 2 2 1IP互联原理 在图中有六个城市 它们之间通过图中所示的公路相连 为了便于说明问题 我们对图中的公路进行了编号 图中所示的城市交通图与多个网络连接而成的互联网是非常相似的 图中的一个城市相当于互联网中的一个网络 连接城市的公路相当于连接网络的介质 每条路上都有一个负责选路的路由器 这样我们可以把图中所示的交通图对应成下图所示的网络互联图 2020 3 24 41 2 2 1IP互联原理 网络互联网 2020 3 24 42 2 2 1IP互联原理 前面在交通图中所述的两种不同送信 通信 过程 正好与网络互联的两种解决方案相对应 这两种网络互联方案是 面向连接的 Connect oriented 和无连接的 Connectionless 面向连接的解决方案要求在通信的源端和目标端之间建立一条逻辑通路 一般称为虚电路 VirtualCircuit 源端和目标端之间通信时的所有信息都通过该通路传输 这与交通图中送信过程的第一种方式类似 这种方式看似简单 易于实现 但其最大的缺点是如果不能保证虚电路中沿途经过的节点都能可靠地发送数据 就可能使网络崩溃 由于互联网所连网络的复杂性和多样性 因而很难保证所有节点都能可靠地发送数据 2020 3 24 43 2 2 1IP互联原理 无连接的互联网解决方案与交通图中送信过程的第二种方式类似 它在源端和目标端之间不建立一条逻辑通路 而送到网络中的每个分组带有完整的目标主机地址 收到分组的节点 主要是路由器 根据目标地址和当前网络状况 如通信量等 选择一条合适的线路把分组发送到接近目标端的下一个节点 通过多个节点的转发 最终把分组送达目标节点 使用这种方式时 由源端顺序送出的各分组 由于每个分组在网络中可能经过不同的路径到达目标端 所以先发出的分组不一定就先到达目标端 另外 也不能保证每个分组都能可靠地到达目标端 2020 3 24 44 2 2 1IP互联原理 无连接方式的优点是显而易见的 源端和目标端之间的通信可以通过多条通路进行 而不依赖于某一条通路 因此可靠性和通信效率高 另外 这种方式实现起来也比较简单 适合于异构网络的互联 因此被很多网络厂商所使用 Internet使用的就是这种无连接的方式 由IP协议来实现 2020 3 24 45 2 2 1IP互联原理 利用信息隐蔽原理 在互联网中把不同网络的实现细节通过IP层隐藏起来 达到在网络层逻辑上一致的目的 如下图所示 2020 3 24 46 2 2 1IP互联原理 IP对不同数据帧的统一 2020 3 24 47 2 2 2IP协议特点 1 IP协议是一种无连接 Connectionless 不可靠 Unreliable 的数据报传输协议 2 IP互联网中的计算机没有主次之分 所有主机地位平等 因为惟一标识它们的是IP地址 当然从逻辑上来说 所有网络 不管规模大小 也没有主次之分 3 IP互联网没有确定的拓扑结构 2020 3 24 48 2 2 2IP协议特点 4 在IP互联网中的任何一台主机 都至少有一个独一无二的IP地址 有多个网络接口卡的计算机每个接口可以有一个IP地址 这样一台主机可能就有多个IP地址 有多个IP地址的主机叫多宿主机 Multi homeHost 5 在互联网中有IP地址的设备不一定就是一台计算机 如IP路由器 网关等 因为与互联网有独立连接的设备都要有IP地址 2020 3 24 49 2 2 3IP地址的格式 IP地址的组成 IP地址长度 32bits 4个字节 组成 网络地址 NetworkID 标识主机所在的网络主机地址 HostID 标识在该网络上的主机 2020 3 24 50 2 2 3IP地址的格式 IP地址的表示 每个字节以十进制数表示 4个十进制数之间用小数点区分 2020 3 24 51 2 2 3IP地址的格式 二进制与十进制的转化 例子 2020 3 24 52 2 2 4IP地址的定义 所有的IP地址都由国际组织NIC NetworkInformationCenter 负责统一分配 目前全世界共有三个这样的网络信息中心 INTERNIC 负责美国及其它地区RIPE NIC 负责欧洲地区APNIC 负责亚太地区 总部设在日本东京大学 2020 3 24 53 2 2 4IP地址的定义 IP地址介绍IP地址唯一标示一台网络设备公共地址 PublicAddress 在一个公共性网络上传输数据 必须使用公共地址 这些地址在网上是唯一的 如Internet上 需向ISP申请分配公共地址 各ISP都要从更上一层的地址注册机构申请 2020 3 24 54 2 2 4IP地址的定义 私有地址 PrivateAddress 不能直接与Internet连接的地址 解决公共地址短缺的问题 RFC1918规定了3种私有地址 1个A类地址 10 0 0 016个B类地址 172 16 0 0到172 31 0 0256个C类地址 192 168 0 0到192 168 255 0内部网使用 通过代理 Proxy 或网络地址翻译 NetworkAddressTranslation 等系统将私有地址转换成公共地址 从而连接到Internet 2020 3 24 55 2 2 5IP地址分类 2020 3 24 56 2 2 5IP地址分类 2020 3 24 57 2 2 6特殊IP地址 1 网络地址 主机标识位全部为0的地址从不分配给单个主机 而是作为网络本身的标识 例如 主机212 111 44 136所在网络的网络地址为212 111 44 0 2020 3 24 58 2 2 6特殊IP地址 2020 3 24 59 2 2 6特殊IP地址 2 直接广播地址 主机标识位全部为1的地址从不分配给单个主机 而是作为同网络的广播地址 例如 主机212 111 44 136所在网络的广播地址为212 111 44 255 一台主机可以用直接广播地址向任何指定的网络直接广播它的分组报文 即使发送和接站点不在同一个子网内 也可以用广播地址向某个子网上所有的主机广播信息 每台主机和路由器等设备都会接收和处理目的地址为本网广播地址的分组报文 2020 3 24 60 2 2 6特殊IP地址 2020 3 24 61 2 2 6特殊IP地址 子网广播地址 主机标识位全部为1 有特定子网号的地址 例如 目的子网掩码为255 255 255 0 IP地址为192 168 1 255就是一个子网广播地址 2020 3 24 62 2 2 6特殊IP地址 2020 3 24 63 2 2 6特殊IP地址 全子网广播地址 子网标识位和主机标识位全部为1 例如 目的子网掩码为255 255 0 0 IP地址为128 1 255 255就是一个全子网广播地址 2020 3 24 64 2 2 6特殊IP地址 2020 3 24 65 2 2 6特殊IP地址 2020 3 24 66 2 2 6特殊IP地址 受限广播地址 255 255 255 255 有限广播地址被用在本网络内部广播 这样的数据报仅出现在本地网络中 所有路由器不转发该目的地址的数据报 主机在不知道自己的网络地址的情况下 使有限广播地址也可以向本子网上所有的其它主机发送消息 2020 3 24 67 2 2 6特殊IP地址 2020 3 24 68 2 2 6特殊IP地址 全0地址表示本主机 不可作为有效目的地址使用 3 本网络本主机 网络地址部分全0表示本网的某台主机 不可作为有效目的地址使用 4 本网特定主机地址 2020 3 24 69 2 2 6特殊IP地址 回送地址 loopbackaddress A类地址 任何一个以数字127开头的IP地址如 127 any any any127 0 0 1任何程序用回送地址作为目的地址时 计算机上的协议软件不会把该数据报向网络上发送 而是把数据直接返回给本主机 不可作为有效地址出现在网络上 问题 当网络地址部分 全1时 该地址是否有效 5 回送地址 2020 3 24 70 2 2 6特殊IP地址 特殊IP地址 2020 3 24 71 2 2 6特殊IP地址 IP地址使用原则网络号不能全为1和全为0主机号不能全为1和全为0 全为1时表示广播网络号在INTERNET中网络号是唯一主机号对于本地网络中来说是唯一255 255 255 255表示广播地址10 0 0 0 8 172 16 0 0 16 172 31 0 0 16 192 168 0 0 16为私有地址 2020 3 24 72 2 2 7子网掩码 1 掩码技术的提出IP地址最初使用两层地址结构 包括网络地址和主机地址 在这种结构中A类和B类网络所能容纳的主机数非常庞大 但使用C类IP地址的网络只能接入254台主机 因此 人们提出了三层结构的IP地址 把每个网络可以进一步划分成若干个子网 Subnet 子网内主机的IP地址由三部分组成 如下图所示 把两级IP地址结构中的主机地址分割成子网地址和主机地址两部分 2020 3 24 73 2 2 7子网掩码 子网IP地址结构 2020 3 24 74 2 2 7子网掩码 2 子网掩码对于划分了子网的网络 子网地址是由两级地址结构中主机地址的若干位组成的 具体子网所占位数的多少 要根据子网的规模来决定 如果一个网络内的子网数较少 而子网内主机数较多 就应该把两级地址结构中主机地址的大部分位分配给子网内的主机 少量位用来表示子网号 那么 究竟在一个IP地址中哪些位用来表示网络号 哪些位用来表示子网号 以及哪些位用来表示主机号呢 这就要使用子网掩码 SubnetMask 来标识 2020 3 24 75 2 2 7子网掩码 区分IP地址的网络ID和主机ID 用连续的 1 表示IP地址网络ID 用连续的 0 表示主机ID 如 11111111 11111111 11111111 00000000 我们平时使用时用255 255 255 0进行表示 区分是本地主机还是远程主机 本地主机发送不经过路由器 若是远程主机则将请求发送到路由器 说明 子网掩码的简写形式 在IP地址后面加上 n n为子网掩码中 1 的位数 如192 168 0 1 24 2020 3 24 76 2 2 7子网掩码 2020 3 24 77 2 2 7子网掩码 缺省掩码A类地址255 0 0 0B类地址255 255 0 0C类地址255 255 255 0 2020 3 24 78 2 2 7子网掩码 缺省时 并不使用子网 2020 3 24 79 2 2 7子网掩码 2020 3 24 80 2 2 7子网掩码 2020 3 24 81 2 2 7子网掩码 2020 3 24 82 2 2 7子网掩码 2020 3 24 83 2 2 7子网掩码 3 子网划分将网络进一步划分成独立的组成部分 每个部分称为这个网络 或者更高一级子网 的子网 子网的设计是为了便于网络的管理 对于A类和B类的地址可以把一个大网划分成几个子网 每个子网可以对应一个地理范围或者区域 每个子网也可以对应一种不同的物理介质 划分子网以后 每个子网看起来象一个独立的网络 而对于远程网络而言 子网是透明的 2020 3 24 84 2 2 7子网掩码 根据地理分布特点划分子网易于组网技术的实现节约经费根据网络应用特点划分将共享相同网络资源的主机划分成一个子网 可减少子网间的网络传输流量 提高网络性能 将具有相同安全密级程度的主机划分为同一个子网 保障系统的安全 2020 3 24 85 2 2 7子网掩码 原则 将主机号借给网络号 作为子网号使用 公式 划分子网的个数 2n 2 n是网络位向主机位所借的位数每个子网的主机数 2m 2 m是借位后所剩的主机位数 2020 3 24 86 2 2 7子网掩码 划分子网举例1 2020 3 24 87 2 2 7子网掩码 划分子网举例2 2020 3 24 88 2 2 7子网掩码 4 子网设计举例某公司组建在青岛设立总公司 在北京 上海分别设立了分公司 在三地都已组建了局域网 计算机都在10台以下 今申请了一段202 162 0 0 24网段的地址 如何确保三地的局域网内的计算机能够通信 局域网之间的计算机也能够通信 2020 3 24 89 2 2 7子网掩码 划分原则 一个C类地址子网划分可借位数在2 6位之间 每种子网划分方案中有2个子网地址不可分配 子网地址 全0 子网地址 全1 每个子网中至少有2个主机地址不可分配 主机地址 全0 主机地址 全1 例 3个子网 需借3位 共有23 2 6个有效子网每个子网中最多可有25 2 30台主机地址 2020 3 24 90 2 2 7子网掩码 2020 3 24 91 2 2 7子网掩码 2020 3 24 92 2 2 7子网掩码 2020 3 24 93 2 2 7子网掩码 不进行子网划分 2020 3 24 94 2 2 7子网掩码 进行划分子网 2020 3 24 95 2 2 8IP地址总结 2020 3 24 96 2 2 8IP地址总结 2020 3 24 97 2 2 8IP地址总结 2020 3 24 98 2 2 8IP地址总结 2020 3 24 99 2 2 8IP地址总结 2020 3 24 100 2 2 8IP地址总结 2020 3 24 101 2 2 8IP地址总结 2020 3 24 102 2 2 8IP地址总结 10101100 11111111 10101100 00010000 11111111 00010000 11111111 00000010 10100000 11000000 10000000 00000010 10101100 00010000 00000010 10111111 10101100 00010000 00000010 10000001 10101100 00010000 00000010 10111110 Host Mask Subnet Broadcast Last First 172 16 2 160 255 255 255 192 1 2 3 4 5 6 7 8 2020 3 24 103 2 2 8IP地址总结 2020 3 24 104 2 3IP数据报格式 IP数据报格式 2020 3 24 105 2 3 1IP数据报各字段的功能 IP数据报中的每一个域包含了IP报文所携带的一些信息 正是用这些信息来完成IP协议功能的 现说明如下 1 版本号2 头长度3 服务类型 TOS TypeOfService 服务类型用8位二进制数表示 规定对本数据报的处理方式 服务类型字段的8位分成了5个子域 如图2 10所示 1 优先权 占0 2位 这3位二进制数表示的数据范围为000 111 0 7 2020 3 24 106 2 3 1IP数据报各字段的功能 服务类型子域结构 2020 3 24 107 2 3 1IP数据报各字段的功能 2 短延迟位D Delay 该位被置1时 数据报请求以短延时信道传输 0表示正常延时 3 高吞吐量位T Throughput 该位被置1时 数据报请求以高吞吐量信道传输 0表示普通 4 高可靠性位R Reliability 该位被置1时 数据报请求以高可靠性信道传输 0表示普通 5 保留位 第6和第7位 目前未用 但需置0 应注意在有些实现中 可以使用第6位表示低成本 对不同应用 TOS的建议数据值列于下表中 2020 3 24 108 2 3 1IP数据报各字段的功能 TOS建议使用数值 2020 3 24 109 2 3 1IP数据报各字段的功能 4 总长度总长度用16位二进制数表示 总长度字段是指整个IP数据报的长度 以字节为单位 5 生存时间 TTL TimeToLive 生存时间用8位二进制数表示 它指定了数据报可以在网络中传输的最长时间 在实际应用中为了简化处理过程 把生存时间字段设置成了数据报可以经过的最大路由器数 TTL的初始值由源主机设置 通常为32 64 128或者256 一旦经过一个处理它的路由器 它的值就减去1 当该字段的值减为0时 数据报就被丢弃 并发送ICMP报文通知源主机 这样可以防止进入一个循环回路时 数据报无休止地传输 2020 3 24 110 2 3 1IP数据报各字段的功能 6 上层协议标识上层协议标识用8位二进制数表示 IP协议可以承载多种上层协议 目标端根据协议标识 就可以把收到的IP数据报送至TCP或UDP等处理此报文的上层协议 下表给出了常用的网际协议编号 2020 3 24 111 2 3 1IP数据报各字段的功能 常用网际协议编号 2020 3 24 112 2 3 1IP数据报各字段的功能 7 校验和校验和用16位二进制数表示 这个域用于协议头数据有效性的校验 可以保证IP报头区在传输时的正确性和完整性 8 源地址源地址是用32位二进制数表示的发送端IP地址 9 目的地址目的地址是用32位二进制数表示的目的端IP地址 2020 3 24 113 2 3 2IP数据报分片与重组 1 最大传输单元MTU下表列出了几种常用网络的MTU值 2020 3 24 114 2 3 2IP数据报分片与重组 2 分片下图所示的一个IP数据报 假设数据区长度为1500字节 被分成了三个IP数据报 2020 3 24 115 2 3 2IP数据报分片与重组 IP数据报的分片过程 2020 3 24 116 2 3 2IP数据报分片与重组 分片后的IP数据报 其数据区是原IP数据报数据区的一个连续部分 一段 头部是原IP数据报头部的复制 但与原来未分片的IP数据报头部有两点主要不同 标志和片偏移 1 标志 在IP数据报的头部 有一个叫标志的字段 用3位二进制数表示 如下图所示 IP数据报头标志位 2020 3 24 117 2 3 2IP数据报分片与重组 2 片偏移 在上例中 IP数据报被分成3片之后 各片数据区在原来IP数据区中的位置用13位片偏移表示 3 重组当分了片的IP数据报被传输到最终目标主机时 目标主机要对收到的各分片重新进行组装 以恢复成源主机发送时的IP数据报 这个过程叫IP数据报的重组 在IP数据报头部中 标识用16位二进制数表示 它惟一地标识主机发送的每一份数据报 2020 3 24 118 2 3 2IP数据报分片与重组 目标端主机重组数据报的原理是 根据标识可以确定收到的分片属于原来哪个IP数据报 根据标志字段的片未完MF子字段可以确定分片是不是最后一个分片 根据偏移量就可以确定分片在原数据报中的位置 2020 3 24 119 2 3 3IP数据报选项 IP数据报选项主要有两大功能 一是可以用来实现对数据报传输过程的控制 如规定数据报要经过的路由 二是进行网络测试 如一个数据报传输过程中经过了哪些路由器 IP选项域共分为四大类 如下表所示 2020 3 24 120 2 3 3IP数据报选项 IP数据报选项 2020 3 24 121 2 3 3IP数据报选项 IP数据报选项由三个部分组成 选项码 选项长度和选项数据 如下图所示 IP数据报头标志位 2020 3 24 122 2 3 3IP数据报选项 1 复制 占1位 用来控制一个带有选项的IP数据报被分片后对选项的处理方式 如果该位被置1 将选项复制到所有分片中 被置0 将选项仅复制到第一个分片中 2 选项类和选项号 选项类占2位 选项号占5位 用于确定该选项是哪类选项中的哪个选项 其实就是用于确定该选项的功能 可参见上表 2020 3 24 123 2 3 3IP数据报选项 1 源路由选择所谓源路由选择 SourceRouting 是指IP数据报在互联网中传输时 所经过的路由是由发出IP数据报的源主机指定的 以区别于数据报在互联网中传输时由路由器的IP层自动寻径所得到的路由 通过设置源路由选择选项 可以测试网络中指定路由的连通性 以使数据报绕开出错的网络 也可用于测试特定网络的吞吐量 源路由选择分为两类 一类是严格源路由选择 StrictSourceRouting 另一类是宽松源路由选择 LooseSourceRouting 2020 3 24 124 2 3 3IP数据报选项 1 严格源路由选择 严格源路由选择选项格式如下图所示 2 宽松源路由选择 2020 3 24 125 2 3 3IP数据报选项 IP数据报头中严格源路由选择选项格式 2020 3 24 126 2 3 3IP数据报选项 2 记录路由3 记录时间戳时间戳选项的格式与源路由选择选项类似 如下图所示 2020 3 24 127 2 3 3IP数据报选项 IP数据报头中时间戳选项格式 2020 3 24 128 2 3 3IP数据报选项 时间戳选项的选项码为0 x44 选项长度表示选项的总长度 一般为36或40 指针指向下一个可用空间的指针 值为5 9 13等 接下来的两个字段各占4位 溢出字段OF OverFlow 表示因时间戳选项数据区空间不够而未能记录下来的时间戳个数 标志字段FL用于控制时间戳选项的格式 其值的含义如下表所示 2020 3 24 129 2 3 3IP数据报选项 时间戳选项标志字段含义 2020 3 24 130 2 3 3IP数据报选项 时间戳选项提供了IP数据报传输中的时域参数 可用于分析网络吞吐量 拥塞情况和负载情况等 在ping网络命令中提供了对严格源路由选择 宽松源路由选择和记录时间戳的支持 读者可以使用ping的帮助信息来查看这些参数 使用ping命令的这些功能 可以帮助读者理解IP数据报头选项 最后要说明 并非所有的主机和路由器都支持这些选项 另外 如果一个选项字段不是以32位二进制数为界限的 则要在最后插入值为0的填充字符 这样就保证了IP头部始终是32位二进制的整数倍 这是因为头部长度是以32位二进制数为计数单位的 2020 3 24 131 2 4传输层协议TCP UDP TCP TransmissionControlProtocol 和UDP UserDatagramProtocol 协议属于传输层协议 TCP提供IP环境下的数据可靠传输 它提供的服务包括数据流传送 可靠性 有效流控 全双工操作和多路复用 通过面向连接 端到端和可靠的数据包发送 通俗说 它是事先为所发送的数据开辟出连接好的通道 然后再进行数据发送 UDP则不为IP提供可靠性 流控或差错恢复功能 一般来说 TCP对应的是可靠性要求高的应用 而UDP对应的则是可靠性要求低 传输经济的应用 2020 3 24 132 2 4 1端到端通信和端口号 端到端通信在互联网中 任何两台通信的主机之间 从源端到目标端的信道都是由一段一段的点到点通信线路组成的 一个局域网中两台主机通信时只有一段点到点的线路 如下图所示 2020 3 24 133 2 4 1端到端通信和端口号 传输层端到端通信 2020 3 24 134 2 4 1端到端通信和端口号 点到点通信是由网络互联层来实现的 网络互联层只屏蔽了不同网络之间的差异 构建了一个逻辑上的通信网络 因此它只解决了数据通信问题 端到端通信是建立在点到点通信基础之上的 它是比网络互联层通信更高一级的通信方式 完成应用程序 进程 之间的通信 端到端的通信是由传输层来实现的 2020 3 24 135 2 4 1端到端通信和端口号 传输层端口为了识别传输层之上不同的网络通信程序 进程 传输层引入了端口的概念 在一台主机上 要进行网络通信的进程首先要向系统提出动态申请 由系统 操作系统内核 返回一个本地惟一的端口号 进程再通过系统调用把自己和这个特定的端口联系在一起 这个过程叫绑定 Binding 这样 每个要通信的进程都与一个端口号对应 传输层就可以使用其报文头中的端口号 把收到的数据送到不同的应用程序 如下图所示 2020 3 24 136 2 4 1端到端通信和端口号 传输层端到端通信 2020 3 24 137 2 4 1端到端通信和端口号 在TCP IP协议中 传输层使用的端口号用一个16位的二进制数表示 因此 在传输层如果使用TCP协议进行进程通信 则可用的端口号共有216个 由于UDP也是传输层一个独立于TCP的协议 因此使用UDP协议时也有216个不同的端口 一些常用服务的TCP和UDP的众所周知端口号见下表 2020 3 24 138 2 4 1端到端通信和端口号 常用的众所周知的TCP端口号 2020 3 24 139 2 4 1端到端通信和端口号 常用的众所周知的UDP端口号 2020 3 24 140 2 4 1端到端通信和端口号 256 1023之间的端口号通常都是由Unix系统占用的 以提供一些特定的Unix服务 现在IANA TheInternetAssignedNumbersAuthority 互联网数字分配机构 管理1 1023之间所有的端口号 任何TCP IP实现所提供的服务都使用1 1023之间的端口号 客户端口号又称为临时端口号 即存在时间很短暂 这是因为客户端口号是在客户程序要进行通信之前 动态地从系统申请的一个端口号 然后以该端口号为源端口 使用某个众所周知的端口号为目标端口号 如在TCP协议上要进行文件传输时使用21 进行客户端到服务器端的通信 综上所述 我们知道两台要通信的主机 每一端要使用一个二元地址 IP地址 端口号 才可以完成它们之间的通信 2020 3 24 141 2 4 2用户数据报协议UDP UDP数据报的封装及其格式UDP协议在工作时是建立在IP协议之上的 UDP从进程的缓冲区接收进程每一次产生的输出 对每次输出都生成一个UDP数据报 然后把生成的UDP数据报直接封装在IP数据报中进行传输 因此在传输层使用UDP协议时 发送端不需要发送缓冲区 如下图所示 2020 3 24 142 2 4 2用户数据报协议UDP UDP数据报的封装 2020 3 24 143 2 4 2用户数据报协议UDP 被封装在IP中的UDP数据报通过网络传输到目标主机的IP层后 由目标主机的UDP层根据目标端口号送到接收该数据的相应进程 UDP数据报的格式如下图所示 2020 3 24 144 2 4 2用户数据报协议UDP UDP数据报格式 2020 3 24 145 2 4 2用户数据报协议UDP UDP协议的特点从UDP协议的数据报格式可以看出 UDP对数据的封装非常简单 主要是增加了端口号与校验和 然后就可以直接通过IP层进行传输了 因此它具有以下特点 1 UDP是一种无连接 不可靠的数据报传输服务协议 2 UDP对数据传输过程中惟一的可靠保证措施是进行差错校验 如果发生差错 则只是简单地抛弃该数据报 3 如果目标端收到的UDP数据报中的目标端口号不能与当前已使用的某端口号匹配 则将该数据报抛弃 并发送目标端口不可达的ICMP差错报文 2020 3 24 146 2 4 2用户数据报协议UDP 4 UDP协议在设计时的简单性 是为了保证UDP在工作时的高效性和低延时性 因此 在服务质量较高的网络中 如局域网 UDP可以高效地工作 5 UDP常用于传输延时小 对可靠性要求不高 有少量数据要进行传输的情况 如DNS 域名服务 TFTP 简单文件传输 等 2020 3 24 147 2 4 3传输控制协议TCP TCP报文段格式TCP报文段 常称为段 与UDP数据报一样也是封装在IP中进行传输的 只是IP报文的数据区为TCP报文段 TCP报文段的格式如下图所示 2020 3 24 148 2 4 3传输控制协议TCP TCP报文段的格式 2020 3 24 149 2 4 3传输控制协议TCP 1 TCP源端口号TCP源端口号长度为16位 用于标识发送方通信进程的端口 目标端在收到TCP报文段后 可以用源端口号和源IP地址标识报文的返回地址 2 TCP目标端口号TCP目标端口号长度为16位 用于标识接收方通信进程的端口 源端口号与IP头部中的源端IP地址 目标端口号与目标端IP地址 这4个数就可以惟一确定从源端到目标端的一对TCP连接 2020 3 24 150 2 4 3传输控制协议TCP 3 序列号序列号长度为32位 用于标识TCP发送端向TCP接收端发送数据字节流的序号 4 确认号确认号长度为32位 5 头部长度该字段用4位二进制数表示TCP头部的长短 它以32位二进制数为一个计数单位 TCP头部长度一般为20个字节 因此通常它的值为5 2020 3 24 151 2 4 3传输控制协议TCP 6 保留保留字段长度为6位 该域必须置0 准备为将来定义TCP新功能时使用 7 标志标志域长度为6位 每1位标志可以打开或关闭一个控制功能 这些控制功能与连接的管理 3 3 2小节讲述 和数据传输控制有关 其内容如下所述 URG 紧急指针标志 置1时紧急指针有效 ACK 确认号标志 置1时确认号有效 如果ACK为0 那么TCP头部中包含的确认号字段应被忽略 2020 3 24 152 2 4 3传输控制协议TCP PSH push操作标志 当置1时表示要对数据进行push操作 RST 连接复位标志 表示由于主机崩溃或其他原因而出现错误时的连接 SYN 同步序列号标志 它用来发起一个连接的建立 也就是说 只有在连接建立的过程中SYN才被置1 FIN 连接终止标志 当一端发送FIN标志置1的报文时 告诉另一端已无数据可发送 即已完成了数据发送任务 但它还可以继续接收数据 2020 3 24 153 2 4 3传输控制协议TCP 8 窗口大小窗口大小字段长度为16位 它是接收端的流量控制措施 用来告诉另一端它的数据接收能力 9 校验和校验和字段长度为16位 用于进行差错校验 校验和覆盖了整个的TCP报文段的头部和数据区 2020 3 24 154 2 4 3传输控制协议TCP 10 紧急指针紧急指针字段长度为16位 只有当URG标志置1时紧急指针才有效 它的值指向紧急数据最后一个字节的位置 如果把它的值与TCP头部中的序列号相加 则表示紧急数据最后一个字节的序号 在有些实现中指向最后一个字节的下一个字节 11 选项选项的长度不固定 通过选项使TCP可以提供一些额外的功能 每个选项由选项类型 占1个字节 该选项的总长度 占1个字节 和选项值组成 如下图所示 2020 3 24 155 2 4 3传输控制协议TCP TCP选项格式 2020 3 24 156 2 4 3传输控制协议TCP 12 填充填充字段的长度不定 用于填充以保证TCP头部的长度为32位的整数倍 值全为0 2020 3 24 157 2 4 3传输控制协议TCP TCP连接的建立与关闭TCP是一个面向连接的协议 TCP协议的高可靠性是通过发送数据前先建立连接 结束数据传输时关闭连接 在数据传输过程中进行超时重发 流量控制和数据确认 对乱序数据进行重排以及前面讲过的校验和等机制来实现的 TCP在IP之上工作 IP本身是一个无连接的协议 在无连接的协议之上要建立连接 对初学者来说 这是一个较难理解的一个问题 2020 3 24 158 2 4 3传输控制协议TCP 1 建立连接TCP使用 三次握手 3 wayHandshake 法来建立一条连接 所谓三次握手 就是指在建立一条连接时通信双方要交换三次报文 具体过程如下 2 关闭连接由于TCP是一个全双工协议 因此在通信过程中两台主机都可以独立地发送数据 完成数据发送的任何一方可以提出关闭连接的请求 关闭连接时 由于在每个传输方向既要发送一个关闭连接的报文段 又要接收对方的确认报文段 因此关闭一个连接要经过4次握手 2020 3 24 159 2 4 3传输控制协议TCP 连接建立和关闭的过程可以用下图表示 该图是通信双方正常工作时的情况 关闭连接时 图中的u表示服务器已收到数据的序列号 v表示客户机已收到数据的序列号 2020 3 24 160 2 4 3传输控制协议TCP TCP连接的建立与关闭 2020 3 24 161 2 4 3传输控制协议TCP TCP的流量控制和拥塞控制机制下面我们来看一个实例 下图是主机1和主机2使用TCP协议在实际通信时的时序图 2020 3 24 162 2 4 3传输控制协议TCP TCP通讯时序图 2020 3 24 163 2 4 3传输控制协议TCP 在上图中 主机1连续发送了两个报文段4和5 其长度都为1024个字节 这两个报文段的数据用来填充接收方 主机2 所通知的窗口 由于主机2通知的窗口大小只有2048个字节 这时主机2的缓冲区已经被填满 因此主机1停下来等待一个主机2的确认 发送端发送数据的过程是如何受到接收方控制的 这可以用下图表示 报文段2通知的窗口大小为2048个字节 因此主机1的前两个1024个字节的数据块落入窗口内 如下图 a 所示 窗口内的数据是可以立即发送的数据 下图 b 是上图中主机1发送了报文段4和5后的情况 窗口内的数据已发送完毕 用灰色表示 主机1只能等待 2020 3 24 164 2 4 3传输控制协议TCP 下图 c 是主机2收到前2048个字节发送了确认报文段6窗口右移后的情况 由于报文段6通知的接收方窗口大小只有1024个字节 因此只有一个1024个字节的数据块落入窗口内 下图 d 是主机1对主机2发送了报文段7后的情况 这时窗口内的数据已发送完毕 主机又进入等待状态 图3 9中确认报文段8对收到的前3072个字节进行了确认 但通知的窗口大小为0 如下图 e 所示 这时窗口的左边沿到达右边沿 即窗口的长度变为0 称其为一个0窗口 此时发送方不能再发送任何数据 只能等待 等待一段时间后 由于主机2的应用进程从TCP缓冲区中读走了2048个字节的数据 因此由窗口更新报文段9通知的窗口大小为2048个字节 如下图 f 所示 这时主机1又可以发送数据了 2020 3 24 165 2 4 3传输控制协议TCP TCP流量控制机制 滑动窗口协议 2020 3 24 166 2 4 3传输控制协议TCP 上述流量控制策略中 使用接收方通知的一个窗口大小来控制数据的发送 窗口的起始点为接收方确认号 终止于窗口长度 只有落在窗口内的数据可以发送 为了解决网络拥塞问题 发送方又引入了另外一个窗口 叫拥塞窗口 CongestionWindow 拥塞窗口被初始化为1个报文段的长度 即另一端通知的最大报文段长度为MSS 在建立连接时 发送方只发送一个长度为MSS的报文段 正常收到确认后 拥塞窗口就增大为2MSS 即为原来拥塞窗口长度的两倍 然后发送两个MSS长度的报文段 2020 3 24 167 2 4 3传输控制协议TCP TCP的超时重发机制TCP协议提供的是可靠的运输层 前面我们已经看到 接收方对收到的所有数据要进行确认 TCP的确认是对收到的字节流进行累计确认 发送TCP报文段时 头部的 确认号 就指出该端希望接收的下一个字节的序号 其含义是在此之前的所有数据都已经正确收到 请发送从确认号开始的数据 TCP的确认方式有两种 一种是利用只有TCP头部 而没有数据区的专门确认报文段进行确认 另一种是当通信双方都有数据要传输时 把确认 捎带 在要传输的报文段中进行确认 因此TCP的确认报文段和普通数据报文段没有什么区别 2020 3 24 168 2 4 3传输控制协议TCP 在TCP协议层实现超时重发的关键问题是超时重送的策略 即怎样决定超时间隔和如何确定重发的频率 显然使用固定大小的超时间隔有很大的不足之处 一个好的实现超时重发的方案应该是超时间隔可以随网络的通信状况而自动调整 即超时间隔应具有一定的自适应性 这种动态调整超时间隔的方法与一条连接从发送端发出数据到收到确认所需的往返时间RTT RoundTripTime 有关 具体实现时 可以在每条连接上保持一个叫RTT的变量 发送一个TCP报文段的同时启动定时器 收到确认后计算出本次的RTT值 下面用M表示 然后根据下面的公式求出新的RTT加权平均值 2020 3 24 169 2 4 3传输控制协议TCP 计算RTT RTT RTT 1 M计算重发超时间隔RTO RetransmissionTimeOut RTO RTT 和 都是加权因子 0 1 决定本次传输的TCP报文段对往返时间RTT的影响程度 比较大时 RTT主要由历史数据确定 比较小时 RTT紧跟当时的延迟而变化 的推荐值为2 也就是说 当等待到2倍的加权平均往返时间后还没有收到确认就重发数据 取值接近1时 显然超时间隔比较短 它的优点是可以减少等待时间 但可能引起一些不必要的重发 取值比较大时 可能因等待时间太长而降低了网络的通信效率 2020 3 24 170 2 4 3传输控制协议TCP TCP与UDP的比较 2020 3 24 171 THANKS
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!