- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三部分传输层协议
第三部分 传输层协议 传输层概述 网络层的任务是提供主机到主机的通信,而传输层的任务是提供进程到进程的通信。 进程与端口号 在TCP/IP协议中,使用端口号(0~65535)来定义进程,端口号只具有本地意义。 TCP/IP采用客户-服务器模式实现进程到进程的通信: 运行在本地主机上的程序称为客户,运行在远程主机上提供服务的程序称为服务器。 客户的端口号通常随机选取,而服务器的端口号一般是由IANA指派的熟知端口号。 服务器在熟知端口上等待客户的服务请求,客户向服务器主机上的熟知端口发送服务请求,并得到响应。 客户-服务器模式示意 IP地址与端口号 端口号分配 熟知端口:0~1023,由IANA指派和控制。 注册端口:1024~49151,IANA不指派也不控制,但需要在IANA注册以防止重复。 动态端口:49152~65535,不需要向IANA注册,可以由任何进程使用,也称短暂端口。 套接字地址 一个IP地址与一个端口号合起来称为套接字地址(socket address)。 一个套接字地址唯一标识了一个通信端点: 客户套接字地址唯一定义了客户进程 服务器套接字地址唯一定义了服务器进程 为什么需要传输层 设置传输层的两个原因: 为端系统上运行的多个进程提供复用和分用的功能(用端口号实现) 为应用进程提供所需的数据传输服务 TCP和UDP为应用进程提供不同的数据传输服务 TCP:提供可靠的面向连接的服务(完美的服务) UDP:提供不可靠的无连接服务(最简单的服务) 第11章 用户数据报协议UDP 11.1 用户数据报格式 UDP报文称为用户数据报,它包括一个8字节的固定头部和数据部分。 检查和计算 计算UDP检查和包括伪头、UDP头和数据三个部分。 检查和的使用是可选的,若不计算检查和,该字段填入0。 检验和计算举例 11.2 UDP服务的要点 UDP发送的每一个用户数据报都是独立的,因而用户数据报没有编号,这意味着只有发送短报文的进程才能使用UDP。 UDP不负责流量控制。 除了可选的检查和之外,UDP没有差错控制机制。 11.3 UDP的封装和拆装 封装: 发送端进程将报文、报文长度及一对套接字地址传递给UDP,UDP在报文前面加上UDP头,然后将用户数据报及源/目的IP地址传递给IP软件。 拆装: 接收端UDP使用检查和检错后,取出其中的数据部分连同发送端的套接字地址一起传递给接收进程。 封装和拆装示意 11.4 端口的实现 端口用队列实现: 客户进程启动时,从操作系统请求一个端口号,创建一个相关联的入队列和一个出队列;服务器进程启动时,使用熟知端口号创建入队列和出队列。 发送进程将报文发送到相应的出队列,UDP从出队列中取出报文,加上UDP头后交给IP层。 接收端UDP收到用户数据报后,检查与目的端口号相关联的入队列是否存在,若存在将报文加入队列末尾,若不存在丢弃报文,并请求ICMP发送端口不可达报文。 接收进程从入队列中接收报文。 用队列实现端口 11.5 复用和分用 11.7 UDP的应用 适用于只要求简单的请求-响应通信的进程,如DNS。 适用于具有内部流量控制和差错控制的进程,如TFTP。 多播和广播应用,多播和广播能力已经内置于UDP软件中。 管理进程,如SNMP。 某些路由选择协议,如RIP。 11.8 UDP软件包示例 UDP软件包功能模块 假想的UDP软件包由控制块表、输入队列、控制块模块、输入模块、输出模块组成。 控制块表:记录已打开的端口,每个表项记录进程ID、端口号和队列号的对应关系。 输入队列:用来接收由UDP交付的报文。 控制块模块:维护控制块表。 输入模块:从IP接收用户数据报,查找控制块表,将用户数据报放入相应的队列。 输出模块:负责创建和发送用户数据报。 练习 28,33,43 第12章 传输控制协议TCP TCP服务模型 TCP段格式 TCP的连接机制 TCP的传输策略 TCP的差错控制 TCP的定时器 TCP的拥塞控制 12.1 TCP服务模型 TCP提供可靠的、有序的字节流服务 TCP使用连接进行通信,因而数据传输是有序的 TCP使用确认机制保证数据的正确接收,因而是可靠的 一条TCP连接就是一个字节流,每个字节都有一个编号,它不保留报文的边界 字节流交付 TCP使得进程与进程之间如同由“管道”连接一般。 发送方TCP实体将应用程序的输出分为不超过64k字节(实际通常为1500字节)的数据片段,每个数据片段封装在一个IP分组中发送。 接收方TCP实体根据字节序号将接收到的各个数据片段组装成连续的字节流交给应用程序。 TCP服务模型(续) 每条TCP连接有两个端点(套接字),一对套接字唯一标识一条TCP连接: 由于TCP使用两个端点来识别连接,因此一个套接口可以同时用于多个
原创力文档


文档评论(0)