您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第3章传输层与传输层协议
第3章传输层与传输层协议本章内容:3.1传输层的基本功能3.2UDP协议3.3TCP协议13.1传输层的基本功能计算机网络本质的活动是实现分布在不同地理位置的联网主机之间的进程通信,以实现各种网络服务功能;传输层的主要作用就是要实现分布式进程通信。233.1传输层的基本功能传输层的作用--非常关键提供从源主机到目的主机端到端的服务。消除网络层的多样性和不可靠性,有必要增强网络层提供服务的服务质量和可靠性。向高层用户屏蔽下面通信子网的细节。传输层以上各层面向应用,传输层以下各层面向通信。43.1传输层的基本功能为应用进程提供可靠或不可靠的端到端连接服务。具体工作包括端口管理、可靠性控制、流量控制、错误处理等。对数据报的首部和数据部分进行检验,而网络层只对数据报的首部进行检验。流量控制和拥塞控制控制的是端到端用户的流量,防止网络拥塞造成数据报的丢失。而数据链路层是中间两个相邻结点间的流量控制。53.1传输层的基本功能两组重要概念:点到点通信和端到端通信进程和端口传输层的作用6传输层数据链路层网络层物理层数据链路层网络层物理层传输层数据链路层网络层物理层主机A传输层协议实现主机之间的端-端通信应用层应用层数据链路层网络层物理层主机B路由器路由器网络层协议通过由多段点-点链路组成的路径实现源主机与目的主机主机之间的分组传输点-点链路点-点链路点-点链路点-点链路………………7网络层的任务沿两端点间的最佳路由传输数据(主机间的逻辑通信,logiccommunicationbetweenhosts)Ethernet,X.25,ATM,…传输层的任务……两端点间可靠的透明数据传输(应用进程间的逻辑通信,logiccommunicationbetweenapplicationprocesses)通信子网网络层与传输层的比较applicationtransportnetworkdatalinkphysicalapplicationtransportnetworkdatalinkphysicalnetworkdatalinkphysicalnetworkdatalinkphysicalnetworkdatalinkphysicalapplicationtransportnetworkdatalinkphysicalapplicationtransportnetworkdatalinkphysical8传输层vs网络层服务(后讲):网络层:在主机间进行通信;传输层:在进程间进行通信;传输层依赖于网络层的服务,反过来又加强了网络层的服务。9进程和端口进程的概念单机环境中是指一个程序对某个数据集的执行过程;由操作系统统一控制、协调、调度进程的运行及相互间的通信。网络环境中各台主机具有高度的自治特性;没有统一的高层操作系统进行全局控制与管理。10进程和端口网络环境中分布式进程通信需要解决以下问题:进程命名与寻址(套接字)采用IP地址+进程号ID(即端口号)进行命名多重协议的识别主机间通信,必须约定好传输层协议类型进程间相互作用的模式采用客户/服务器模式11进程和端口小结:网络环境中一个完整的进程通信标识需要一个五元组来表示:协议源IP地址源端口号目的IP地址目的端口号比如:TCP102.31.7.22115432202.192.1.1002112传输层端口号端口号由Internet赋号管理局定义。端口号是一个16比特的数字,其数值范围从0~65535。熟知端口(well-knownport):为服务进程全局分配的端口范围为0~1023;用于服务器端;注册端口:为没有熟知端口号的应用程序使用。范围1024~49151;使用前需注册,以防止重复;自由端口是在进程需要进行通信时,由本地进行动态分配的范围49152~65535;用于客户端。13端口号一些常见的“熟知”端口号FTPSMTPTFTPDNSTelnetSNMP2123255369161TCPUDP应用层传输层20HTTP80注意:熟知端口号的定义见[RFC1700]14TCP和UDP都根据端口(port)号把信息提交给上层对应的协议(进程)。传输层提供端到端应用进程之间的通信,常称为端到端(End-to-end)通信。FTPSMTPTFTPDNSTelnetSNMP2123255369161TCPUDP应用层传输层port15传输层端口号端口号的使用客户进程首先动态申请一个本地自由端口号再通过服务进程所公布的熟知端口与服务器进程建立联系,并进行相应协商;上述过程成功后中,就可开始进程间的通信。3.2UDP协议163.2.1UDP协议特点3.2.2UDP报文格式3.2.3UDP的基本工作过程3.2.4UDP协议适用的范围3.2UDP协议——UserDatagramProtoclo用户数据报协议3.2.1UDP协议的主要特点:UDP是一种无连接的、不可靠的传输层协议;UDP是一种面向报文的传输层协议。17应用程序报文UDP用户数据报数据部分UDP头部IP分组的数据部分IP头部应用层传输层网络层18UDP协议封装UDP数据报由两部分构成:UDP报头和数据区UDP报文是封装在IP分组中进行传送的UDP头UDP数据区IP头IP数据区帧头帧数据区应用数据IP应用UDP数据链路3.2.2UDP报文格式UDP报文有固定8字节的报头。19源端口号目的端口号校验和UDP总长度数据(数据不是16位的倍数时需要增加填充位)UDP报头01624318UDP报文UDP报头主要字段:端口号端口号字段包括源端口号和目的端口号;端口号字段长度为16位(2个字节);源端口号表示发送端进程端口号,目的端口号表示接收端进程端口号;如果源进程是客户端,则源端口号是由UDP软件分配的临时端口号;服务器使用的是熟知端口号。20长度长度字段长度也是16位(2字节),它定义了包括报头在内的用户数据报的总长度;用户数据报的长度最大为65535字节,最小是8字节;如果长度字段是8字节,那么说明该用户数据报只有报头,而没有数据。21校验和UDP校验和字段是可选项;UDP校验和用来检验整个用户数据报(包括报头)在传输中是否出现差错;UDP校验和包括三个部分:伪报头(pseudoheader)、UDP报头与应用层数据。22UDP校验和的基本概念与计算示例发送端计算UDP校验和的例子2310011001000100100000100001101001101010110000001000001110000010100000000000010001000000000000111100000100001111110000000000001101000000000000111100000000000000000101010001000101010100110101010001001001010011100100011100000000153.18.8.105171.2.14.1001715108713150TESTING0153.188.105171.214.100,1715108713150(校验和)T,ES,TI,NG,0(填充)1001011011101011和0110100100010100校验和3.2.3UDP的基本工作过程25UDP的基本工作过程数据报发送UDP软件将用户数据封装在UDP数据报中转交给IP软件,进行IP封装和转发数据报的接收端口判断该报文的目的端口号是否与当前端口匹配若匹配成功,将该数据报保存到相应端口的接收队列中;(若队列已满,则丢弃该数据报)若未匹配,则丢弃该数据报,同时向源端发送“端口不可达”的ICMP包3.2.4UDP协议适用的范围确定应用程序在传输层是否采用UDP协议的原则:系统对性能的要求高于对数据完整性的要求;需要“简短快捷”的数据交换;需要多播和广播的应用;UDP协议是一种适用于实时语音与视频传输的传输层协议。263.3TCP协议传输控制协议3.3.1TCP协议的主要特点3.3.2TCP段格式3.3.3TCP传输连接建立与释放3.3.4TCP流量与拥塞控制3.3.5TCP差错控制27283.3.1TCP协议的主要特点TCP(TransmissionControlProtocol)传输控制协议面向连接服务;实际数据流传输之前,源进程与目的进程之间建立传输连接;高可靠性;主要方法:确认和超时重传全双工通信及点到点的连接;客户与服务器进程同时发送和接收数据流点到点指的是TCP连接只有两个端点,即TCP不支持广播和组播293.3.1TCP协议的主要特点支持流传输;流(stream)相当于一个管道,从一端放入什么内容,从另一端可以照原样取出什么内容,它描述了一个不出现丢失、重复和乱序的数据传输过程;源进程发送的数据以字节流的形式传输到目的进程,而且数据流是无结构。传输连接的可靠建立与释放;三次握手建立连接,四次握手关闭连接提供流量控制与拥塞控制滑动窗口进行流量控制303.3.2TCP段格式TCP协议中的基本传输单元为段(Segment),因此习惯上将TCP报文称为TCP段。一个TCP段由段头和数据流两部分组成,TCP数据流是无结构的字节流,流中数据是由一个个字节序列构成的,无任何可供解释的结构,这一特征使得TCP段的段长是可变的。因此,TCP协议中的序号和确认号都是针对流中字节的,而不针对段。3.3.2TCP段格式控制字段控制字段定义了6种不同的控制位或标志位;控制字段将在TCP的连接建立和终止、流量控制,以及数据传送中发挥作用。32标志说明SYN在连接时对序号进行同步ACK确认字段的值有效FIN终止连接RST连接必须复位URG紧急指针字段的值有效PSH将数据推向前TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充数据偏移(首部长度)—占4bit,它表明TCP首部的长度共有多少个4B,即指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit(4字节为计算单位)。字段值5~15之间。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留为今后使用,但目前应置为0。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急位URG——当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHA
本文标题:第3章传输层与传输层协议
链接地址:https://www.777doc.com/doc-2155609 .html