当前位置:文档之家› 传输层协议

传输层协议

? 必须给出全局惟一 的信宿端的进程标识符。 主机可 以用IP地址进行标识 ,IP地址是全局惟一的,再给 主机上的进程赋予一个 本地惟一的标识符—端口号 ,二者加起来,便形成了进程的全局惟一标识符。
? 端口:传输层服务访问点 TSAP 。
– 从内部实现看,端口是一种抽象的软件结构(数据结构和 I/O缓冲区)
第8章 传输层协议
8.1 进程间通信 8.2 TCP段格式 8.3 TCP连接的建立和拆除 8.4 TCP流量控制 8.5 TCP拥塞控制 8.6 TCP差错控制 8.7 TCP状态转换图 8.8 用户数据报协议UDP
8.1 进程间通信
? 由于在一台计算机中同时存在多个进程,要进行进 程间的通信, 首先要解决进程的标识问题 。TCP和 UDP 采用协议 端口来标识某一主机上的通信进程。
109H
8 7 6H
TCP 连接
应当注意
? TCP 连接是一条虚连接而不是一条真正的物理连 接。
? TCP 对应用进程一次把多长的报文发送到 TCP 的 缓存中是不关心的。
? TCP 根据对方给出的窗口值和当前网络拥塞的程 度来决定一个报文段应包含多少个字节( UDP 发 送的报文长度是应用进程给出的)。
? TCP 两端的四个窗口经常处于 动态变化之中 。
? TCP连接的往返时间 RTT 也不是固定不变的 。需要使用特定的算法估算较为合理的重传时 间。
8.2 TCP段格式
TCP将应用层的数据分块并封装成 TCP段进行发送。 TCP 段=段首部 +数据
? 段首部(20到60字节)=定长部分+变长部分 ? 定长部分长度:20字节 ? 变长部分=选项+填充,长度 :0到40字节之间。 TCP段格式中各个字段的含义和作用:
? TCP 可把太长的数据块划分短一些再传送。 TCP 也可等待积累有足够多的字节后再构成报文段发 送出去。
T? CTCPP 连可接靠的通每一信端的都必具须体设有实两现个窗口 ——一
个发送窗口 和一个 接收窗口 。
? TCP 的可靠传输机制用 字节的序号 进行控制 。TCP 所有的确认都是 基于序号而不是基于报 文段。
? 应用层交给 UDP 多长的报文, UDP 就照样发 送,即一次发送一个报文。
? 接收方 UDP 对 IP 层交上来的 UDP 用户数据 报,在去除首部后就原封不动地交付上层的应 用进程,一次交付一个完整的报文。
? 应用程序必须选择合适大小的报文。
TCP 面向流的概念
? TCP要将数据分为分组, TCP所采用的分组称为 TCP 段。TCP段不定长,被封装在 IP数据报中传输。 IP数 据报不能保证数据的按序到达,还可能造成数据的丢 失或毁坏,这些问题经过 TCP协议的处理后,对上层 提供的是可靠的无差错的服务 。
? 因特网通信进程间的 相互作用模式 :客户/服务器模 型。客户/服务器模型相互 作用的过程 是:客户向服 务器发出服务请求,服务器完成客户所要求的操作, 然后给出响应。
? 服务器一般先于客户端启动,为了让客户能够找到服 务器,服务器必须使用一个 客户熟知的地址 ,客户可 以根据此地址向服务器提出服务请求。
– 从通信对方看,端口是通信进程的标识,应用进程通过系 统调用与端口建立关联后,传输层传给该端口的数据都会 被相应的应用进程所接收
– 从本地应用进程看,端口是进程访问传输服务的入口点。
? 每个端口拥有一个 端口号(port number ),端口 号是16比特的标识符,因此,端口号的取值范围是 从0到65535 。
? TCP/IP结合了两种端口分配方式,既保 证了灵活性,又方便了建立通信进程间 的联系。
0—1023 Well-known
1024—49151 Registered
49152—65535 Dynamic
面向报文的 UDP
? 发送方 UDP 对应用程序交下来的报文,在添 加首部后就向下交付 IP 层。UDP 对应用层交 下来的报文,既不合并,也不拆分,而是保留 这些报文的边界。
返回
TCP 面向流的概念
发送方
接收方
?应用进程
? H 表示 TCP 报文段的首部
应用进程
x 表示序号为 x 的数据字节
21 字节流
0 字节流
20
从接收缓存 1
19 把字节写入 发送缓存
读取字节
2 3
TCP
加上 TCP 首部
TCP
1817161514
构成 TCP 报文段
54
发送 TCP 报文段
131211H
? 端口分配有两种基本的方式:全局端口分配和本地 端口分配。
? TCP和UDP都是提供进程通信能力 的传输层协议, 各 有一套端口号,都是从 0到65535。
? 同一个端口在 TCP和UDP中可能对应于 不同类型的应 用进程,也可能对应于 相同类型的应用进程。为了区 别TCP和UDP的进程,除了给出主机 IP地址和端口号 之外,还要 指明协议 。
? 熟知地址的含义: 协议是双方约定的协议,主机 IP地 址是固定且公开的, 端口号是大家所熟知的。
? 每一个标准的服务器都拥有一个熟知的端口号,不同 主机上相同服务器的端口号是相同的。客户进程一般 采用临时端口号 ,而不采用熟知的端口号。临时端口 是使用时向操作系统 申请,由操作系统 分配,使用完 后再交由操作系统管理的端口。因此,只要同一时间 同一主机上的应用进程数量不超过可分配的临时端口 数量就能保证系统的正常运行。
? 熟知端口所占端口号不多,以全局方式进行分配。 TCP 和UDP规定, 小于 1024 的端口号用作熟知端口 ,熟知端口又称为 保留端口。
? 从1024到65535编号的端口为临时端口 ,临时端口又称为自由端口。临时端口 占全部端口的绝大部分,以本地方式进 行分配。当进程要与远地进程通信时, 首先申请一个临时端口,然后根据全局 分配的熟知端口号与远地服务器建立联 系,传输数据。机地址,端口号)
? 网络通信是两个 进程之间的通信 ,两个通信的进程构 成一个 关联 。这个关联应该包含两个三元组,由于通
信双方采用的协议必须是相同的,可以用一个 五元组 来描述两个进程的关联:(协议 ,本地主机地址 ,本地端
口号,远地主机地址 ,远地端口号)
相关主题