计算机网络 复习-05-运输层

1.  运输层协议概述

(1)进程之间的通信: 

运输层向它上面的应用层提供通信服务;

通信的真正端点并不是 主机而是 主机中的进程; 即:端到端的通信 是 应用进程之间的通信;

网络层是 为主机之间提供逻辑通信; 而 运输层 为应用进程之间提供端到端的逻辑通信;此外,运输层还要对收到的报文进行差错检测;

(2)运输层的两个主要协议

运输层需要有两种不同的运输协议: 面向连接的 TCP(传输控制协议)  和 无连接的 UDP(用户数据报协议)

在TCP/IP体系中,两个对等运输实体在通信时传送的数据单位叫做: TCP报文段 或 UDP 用户数据报;

UDP: 在传送数据之前不需要先建立连接; 远地主机的运输层在收到UDP报文后,不需要给出任何确认; 虽然UDP不提供可靠交付,但在某些情况下UDP却是 一种最有效的工作方式;

TCP: 提供面向连接的服务; 在传送数据之前必须先建立连接,数据传送结束后要释放连接; TCP不提供广播或多播服务;由于TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了 许多的开销,如 确认、流量控制、计时器 以及 连接管理等;这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源;

 一些常见的应用和应用层协议主要使用的 运输层协议(UDP 或 TCP):

  1. UDP: DNS(域名系统)、TFTP(简单文件传送协议)、RIP(路由信息协议)、DHCP(动态主机配置协议)、SNMP(简单网络管理协议)、NFS(网络文件系统)、IP电话,流式多媒体通信、多播(IGMP 网际组管理协议);

 2. TCP:SMTP(简单邮件传送协议)、TELNET(远程终端协议)、HTTP(超文本传送协议)、FTP(文件传送协议)

 

(3)运输层的端口

在运输层使用 协议端口号(端口),用来识别 进程;

虽然通信的终点是应用进程,但我们只要把传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即 最后交付目的进程)就由TCP来完成。

 硬件端口 是不同硬件设备进行交互的接口;而软件端口是 应用层的各种协议进程与运输实体进行层间交互的一种地址;

TCP/IP 的运输层 用一个 16位 端口号 来标志一个端口;端口号只具有 本地意思,它只是为了标志本计算机应用层 中的各个进程在 和 运输层交互时的层间接口。

两个计算机中的进程要互相通信,不仅必须知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用程序)。

因特网上的计算机通信 是采用 客户-服务器方式,因此运输层的端口号分为两大类:

1. 服务器端使用的端口号:  分为两类

 (1)熟知端口号(系统端口号): 0 —1023 , 指派给了TCP/IP最重要的一些应用程序,让所有用户都知道;

  

常用的熟知端口号
应用程序FTPTELNETSMTPDNSTFTPHTTPSNMPSNMP(trap)
熟知端口号212325536980161162

 (2)登记端口号: 1024 — 49151 ,给没有熟知端口号的应用程序使用的

2. 客户端使用的端口号( 短暂端口号 ): 49152 — 65535 , 这类端口号仅在客户进程运行时才动态选择,这类端口号是留给客户进程选择暂时使用;

 

2. 用户数据报协议 UDP

(1)UDP概述: 

  UDP的主要特点:

  UDP是无连接的; UDP使用尽最大努力交付; UDP是面向报文的; UDP没有拥塞控制;UDP支持一对一、一对多、多对一、多对多的交互通信; UDP的首部开销小(只有8个字节,比TCP的20个字节的首部要短);

(2)UDP的首部格式: 数据字段 + 首部字段(8个字节,由4个字段组成:源端口,目的端口,长度,检验和; 每个字段长度都是2个字节)

3. 传输控制协议 TCP概述

(1)TCP最主要的特点:

TCP是面向连接的运输层协议;每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);

TCP提供可靠交付的服务; TCP提供全双工通信; 面向字节流;(“流”是指 流入到进程或从进程流出的字节序列)

(2)TCP的连接

TCP连接的端点叫做 套接字或插口;端口号拼接到 IP地址即构成了 套接字; 

套接字的表示方法 是在点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开, eg: ( 192.3.4.5 : 80 );

套接字 socket = (IP地址 : 端口号 )

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定;

TCP连接的端点是个很抽象的套接字,即 (IP地址:端口号); 同一个IP地址可以有不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中;

同一个名词 socket 却可以表示多种不同的意思;

 

4. 可靠传输的工作原理

(1)停止等待协议:

 a. 无差错情况

 b. 出现差错

 c. 确认丢失 和  确认迟到

 d. 信道利用率

(2)连续ARQ协议:

 发送窗口;  累积确认;    滑动窗口协议;

           

5. TCP报文段的首部格式

首部固定部分各字段的意义为:

源端口和目的端口, 序号, 确认号, 数据偏移,保留,紧急URG(URGent), 确认ACK,推送PSH,复位RST,同步SYN,终止FIN, 窗口,检验和,紧急指针,选项;

6. TCP可靠传输的实现

(1)以字节为单位的滑动窗口

(2)超时重传时间的选择

(3)选择确认SACK

 

7. TCP的流量控制

(1)利用滑动窗口实现流量控制

流量控制: 让发送方的发送速率不要太快,要让接收方来得及接收;

(2)必须考虑传输效率

 

8. TCP的拥塞控制

(1)拥塞控制的一般原理

 拥塞控制: 防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载; 

(2)几种拥塞控制的方法

拥塞控制的4种算法: 慢开始, 拥塞避免, 快重传, 快恢复;

1. 慢开始 和 拥塞避免: 

  拥塞窗口;

慢开始: 由小到大逐渐增大拥塞窗口数值; 使用慢开始算法后,每经过一个传输轮次,拥塞窗口cwnd 就加倍;

拥塞避免算法: 让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间 RTT就把发送方的拥塞窗口 cwnd 加1,而不是加倍; 这样,拥塞窗口 cwnd 按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多;

  AIMD算法(加法增大、乘法减小)

2. 快重传 和 快恢复

 接收窗口(通知窗口)

(3)随机早期检测 RED

 

9. TCP的运输连接管理

运输 连接 是用来传送TCP报文的; TCP运输连接的建立和释放 是每一次面向连接的通信中必不可少的过程;

运输连接就有三个阶段: 连接建立 、 数据传送、连接释放;

(1)TCP的连接建立

三次握手

问题: 为什么A还要发送一次确认?

主要是为了防止已经失效的连接i请求报文段突然又传送到了B,因而产生错误;

假定出现一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某些网络结点长时间滞留了,以致延误到连接释放以后的某个时间才到达B。本来这是一个早已失效的报文段,但B收到此失效的连接请求报文段后,就误认为是A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接,假定不采用三次握手,那么只要B发出确认,新的连接就建立了;

  由于现在A并没有发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据。 但B却以为新的运输连接已经建立了,并一直等待A发来数据,B的许多资源就这样白白浪费了。 采用三次握手的办法可以防止上述现象的发生:例如在刚才的情况下,A不会向B的确认发出确认,B由于收不到确认,就知道A并没有要求建立连接。

(2)TCP的连接释放

四次挥手

(3)TCP的有限状态机

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值