第6章 Internet与TCP/IP体系结构 6.2 网络接口协议SLIP和PPP 6.3 网际层 6.4 IP路由 6.5 TCP层
6.1 TCP/IP协议综述 6.1.1 TCP/IP协议的层次结构 (a) OSI体系结构 (b) TCP/IP体系结构 应用层 表示层 会话层 运输层 网络层 数据链路层 物理层 网际层 (FTP,TELNET,SMTP等) 网络接口层 TCP/IP 协议族是Internet的事实上的国际标准 (a) OSI体系结构 (b) TCP/IP体系结构
TCP/IP协议对这一层描述得很少,一般网络接口层提供了TCP/IP协议与各种物理网络的接口,为数据报的传送和校验提供了可能。 1) 网络接口层 TCP/IP协议对这一层描述得很少,一般网络接口层提供了TCP/IP协议与各种物理网络的接口,为数据报的传送和校验提供了可能。 2)网络层 在Intenet中网络与网络之间的数据传输主要依赖于 网络层中的IP协议。 IP的功能包括如下3项: ① 管理Internet中的地址 ② 路由选择功能 ③ 数据报的分片与重组 与IP配合使用的还有三个协议:
① Internet控制报文协议ICMP,用于报告差错和传输控制信息。 ② 地址转换协议ARP,用于将IP地址转换成物理地址。 ③ 反向地址转换协议RARP,用于将物理地址转换成IP地址。 IP协议 因特网控制报文协议 (ICMP) 地址解析协议 (ARP) 逆地址解析协议 (RARP) 应用层 传输层 网络层 接口层 硬件
① 分割和重组报文。② 提供可靠的端到端的服务。③ 传输层的流量控制。④ 提供面向连接的和无连接数据的传输服务. 3) 传输层 ① 分割和重组报文。② 提供可靠的端到端的服务。③ 传输层的流量控制。④ 提供面向连接的和无连接数据的传输服务. 应用层 传输层 网络接口 网际层 面向连接的 ●TCP 无连接的 ●UDP 应用层目前的发展是最快的
提供用户所需的各种服务,如远程登录、文件传输、电子邮件、网页浏览等。 4)应用层 提供用户所需的各种服务,如远程登录、文件传输、电子邮件、网页浏览等。 应用层 传输层 网络接口层 网际层 文件传输 ●FTP、TFTP、NFS 电子邮件 ●SMTP、POP3 WWW应用 ●HTTP 远程登录 ●Telnet、rlogin 网络管理 ●SNMP 名字管理 ●DNS
路由协议工作在TCP/IP模型上的哪层 RIP报文封装成UDP用户数据报 OSPF分组被封装成IP数据报 BGP报文被封装成TCP报文段
6.1.3 TCP/IP与OSI/RM的比较 层次性是否严格 可靠性第一还是效率第一 主机负担重还是通信子网负担重 异种网互联的能力
OSI/RM最大的贡献在于它作为一种理论模型,有清晰的层次结构,并且用服务、接口和协议三个基本概念作为每一层的核心 ;同时,OSI/RM不基于某个具体的协议集。这使得OSI/RM非常一般化,并且制定者对将哪些功能放在哪一层还缺乏更多的实践经验。 TCP/IP是实践中形成的,是经验的总结,因此虽然TCP/IP模型也分层次,但是层次间的依赖关系不像OSI/RM那样强。它在传输层上面只设了一层——应用层,使结构比较实用,并且允许上一层越过紧靠的下一层去使用更低层提供的服务功能,这样有利于减少不必要的开销,提高协议的效率。
可靠性是指网络正确地传输数据的能力。OSI/RM以可靠性第一作为其基本宗旨,每一层都要进行错误的检测和处理,因而按OSI/RM构建的网络可以适应较恶劣的传输条件,但额外传输开销大,传输效率低。 TCP/IP模型则以效率第一作为其基本宗旨,它不是在每一层中都进行错误的检测和恢复,特别是在通信子网中不对传输数据进行错误的检测和恢复;它把可靠性看做传输层的任务,丢失和损坏数据的恢复只由传输层完成,即由主机承担,而通信子网对可靠性不做检查。
OSI/RM认为通信子网是提供传输信息的设置,它把与传输有关的问题都放在通信子网中处理,同时它在运输层只提供面向连接的服务。因此,OSI/RM系统中通信子网负担较重,主机负担较轻 。 TCP/IP主要的功能是实现异种网之间的互联。它把通信子网都看成是不可靠的,不管通信子网是复杂还是简单,都要在传输层要求主机要参与几乎所有的复杂性问题的处理过程。因此在TCP/IP模型中主机的负担较重。
TCP/IP模型从一开始就考虑到异种网的互联问题,并用网际层来处理异种网的互联问题。而OSI最初并没有考虑网络互联问题,后来才不得不打一个补丁——在网络层中划分出一个子层来完成类似网际层的功能。
6.2 点对点的数据链路协议 一方发,一方收,一条链路: 无需介质访问控制 不必进行MAC寻址 e.g., 拨号链路, ISDN 线路等 6.2 点对点的数据链路协议 一方发,一方收,一条链路: 比广播信道简单的多 无需介质访问控制 不必进行MAC寻址 e.g., 拨号链路, ISDN 线路等 常见的点对点DLC协议: SLIP (Serial Line Internet Protocol)(p89) PPP (point-to-point 协议) HDLC: High level data link control
网络接口协议SLIP和PPP 网络接口层的重要功能是将IP分组封装成适合在物理网络上传输的帧格式进行传输。
6.2.1 SLIP协议 SLIP(Serial Line Internet Protocol) 提供在串行线路上封装IP分组的简单方法, 使得远程用户通过电话线路和高速调制解 调器方便地接入TCP/IP网络。图6.3表明了 SLI协议P对IP分组的封装方法。 SLIP封装的基本方法 SLIP存在如下一些问题
SLIP封装的一般方式 IP分组中含有“END”的SLIP封装 IP分组中含有“ESC”的SLIP封装 IP分组 END END 11000000 … 11000000 SLIP封装的一般方式 IP分组 11000000 11000000 … 11011011 11011100 … 11000000 IP分组中含有“END”的SLIP封装 IP分组 11011011 11000000 … 11011011 11011101 11000000 IP分组中含有“ESC”的SLIP封装
SLIP封装的基本方法 在IP分组的前后各加一个称为END的特殊字符(0xc0——11000000),如图6.3(a)所示; 当IP分组中含有“11000000”(END)时,应在其前填充0xdb(SLIP ESC),并在传输时用0xdb+0xdc——11011011 11011100代替,如图6.3(b)所示 当IP分组中含有“11011011”(ESC)时,应在其前填充0xdb(SLIP ESC),并在传输时用0xdb+0xdd——11011011 11011101代替,如图6.3(c)所示
SLIP存在如下一些问题 SLIP不支持在连接建立过程中动态分配IP地址,而通信双方必须事先知道对方的IP地址,但又不可能为每一台连接的计算机分配一个IP地址 SLIP帧中无协议类型域,因此只能支持IP协议 SLIP帧中无校验字段,因此必须选用有校验功能的MODEM,或由上层进行差错处理。
6.2.2 PPP 设计要求 [RFC 1557] 分组成帧: 将网络层的分组封装入数据链路层的帧 可以承载任意网络协议的网络层数据 (不仅 IP) 提供向上分用的能力 位流透明: 在数据字段中,必须能携带任意组合的位流 错误检测 (无需校正) 网络层地址协商: 端点间可以学习/配置对方的网络地址
PPP 无需做的工作 无错误校正/恢复 无流量控制 允许失序递交 无需支持多点链路 (e.g., 轮询) 出错恢复、流量控制、分组重新排序 都被赶到更高层去解决了!
字节填充(Byte Stuffing) “数据透明” 要求: 数据字段必须可以包括帧的flag字段的固定字节<01111110> Q: 如何判断这个 <01111110>到底是数据还是flag? 发送方: 在每个<01111110>数据字节后加入一个额外的<01111110> 接收方: 在连续收到两个01111110 时: 丢弃第一个字节,继续数据接收 单个01111110: flag 字节
字节填充方法2 flag 字型出现在发送数据中 flag 字型加上填充字节在传输数据中
点对点协议组成部分 (1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路,也支持面向比特的同步链路。 (2)一个用来建立、配置和测试数据链路的链路控制协议LCP(Link Control Protocol)。通信的双方可协商一些选项。 (3)一套网络控制协议NCP(Network Control Protocol),支持不同的网络层协议,如IP PC机 Modem PSTN Internet Modem Pool 使用TCP/IP的客户进程 路由选择进程
PPP协议的工作原理 1、PC机通过Modem拨号呼叫ISP路由器,路由modem应答,建立了物理连接。 2、PC向路由器发一串LCP包,与路由器协商使用的PPP参数,包括用户认证等(用户名,口令)。 3、协商完,PC机发一串NCP包,配置网络层。例如:要运行TCP/IP协议,需要分配一个IP地址,(动态分配) 4、获得IP地址,PC机立即就成为一个因特网主机,可以发送和接收IP数据包。 5、用户使用完,由NCP负责拆除网络连接,释放IP地址。然后LCP拆除数据链路层连接;最后计算机通知Modem挂断电话,释放物理连接。
PPP协议的帧格式 F是标志字段 A是地址字段 C是控制字段 7E A FF C 03 协议 FCS 信息部分 IP 数据报 首部 尾部 字节数 1 2 不超过1500字节 PPP帧 F是标志字段 A是地址字段 C是控制字段 协议字段 当字段值为0x0021时,表示信息字段就是IP数据报;为0xC021时,表示信息字段是链路控制数据;为0x8021时,表示信息字段是网络控制数据。 FCS是帧校验序列字段 信息字段中出现0x7E时,就要将该字节转变为2字节(0x7D,0x5E);若出现一个0x7D,则转变为2字节(0x7D,0x5D)。
6.3 网际层 网际层是TCP/IP协议簇中最重要的一层。它的主 要功能是网络互联,或者说是解决网络互联中的 各种问题。 6.3.3 IPv4分组格式 6.3.4 网际控制报文协议ICMP 6.3.5 IPv6
6.3.1 IP地址 6.3.1.1 IP地址结构 IP 地址由 “ 网络号 ” + “ 主机号 ” 组成 网络号:用于表示该机所在的网络标识 主机号:用于表示该机在该网络中区别其他主机的标识 应用原则:网络号相同的主机,处于同一网段中;同一网段中,不允许有主机号相同的主机 32 Bits 网络号 主机号
6.3.1.2 IP地址分类 Class A: Class B: Class C: Class D: 组播地址 Class E: 预留今后用 7 24 网络 # 主机 # Class A: 2 14 16 1 网络 # 主机 # Class B: 8 3 21 1 网络 # 主机 # Class C: 1 1 0 1 Class D: 组播地址 1 1 1 1 Class E: 预留今后用
注:网络地址和主机地址为全1和全0的不能分配使用. 6.3.1.3 IP 地址取值范围 地址类型 网络号范围 网络中最大主机数目 A B C D E 1 – 126 128 – 191 192 – 223 224 – 239 240 – 255 16777214 65534 254 / 注:网络地址和主机地址为全1和全0的不能分配使用.
6.3.1.4 子网划分 该方法的前提:网络规模较小,IP地址空间没有全部利用。 因特网规模的急剧增长,对IP地址的需求激增,带来的问题是: (1)IP地址资源的严重匮乏 (2)IP地址资源的严重浪费 解决办法:从主机号部分拿出几位作为子网号 这种在原来IP地址结构的基础上增加一级结构的方法称为子网划分。 该方法的前提:网络规模较小,IP地址空间没有全部利用。
即:申请一个C类网络地址,例如202.127.207.X,将地址最后一个字节的高2位用于子网. 例子:某单位有四个部门,存在四个LAN,主机数为35,40,50,60,均少于C类地址允许的主机数。为这四个LAN申请四个C类IP地址显然有点浪费,此时可以用子网划分的方法. 即:申请一个C类网络地址,例如202.127.207.X,将地址最后一个字节的高2位用于子网. 3 21 8 1 网络 # 主机 # 划分2位用于网络号,剩余6位用于主机号,每个子网可以有26-2=62台主机
子网掩码(Subnet Mask) 子网划分后,如何识别不同的子网? 解决:采用子网掩码来分离网络号和主机号。 子网掩码格式:32比特,网络号(包括子网号)部分全为“1”,主机号部分全为“0”。 子网掩码使用规则 子网掩码既不能作为IP地址使用,也不同单独存在,必须结合IP地址一起使用。 缺省子网掩码:A类:255.0.0.0 B类:255.255.0.0 C类:255.255.255.0 子网掩码.and.IP地址,结果就是该 IP地址的网络号。 主机之间要能够通信,它们必须在同一子网内,否则需要使用路由器(或网关)实现互联。
设计子网 20个子网 每个子网5台主机 C类地址: 201.222.5.0 20个子网 子网占5位 25=32个子网 每个子网5台主机 主机号占3个比特 23-2= 6主机 201.222.5.16 Other subnets 201.222.5.32 201.222.5.48
C类子网举例 IP主机地址: 201.222.5.121 子网掩码: 255.255.255.248 Network Subnet Host 201.222.5.121: 11001001 11011110 00000101 01111 001 11111111 11111111 11111111 11111 000 Subnet: 11001001 11011110 00000101 01111 000 201 222 5 120 子网地址 = 201.222.5.120 主机地址 = 0.0.0.1 范围 = 201.222.5.121–201.222.5.126 广播地址 = 201.222.5.127 子网占5位
练习:子网掩码 Address Subnet Mask Class Subnet 172.16.2.10 10.13.24.20 10.30.36.12 255.255.255.0 255.252.0.0 255.255.248.0
练习:子网掩码 Address Subnet Mask Class Subnet 172.16.2.10 10.13.24.20 10.30.36.12 255.255.255.0 255.252.0.0 255.255.248.0 B A 172.16.2.0 10.12.0.0 10.30.32.0 10.13.24.20 255.252.0.0 11111111 11111100 00000000 00001010 00001101 00001100 00010100 00011000 10 . 12 . 0 . 0
6.3.1.5 超网 随着IP地址使用数量的增加以及子网划分的使用,路由器中的路由表也开始日益膨胀,使用超网是一个好的防止方法. 超网: 将多个网络聚合起来,构成一个单一的网络,具有共同的网络地址前缀. 超网优点: 减少路由表中C类网络的表项减少路由器所维护的路由表的大小. 只为网络分配实际所需的地址数,因而可以更高效地利用那些未使用的地址空间. 例如:如果一个学校需要2000个IP地址,就可以分配8个相连的C类网络,而不需要一个B类网络地址,一个B类地址可以有65000多个主机地址.
超网例子 剑桥大学需要2000个地址,分配194.24.0.0到194.24.7.255,子网掩码255.255.248.0 194.24.0.0 11000010 00011000 00000 000 0000 0000 194.24.7.255 11000010 00011000 00000 111 1111 1111 子网掩码 11111111 11111111 11111 000 0000 0000 紧接着,牛津大学需要4000个地址,不能从194.24.8.0开始分配,而必须分配194.24.16.0到194.24.31.255. 194.24.8.0 11000010 00011000 00001000 00000000 194.24.23.255 11000010 00011000 00010111 00000000 194.24.16.0 11000010 00011000 0001 0000 00000000 194.24.31.255 11000010 00011000 0001 1111 11111111 子网掩码 11111111 11111111 1111 0000 00000000 如果从24.8开始分配,则网络位中先借4位,后借5位,导致网络前缀和掩码均不相同,给网络管理带来很多不便.
网络地址 主机地址 地址类型 全0 本机 网络ID 全1 特定网络直接广播 本地网广播 6.3.1.6 特殊IP地址 3个特殊网络地址段 用于内部网,不能跨网段和路由 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255 回送地址 A类地址127是保留地址,用于本机测试,称为回送地址.其中127.0.0.1有一个接口, 环回接口,用于测试网络协议. 主机全0或者全1的地址 网络地址 主机地址 地址类型 全0 本机 网络ID 全1 特定网络直接广播 本地网广播
6.3.1.7 Internet 域名系统(DNS: Domain Name System) Internet 对每台计算机系统的命名方法称域名系统.计算机的域名由一系列的字母和数字组成,并用点分割成段.如:www.aiai.edu.cn.域名是一个逻辑概念,用于标识主机,并不反映主机所在的物理地点。 Internet域名采用层次结构,其中点是分界符. 如: ….三级域名.二级域名.顶级域名 每一级域名不超过63个字符(不分大小写),完整的域名不超过255个字符。
Internet域名层次结构 顶级域 arpa edu gov int ac us com sina mail 二级域 三级域 根服务器
域名管理 (1)顶级域名 顶级域名由ICANN的有关机构管理。 顶级域名有三大类: 国际域名:国际性组织可以在 int下注册。 国家顶级域名:以英文缩写表示,如:cn、us等。 通用顶级域名:com表示公司企业;net表示网络服务机构 arpa域名:用于地址到名字的转换。
(2)下级域名 各级域名由其上一级域名管理机构管理。 在国家顶级域名下注册的二级域名均由该国家自行确定。比如:中国将二级域名划分为“类别域名”和“行政区域域名”。 类别域名6个:ac科研机构;com企业;edu教育;gov政府;net网络信息中心;org非赢利性组织。 行政区域名34个:如:bj北京,sh上海。 三级域名:在中国,在二级域名edu下申请三级域名由中国教育和科研网网络中心负责;在其他二级域名下申请注册三级域名,则应向 CNNIC申请。
域名 一般含义 COM EDU GOV NET INT ORG 商业机构 教育机构 政府组织 网络机构 国际组织 其他组织 常用的顶级域名 国家域名 两个字母组成。 国家名码 国 家 名 au 澳大利亚(Australia) ca 加拿大(Canada) cn 中国(China) de 德国(Germany) fr 法国(France) jp 日本(Japan) nl 荷兰(Netherlands) no 挪威(Norway) us 美国(United State) uk 英国(United Kingdom) 域名 一般含义 COM EDU GOV NET INT ORG 商业机构 教育机构 政府组织 网络机构 国际组织 其他组织
域名解析 域名系统是一个高效、可靠、通用的联机分布系统,实现名字对地址的映射,这种映射 由名字服务器完成,采用客户/服务器模式。大多数具有Internet连接的组织都运行自己的域名服务器,实现域名翻译成IP地址的功能,并且将自己不知道的域名向根服务器查询。
转换过程 源主机的某个应用进程,将待转换的域名放在DNS请求报文中,以UDP数据报方式发给本地域名服务器。本地域名服务器在查找域名后,将对应的IP地址放在回答报文中,返回给请求进程。若本地域名服务器不能回答该请求,则该域名服务器就暂时成为DNS中的另一个客户,去寻找能够回答该请求的域名服务器,直到找到为止。 优化域名查询:每个域名服务器都维护一个高速缓存,存放着最近使用过的域名以及从何处获得域名的IP地址映射信息的记录。
例子 例如:假设在顶级域名.com下注册了两个公司abc和xyz,各自的本地域名服务器为abc.com和xyz.com,其中abc公司的下属分公司p的一个下属分部门w在另外一个域名服务管辖区,它的授权服务器为w.p.abc.com,现在假设公司xyz下属的一台主机(假设域名为m.xyz.com)要询问域名w.p.abc.com的IP地址是什么。 域名转换过程:两种形式
m 树 根 .edu顶级域名服务器 .com顶级域名服务器 Internet 本地域名服务器 xyz.Com 授权服务器 本地域名服务器 abc xyz Internet 本地域名服务器 xyz.Com 授权服务器 本地域名服务器 abc.Com 授权服务器 abc xyz p q … m … u v w 本地域名服务器 w.p.abc.com 授权服务器 w … …
6.3.2 IP地址解析 协议地址和物理地址 地址解析 地址解析协议
协议地址和物理地址 IP地址将不同的物理地址统一起来,将物理地址隐藏.上层软件使用IP地址标识节点. 只有两台机器知道物理地址时才能进行实际的通信,即通过物理的网络硬件传送数据帧. 分组到达目的物理网络后,发送分组的计算机(路由器)需把目的主机的IP地址映射到它的物理地址上 需经中介路由器的发送,发送方必须将中介路由器的IP地址映射到它的物理地址上. 地址解析协议(address resolution protocol):实现IP地址到硬件地址的转换过程.
IP地址到物理地址映射的方法 表格方式 --在主机中建立IP地址—物理地址的映射表 --需人工建立,人工维护 直接映射 --需人工建立,人工维护 直接映射 --对可自由配置而且短的物理地址,编入IP地址码中 --PA=f(IA) 动态交换 需要解析一个IP地址时,计算机通过网络发出一个请求信息,之后收到一个应答.应答可以是专门的服务器发送的,也可以是目的计算机发送的(该种情况下网络上的每台计算机都参与地址解析工作).
ARP的基本思想
RARP的基本思想 RARP:实现MAC地址到IP地址的转换.
ARP 高速缓存 ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。 可以用a r p 命令来检查ARP 高速缓存。 ARP 代理 ARP请求从一个网络发往另一个网络的主机,路由器回答该请求,这个过程称作ARP代理.两台主机必须有相同的网络号. 免费ARP 主机发送ARP查找自己的IP地址,通常在系统引导期进行接口配置时发生.
图6.6 地址解析实例
6.3.3 IPv4分组格式 在TCP/IP的标准中,各种数据格式常常以32bit(4字节)为单位来描述。
首部格式分析 1. 版本 版本字段站4 bit,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前使用的IP协议版本为4。 1. 版本 版本字段站4 bit,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前使用的IP协议版本为4。 2. 首部长度 首部长度字段占4bit,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后一个填充字段加以填充。 3. 服务类型 服务类型字段共8bit长,前三个比特表示优先级,第4个比特是D比特,表示要求有更低的时延。第5个比特是T比特,表示要求有更高的吞吐量。第6个比特是R比特,表示要求有更高的可靠性,即在数据报传的过程中,被结点交换机丢弃的概率要更小些。第7个比特是C比特,是新增加的,表示要求选择价格更低廉的路由。
4. 总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16bit,因此数据报的最大长度为65535字节。 5. 标识 每个报文的标识,字段长16bit,其意义是为了使分段后的各数据报段最后能准确地重装成为原来的数据报。 6. 标志 标志字段占3bit,目前只有前两个比特有意义。标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面还有分段的数据报。MF=0表示这已是若干数据报段中的最后一个。标志字段中间的一位记为DF(Don‘t Fragment)。只有当DF=0时才允许分段。 7. 段偏移 段偏移字段是13bit,以8个字节为单位。最大偏移 213 X 8 8. 协议 协议字段占8bit,它指出此数据携带的运输层数据是使用何种协议,以便目的主机的IP层知道应将此数据报上交给哪个进程。
IP报文分段原因 每一种硬件技术都规定了一帧所能携带的最大数据量,即最大传输单元MTU,网络硬件在设计上不能接受或传输数据量大于MTU的帧.因此有了IP报文分段.
分片与重组 数据报分段后,每段都作为独立的数据包传送,一直等到到达目的主机后才对它们重组. 缺点:在通过小MTU时不重组,造成在以后的传输中传送小报文,效率下降;丢失一个分段就不能重组报文. 优点:数据报分段独立选路;不要求路由器对分片存储或重组.
IP首部可变部分中的任选代码 IP首部的可变部分就是一个任选字段,用来支持排错、测量以及安全等措施,此字段的长度可变,从一个字节到40个字节不等,取决于所选择的项目。但其第一个字节的格式为任选代码所示.
任选代码共有三个字段 第一个字段是复制字段,占1bit,它的作用是控制网络中的路由器在将数据报进行分段时所作的选择。当复制字段为1时,必须将此任选字段复制到每一个数据报段。而当复制字段为0时,就只复制到第一个数据报段上。 第二个字段是任选类别字段,2bit,目前只有两种可供选用 。 第三个字段是任选编号,占5个字节,它指出任选是做什么用的。
6.3.4 网际控制报文协议ICMP 虽然IP数据报的传送不能保证不丢失,但网络层对数据报的传送还有一定的质量保证功能,这就是使用ICMP 类型取值范围常用的0---18,不同的类型有不同的代码. ICMP报文的格式
ICMP报文格式 。类型:用于指明消息类型 。代码:用来进一步说明有些 消息 。检验和:对ICMP消息进行校验 。数据:包含出错数据报头及该 数据报前64位数据
ICMP差错报文 ICMP控制报文 ICMP测试报文 ICMP报文分类 目的不可达报告 16种不可达 路由器向源端发送 目的不可达报告 16种不可达 路由器向源端发送 超时报告 TTL和重组 路由器向源端发送 参数出错报告 报文头中的参数错误或者缺少某选项 ICMP控制报文 源抑制报文 拥塞控制 路由器向源端发送 重定向报文 路由控制 路由器向源端发送 ICMP测试报文 请求与应答报文 测试网络可达性 时间戳请求与应答 初始 接收 发送 三个时戳 地址掩码请求 路由器询问
ICMP 报文典型应用(1) B可达否? 可以. A B ICMP Echo Request ICMP Echo Reply Ping 程序
ICMP 报文典型应用(2) Traceroute 构造一个通往给定目的地的路由器列表. Traceroute程序发送一份TTL字段为1的IP数据报给目的主机。处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份超时ICMP报文。包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址,这样就得到了该路径中的第一个路由器的地址。然后Traceroute程序发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。 用ICMP发现路径MTU.设置数据报不能被分段的标志 Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误的ICMP报文。这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。
6.3.5 IPv6 IPv6及其目标 IPv6分组结构 IPv6地址 从IPv4向IPv 6的过渡
为什么使用IPv6 IPv4所面临的问题 IPv4的地址严重匮乏 路由表急剧膨胀 网络安全 暂时的解决方法 NAT CIDR
IPv6基本特征 巨大的地址空间: 简化的报文头部:减少了报头处理时间 更好的对服务质量(QoS)的支持:流标签 改善的路由性能:层次化的地址分配便于实现路由聚合,进而减少路由表项 内嵌的安全机制:IPSec 扩展头部的灵活性:
IPv6 首部
首部格式 版本号(4位) 优先级(4位):当一个源发出多个IP分组时,该段可以为每个IP分组指定一个独立的传递和投递优先级。 载荷长度(16位) :载荷长度表明除IPv 6报头外其他部分(扩展头和传输层PDU)的长度,单位为字节数。 下一个头(8位) :下一个头是紧随该IPv 6报头的扩展头的类型。 跳段限制(8位) :跳段限制相当于IPv 4的生存时间段 源地址(128位)和目的地址(128位)
IPv6扩展头 按段逐级处理的选项头,定义在每段都要予以处理的特别选项 路由选择头,提供扩展的路由选择信息,相当于IPv4的源路由选择 分片头,包含分割与重组信息 身份验证头,提供IP分组完整性和身份验证 加密安全载荷头,提供保密性 目的地选项头,包含由目的节点查看的可选信息
三种基本IPv 6地址类型 单投点地址,标识单个接口,IP分组将选择一条最短路径到达目的接口
IPv6地址的冒分十六进制表示 一个128位的IPv6地址,即使用点分十进制写,也是相当长的。例如: 10.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255 为了减少地址的书写长度,便于记忆,IPv6的设计者们建议使用一种更紧凑的书写格式——冒分十六进制表示法(colon hexadecimal notation)。这样,上述地址就可以记为: 69DC:8864:FFFF:FFF:0:1280:8C0A:FFFF
地址配置方法 手工配置 有状态地址自动配置(DHCPv6) 无状态地址自动配置 网络接口接收路由器宣告的全局地址前缀,再结合接口ID得到一个可聚集全局单播地址
从IPv4向IPv 6的过渡 并不是所有的路由器都能够在同一时刻升级 两种建议的途径: 不能采用 “易帜日”的办法 双栈(Dual Stack): 某些具有双栈 (v6, v4)的路由器 可以将两种地址格式进行 “翻译-translate” 隧道(Tunneling): IPv6可以作为IPv4的负荷(payload)通过IPv4的路由器
双栈(Dual Stack)方式
隧道(Tunneling)
ICMPv6: ICMP的新版本 新增报文类型, e.g. “Packet Too Big” 组播管理功能
IPv6中国的机会 更多的地址:IPv6的地址长度和分配方案以一个世界性的网络为出发点,中国将会分配到足够的IPv6地址。 后发优势:IPv4地址缺乏、庞大的人口基数和互联网的迅速扩张使中国更容易首先接受IPv6,这将转化为一种优势:IPv6将首先在中国广泛应用,从而推动IPv6研究、产品开发和应用的全面进步,使中国在下一代国际互联网的竞争中处于有利位置。
6.4 IP路由 6.4.1 路由器工作概述 6.4.2 路由信息协议RIP 6.4.3 开放式最短路优先协议OSPF 6.4.4边界网关协议BGP
路由选择步骤 搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口 搜索路由表,寻找能与目的网络号相匹配的表目。目的网络上的所有主机都可以通过这个表目来处理。 搜索路由表,寻找标为“默认”(Default)的表目 。如果找到,则把报文发送给该表目指定的下一站路由器。 若上述步骤没成功,则该数据报就不能被传送。 “主机不可达”或“网络不可达”。
Internet 路由概述 全球因特网是由诸多 Autonomous Systems (AS)互联而成: 两层路由选择: 小型自治系统(Stub AS): 中小型企业 分区自治系统(Multihomed AS):大型企业 (非跨越的) 跨越式自治系统(Transit AS): 两层路由选择: Intra-AS: Inter-AS:
R 核心主干网 AS IGP协议 EGP协议 核心网关 Internet 核心主干结构
Intra-AS路由选择 也称为内部网关协议 Interior Gateway Protocols (IGP) 最常用的 IGP有: RIP: Routing Information Protocol(路由选择信息协议) OSPF: Open Shortest Path First(开放式最短路径优先(协议)) IGRP: Interior Gateway Routing Protocol (内部网关路由选择协议,Cisco产权)
因特网inter-AS路由选择: EGP EGP (External Gateway Protocol,外部网关协议): 边界网关协议BGP 事实上的标准 路径向量(Path Vector) 协议: 与距离向量协议类似 每个边界网关(Border Gateway)向其对等的相邻实体(peers)广播通往信宿的整条路经 (I.e, 一系列 ASs) E.g., 网关 X可以发送从它通往信宿Z的路经: Path (X,Z) = X,Y1,Y2,Y3,…,Z
为什么 Intra- 和 Inter-AS路由选择不同 ? 策略: Inter-AS: 网管需要控制自己信息流通的路经, 还有谁能路经并通过其管辖的网络. Intra-AS: 单一的管理体制, 无需选择策略 规模: 层次型路由选择可以缩小路由表, 并减少更新流量 性能: Intra-AS: 将注意力集中在性能上 Inter-AS: 策略的考虑要超过对性能的要求
6.4.2 路由信息协议RIP RIP(Routing Information Protocol)是一种内部协议网关。 RIP 协议使用 V-D(vector-distance)算法, RIP协议的最大可用跳步数为15,路由更新的时间间隔为30s . 由于RIP 定期自动进行路由更新,且配置简单,使之成为了小型网络首选的动态路由协议。
向量--距离算法 条件:让每个路由器维护一张向量表,表中给出每个目的地已知的最佳距离和线路 假定:每个路由器都知道自己到相邻路由器的路径代价(跳步数或延迟) 工作过程:相邻路由器定期交换路由向量表,每个路由器根据相邻路由器报告的路由信息更新自己的路由向量表
X Z A Y t r Xi Zi 邻居结点X发来的表中,X到路由器A的距离为Xi,Y到X的距离为t,则本路由器经过X到A的距离为Xi+t。根据不同邻居发来的信息,计算到A的距离,并取最小值,更新本路由器的路由表.
A B C D E 1 1 2 2 3 1 2 3 1 4 好消息传播快 V-D路由算法的慢收敛问题 初始值 第1次交换后 第2次交换后 8 初始值 8 1 第1次交换后 8 1 2 第2次交换后 8 2 3 1 第3次交换后 2 3 1 4 第4次交换后 好消息传播快
… A B C D E 2 3 1 4 坏消息传播慢 初始值 3 2 3 4 第1次交换后 3 4 3 4 第2次交换后 3 2 3 4 第1次交换后 3 4 3 4 第2次交换后 5 4 5 4 第3次交换后 5 6 5 6 第4次交换后 7 6 7 6 第5次交换后 … 8 坏消息传播慢
慢收敛问题的解决办法 最大距离限制:最大距离16 水平分割法 : 从某个端口发送的报文不能包含从该端口获得的路由信息 保持法: 一定时间内不接受关于无法到达网络的任何路由信息 毒性逆转法:崩溃路由距离设为无限长
RIP:请求路由信息格式 Route request 6*4=24 byte 32bit
RIP:广播路由信息格式 Route reply 6*4=24 byte 32bit
RIP改进 子网选路 RIP2 对相同开销路由的处理 对过时路由的处理 慢收敛问题的处理
RIP建立路由表的过程举例
6.4.3 OSPF协议 针对RIP的缺点 开发了 开放最短路径优先协议(OSPF) 工作原理 网络规模小 坏消息传播慢,收敛时间长 开发了 开放最短路径优先协议(OSPF) 工作原理 采用L-S算法,向所有路由器发送信息采用泛洪法,即路由器通过所有端口向所有相邻路由器发送信息,而每一相邻路由器又再将该信息发往其所有相邻的路由器,最终,所有的路由器都得到了该信息的一个副本。 OSPF所做的工作,就是用网络有向拓扑图代表实际的网络,并计算从每个路由器到其他路由器的最佳路径
L-S路由算法 链路-状态路由算法 基本工作过程: 1、发现邻居结点(Hello) 2、测量线路开销(echo) 3、构造链路-状态报文 4、广播链路-状态报文 5、计算新路由
OSPF区域 OSPF是在一个AS内部运行的路由协议。 一个区域包含网络或路由器的一个逻辑分组,通常对应地理边界或者行政边界。 由于Internet中许多AS很庞大,不便于管理,OSPF允许将每一个AS分为一些编号区域(area),用32bit的区域标识符RID(area ID)标识 。 一个区域包含网络或路由器的一个逻辑分组,通常对应地理边界或者行政边界。 同一区域内的各路由器具有相同的链路状态数据库,并运行相同的最短路径算法。 主干区域 0.0.0.0 连接下层区域
路由器的分类 (1)内部路由器:这类路由器连接的网络都在一个区域内。 (2)区域边界路由器ABR(Area Border Router):连接两个或多个区域的路由器。 (3)自治系统边界路由器ASBR(AS Border Router):连接AS的路由器。 (4)主干路由器:主干中的路由器
链路(网络)类型 (1)点到点链路(或称点对点网络) (2)过渡链路(或称多路访问网络) (3)残桩链路 (4)虚拟链路 点到点链路直接连接两个路由器,中间没有其他主机或路由器。 (2)过渡链路(或称多路访问网络) 过渡链路是一种连接有若干个路由器的网络。数据可以从任何一个路由器进入网络,并从任何另一个路由器离开网络。这种链路又可以分为两种: 广播多路访问网络网络:支持与两个以上的路由器连接,并可以同时把一个报文发送到所有与之连接的路由器。 非广播多路访问网络:支持与两个以上的路由器连接,但无广播能力。其特例是点到多点网络。 (3)残桩链路 残桩链路是只连接到一个路由器的网络。数据分组通过这个单一路由器进入网络,并通过这个路由器离开该网络。 (4)虚拟链路 虚拟链路是当两个路由器之间的链路断开时管理员在它们之间使用一条更长的路径(可能经过几个路由器)创建的链路。
LSA(链路状态公告)及其类型 LSA包含5种信息类型: · 路由器LSA:由OSPF路由器产生,描述区域内路由器接口(链路)类型、地址、掩码等信息。 · 网络LSA:在多路访问网络中列出与指定路由器(DR)连接的路由器ID。 · 网络汇总LSA:描述到其他区域中的网络的路由信息。 · ASBR汇总LSA:描述到达AS边界路由器(ASBR)的路由信息。 · AS外部LSA:由ASBR产生,描述到达OSPF网络外部目的地的路由信息。
LSA年龄 选 项 LSA类型 LSA校验和 长 度 广播路由器ID LS序列号 LSA标志 图6.19 LSA头部格式
LSA扩散 某个路由器产生一个LSA或者修改一个LSA,它就要把这一变化传送到网络上。这一传送过程称为扩散。 一个路由器把LSA转发到了邻接路由器,邻接路由器接收到LSA后,一方面要将它们保存到链路状态数据库中,一方面要继续将LSA传送到它们的邻接路由器。 这种保存和转发一直要进行到所有的路由器都收到此更新。
Dijkstra算法 ① 以本地节点(路由器)作为树根; ② 将代价0指派给该节点,并使之成为确定节点; ③ 重复进行下列步骤,对最后一个确定节点的每一个相邻节点进行检查,直到找到最短路径: · 给每一个节点指派一个累计代价,并使之成为试验的; · 在试验集合中寻找具有最小累计代价的节点,使其成为确定的。
邻接路由器 属于相同的OSPF区域的两个相邻路由器(neighbor router),在同步了它们的拓扑结构数据库后,就可以成为邻接路由器。 OSPF通过与邻接路由器交换链路状态信息。为了完成信息交换,OSPF定义了如下一些活动: · 发现邻居; · 选择一个指定路由器; · 建立邻接关系; · 同步数据库。
OSPF报文类型 报文类型 描 述 Hello报文 路由器启动时,用于发现邻接路由器 数据库描述报文 描 述 Hello报文 路由器启动时,用于发现邻接路由器 数据库描述报文 出现新线路时,给出报文发送者拥有的所有链路状态项序列号。接收者据此判定谁的数据最新 链路状态请求报文 路由器间相互发送该报文以从邻接路由器要求获取对应的链路状态信息,确定谁的数据最新 链路状态更新报文 用洪泛法向全网发送更新链路数据库状态; 链路状态确认报文 对链路更新报文的确认
OSPF工作过程 建立邻接关系 同步LSA数据库 计算路由表 一个路由器运行OSPF协议后,就试图与相邻路由器建立邻接关系。它定期地向各个网络接口(包括虚拟网络接口)发送Hello报文。 同步LSA数据库 计算路由表 根据所在区域的数据库,利用本区域内地路由器LSA和网络LSA,计算路由器到本区域内各网络的路由。 根据ABR向本区域散发的网络综合LSA,计算路由器到本AS内其他区域内各子网的可达信息。 根据ASBR综合LSA和外部LSA,计算路由器到AS外部的网络的可达性。
两台邻接路由器间LSA数据库的同步过程 A B 建立邻接关系 相互发送数据库描述分组 发现对方新的 LSA 链路状态请求分组 将新 LSA 头部放入自己的 LSA 请求表中 LSA 更新分组 检查 将收到的 LSA 从 LSA 请求表中删除 LSA 确认分组 LSA 更新分组 其他邻接路由器 两台邻接路由器间LSA数据库的同步过程
OSPF与RIP的区别 只有当链路状态发生变化时,OSPF才向所有路由器发送信息,而RIP,不管网络拓扑是否变化,路由器之间都定期的交换路由表信息。 OSPF交换的是链路状态,RIP交换的是距离值。
6.4.4边界网关协议BGP BGP(Border Gateway Protocol)是一种外部网关协议 自治系统之间交换路由信息 Internet是BGP处理多个ISP间路由的实例 它基于路径向量路由选择 每个边界网关(Border Gateway)向其对等的相邻实体(peers)广播通往信宿的整条路经 E.g., 网关 X可以发送从它通往信宿Z的路经: Path (X,Z) = X,Y1,Y2,Y3,…,Z
BGP网络结构 SGP将运行BGP的路由器称为BGP说话者(BGP speaker) BGP在一对邻接BGP说话者之间交换路由信息。 一对邻接的BGP称为BGP邻居(BGP neighbor) BGP邻居分为如下两种类型: · IBGP(内部BGP邻居):位于同一AS中的一对BGP邻居; EBGP(外部BGP邻居):位于不同AS中的一对BGP邻居。
AS 1 AS 2 IBGP EBGP AS 3 AS X OSPF/RIP BGP说话者 BGP网络的组成
流量类型和AS类型 BGP定义了两种类型的流量:本地流量和传输流量。 本地流量是在AS中发出、在AS中终止的流量。 · Sub AS:只与另一个AS连接,并只承载本地流量。 · 多穴AS:与一个或两个AS连接,但被配置成不转发传输流量。 · 传输AS:与一个或两个AS连接,并被配置成承载本地流量和传输流量。 BGP在处理路由时,使用AS号和AS路径 : · AS号:惟一标识一个AS的一个16bit串。 · AS路径:描述通过网络路由的AS号列表。
路由策略 BGP的路由策略分为三类 : 第一类策略:控制从本AS到其他AS的路径。例如,制定策略限制本AS发出的数据不能经过某些中间自治系统
报文类型 有效的BGP报文有如下一些: OPEN(打开)报文 KEEPALIVE(保活)报文 UPDATE(更新)报文 NOTIFICATION(错误条件通知)报文
6.4.5 基于路由器的防火墙技术 防火墙有如下功能: 它可以允许或禁止某一类具体IP地址的访问, 它也可以接收或拒绝某一类具体的应用 包过滤(Packet Filtering)防火墙技术 包过滤器逐一审查每份数据包并判断它是否与包过滤规则相匹配。 IP包头和TCP包头或UDP包头 包括: IP源,目的地址; TCP/UDP源,目的端口;封装协议;包输入输接口;TCP链路状态
6.5.1 传输控制协议TCP TCP协议(Transmission Control Protocol)功能: 为应用进程提供可靠的、端到端的、面向连接的字节流通信的协议.即向高层用户屏 蔽通信子网的细节,提供通用的传输接口 利用网络层IP协议提供的不可靠的分组传输服务,解决分组的重传和排序问题. 套接字(SOCKET)概念 套接字标识连接的端点,由IP地址 + 端口号 , 端口号是一个16位的标志符,最大到65535。 一对套接字可唯一确定网络中连接的双方.
TCP/UDP端口号的分配方法 一种称为统一分配(Unioversal Assignment),是静态分配方式,由中央管理机构分配端口号。这些端口号要求所有的软件在设计时都要遵从。所以这些端口常被称为众所周知端口(Well-known Port Assignment)。 自由端口号是局部的,由本地机随机地分配,用于区别一台主机中的多个进程。当一个进程发生时,本地主机的操作系统即给该进程分配一个自由端口号以与本主机上的其他进程相区别
目的端口Destination port (16) 确认号Acknowledgement number (32) 6.5.1.1 TCP的报文格式 Bit 0 Bit 15 Bit 16 Bit 31 源端口Source port (16) 目的端口Destination port (16) 序列号Sequence number (32) 确认号Acknowledgement number (32) 20 Header length (4) Reserved (6) Code bits (6) 窗口Window (16) 校验和Checksum (16) 紧急数据指针Urgent (16) 选项 Options Data (varies)
TCP头部 源端口(Source Port):呼叫端口号 目的端口(Destination Port):被叫端口号 固定部分:20字节 源端口(Source Port):呼叫端口号 目的端口(Destination Port):被叫端口号 序号(Sequence Number):标记数据段的顺序 确认号(Acknowledgment Number):下一个段的序号 报头长度(HLEN):报头的字节数 保留域(Reserved):为0 编码位(Code Bits):控制功能(会话的建立和终止) ,见书P89页 窗口(Window):发送的字节数 校验和(Checksum):报头和数据字段的校验和 紧急指针(Urgent Pointer):和序号字段的值相加表示紧急数据的最后一个字节的序号. 选项(Option):参数的协商,最常见的是最长报文大小,一般在第一个报文段指出. 还有窗口扩大因子,实现对16位窗口的扩大. 数据(Data): 数据部分是可选的,如连接的建立和终止,及一些超时的处理
TCP的数据编号与确认 TCP协议是面向字节的,每个字节对应一个序号 TCP报文段中序号数值表示该报文段中的数据部分的第一个字节的序号
6.5.1.2 TCP的连接管理 建立连接 数据传送 释放连接 服务器:LISTEN,ACCEPT 客户机:CONNECT 三次握手( three-way handshake) 数据传送 释放连接 CLOSE 终止一个连接需要经过4次握手. 半打开:一方已经关闭或者异常终止而另一方却不知道,这种TCP连接称为半打开的。如一方突然掉电等情况。 半关闭:TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力,这就是半关闭。
TCP三次握手/建立连接 1 2 3 发送 SYN (seq=100 ctl=SYN) SYN 收到 (seq=100 ) 发送 SYN 主机 A 主机 B 1 发送 SYN (seq=100 ctl=SYN) SYN 收到 (seq=100 ) 2 发送 SYN (seq=300 ack=101 ctl=syn,ack) 发送 ack (ack=301 ctl=ack) 3 SYN 收到 (ack=301 ) 连接建立起来 (seq=101 ctl= Data)
6.5.1.3 TCP的流量与拥塞控制 TCP使用滑动窗口机制来进行流量控制。 当一个连接建立时,连接的每一端分配一个缓冲区来保存输入的数据。 当数据到达时,接收方发送确认ACK,并包含一个窗口通告(剩余的缓冲区空间的数量叫窗口)。 如果发送方收到一个零窗口通告,将停止发送,直到收到一个正的窗口通告。 窗口大小的单位是字节。
发送窗口大小的确定 发送窗口的大小=Min(通知窗口,拥塞窗口) 通知窗口:接收端根据其接收能力所许诺的窗口值,是来自接收端的流量控制。 拥塞窗口:是发送端根据网络拥塞情况所决定的窗口值,是来自发送端的流量控制。 当接收方窗口为0后应用层取出小部分数据将产生一个比较小的窗口通告,使得对方发送一些小的数据段,即糊涂窗口综合症,效益很低。可以通过延迟发送窗口通告或发送方延迟发送数据来解决。 使用窗口机制以后,提高了网络的吞吐量。
TCP滑动窗口 发送端 接收端 窗口尺寸 = 3 发送序号为1 窗口尺寸 = 3 发送序号为2 窗口尺寸 = 3 发送序号为3 窗口尺寸 =2 确认号为1 窗口尺寸 =2 确认号为2 窗口尺寸 =2 确认号为3 窗口尺寸 = 3 发送序号为4 窗口尺寸 = 3 发送序号为5 窗口尺寸 =2 确认号为4 窗口尺寸 =2 确认号为5
TCP拥塞控制 拥塞原因 接收方的处理能力不足 接收容器小 网络不够通畅 传输管道细 解决办法 加载到网络的负载大于其自身的能力,即 接收方的处理能力不足 接收容器小 网络不够通畅 传输管道细 解决办法 降低发送方的数据传输速率, 即前面流量控制中的发送方保持两个窗口,接收窗口和拥塞窗口,取两者的最小值为发送的字节数. 典型的慢启动算法.
拥塞窗口二进制指数增长至接收窗口大小或超时 慢速启动算法 建立连接初始化 拥塞窗口 MaxSegL 发送数据 MaxSegL 超时前收到确认 拥塞窗口 2MaxSegL 发送数据 超时 2MaxSegL 超时前收到确认 拥塞窗口 2nMaxSegL 发送数据 超时 2nMaxSegL 拥塞窗口二进制指数增长至接收窗口大小或超时
6.5.1.4 TCP的定时器机制 对每个连接,TCP管理4个不同的定时器: 超时前收到确认,关闭计时器 超时未收到确认,重发该数据段 间隔过短,引起不必要的数据重传,间隔过长,网络性能下降 解决办法:动态调整重发超时时间间隔 坚持定时器(用于解决死锁)周期性地向接收方查询窗口大小,直到窗口扩大或者连接被终止。 保活定时器(用于检测连接长时间闲置)主要在服务器端检测半打开的连接。 2MSL 定时器(连接处于TIME-WAIT 状态的时间) 2倍分组TTL,确保连接断开后分组消失 MSL 报文最大生存时间(Maximum Segment Lifetime)
6.5.2 UDP协议 UDP是一个无连接的协议,在发送时无须建立连接,仅仅向应用程序提供了一种发送封装的原始IP数据报的方法。
UDP 特点 没有窗口技术,不对发送的数据进行缓冲 为应用进程提供无连接的数据传输服务 由应用层协议保证可靠性 使用UDP的协议:TFTP(69),SNMP(161),DNS(53) 适用场合 1. 发送小尺寸数据(如:对DNS服务器进行IP地址查询时,若进行连接之后再进行数据传输就会降低效率,这时就使用UDP。) 2. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络) 3. 适合于广播/多播式通信中。
UDP头部 UDP源端口 UDP宿端口 UDP长度 UDP校验和 源IP地址 宿IP地址 00000000 UDP长度 32bit 最小值为8 全“0”:没有计算; 全“1”:校验和为0。 UDP伪头部 UDP检验和是可选的,而TCP的检验和是必需的. 源IP地址 宿IP地址 00000000 UDP长度 32bit 协议=17
UDP数据报的封装 UDP数据报 应用数据 UDP头部 应用数据 IP头部 UDP头部 应用数据 帧 IP头部 UDP头部 应用数据
端口号 关键字 UNIX关键字 说明 UDP TCP 7 ECHO echo 回显 Y 13 DAYTIME daytime 19 CHARACTER GENERATOR Character generator 20 FTP_DATA ftp_data 文件传输协议(数据) 21 FTP_CONTRAL ftp 文件传输协议(命令) 22 SSH ssh 安全命令解释程序 23 TELNET telnet 远程连接 25 SMTP smtp 简单邮件传输协议 37 TIME time 时间 42 NAMESERVER name 主机名服务器 43 NICNAME whois 找人 53 DOMAIN nameserver DNS(域名服务器) 69 TFTP tftp 简单文件传输协议 70 GOPHER gopher Gopher 79 FINGER finger Finger 80 WWW www WWW 服务器 101 HOSTNAME hostname NIC主机名服务器 103 X400 x400 X.400邮件服务 104 X400_SND x400_snd X.400邮件发送 110 POP3 pop3 邮局协议版本3 111 RPC rpc 远程过程调用 119 NNTP nntp USENET新闻传输协议 123 NTP ntp 网络时间协议 161 SNMP snmp 简单网络管理协议 179 BGP 边界网关协议 520 RIP 路由信息协议