[信息与通信]第5章_运输层new

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章运输层5.1运输层协议概述5.1.1进程之间的通信物理层运输层在层次体系结构中的地位数据链路层网络层运输层应用层面向信息处理面向通信用户功能网络功能54321运输层为通信的应用进程提供逻辑通信54321主机A主机B应用进程应用进程AP1AP2AP4端口端口IP协议的作用范围路由器1路由器2LAN2WANLAN1运输层协议TCP和UDP的作用范围AP3IP层AP1AP2AP3AP4“逻辑通信”运输层之间的通信似乎是沿水平方向传送数据事实上运输层之间并没有一条水平方向的物理连接运输层协议和网络层协议的主要区别应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网运输层和网络层的区别12个孩子要与另一个家庭的12个孩子相互通信进程=孩子们进程间报文=信封中的信笺主机=家庭的房子运输协议=孩子之间的通信网络层协议=家庭之间的通信为什么需要运输层在一个网络连接上复用多对进程的通信控制网络层及下两层自身不能解决的传输错误解决多互连的通信子网通信协议和提供的服务功能的差异运输层与上下层之间的关系运输实体运输实体运输协议应用层网络层(或网际层)主机A运输服务用户(应用层实体)主机B运输服务用户(应用层实体)运输层服务访问点TSAP网络层服务访问点NSAP运输层层接口层接口5.1.2TCP/IP体系中的运输层协议UDP(UserDatagramProtocol)用户数据报协议:提供面向无连接的服务此时逻辑通信信道是一条不可靠信道TCP(TransmissionControlProtocol)传输控制协议:提供面向连接的服务尽管下面的网络不可靠(尽最大努力服务)但逻辑通信信道相当于一条全双工的可靠信道5.1.3运输层的端口(port)•操作系统用进程标识符来标志运行在计算机中的进程•但因特网上不同操作系统使用不同格式的进程标识符•必须用统一方法对TCP/IP体系的应用进程进行标志•进程动态创建和撤销,发送方无法识别其他机器上的进程•端口号只具有本地意义,标志本计算机应用层中的各进程•通信的终点是应用进程,但可以想象通信终点是端口•在协议栈层间的抽象的协议端口是软件端口•路由器或交换机上的端口是硬件端口•端口用一个16bit端口号进行标志套接字–从上面的分析可以看出,要唯一的标识一个网络进程,除了需要主机IP地址外,还需要进程标识-端口号。IP+Port称为套接字。–套接字和端口、IP地址的关系是:IP地址131.6.23.13端口号1500131.6.23.13,1500套接字(socket)三类端口•熟知端口(0~1023)•登记端口号(1024~49151)为没有熟知端口号的应用程序使用的使用该端口号必须在IANA登记,以防重复•客户端口号或短暂端口号(49152~65535)留给客户进程选择暂时使用通信结束后,该端口号可供其他客户进程使用5.2用户数据报协议UDP•传送的协议数据单元是UDP报文或用户数据报•无连接方式,发送数据之前不需要建立连接•尽最大努力交付,不保证可靠交付,也不使用拥塞控制•面向报文,没有拥塞控制,适合多媒体通信•支持一对一、一对多、多对一和多对多的交互通信•8个字节首部,开销小IP首部面向报文的UDPIP数据报的数据部分IP层UDP首部UDP用户数据报的数据部分运输层应用层报文应用层发送方UDP对应用程序交下来的报文在添加首部后就向下交付IP层一次发送一个报文一次交付一个完整的报文UDP首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段首部字段由4个字段共8字节组成,每个字段都是两个字节伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报在计算检验和时临时把“伪首部”和UDP用户数据报连接在一起伪首部仅仅是为了计算检验和伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报计算UDP检验和的例子1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101101→求和得出的结果0110100100010010→检验和153.19.8.104171.3.14.1112字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出的结果求反码全0171510871315全0数据数据数据数据数据数据数据全0•某UDP用户数据报的首部用十六进制表示是:•F6320045001CE217。•试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是服务器发送给客户?使用UDP的这个服务器程序是什么?答案•源端口号:63026•目的端口号:69•用户数据报的总长度为:28字节•数据部分长度为:20字节•使用UDP的这个服务器程序是:TFTPUDP基于端口分用IP层UDP数据报到达端口2端口3端口1UDP分用5.3传输控制协议TCP概述•面向连接的运输层协议,提供可靠交付的服务•传送的协议数据单元是TCP报文段(segment)•每条TCP连接只能有两个端点(endpoint)•每一条TCP连接只能是点对点的•TCP提供全双工通信•面向字节流面向字节流的TCP768H发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流TCP连接敬请关注•是一条虚连接而不是一条真正的物理连接•不关心应用进程一次把多长的报文发送到TCP缓存中•根据对方给出的窗口值和当前网络拥塞程度来决定一个报文段应包含多少个字节•可把太长的数据块划分短一些再传送•也可等待积累有足够多的字节后再构成报文段发送出去TCP的连接•TCP把连接作为最基本的抽象•每一条连接有两个端点•TCP连接的端点不是主机、应用进程,或运输层协议端口•TCP连接的端点叫做套接字(socket)或插口•端口号拼接到IP地址即构成了套接字TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}套接字socket=(IP地址:端口号)套接字(socket)每一条TCP连接唯一地被通信两端套接字所确定例题•某主机的IP地址是172.12.22.101,运行了3个应用程序:浏览器、QQ和迅雷下载,分别绑定在端口:50333、55443和59932上。•如果该主机接收到4个IP数据报,每个IP数据报的{目的IP:目的PORT}分别是:•数据报1{172.12.22.101:55443}•数据报2{172.12.22.101:59932}•数据报3{172.12.22.101:50333}•数据报4{172.12.22.101:10000}•那么这些数据报会分别上交给哪个应用进程?•关于TCP和UDP端口,下列说法中正确的是()•ATCP和UDP分别拥有自己的端口号,二者互不干扰,可以共存于同一台主机•BTCP和UDP分别拥有自己的端口号,但二者不能共存于同一台主机•CTCP和UDP的端口号没有本质区别,二者互不干扰,可以共存于同一台主机•DTCP和UDP的端口号没有本质区别,但二者不能共存于同一台主机IP数据部分源端口目的端口序号确认号数据偏移保留URG窗口检验和紧急指针选项(长度可变)填充ACKPSHRSTSYNEIN32bitTCP首部20字节固定首部TCP报文段发送在前5.5TCP报文段首部TCP首部TCP数据部分IP首部TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充源端口和目的端口字段——各占2字节端口是运输层与应用层的服务接口运输层的复用和分用功能都要通过端口才能实现序号字段——占4字节TCP连接传送的数据流中每一个字节都编上一个序号序号字段的值指出本报文段所发送的数据的第一个字节的序号TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充确认号字段——占4字节期望收到对方的下一个报文段的数据的第一个字节的序号TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充数据偏移(即首部长度)——占4位,以4字节为计算单位指出TCP报文段的数据起始处距离TCP报文段的起始处有多远TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充保留字段——占6位保留为今后使用,目前应置为0TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充紧急URG当URG1时,表明紧急指针字段有效告诉系统此报文段中有紧急数据(高优先级数据),应尽快传送TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充紧急指针字段——占16位指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充确认ACK当ACK1时,确认号字段有效当ACK0时,确认号字段无效TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充推送PSH(PuSH)接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程不再等到整个缓存都填满了后再向上交付TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充复位RST(ReSeT)当RST1时,表明TCP连接中出现严重差错必须释放连接,然后再重新建立运输连接TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充同步SYN同步SYN=1表示这是一个连接请求或连接接受报文TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留SYNRSTPSHACKURG填充终止FIN(FINis)用来释放一个连接FIN1表明此报文段的发送端数据已发送完毕,要求释放运输连接TCP首部20字节固定首部FIN位08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧

1 / 172
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功