计网复习5——传输层

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

提示:以下是本篇文章正文内容

一、运输层概论

1.进程之间的通信

(1)传输层

传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。传输层还要对收到的报文进行差错检测。
传输层需要有两种不同的运输协议: 面向连接的 TCP和无连接的 UDP。
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。

进程之间的通信

(2)运输层的作用

运输层作用

(3)网络层和运输层区别

网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

网络层运输层区别

(4)运输层作用

  1. 复用和分用
    在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。
    这表明运输层有一个很重要的功能——复用 (multiplexing)和分用 (demultiplexing)。
    根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 。
  2. 屏蔽作用
    运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。

屏蔽作用

(5)可靠信道与不可靠信道

可靠不可靠信道

2.运输层的两个主要协议

(1)TCP与UDP

TCP/IP 的运输层有两个主要协议:用户数据报协议 UDP (User Datagram Protocol)、传输控制协议 TCP (Transmission Control Protocol)。
可靠性是指能否保证将传送的数据送达对方。
TCP中采用超时重发与确认响应的措施来提供可靠的传输,而UDP则不提供可靠性保证。
如果采用UDP又要保证可靠性,就要通过应用程序去确认数据的到达与否。这样一来,势必增加应用软件开发人员的负担。

运输层

(2)运输协议数据单元

两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
TCP 传送的数据单位协议是 TCP 报文段(segment)。
UDP 传送的数据单位协议是 UDP 报文或用户数据报。

(3)UDP 与 TCP 的区别

UDP:传送数据之前不需要先建立连接。收到 UDP 报后,不需要给出任何确认。不提供可靠交付,但是一种最有效的工作方式。
TCP:提供可靠的、面向连接的运输服务。不提供广播或多播服务。开销较多。

(4)使用UDP和TCP的典型应用和应用层协议

UDP和TCP

(5)思考

思考1:网络游戏采用的是UDP 还是 TCP ?
多数实时战斗类游戏要用UDP,因为TCP的特性,一旦丢包就会重发,会阻塞后续的数据包,因而可能会产生一个较大的瞬时延迟。协议选用主要取决于是否能容忍延迟。

思考2:QQ 采用的是哪种运输层协议?
QQ既有UDP也有TCP。不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。QQ采用的通信协议以UDP为主,辅以TCP协议。由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端进行通讯才能保证这种超大规模的服务。QQ客户端之间的消息传送也采用了UDP模式。

3. 运输层的端口

(1)复用和分用

复用:应用进程都可以通过运输层再传送到 IP 层(网络层)。
分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。

运输层端口

(2)需要考虑的问题

进程的创建和撤销都是动态的,因此发送方几乎无法识别其他机器上的进程。
我们往往需要利用目的主机提供的功能来识别终点,而不需要知道具体实现这个功能的进程是哪一个。
有时我们会改换接收报文的进程,但并不需要通知所有的发送方。

(3)端口号

  1. 端口号
    解决方法:在运输层使用协议端口号 (protocol port number),或通常简称为端口 (port)。把端口设为通信的抽象终点。
    所谓的端⼝,就好像是⻔牌号⼀样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端⼝的,每个应⽤程序对应⼀个端⼝号,通过类似⻔牌号的端⼝号,客户端才能真正的访问到该服务器。为了对端⼝进⾏区分,将每个端⼝进⾏了编号,这就是端⼝号。

端口号

  1. 运输层端口号
    端口用一个 16 位端口号进行标志。
    端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
    在互联网中,不同计算机的相同端口号是没有联系的。
    由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。

  2. 两大类、三种类型的端口号

两大类三种类型端口号

  1. 常用熟知端口号
    【UDP】
    域名系统DNS*:53
    简单文件传输协议TFTP:69
    简单网络管理协议SNMP:161
    【TCP】
    文件传输协议FTP*:21连接 (20传输数据)
    远程登陆TELNET*:23
    电子邮件传输协议SMTP*:25(发邮件)
    邮局协议版本3POP3:110(收邮件)
    超文本传输协议HTTP*:80
    超文本传输安全协议HTTPS*:443

常用端口号

  1. MAC地址、IP地址和端口号
    MAC地址、IP地址和端口号是网络通信中用于标识网络设备和进程的三种不同的标识符。
    假设Alice想要通过互联网访问Bob的Web服务器:
    MAC地址:Bob的Web服务器有一个网卡,其MAC地址可能是00:1A:2B:3C:4D:5E。当Alice的数据包到达Bob所在局域网的交换机时,交换机会使用这个MAC地址将数据帧直接转发到Bob的服务器。
    IP地址:Bob的Web服务器有一个IP地址,假设是192.168.1.100。Alice的计算机通过DNS解析Bob的服务器域名,获得这个IP地址,并通过IP地址在互联网上路由数据包到Bob的服务器。
    端口号:Bob的Web服务器监听在端口80上,这是HTTP服务的标准端口。Alice的计算机在数据包中指定目标端口为80,这样当数据包到达Bob的服务器后,操作系统就会将数据传递给监听在端口80上的Web服务器进程。

二、用户数据报协议UDP [更高效]

1.UDP协议概述

(1) UDP协议

UDP 只在 IP 的数据报服务之上增加了很少一点的功能:复用和分用的功能、差错检测的功能。
虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。
UDP是一种无连接,不可靠的协议。
并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。
此外,传输途中出现丢包,UDP 也不负责重发。甚至当包的到达顺序出现乱序时也没有纠正的功能。
UDP 常用于一下几个方面:1.包总量较少的通信(DNS、SNMP等);2.视频、音频等多媒体通信(即时通信);3.限定于 LAN 等特定网络中的应用通信;4.广播通信(广播、多播)

UDP

(2)UDP主要特点:简单方便,但不可靠

(1) UDP 是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
(2) UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
(3) UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
(4) UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
(5) UDP 支持一对一、一对多、多对一和多对多的交互通信。
(6) UDP 的首部开销小,传输效率较高。只有 8 个字节,比 TCP 的 20 个字节的首部要短。

(3)面向报文的UDP

发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。
应用程序必须选择合适大小的报文。若报文太长,IP 层在传送时可能要进行分片,这会降低 IP 层的效率。若报文太短,会使 IP 数据报的首部的相对长度太大,这也降低了 IP 层的效率。

面向报文的UDP

面向报文的UDP

(4)UDP通信和端口号的关系

复用:将 UDP 用户数据报组装成不同的 IP 数据报,发送到互联网。
分用:根据 UDP 用户数据报首部中的目的端口号,将数据报分别传送到相应的端口,以便应用进程到端口读取数据。

多对一的通信

一对多的通信

2.UDP首部格式

(1)首部格式

用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段很简单,只有 8 个字节,由 4 个字段组成,每个字段都是 2 个字节。
在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。

UDP首部格式

(2)UDP基于端口的分用

当运输层从 IP 层收到 UDP 数据报时,就根据首部中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值