1、 第一章第一章 网络基础网络基础 内容提要nTCP/IP体系n数据链路层协议n网络层的IP协议、ICMP协议n传输层的TCP协议、UDP协议n应用层HTTP、E-mail、FTP及DNS1.1 TCP/IP体系n网络概念网络概念 将处于不同地理位置,并具有计算能力的计算机系统经过传输介质和通信设备相互连接,在网络操作系统和网络通信软件的控制下,实现资源共享的计算机的集合。n网络的分类网络的分类n分类标准多样,可按按拓扑结构、交换方式、使用者以及数据传输率等划分n按网络覆盖范围的大小,可分为局域网、城域网、广域网和互联网局域网局域网 LAN(Local Area Network)n定义定义 局域
2、网是指范围在几百米到几公里内办公楼群或校园内的计算机相互互联连接所构成的计算机网络。n特点特点 网络为一个单位所拥有,且地理范围和站点数目均有限。n区别与其它网络的主要体现区别与其它网络的主要体现n网络所覆盖的物理范围n网络所使用的传输技术n网络的拓扑结构局域网的拓扑结构局域网的拓扑结构 匹配电阻干线耦合器总线网环形网 局域网的拓扑结构 城域网城域网 MAN(Metropolitan Area Network)n城域网的作用范围在广域网和局域网之间;其传输速率比局域网更高。n城域网:覆盖的地理范围从几十公里至数百公里,是局域网的延伸,网上的传输速率,通常在 1000M bps以内。广域网广域网
3、 WAN(Wide Area Network)n广域网的构成n当主机之间的距离较远时,例如,相隔几十或几百公里,甚至几千公里,局域网显然就无法完成主机之间的通信任务。这时就需要另一种结构的网络,即广域网。主机通信子网结点交换机互联网(internet)n不同网络的物理结构、协议和所采用的标准是各不相同的,如果连接到不同网络的用户需要相互进行通信,就需要将这些不兼容的网络通过网关设备连接起来,并由网关完成相应的转换功能。n多个网络相互连接构成的集合称为互联网。互联网由局域网和广域网组成互联网 局域网局域网广域网路由器结点交换机相距较远的局域网通过路由器与广域网相连组成了一个覆盖范围很广的互联网
4、接入网AN(Access Network)n接入网又称为本地接入网或居民接入网,接入网是个人计算机、局域网(或校园网)和城域网之间的接口。n接入网提供多种高速接入技术,使用户接入到因特网的瓶颈得到某种程度上的解决。n常用接入方法:拨号接入,ISDN接入,XDSL,DDN专线接入,光纤接入。城域网城域网接入网接入网接入网接入网接入网接入网广域网局域网局域网校园网企业网1.1.2 OSI/RM n开放系统互联基本参考模型(OSI/RM,Open System Interconnection/Referrence Model)是国际标准化组织ISO(International Standards O
5、rganization)制定的模型,把计算机与计算机之间的通信分成七个互相连接的协议层,结构如图所示。OSI参考模型 很少有产品是完全的OSI模式,然而OSI参考模型为网络的结构提供了可行的机制。1、物理层(、物理层(Physical Layer)物理层定义了为建立、维护和拆除物理链路所需要的机械的、电气的、功能的以及规程的特性。负责传送比特流,它从第二层数据链路层接收数据帧,并将帧的结构和内容串行发送,即每次发送一个比特。2、数据链路层(、数据链路层(Data Link Layer)其作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路改造成对网络层来说无差错的数据链路。帧是该层的基本单
6、位。OSI参考模型3、网络层(、网络层(Network Layer)n网络层的主要功能是完成网络中主机间的报文传输。在广域网中,这包括产生从源端到目的端的路由。n当报文不得不跨越两个或多个网络时,又会产生很多新问题。例如第二个网络的寻址方法可能不同于第一个网络;第二个网络也可能因为第一个网络的报文太长而无法接收;两个网络使用的协议也可能不同等。网络层必须解决这些问题,使异构网络能够互连。n在单个局域网中,网络层是冗余的,因为报文是直接从一台计算机传送到另一台计算机的。4、传输层(、传输层(Transport Layer)n传输层提供端到端的透明数据传输服务,高层用户不用关心通信子网的存在OSI
7、参考模型6、表示层(、表示层(Presentation Layer)表示层为上层用户提供共同的数据或信息的语法表示变换。表示层服务的一个典型例子是用一种一致选定的标准方法对数据进行编码。7、应用层(、应用层(Application Layer)应用层包含大量人们普遍需要的协议。PC(Personal Computer)机用户使用仿真终端软件通过网络仿真某个远程主机的终端并使用该远程主机的资源。1.1.3 TCP/IPnTCP/IP协议簇模型 n和其他网络协议一样,TCP/IP有自己的参考模型用于描述各层的功能。TCP/IP协议簇参考模型和OSI参考模型的比较如图所示。1.1.3 TCP/IPn
8、TCP/IP参考模型实现了OSI模型中的所有功能。n不同之处是TCP/IP协议模型将OSI模型的部分层进行了合并。nOSI模型对层的划分更精确,而TCP/IP模型使用比较宽的层定义。解剖TCP/IP模型nTCP/IP协议簇包括四个功能层:应用层、传输层、网络层及网络接口层。n这四层概括了相对于OSI参考模型中的七层。1、网络接口层、网络接口层n网络接口层包括用于物理连接、传输的所有功能。OSI模型把这一层功能分为两层:物理层和数据链路层,TCP/IP参考模型把两层合在一起。2、网络层、网络层n网络层由在两个主机之间通信所必须的协议和过程组成。这意味着数据报文必须是可路由的。解剖TCP/IP模型
9、3、传输层、传输层n这一层支持的功能包括:为了在网络中传输对应用数据进行分段,执行数学检查来保证所收数据的完整性,为多个应用同时传输数据多路复用数据流(传输和接收)。这意味着该层能识别特殊应用,对乱序收到的数据进行重新排序。n当前的主机到主机层包括两个协议实体:传输控制协议(TCP)和用户数据报协议(UDP)。4、应用层、应用层n应用层协议提供远程访问和资源共享。应用包括Telnet服务、FTP服务、SMTP服务和HTTP服务等,很多其他应用程序驻留并运行在此层,并且依赖于底层的功能。解剖TCP/IP模型nTCP/IP组的四层、OSI参考模型和常用协议的对应关系如图:1.2 链路层协议链路层协
10、议n链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。n一条链路只是一条通路的一个组成部分。n数据链路(data link)除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。n数据链路层是各种通信网和TCP/IP之间的接口,TCP/IP协议的链路层网络实体之间的通信使用各自的物理地址,网络层使用IP地址,ARP和RARP提供这两类地址之间的映射机制。1.2.2 以太网协议 n1.两个标准 nDIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。nIEEE 的 802.3 标准。n从技术上
11、讲,以太网协议实际上是一种可实现冲突检测及载波监听多点接入的网络。载波监听多点接入/碰撞检测CSMA/CDnCSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection。n“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。n“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。n冲突检测是指不仅要求每个节点在其开始发送数据前必须确认没有其它节点在使用传输介质,而且这些节点还必须借助一种机制来检测是否有其它节点试图正在同时发送数据(在检测传输介质
12、是否可用的同时)。1.2.3 ARP/RARP1.地址解析协议地址解析协议 ARP(Address Resolution Protocol)n不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。n每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。n当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
13、ARP 响应AYXBZ主机 B 向 A 发送ARP 响应分组 主机 A 广播发送ARP 请求分组 ARP 请求ARP 请求ARP 请求ARP 请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-00-2B-00-EE-0A我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18我想知道主机 209.0.0.6 的硬件地址我是 209.0.0.6硬件地址是 08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15-AD-18ARP 高速缓存的作用n为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组
14、时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。n当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。应当注意的问题应当注意的问题nARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。n如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。n从IP地址到硬件地址的解析是自动进行的,主机的用
15、户对这种地址解析过程是不知道的。n只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。为什么我们不直接使用硬件地址进行通信?n由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。n连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。逆地址解析协议逆地址解析协议
16、RARP(Reverse Address Resolution Protocol)n逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。nRARP运作需要服务器上有个很大的物理地址IP地址映射数据库。n当一个RARP server收到一个客户端的请求,它会在IP地址映射库中查找,如果找到了,就向客户端发出响应,响应中包含有客户端的IP地址,找不到,请求就被摒弃了。n这种主机往往是无盘工作站,因此 RARP协议目前已很少使用。1.2.4点到点协议nSLIP提供在串行通信线路上封装IP分组的简单方法,用以使远程用户通过电话线和Modem能方便地接入TCP/IP网络。n点对点
17、协议 PPP(Point-to-Point Protocol)是一种有效的点-点通信协议。n用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。PPP 协议n1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准RFC 1661。nPPP协议有三个组成部分 n一个将 IP 数据报封装到串行链路的方法。n链路控制协议 LCP(Link Control Protocol)。n网络控制协议 NCP(Network Control Protocol)。1.3 网络层协议 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一
18、,它定义了如何将网络传输的数据装配为IP数据报,以及如何在因特网上传输IP数据报的规则。各种应用层协议各种应用层协议 网络接口层(TELNET,FTP,SMTP 等等)物理硬件运输层TCP,UDP应用层ICMPIPRARPARP与各种网络接口网际层IGMP网际协议网际协议 IP 及其配套协议及其配套协议 网络层协议nIP是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。nIP层的特点:n不可靠:不能保证IP数据报能成功的到达目的地,IP仅提供最好的传输服务.n无连接:IP不维护后续数据报的信息,每个数据报的发送都是独立的.固定部分可变部分
19、04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分数 据 部 分首 部传送IP 数据报首部3.2 IP首部首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定部分可变部分版本占 4 bit,指IP协议的版本目前的 IP 协议版本号为 4(即 IPv4)首部04816192431版 本标志生 存
20、 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定部分可变部分首部长度占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是60字节。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567未用优 先 级数 据 部 分比特固定部分可变部分服务类型占 8 bit,用来获得更好的服务这个
21、字段以前一直没有被人们使用 T O S首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定部分可变部分总长度占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部
22、分固定部分可变部分标识(identification)占 16 bit,它是一个计数器,用来产生数据报的标识。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定部分可变部分标志(flag)占 3 bit,最低位记为MF,中间位记为DF首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定
23、部分可变部分片偏移(12 bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。重庆通信学院网络安全中心偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片 1首部数据部分共 3800 字节首部 1首部 2首部 3字节 0数据报片 2数据报片 314002800字节 0IP 数据报分片的举例首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度
24、可 变)比特首部长度数 据 部 分固定部分可变部分生存时间(8 bit)记为 TTL(Time To Live)数据报在网络中的寿命,其单位为秒。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定部分可变部分协议(8 bit)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据部分交给哪一个进程首部048
25、16192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度数 据 部 分固定部分可变部分首部检验和(16 bit)字段只检验数据报的首部不包括数据部分。这里不采用 CRC 检验码而采用简单的计算方法。1.3.3 ICMP协议n为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP(Internet Control Message Protocol)。nICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。nICMP 不是高层协议,而是 I
26、P 层的协议。nICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。nICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。ICMP协议nICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。IP 首部首部ICMP 报文报文IP 数据报数据报20字节字节016位检验码8位类型8位代码81631ICMP 的数据部分(长度取决于类型)ICMP 差错报告报文共有 5 种 n终点不可达(网络不可达、主机不可达、协议不可达、端口不可达、需要分片但DF1)n时间超过:路由器收到生存时间为零的数据报,则将其丢弃并向原站发送超时报文。n参数
27、问题:收到数据报的首部中字段不正确时。n源站抑制:路由器或主机由于拥塞而丢弃数据报时,向原站通知其放慢发送速度的抑制报文。n改变路由(重定向):当路由器检测到一台主机使用了一条非优化路由时,向原站发送重定向报文;由路由器通知主机。ICMP 询问报文有四种 n回送请求和回答报文(向特定主机询问)n时间戳请求和回答报文(请求回答当前时间)n掩码地址请求和回答报文1.3.4 路由选择n因特网采用分层次的路由选择协议。n因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。n许多单
28、位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。自治系统(autonomous system)n因特网将整个互联网划分为许多较小的自治系统 AS。n一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。n一个自治系统内的所有网络都属于一个行政单位(例如,一个公司,一所大学,政府的一个部门,等等)来管辖。n一个自治系统的所有路由器在本自治系统内都必须是连通的。因特网有两大类路由选择协议 n内部网关协议内部网关协议 IGP(Interior Gateway Protocol)即在
29、一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。n外部网关协议外部网关协议EGP(External Gateway Protocol)若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。1.4 传输层协议n从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。物理层网络层运输层应用层数据链路层面向信息处理面向通信用户功能网络功
30、能运输层协议和网络层协议的主要区别IP 协议的作用范围(提供主机之间的逻辑通信)TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信)因 特 网运输层的主要功能n运输层为应用进程之间提供端到端的逻辑通信。n运输层还要对收到的报文进行差错检测。n运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。1.4.1 传输控制协议协议TCP nTCP是传输层协议,提供可靠的应用数据传输。nTCP在两个或多个主机之间建立面向连接的通信。nTCP支持多数据流操作,提供错误控制,甚至完成对乱序到达的报文进行重新排序。TCP报文段的格式 n和IP一样,TCP的功能受限于其头中携带的信息
31、。因此理解TCP的机制和功能需要了解TCP头中的内容,表2-6显示了TCP头结构。来源端口(2字节)目的端口(2字节)序号(4字节)确认序号(4字节)头长度(4位)保留(6位)URGACKPSHRSTSYNFIN窗口大小(2字节)校验和(16位)紧急指针(16位)选项(可选)数据TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充源端口和目的端口字段各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
32、TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认号字段占 4 字节,是期望收到对方的下一个
33、报文段的数据的第一个字节的序号。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充数据偏移占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远(TCP报文段首部长度)。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKUR
34、G比特 0 8 16 24 31填 充保留字段占 6 bit,保留为今后使用,但目前应置为 0。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急比特 URG 当 URG 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKU
35、RG比特 0 8 16 24 31填 充确认比特 ACK 只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充推送比特 PSH(PuSH)接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确
36、 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充复位比特 RST(ReSeT)当 RST 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特 SYN 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长
37、度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充终止比特 FIN(FINal)用来释放一个连接。当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充窗口字段 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小
38、,然后通知对方以确定对方的发送窗口的上限。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急指针
39、字段 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。传输控制协议(TCP)的特点n传输控制协议(TCP)的特点是:提供可靠的、面向连接的数据报传递服务。n传输控制协议可以做到如下的六点:n1、确保IP数据报的成功传递。n2、对程序发送的大块数据进行分段和重组。n3、确保正确排序以及按顺序传递分段的数据。n4、通过计算校验和,进行传输数据的完整性检查。n5、根据数据是否接收成功发送消息。通过有选择的确认,也对没有收到的数据发送确认。n6、为必须使用可靠的基于会话的数据传输的程序提供支持,如数据库服务和电子邮件服务。TCP协议的工作原理 nTCP提供两个网络主机之间的点
40、对点通讯。TCP从程序中接收数据并将数据处理成字节流。n首先将字节分成段,然后对段进行编号和排序以便传输。在两个TCP主机之间交换数据之前,必须先相互建立会话。TCP会话通过三次握手的完成初始化。这个过程使序号同步,并提供在两个主机之间建立虚拟连接所需的控制信息。nTCP在建立连接的时候需要三次确认,俗称“三次握手”,在断开连接的时候需要四次确认,俗称“四次挥手”。TCP协议的三次“握手”TCP协议的三次“握手”n第一次第一次“握手握手”:主机A的TCP向主机B的TCP发出连接请求报文段,其首部的同步比特SYN为1,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x。SYN=1
41、,SEQ=x;n第二次第二次“握手握手”:SYN=1,ACK=x+1,SEQ=y;开始建立请求连接,需要对方计算机确认,对方计算机确认返回的数据包。n第三次第三次“握手握手”:主机A的TCP收到此报文段后,要向B给出确认,其确认序号为ACK=y+1;TCP协议的四次“挥手”n需要断开连接的时候,TCP也需要互相确认才可以断开连接,四次交互过程如图2-16所示。TCP的流量控制nTCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。n在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。n发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的
42、资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。TCP的编号与确认nTCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。n在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。n TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。TCP 的重传机制n重传机制是 TCP 中最重要和最复杂的问题之一。nTCP 每发送一个报文段,就对这个报文段设置一次计
43、时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。n由于 TCP 的下层是一个互连网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时延的方差也很大。n为适应这种情况,TCP采用一种往返时延的自适应算法。1.4.2 用户数据报协议UDP nUDP为应用程序提供发送和接收数据报的功能。n某些程序(比如腾讯的OICQ)使用的是UDP协议,UDP协议在TCP/IP主机之间建立快速、轻便、不可靠的数据传输通道。n常用的网络服务中,DNS使用UDP协议。UDP协议的头结构 nUDP的头结构比较简单,如表2-8所示。源端口(2字节)目的端口(2字节)封报长度(2字节)校验和(2
44、字节)数据UDP和TCP传递数据的差异nUDP和TCP传递数据的差异类似于电话和明信片之间的差异。nTCP就像电话,必须先验证目标是否可以访问后才开始通讯。nUDP就像明信片,信息量很小而且每次传递成功的可能性很高,但是不能完全保证传递成功。nUDP通常由每次传输少量数据或有实时需要的程序使用。n在这些情况下,UDP 的低开销比TCP 更适合。UDP和TCP传递数据的比较 UDP协议协议TCP协议协议无连接的服务;在主机之间不建立会无连接的服务;在主机之间不建立会话。话。面向连接的服务;在主机之间建立会话。面向连接的服务;在主机之间建立会话。UDP不能确保或承认数据传递或序列不能确保或承认数据
45、传递或序列化数据。化数据。TCP 通过确认和按顺序传递数据来确保数据通过确认和按顺序传递数据来确保数据的传递。的传递。使用使用 UDP 的程序负责提供传输数据所的程序负责提供传输数据所需的可靠性。需的可靠性。使用使用 TCP 的程序能确保可靠的数据传输。的程序能确保可靠的数据传输。UDP快速,具有低开销要求,并支持快速,具有低开销要求,并支持点对点和一点对多点的通讯。点对点和一点对多点的通讯。TCP 比较慢,有更高的开销要求,而且只支比较慢,有更高的开销要求,而且只支持点对点通讯。持点对点通讯。UDP 和和 TCP 都使用端口标识每个都使用端口标识每个 TCP/IP 程序的通讯。程序的通讯。1
46、.4 应用层协议n每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。n应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。1.5.1 HTTPn为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。n从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协
47、议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。HTTP 的主要特点 nHTTP 是面向事务的客户服务器协议。nHTTP 1.0 协议是无状态的(stateless)。nHTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。n万维网浏览器就是一个 HTTP 客户,而在万维网服务器等待 HTTP 请求的进程常称为 HTTP daemon,有的文献将它缩写为 HTTPD。nHTTP daemon 在收到 HTTP 客户的请求后,把所需的文件返回给 HTTP 客户。1.5.2 E-mailn目前E-mail服务用的两个主要的协议是:简单
48、邮件传输协议SMTP(Simple Mail Transfer Protocol)和邮局协议POP3(Post Office Protocol)。nSMTP默认占用25端口,用来发送邮件,POP3占用110端口,用来接收邮件。n在Windows平台下,主要利用Microsoft Exchange Server作为电子邮件服务器。用户界面发送邮件Spooling区客户(后台发送)发送邮件TCP连接接收邮件邮箱服务器(接收邮件)接收邮件TCP连接用户发送邮件用户接收邮件1.5.3 FTPFTP工作原理工作原理n网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中。FT
49、P特点特点n文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。nFTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。nFTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。1.5.4 DNSn因特网采用了层次树状结构的命名方法。n任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。n域名的结构由若干个分量组成,各分量之间用点隔开:.三级域名.二级域名.顶级域名n各分量分别代表不同级别的域名。n名字到域名的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。设置DNS解析n需要在主机上设置DNS解析的主机,将主机的DNS的解析指向虚拟机本章总结n本章需要重点理解OSI参考模型和TCP/IP协议簇的联系和区别n理解IP/TCP/UDP/ICMP协议头的结构n了解以太网协议、ARP/RARP协议、PPP协议、及应用层协议
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。