资源描述:
《第7讲 CH5-传输层与TCPIP网络编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章面向连接的网络通信实现1.万维网通信的特点2.传输层协议概述3.传输控制协议TCP4.TCP传输协议报文头格式5.TCP/IP通信的实现6.TCP/IP网络编程举例1§3.3传输控制协议TCP1.TCP协议特点2.TCP的连接3.TCP传输连接管理21.传输控制协议特点TCP主要特点面向连接的传输层协议。TCP连接只能是点对点的(一对一)。TCP提供可靠交付的服务。TCP提供全双工通信。面向字节流。3768HTCP面向流的概念发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程12
2、30181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流H表示TCP报文段的首部x表示序号为x的数据字节TCP连接4应当注意TCP连接是一条虚连接;TCP对应用进程一次把多长的报文发送到TCP的缓存中是不关心的;TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。TCP可把太长的数据块划分短一些再传送。TCP也可等待积累有足够多的字节后再构成报文段发送出去。52TCP的连接TCP把连接作为最基
3、本的抽象。每一条TCP连接有两个端点。套接字(Socket)或插口TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端点叫做套接字。端口号拼接到(contatenatedwith)IP地址即构成了套接字。6套接字(socket)套接字socket=(IP地址:端口号)每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}7893.TCP传输连接管理1TCP的
4、连接建立2TCP的连接释放3TCP连接的实现103.TCP传输连接管理传输连接就有三个阶段,即:连接建立、数据传送和连接释放。传输连接的管理就是使传输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。11客户服务器方式TCP连接建立的客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(serv
5、er)。12用三次握手建立TCP连接SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器TCP的连接建立A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。13用三次握手建立TCP连接SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器TCP的连接建立SYN=1,ACK=1,seq=y,ack=x1B的TCP收到连接请求报文段后,如同意,则发回确认。B在确认报文段中应使SYN=1,使ACK=1,其
6、确认号ack=x1,自己选择的序号seq=y。14SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1A收到此报文段后向B给出确认,其ACK=1,确认号ack=y1。A的TCP通知上层应用进程,连接已经建立。15SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1B的TCP收到主
7、机A的确认后,也通知其上层应用进程:TCP连接已经建立。16SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED用三次握手建立TCP连接的各状态SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器TCP的连接建立SYN=1,ACK=1,seq=y,ack=x117FIN=1,seq=uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDTCP的连接释放数据
8、传输结束后,通信的双方都可释放连接。现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN=1,其序号seq=u,等待B的确认。18FIN=1,seq=uACK=1,seq=v,ack=u1主动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDA