您好,欢迎访问三七文档
1/67第7章传输层协议第7章传输层协议7.1进程通信与端口7.2UDP协议7.3TCP协议7.4SCTP协议7.5RTP/RTCP协议7.6RSVP协议2/67第7章传输层协议7.1进程通信与端口网络层或互联网层提供主机通信服务传输层提供程通信服务为了提供进程通信功能,TCP/IP协议族提出了端口(port)的概念,用于标识进程。3/67第7章传输层协议传输层与网络层或互联网层的关系网络层与互联网层功能:主机通信协议:IP、CLNP(ISO/OSI)特点:hop-by-hop传输层功能:进程通信协议:UDP和TCP、TP0~4(ISO/OSI)特点:end-to-end4/67第7章传输层协议IP地址和端口5/67第7章传输层协议端口分配方法第一种叫全局分配这是一种集中控制方式,由IANA进行统一分配,并将结果公布于众。众所周知端口就是属于这一类。第二种是本地分配注册端口动态分配动态绑定6/67第7章传输层协议TCP/UDP众所周知端口号端口号协议关键词描述20/21TCPFTP-DATA/FTP文件传输协议数据连接/控制连接23TCPTELNET远程登录25TCPSMTP简单邮件传输协议53TCP/UDPDNSDNS服务器67/68UDPDHCPServer/ClientDHCP服务器/客户69UDPTFTP简单文件传送协议80TCPHTTP超文本传输协议110TCPPOP3邮局协议版本3443TCPHTTPS安全HTTP协议7/67第7章传输层协议7.2UDP协议提供主机通信IP服务特性报文可能丢失报文可能出错报文可能乱序到达报文在网络上可能被延迟任意长时间支持多路复用提供进程通信UDP服务特性报文可能丢失报文可能出错报文可能乱序到达报文在网络上可能被延迟任意长时间支持多路复用8/67第7章传输层协议IP与UDP关系IP提供主机通信通信对象命名是IP地址IP地址定位到主机UDP提供进程通信通信对象命名是Port号Port号定位到进程9/67第7章传输层协议1、报文格式32位源端口目的端口UDP长度UDP校验和数据……头部数据区10/67第7章传输层协议2、多路复用11/67第7章传输层协议3、伪头部32位源IP地址填充(全0)目的IP地址协议UDP长度表示UDP报文长度这里是17,表示UDP协议12/67第7章传输层协议7.3TCP协议7.3.1服务特性7.3.2报文格式7.3.3连接建立和终止7.3.4差错控制7.3.5重传定时器7.3.6流量控制7.3.7拥塞控制7.3.8TCP扩展7.3.9触发传输7.3.10记录边界13/67第7章传输层协议7.3.1服务特性(1)面向连接全双工点到点可靠字节流服务多路复用14/67第7章传输层协议服务特性(2)流量控制保证发送方不要“淹没”接收方拥塞控制保证发送方不要“淹没”网络15/67第7章传输层协议768HTCP字节流的概念发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流H表示TCP报文段的首部x表示序号为x的数据字节TCP连接16/67第7章传输层协议TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前7.3.2报文格式17/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。18/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。19/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。20/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充数据偏移(即首部长度)——占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位字(以4字节为计算单位)。21/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充保留字段——占6位,保留为今后使用,但目前应置为0。22/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充紧急URG——当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。23/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充确认ACK——只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。24/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充推送PSH(PuSH)——接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。25/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充复位RST(ReSeT)——当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。26/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充同步SYN——同步SYN=1表示这是一个连接请求或连接接受报文。27/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充终止FIN(FINis)——用来释放一个连接。FIN1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。28/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充窗口字段——占2字节,用来让对方设置发送窗口的依据,单位为字节。29/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。30/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充紧急指针字段——占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。31/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充选项字段——长度可变。TCP最初只规定了一种选项,即最大报文段长度MSS。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”MSS(MaximumSegmentSize)是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。32/67第7章传输层协议其他选项窗口扩大选项——占3字节,其中有一个字节表示移位值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小。时间戳选项——占10字节,其中最主要的字段时间戳值字段(4字节)和时间戳回送回答字段(4字节)。选择确认选项——在后面的5.6.3节介绍。33/67第7章传输层协议TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充填充字段——这是为了使整个首部长度是4字节的整数倍。34/67第7章传输层协议7.3.3连接建立和终止运输连接的三个阶段运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。35/67第7章传输层协议客户服务器方式TCP连接的建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。36/67第7章传输层协议用三次握手建立TCP连接CLOSEDCLOSED主动打开被动打开AB客户服务器TCP的连接建立A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。37/67第7章传输层协议用三次握手建立TCP连接CLOSEDCLOSED主动打开被动打开AB客户服务器TCP的连接建立•B的TCP收到连接请求报文段后,如同意,则发回确认。•B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x1,自己选择的序号seq=y。38/67第7章传输层协议CLOSEDCLOSED主动打开被动打开AB客户服务器•A收到此报文段后向B给出确认,其ACK=1,确认号ack=y1。•A的TCP通知上层应用进程,连接已经建立。39/67第7章传输层协议CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器•B的TCP收到主机A的确认后,也通知其上层应用进程:TCP连接已经建立。40/67第7章传输层协议SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED用三次握手建立TCP连接的各状态CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器TCP的连接建立41/67第7章传输层协议CLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDTCP的连接释放•数据传输结束后,通信的双方都可释放连接。现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数
本文标题:Ch7 传输层协议
链接地址:https://www.777doc.com/doc-3684742 .html