- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章__TCP和UDP协议
第8章 TCP和UDP协议 传输层的功能 在两个主机的进程之间提供有效可靠、价格合理的端——端通信; 使进程之间的数据传输独立于具体使用的通信子网。 传输层为相互通信的应用进程提供了逻辑通信 应用进程之间的通信 两个主机进行通信实际上就是两个主机中的应用进程互相通信。 应用进程之间的通信又称为端到端的通信。 “传输层提供应用进程间的逻辑通信”。 “逻辑通信”指:传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。 传输层协议和网络层协议的主要区别 传输协议与数据链路层协议的比较 传输协议与数据链路层协议相似点: 都必须解决差错控制、排序、流量控制等问题。 传输协议与数据链路层协议不同: 两个协议所运行的环境不同所造成的。 对协议产生的影响 数据链路层建立连接的过程很简单,另一端总是存在的,除非它已崩溃,这两种情况的处理都很简单。 对运输层而言,连接建立要复杂得多。 对协议产生的影响(续) 数据链路层的物理媒体中是没有存储能力的, 而通信子网中存在着潜在的存储能力,因此需要使用特殊的协议。 对协议产生的影响(续) 数据链路层最多只有一条(多链路时少量几条)连接。 在传输层会出现的大量动态的连接,这就要求使用与在数据链路层中不同的处理方法,如缓冲区的管理等。 传输层与上下层之间的关系 8.1.2 传输层中的TCP和UDP协议 UDP和TCP都使用IP传输。 传输层向上提供可靠的和不可靠的逻辑通信信道 传输控制协议TCP 是面向连接的协议 提供高可靠性服务 用于一次传输要交换大量报文的情形。 用户数据报协议UDP 是无连接的; 其可靠性由应用程序提供; 提供高效率服务; 用于一次传输交换少量报文的情形。 8.1.3 传输层端口 端口(port) :是一种抽象的软件结构(包括一些数据结构和I/O缓冲区) 用于标识应用层的进程。 UDP和TCP都使用端口与上层的应用进程进行通信。 端口在进程之间的通信中所起的作用 端口号 端口用一个 16 bit 端口号进行标志。 TCP和UDP各自的端口号也相互独立。 如TCP有一个255号端口,UDP也可以有一个255号端口,两者并不冲突。 端口号只具有本地意义 端口号只是为了标志本计算机应用层中的各进程。 在因特网中不同计算机的相同端口号是没有联系的。 端口号的分配 有两种基本分配方式: 全局分配:是一种集中分配方式,由一个公认的中央机构根据用户需要尽行统一分配,并将结果公布于众。 本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(绑定)。 TCP/IP端口号的分配综合了两种方式。 两类端口 一类是保留端口,其数值一般为 0~1023。当一种新的应用程序出现时,必须为它指派一个熟知端口。 另一类则是动态端口,用来随时分配给请求通信的客户进程。 注册端口 保留端口号: 套接字(socket) TCP 使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将 TCP 连接的端点称为套接字(socket),或插口、套接口。 插口和端口、IP 地址的关系是: 同一个名词 socket有多种不同的意思 应用编程接口 API 称为 socket API, 简称为 socket。现在流行的API有两类: Berkeley socket——起源于Berkeley的加州大学 TLI(运输层接口)——由ATT公司开发 socket API 中使用的一个函数名也叫作socket。 调用 socket 函数的端点称为 socket。 调用 socke t函数时其返回值称为 socket描述符,可简称为 socket。 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。 8.2 传输控制协议 TCP 8.2.1 TCP功能概述 TCP特点 在进行实际数据传输前,必须在源端与目的端建立一条连接。 建立连接 数据传输 释放连接 主要通过套接字为上层协议提供面向连接的传输服务 TCP实体以分段(segment)的形式交换数 每一个分段都需接收端确认 TCP 协议是面向字节的。 TCP 将所要传送的分段看成是字节组成的数据流,并使每一个字节对应于一个序号。 在连接建立时,双方要商定初始序号。 TCP 的确认是对接收到的数据的最高序号表示确认。 接收端返回的确认号是已收到的数据的最高序号加 1。 确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。 通信中的每一方都不必专门发送确认报文,可以在传送数据时顺便把确认信息捎带传送。 8.2.2 TCP分段的格式 窗口字段 —— 占 2
文档评论(0)