南京企业网站设计制作,网站怎么做seo、,徐州企业建站模板,腾讯云服务器可以做传奇网站吗5.1 运输层协议概述
5.1.1 进程之间的通信
图5-1 中两个运输层之间有一个深色双向粗箭头#xff0c;写明“运输层提供应用进程间的逻辑通信”。
图5-1 运输层为相互通信的应用进程提供了逻辑通信
5.1.2 运输层的两个主要协议
5.1.3 运输层的端口
请注意#xff0c;这种…5.1 运输层协议概述
5.1.1 进程之间的通信
图5-1 中两个运输层之间有一个深色双向粗箭头写明“运输层提供应用进程间的逻辑通信”。
图5-1 运输层为相互通信的应用进程提供了逻辑通信
5.1.2 运输层的两个主要协议
5.1.3 运输层的端口
请注意这种在协议栈层间的抽象的协议端口是软件端口和路由器或交换机上的硬件端口是完全不同的概念。硬件端口是不同硬件设备进行交互的接口而软件端口是应用层的各种协议进程与运输实体进行层间交互的地点。
客户在发起通信请求时必须先知道对方服务器的 IP 地址用来找到目的主机和端口号用来找到目的进程。因此运输层的端口号分为下面的两大类。
1服务器端使用的端口号 这里又分为两类最重要的一类叫作熟知端口号(well-known port number)或全球通用端口号数值为 0~1023。
表5-2 常用的熟知端口号 应用程序FTPTELNETSMTPDNSTFTPHTTPSNMPSNMP(trap)HTTPS熟知端口号212325536980161162443
另一类叫作登记端口号数值为 1024~49151。这类端口号是为没有熟知端口号的应用程序使用的。
2客户端使用的端口号 数值为 49151~65535。由于这类端口号仅在客户进程运行时才动态选择因此又叫作短暂端口号。
5.2 用户数据报协议 UDP
5.2.1 UDP 概述
UDP 的主要特点是简单方便但不可靠多应用类型
1UDP 是无连接的即发送数据之前不需要建立连接当然发送数据结束时也没有连接可释放因此减少了开销和发送数据之前的时延。
2UDP 使用尽最大努力交付即不保证可靠交付因此主机不需要维持复杂的连接状态表这里面有许多参数。
3UDP 是面向报文的。发送方的 UDP 对应用程序交下来的报文在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文既不合并也不拆分而是保留这些报文的边界。
4UDP 没有拥塞控制因此网络出现的拥塞不会使源主机的发送速率降低。
5UDP 支持一对一、一对多、多对一和多对多的交互通信。
6UDP 的首部开销小只有 8 个字节比 TCP 的 20 个字节的首部要短。
5.2.2 UDP 的首部格式
UDP 计算检验和的方法和计算 IP 数据报首部检验和的方法相似。但不同的是IP 数据报的检验和只检验 IP 数据报的首部但 UDP 的检验和是把首部和数据部分一起都检验。
5.3 传输控制协议 TCP 概述
5.3.1 TCP 最主要的特点
1TCP 是面向连接的运输层协议。
2每一条 TCP 连接只能有两个端点(endpoint)每一条 TCP 连接只能是点对点的一对一。
3TCP 提供可靠交付的服务。通过 TCP 连接传送的数据无差错、不丢失、不重复并且按序到达。
4TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。
5面向字节流。TCP 中的“流”(stream)指的是流入到进程或从进程流出的字节序列。“面向字节流”的含义是虽然应用程序和 TCP 的交互式一次一个数据块大小不等但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。
5.3.2 TCP 的连接 5.4 可靠传输的工作原理
5.4.1 停止等待协议
全双工通信的双方既是发送方也是接收方。 下面为了讨论问题的方便我们仅考虑 A发送数据而 B 接收数据并发送确认。因此 A 叫做发送方而 B 叫做接收方。因为这里是讨论可靠传输的原理因此把传送的数据单元都称为分组而并不考虑数据是在哪一个层次上传送的 。“停止等待”就是每发送完一个分组就停止发送等待对方的确认。在收到确认后再发送下一个分组。
1. 无差错情况
2. 出现差错
3. 确认丢失和确认迟到
4. 信道利用率 优点简单 缺点信道利用率太低
5.4.2 连续 ARQ 协议 5.5 TCP 报文段的首部格式
TCP 报文段首部的前 20 个字节是固定的如图5-13 所示后面有 4n 字节是根据需要而增加的选项n 是整数。因此 TCP 首部的最小长度是 20 字节。
首部固定部分各字段的意义如下
1源端口和目的端口
2序号
首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。
3确认号 占 4 字节是期望收到对方下一个报文段的第一个数据字节的序号。 若确认号 N则表明到序号 N-1 为止的所有数据都已正确收到。 4数据偏移
5保留
6紧急 URG(URGent)
7确认 ACK(ACKnowledgment)
8推送 PSH(PuSH)
9复位 RST(ReSeT)
10同步 SYN(SYNchronization)
11终止 FIN(FINish意思是“完了”“终止”)
12窗口
13检验和
14紧急指针
15选项
TCP 最初只规定了一种选项 即最大报文段长度 MSS (Maximum Segment Size) [RFC879]。请注意MSS这个名词的含义。MSS是每一个TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。
5.6 TCP 可靠传输的实现
5.6.1 以字节为单位的滑动窗口
5.6.2 超时重传时间的选择
5.6.3 选择确认 SACK 5.7 TCP 的流量控制
5.7.1 利用滑动窗口实现流量控制
流量控制(flow control)就是让发送方的发送速率不要太快要让接收方来得及接收。
5.7.2 TCP 的传输效率 5.8 TCP 的拥塞控制
5.8.1 拥塞控制的一般原理
在计算机网络中的链路容量即带宽、交换结点中的缓存和处理机等都是网络的资源。在某段时间若对网络中某一资源的需求超过了该资源所能提供的可用部分网络的性能就要变坏。这种情况就叫作拥塞(congestion)。可以把出现网络拥塞的条件写成如下的关系式
Σ对资源的需求 可用资源 5-7
拥塞控制就是防止过多的数据注入网络中这样可以使网络中的路由器或链路不至于过载。拥塞控制所要做的都有一个前提就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程涉及所有的主机、所有的路由器以及与降低网络传输性能有关的所有因素。
5.8.2 TCP 的拥塞控制方法
TCP 进行拥塞控制的算法有四种即慢开始(slow-start)、拥塞避免(congestion avoidance)、快重传(fast retransmit)、快恢复(fast recovery)见草案标准 RFC 5681。下面就介绍这些算法的原理。为了集中精力讨论拥塞控制我们假定
1数据是单方向传送的对方只传送确认报文。
2接收方向总是有足够大的缓存空间因而发送窗口的大小由网络的拥塞程度来决定。
1. 慢开始和拥塞避免
拥塞避免算法的目的是让拥塞窗口 cwnd 缓慢地增大具体算法见[RFC 5681]。执行算法后的结果大约是这样的每经过一个往返时间 RTT发送方的拥塞窗口 cwnd 的大小就加1而不是像慢开始阶段那样加倍增长。因此在拥塞避免阶段就称为“加法增大”AI(Additive Increase)表明在拥塞避免阶段拥塞窗口 cwnd 按线性规律缓慢增长。
但请注意“拥塞避免”并非完全避免拥塞而是让拥塞窗口增长得缓慢些使网络不容易出现拥塞。
5.8.3 主动队列管理 AQM 5.9 TCP 的运输连接管理
5.9.1 TCP 的连接建立
TCP 建立连接的过程叫作握手握手需要在客户和服务器之间交换三个 TCP 报文段。图5-28 画出了三报文握手建立 TCP 连接的过程。 图5-28 用三报文握手建立 TCP 连接
上面给出的连接建立过程叫作三报文握手。请注意在图5-28 中 B 发送给 A 的报文段也可拆成两个报文段。可以先发送一个确认报文段ACK 1ack x 1,然后再发送一个同步报文段SYN 1seq y。这样的过程就变成了四报文握手释放连接但效果是一样的。
为什么 A 最后还要发送一次确认呢这主要是为了防止已失效的连接请求报文段突然又传送到了 B因而产生错误。
5.9.2 TCP 的连接释放
5.9.3 TCP 的有限状态机 本章的重要概念 习题