《(6.4)--4.传输控制协议TCP概述.ppt》由会员分享,可在线阅读,更多相关《(6.4)--4.传输控制协议TCP概述.ppt(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TCP 最主要的特点 TCP 的连接 传输控制协议 TCP 概述TCP 协议lTCP 是整个TCP/IP协议簇中最重要的协议之一,也是运输层最为重要的协议之一,是面向连接的运输层协议。l在无连接的、不可靠的IP数据报服务基础之上,增加了保证可靠性的一系列措施,如可靠传输、流量控制、拥塞控制等,因此协议比较复杂。TCP 最主要的特点1、TCP 是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。正如打电话之前现需要拨号,对方接通后才可通信一样,通信结束后挂断电话,也就是TCP释放连接。2、每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连
2、接只能是点对点的(一对一)。这个特点与UDP协议有明显的区别,因为TCP协议通信时使用到了套接字,所以才能实现一对一的通信,我们会在后面详述。TCP 最主要的特点3、TCP 提供可靠交付的服务。通过TCP传送到的数据,无差错、不丢失、不重复、且按序到达。4、TCP 提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。在发送时,应用程序再把数据传送给TCP缓存后,就可以去做其他事情了,而TCP会在合适的时候把数据发送出去。在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。TCP 最主
3、要的特点5、面向字节流(1)TCP 中的“流”(stream)指的是流入或流出进程的字节序列。(2)“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。TCP 并不知道所传送字节流的含义。(3)TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。(4)但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。TCP 面向流的概念7 68H 发送 TCP 报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程123018171615141920
4、2145131211H109 H加上 TCP 首部构成 TCP 报文段TCPTCP字节流字节流H表示 TCP 报文段的首部x表示序号为 x 的数据字节TCP 连接TCP 面向流的概念 端口TCPTCP接收缓存发送缓存报文段报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程 lTCP 不关心应用进程一次把多长的报文发送到 TCP 缓存。lTCP 对连续的字节流进行分段,形成 TCP 报文段。还要说说明几点lTCP 连接是一条虚连接而不是一条真正的物理连接。lTCP 对应用进程一次把多长的报文发送到 TCP 的缓存中是不关心的。lTCP 根据对方给出的窗口值和当前
5、网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。lTCP 可把太长的数据块划分短一些再传送。lTCP 也可等待积累有足够多的字节后再构成报文段发送出去。TCP 的连接lTCP 把连接作为最基本的抽象。l每一条 TCP 连接有两个端点。lTCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 连接的端点叫做套接字(socket)或插口。l端口号拼接到(contatenated with)IP 地址即构成了套接字。TCP 的连接 端口 服务器客户TCPTCP客户每一条 TCP 连接有两个端点。TCP 连接的端点叫做套接字(socket)或插口。TCP连接套接字TCP 连接:=socket1,socket2 =(IP1:port1),(IP2:port2)每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:套接字(socket)TCP 连接,IP 地址,套接字lTCP 连接就是由协议软件所提供的一种抽象。lTCP 连接的端点是个很抽象的套接字,即(IP 地址:端口号)。l同一个 IP 地址可以有多个不同的 TCP 连接。l同一个端口号也可以出现在多个不同的 TCP 连接中。
限制150内