660 likes | 879 Views
第 2 讲 TCPIP 深入理解. IP 网络互联基本概念 IP 机制的理解 TCP 机制的理解 应用层协议简介. 1 IP 网络互联. 1.1 ISO-OSI RM 1.2 TCPIP 协议体系 1.3 网络互联. 1.1 ISO-OSI RM. 应用层: 做什么? 处理应用进程之间所发送和接收的数据中包含的信息内容。. 表示层: 对方看起来像什么? 在两个应用层之间的传输过程中负责数据的表示语法. 会话层:轮 到哪方传输,从何处开始传输 ? 负责建立(或清除)在两个通信的表示层之间的通信通道,包括交互管理、同步,异常报告。.
E N D
第2讲 TCPIP深入理解 IP网络互联基本概念 IP机制的理解 TCP机制的理解 应用层协议简介
1 IP网络互联 1.1 ISO-OSI RM 1.2 TCPIP协议体系 1.3 网络互联
1.1 ISO-OSI RM 应用层:做什么? 处理应用进程之间所发送和接收的数据中包含的信息内容。 表示层:对方看起来像什么? 在两个应用层之间的传输过程中负责数据的表示语法 会话层:轮到哪方传输,从何处开始传输 ? 负责建立(或清除)在两个通信的表示层之间的通信通道,包括交互管理、同步,异常报告。 传输层:对方在何处? 为会话层提供与下面网络无关的可靠消息传送机制 网络层:数据如何到达对方? 路由、转发,拥塞控制 数据链路层:每一步该怎么走? 成帧,差错控制、流量控制,物理寻址,媒体访问控制 物理层:信息实际如何传送? 缆线,信号的编码,网络接插件的电、机械接口
数据 数据单元 数据单元 报文 分组 帧 比特序列 数据的实际传递过程
1.2 TCP/IP协议体系 OSI层次划分 TCP/IP层次划分 TCP/IP协议族中协议示例 应用层 表示层 应用层 HTTP FTP DNS SNMP TELNET …… …… 会话层 传输层 传输层 TCP UDP 网络层 网络层 ICMP ARP IP 链路层 物理层 数据链路层 Ethernet TokenRing FDDI WANS …
相同点: 1.都是基于独立的协议栈概念。 2.两者都有功能相似的应用层、传输层、网络层。 不同点: 1.在OSI模型中,严格地定义了服务、接口、协议;在TCP/IP模型中,并没有严格区分服务、接口与协议。 2.OSI模型支持非连接和面向连接的网络层通信,但在传输层只支持面向连接的通信;TCP/IP模型只支持非连接的网络层通信,但在传输层有支持非连接和面向连接的两种协议可供用户选择。 3.TCP/IP模型中不区分、甚至不提起物理层和数据链路层。
1.3 网络互联 网络互联设备用于局域网(LAN)的网段,它们有四种主要的类型: OSI层次 互连设备 作 用 物理层 中继器 在电缆段间复制比特 数据链路层 网桥 在LAN之间存储转发帧 网络层 路由器 在不同的网络间存储转发分组 传输层及以上 网关 提供不同体系间互连接口
2 数据链路层 2.1 数据链路层通信 2.2 ARP/RARP • 在TCP/IP协议族中,链路层主要有三个目的: • 为IP模块发送和接收IP数据报; • 为ARP模块发送ARP请求和接收ARP应答; • 为RARP发送RARP请求和接收RARP应答。
2.1 数据链路层通信 两台计算机通过一条链路进行通信的简化模型
2.2 ARP/RARP ARP/RARP 实现IP 地址与网络物理地址的映射: IP 地址统一了网际通信的地址形式(IP 层以上的软件都使用 IP 地址),隐藏了原有的物理网络地址;但在网络内部,IP 层通信的实现依赖于底层的物理网络技术,底层必然还要使用物理地址。为了保证通信的一致性,必须要建立各结点 IP 地址与网络物理地址之间的映射,称为地址解析(resolution)。 地址解析协议(ARP-Address Resolution Protocol)用于 IP 地址到物理地址的映射; 逆向地址解析协议(RARP – Reverse Address Resolution Protocol)用于物理地址到 IP 地址的映射。地址解析是在物理地址上加的一层地址机制,通常被看作是 IP 层以下的功能,可认为是物理网络的一部分。
IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:IP地址和MAC地址相同点是它们都唯一,不同的特点主要有: 1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。2. 长度不同。IP地址为32位,MAC地址为48位。3. 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
ARP/RARP 的报文格式 ARP/RARP 的报文分组格式是统一的 ARP/RARP 分组封装在物理网络的数据帧中传送 2 2 1 1 2 6 4 6 4 硬件 类型 协议 类型 硬件地址长度 协议地址长度 操 作 源硬件 地址 源 IP 地址 目的硬件 地址 目的IP 地址 1:ARP 请求 2:ARP 应答 3:RARP请求 4:RARP应答 0x0800 IP数据报文 2字节 0x0806 ARP请求/应答 2字节 0x0835 RARP请求/应答 2字节
以太网(Ethernet) • 以太网采用带冲突检测的载波监听多路访问协议(CSMA/CD,用于半双工模式,广泛应用于LAN中的MAC子层),传输介质为同轴电缆 • 以太网是一种总线型网络。所有站点都连接到总线上,可以使用中心集线器(HUB) • 交换式以太网
PPP协议(Point-to-Point Protocol) • SLIP(串行线路IP协议):不支持在连接过程中的动态IP地址分配;无协议类型字段;无校验字段,故无法检测传输差错。 • PPP协议:组帧方式+链路控制协议LCP+一组网络控制协议NCPs • PPP在链路上具有差错检验的功能。 • SLIP曾一度是拨号上网的主要工具,但由于其不足之处,所以很快被PPP协议所代替。
3 网络层协议 3.1 IP 3.2 ICMP 3.3 路由协议
3.1 IP IP的功能 分组的传输:使用IP分组格式,按照IP地址进行传输差错处理与控制 路由的选择和维护:根据IP地址,使用路由协议进行路由的选择和维护。 IP 的特点 IP 层属于通信子网,位于通信子网的最高层。 提供无连接的分组传输:简单、不能保证传输的可靠性 IP 协议是点到点的:对等 IP 层实体间的通信不经过其它结点
IP地址: IP地址IP 协议定义的,对每个物理终端来说在全网唯一的通用 32 位地址格式 ,IP 地址解决互联网络(Internet)中的寻址问题;IP 地址在网络层上屏蔽了异种网络之间物理地址等特性的差异,利于网间通信的实现;IP 地址的分配是在网络信息中心(NIC)的统一的管理下进行
IP 地址的结构 Internet 网络号 主机号 网络 网络 网络 子网 子网 主机 主机 主机 主机 主机 IP 地址的概念结构 Internet的概念层次
IP 分组的构成:IP包头 +IP数据 版本 V 头长HL 服务类型 TOS 总长度 TLEN 标识符 Identification 标志Flag 分片偏移量 Offset 生存时间 TTL 协议 Protocol 分组头校验和 Checksum 源 IP 地址 Source 目的 IP 地址 Destination IP 选项 Option 填充 Pad 数据 :
最大传输单元(MTU - maximum transfer unit) 各种物理网络技术都限制了一个物理帧的大小,这个限值被称为最大传输单元;不同物理网络技术的 MTU 不同。 对于一个网络而言,其 MTU 值是由其采用的物理技术决定的,而且通常保持不变
IP分组的分片问题: 在小 MTU 的网络上将较大分组分割后进行传输称为IP包分片 IP头中有3个单元与分片有关: ID(Identification):该分组的唯一标识,以便进行分片的重组 MF(More Fragment,Flags 字段的 Bit 0):MF=1 表示还有更多分片 FO(Fragment Offset):本片起始位置在原始分组数据区中的偏移量
分组的分片传输:在分组的传输通路上,分片操作只能出现在两个 MTU 不同的网络的交界处,也就是出现在路由器上;进入一个新网络时,若新网络的 MTU 小于原有网络的 MTU,则可能需要进行分片;若新 MTU 值不小于原有 MTU 就不必进行分片。 不需分片 分片 以太网 以太网 A B MTU=1500 MTU=1500 MTU=620 R2 R1
片重组(reassembly)是分片的逆过程。所有片重组操作都在目的主机上进行。其简单过程如下:片重组(reassembly)是分片的逆过程。所有片重组操作都在目的主机上进行。其简单过程如下: 当目的主机收到 MF=1 的分片时,首先将其进行缓存 当收到 MF=0 的分片时,计算原始 IP 分组的长度: 原始分组长 = 本分片的偏移 + 本分片的数据长度 重组 分片 以太网 以太网 A B MTU=1500 MTU=1500 MTU=620 R2 R1
利用原始分组长度检查是否收到全部分片;若是,则按照各片的偏移值重新组装成 IP 分组,提交给高层软件;否则将等待,直到收到该分组的全部分片 • 为了防止无限等待,在接收端设置重组定时器;当接收到分组的第一片时启动该定时器,如果在指定的时间内未能完成分组重组,将放弃整个重组、释放资源
3.2 ICMP 网际控制报文协议(ICMP,Internet Control Message Protocol)是用来提供差错报告服务的协议。ICMP报文要通过IP协议发出去,且只向数据报的初始源主机发送错误报告报文。 ICMP报文格式:每个ICMP报文都是作为IP数据报的数据部分在网络中进行传输的。其报文格式如图所示: 0 8 16 24 32 IP报文头 ICMP报文类型 ICMP报文说明 报文校验和 根据报文类型和报文说明不同,有不同内容
“ICMP报文类型”字段为1字节,其取值含义如下表: ICMP报文类型值 含义 ICMP报文类型值 含义 0 回送响应 12 数举报参数错误 3 目的不可达 13 时间戳请求 4 报源抑制 14 时间戳响应 5 重定向 17 掩码请求 8 回送请求 18 掩码回应 11 数据报超时
ICMP协议分类 (1)ICMP差错报文 ①目的不可达报文(见下表说明) ②超时报文 ③参数出错报文 (2)ICMP控制报文 ①报源抑制报文 ②重定向报文 (3)ICMP请求/应答报文 ①回送请求与响应报文 ②时间戳请求与响应报文 ③掩码请求响应报文
ICMP的几个应用 用ICMP测试可达性:ping PING发送ICMP回应请求给目的地,等待一个很短的时间 如果收到回应应答,则可达;若重发N次,仍没收到应答,则报告不可达。 用ICMP跟踪路由:traceroute 利用:数据包的TTL每经过一个路由器,就减1,路由器将放弃该数据包,并发送ICMP差错报告(11-分组超时:0-TTL超时)给源端。 方法:跟踪工具先发TTL=1的包给目的,得到第一个路由器的ICMP报告,记录其IP;然后发TTL=2,记录第二个路由器,然后3,4…… 由于可能的包丢失,必须准备重发没响应的包。
A B 数据网 不知道如何 到达Z? 用ICMP通知A 发数据给Z 到Z的数据 目的端无法到达
用ICMP发现路径MTU 定义:从源到目的的一条路径上最小的MTU叫做路径MTU 方法:探测程序发送一定长度的IP数据包,将FLAG中“数据包不能被分段”置位,遇到MTU小于该数据包长度的路由器,则路由器放弃该包,并向源端发送ICMP差错报告(3-目的地址不可达:4-需分片但DF置位);源端减少包长度,继续探测至成功发送。 需要解决探测包丢失重发问题。
3.3 路由协议 Internet 路由选择的树状结构: 核心系统 核心系统 核心网关 G G 自治系统 自治系统 部分AS间交换路由信息(信任关系) 非核心网关 G G G G 局域网 局域网 局域网 局域网
自治系统(AS—Autonomous System):包括多个网络和非核心网关,并通过唯一的核心网关与主干网相连。通过它进入主干网(核心系统)。AS的建立是为了便于扩展并减 轻 主干网路由信息更新的过大开销。核心网关由Internet网络操作中心统一管理,非核心网关由本地管理 路由信息的交换: 1. 自治系统要通过系统内一个授权的非核心网关向所属核心网关报告本地路由信息,核心网关也要通过它报告主干网路由信息。(外部网关协议EGP—External Gateway Protocol. 如EGP,BGP) 2.核心网关之间相互交换路由信息。(核心网关协议GGP—Gateway-Gateway Protocol). 3.自治系统是独立的。其内部可采用自己的路由协议。(内部网关协议IGP—Internal Gateway Protocol 如OSPF, RIP, IGRP 等) 信任关系:为减轻自治系统对主干网的依赖,提高系统的可靠性,一些自治系统间可直接建立联系,交换路由信息,而不必通过主干网。(称信任关系) 路径 :本地网络将数据发送到核心网关,进入主干网,再通过核心网关送到目的主机所在的自治系统,然后由内部路由到达目的主机。
4 传输层协议 4.1 TCP 4.2 UDP
4.1 TCP TCP基本情况: TCP提供一种面向连接的、可靠的字节流服务。 TCP/UDP服务通过创建套接字( socket )实现。每个套接字有一个套接字序号:包括主机的IP地址以及一个主机本地的16位端口号。序号小于256的端口是通用端口(well-known port),在RFC1700中定义。 见关于RFC的脱机页面
源端口号和目的端口号:标识接收端和发送端的应用进程。这两个值加上IP首部中的源IP地址和目的IP地址唯一地确定一个TCP连接。(见后面的连接部分)源端口号和目的端口号:标识接收端和发送端的应用进程。这两个值加上IP首部中的源IP地址和目的IP地址唯一地确定一个TCP连接。(见后面的连接部分) 序号:所发送的数据的第一字节的序号,用以标识从TCP发端向TCP收端发送的数据字节流,序号计数达power(2,32)-1后再回到零从新开始。 确认序号:期望收到的下一个消息第一字节的序号。为确认的一端所期望接收的下一个序号。只有在标识位中的ACK 比特设置为1时,此序号才有效。 首部长度:以32比特为计算单位。 窗口大小:滑动窗口协议中的窗口大小 检校和:对整个TCP首部和TCP数据部分的检校。这个字段在TCP中是强制性的,一定由发端计算,并在收端进行验证。
标识位有六个标识:(以下为设置为 1 时的意义,为 0 时相反) 紧急位(URG):紧急指针有效,紧急指针是一个正的偏移量,与序号字段的值相加等于该数据的最后一个字节的序号。 确认位(ACK):表示确认序号字段有意义 急迫位(PSH): 表示请求接收端的传输实体尽快交付应用层 重建位(RST): 表示出现严重差错,必须释放连接重建 同步位(SYN): SYN=1,ACK=0 表示连接请求消息 SYN=1,ACK=1 表示同意建立连接消息 终止位(FIN): 表示数据已发送完,要求释放连接
TCP的三次握手 三步握手的过程: 第一步:发起方发送一个消息,其SYN位被设置; 第二步:响应方收到消息后,发回一个消息,SYN和ACK位均被设置,表示可以继续; 第三步:确认响应,ACK位被设置,表示双方均同意连接,连接建立。 三步握手的功能: 保证双方都相互知道对方已准备好进行数据传输 双方确认一个数据传输的初始序列号,如下图中,发送方的初始序列号为x,接收方的初始序列号为y,均被对方确认
释放TCP连接过程 TCP是全双工的,一个连接具有两个方向的数据传输,因此连接释放需要分别释放两个方向。 当一方的应用程序通知TCP已无数据需要发送时,TCP关闭此方向的连接,这时此方向只能接收对方的数据,而不能发送其它数据了(除了释放连接的消息)。然后发送一个FIN位被设置的消息通知接收方没有数据发送。接收方响应确认。 同时,接收方通知应用程序释放连接,发送回连接释放消息,最终释放整个连接。
主机 1 主机 2 (应用进程释放连接) 发送: FIN=1 seq=x 接收: FIN=1 发送: ACK x+1 (同时通知应用进程) 收到 ACK (应用进程释放连接) 发送: FIN=1 seq=y ACK x+1 收到:FIN+ACK 发送:ACK y+1 收到ACK 连接释放
滑动窗口机制: 停止等待传输机制和不确认机制之间的折中,TCP可靠性的核心体现 滑动窗口内含一组顺序排列的报文序号。在发送端,窗口内的报文序号对应的报文是可以连续发送的。各报文按序发送出去,但确认不一定按序返回。一旦窗口前面部分报文得到确认,则窗口向前滑动相应位置,落入窗口的后续报文又可连续发送。一个窗口大小为4的发送滑动窗口如下图所示:
4.2 UDP UDP基本情况: UDP是一个简单的面向数据报的运输层的协议,它提供协议端口,使得应用进程能够向其他进程发送数据报,进行进程间的数据通信。 UDP数据报是无连接、不可靠的。不提供确认、消息反馈控制,与IP数据报相同。可靠性要需要由应用程序本身提供。 UDP规范(RFC-768,1980)。 UDP利用IP进行主机到主机的数据报传输。 UDP的特点是传输速度快。 UDP数据封装:
5 应用层协议 5.1 telnet 5.2 ftp 5.3 Email 5.4 www 5.5 其他
5.1 telnet Telnet是一种因特网远程终端访问标准。它真实地模仿远程终端,但是不具有图形功能,它仅提供基于字符应用的访问。Telnet允许为任何站点上的合法用户提供远程访问权,而不需要做特殊约定。 Telnet并不是一种非常安全的服务,虽然在登录时要求用户认证。由于Telnet发送的信息都未加密,所以它容易被网络监听。只有当远程机和本地站点之间的网络通信是安全时,Telnet才是安全的。 Telnet会话包括两大类交互,一类是用户通过运行在本地的客户端软件与其运行在远程主机的终端会话之间的交互,另一类是客户端与服务器通过因特网来回传送数据而进行的交互。