数据通信-8章-运输层.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据通信-8章-运输层

UDP编程 1、双边创建套接字 2、服务器调用bind()函数,给套接字分配一个公认端口 3、客户机就能使用sendto()函数向服务器发送数据、信息;同样客户机和服务器都能使用sendto()和recvfrom()来传送数据报直到完成传递 4、传完后各自调用closesocket()来关闭套接字 数据报套接字的使用方法 8.3 传输控制协议 TCP 概述 8.3.1 TCP 最主要的特点 TCP 是面向连接的运输层协议。 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。 TCP 提供可靠交付的服务。 TCP 提供全双工通信。 面向字节流。 7 6 8 H ? TCP 面向流的概念 ? 发送 TCP 报文段 发送方 接收方 把字节写入 发送缓存 从接收缓存 读取字节 应用进程 应用进程 1 2 3 0 18 17 16 15 14 19 20 21 4 5 13 12 11 H 10 9 H 加上 TCP 首部 构成 TCP 报文段 TCP TCP 字节流 字节流 H 表示 TCP 报文段的首部 x 表示序号为 x 的数据字节 TCP 连接 应当注意 TCP 连接是一条虚连接而不是一条真正的物理连接。 TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。 TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。 TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。 8.3.2 TCP 的连接 TCP 把连接作为最基本的抽象。 每一条 TCP 连接有两个端点。 TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 连接的端点叫做套接字(socket)或插口。 端口号拼接到(contatenated with) IP 地址即构成了套接字。 套接字 (socket) 套接字 socket = (IP地址: 端口号) (5-1) 每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即: TCP 连接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)} (5-2) 同一个名词 socket 有多种不同的意思 应用编程接口 API 称为 socket API, 简称为 socket。 socket API 中使用的一个函数名也叫作 socket。 调用 socket 函数的端点称为 socket。 调用 socket 函数时其返回值称为 socket 描述符,可简称为 socket。 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。 TCP套接字编程 1、服务器创建一个用于侦听的套接字,为该套接字分配地址 2、调用listen()函数使他处于侦听状态 3、客户机在创建完套接字后,为套接字分配地址 4、调用connect()函数,请求与服务器套接字连接 5、服务器收到请求连接后,调用accept()函数,该函数用于连接套接字,应用该套接字与客户机上的连接套接字,客户就可以在服务器和客户之间进行数据传输 6、结束数据传输,调用closesocket()关闭套接字 8.4 TCP的拥塞控制 8.4.1 拥塞控制的一般原理 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。 出现资源拥塞的条件: 对资源需求的总和 可用资源 (5-7) 若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。 拥塞控制与流量控制的关系 拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。 拥塞控制所起的作用 提供的负载 吞吐量 理想的拥塞控制 实际的拥塞控制 0 死锁(吞吐量 = 0) 无拥塞控制 拥塞 轻度 拥塞 拥塞控制的一般原理 拥塞控制是很难设计的,因为它是一个动态的(而不是静态的)问题。 当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档