运输层---概述

简介: 运输层---概述

运输层主要内容

1. 传输层工作原理:

  • 多路复用与多路分解
  • 可靠数据传输
  • 流量控制
  • 拥塞控制

2. Intrnet传输层协议:

  • UDP:无连接传输
  • TCP:面向连接的可靠传输
  • TCP的拥塞控制

一.概述和传输层服务

1.1 概述

  • 1. 运输层:将从应用程序接收到的报文分成多个小块,各个小块均加上运输层首部以生成运输层报文段,即转换成运输层分组。(运输层分组也称为运输层报文段)
  • 2. 应用程序数据传输—图示1:
  • 发送端:

报文

报文段

应用程序

运输层

网络层1

  • 图示2
  • 中间传输:

数据包

数据包

网络层1

...1

路由器

...2

网络层2

网络层将运输层的报文段封装为数据包。

中间路由器作用于网络层字段,不会检查运输层报文段的字段。

  • 图示3
  • 接收端:

报文段

数据

网络层2

运输层2

应用程序

1.2 传输服务和协议

  • 1. 运输层协议作用:为不同主机应用进程提供了逻辑通信功能。

计算机网络中的逻辑通信:在这种方式下,发送方不同应用进程可以使用同一个运输层协议来传送数据而接收方的运输层能够在剥去报文的首部后将数据正确交付到目的应用程序

逻辑通信的实现需要运输层提供端到端的逻辑连接,并且进行差错检测等操作。在计算机网络中,虽然两个运输层之间并没有一条水平方向的物理连接,但是它们之间的通信却好像是沿水平方向传送数据

  • 2. 运输层协议实现位置端系统之中
  • 3.运输层协议TCP和UDP协议

1.3 传输层 vs. 网络层

以下面图例作类比:

交付

交付

交付

交付

分发

分发

分发

写信人1

收信人Bob

写信人2

写信人...

邮政服务

收信人Ann

收信人1

收信人...

其中”邮政服务“左右两侧分别为两个家庭的所有成员,代表两个主机(端系统)

  • 收信人Bob和Ann:运输层协议
  • 邮政服务:代表网络层协议
  • 信封内容(字符):应用层报文
  • 进程:两家人的亲戚关系。

1.4 Internet传输层协议

  • UDP(用户数据报协议):不可靠,无连接服务。
  • TCP(传输控制协议):可靠,面向连接服务。
  1. 面向连接的服务和面向无连接的服务
  • 面向无连接的服务
    指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包(报文分组)送到线路上,由系统自主选定路线进行传输
    面向连接的服务
    通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程
  1. 有应答与无应答的服务
  • 有应答服务
    指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不是由用户实现。
    所发送的应答可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。
    无应答服务
    指接收方收到发送的数据后,不向发送方反馈任何信息,该服务是不透明的,即不是由用户实现,
    而是由通信系统自动实现。因此,该服务不能保证可靠性
  1. 可靠与不可靠的服务
  • 可靠服务
    指网络具有纠错、检错机制,能保证数据正确、可靠地传送到目的地。
    不可靠服务
    指网络只是尽量正确、可靠地传送,但不能保证数据正确、可靠地传送到目的地。
    如文件传输服务就是一种有应答服务,客户端收到服务器发送的页面文件后不给出应答,属于不可靠服务

二. 多路复用与多路分解(解复用)

2.1 概述

  • 前置:
    网络层IP协议(国际协议):是一种尽力而为的交付服务(Best-Effort Delivery Service),基于每台主机有一个IP地址提供不可靠服务
  • 定义:
    多路复用将运输层报文段中数据交付到正确套接字的工作
    多路分解(解复用):包括从源主机不同套接字收集数据块,并封装上首部信息(用于在以后分解),再将报文段传递到网络层的所有工作。

  • 多路复用的要求:
  1. 套接字有唯一标识符
  2. 每个报文段有 特殊字段指示交付到的套接字。

运输层报文段中的源与目的端口字段:

  • 流程图示:

2.2 无连接与面向连接的多路分解(解复用)

  • 1. 无连接的多路分解(解复用)

2.面向连接的多路分解(解复用)

2.3面向连接的多路复用

*2.4 Web服务器与TCP

  • 前置
    连接套接字与进程之间并不是一 一对应关系。

如今的高性能web服务器通常只使用一个进程,但是为每一个新的客户连接创建一个具有新连接套接字的新线程(线程可被看作一个轻量级的的子进程)。对于这样一台服务器,任意给定时间内都有可能有(具有不同标识的)许多连接套接字连接到相同的进程。

  • 使用持续HTTP:客户与服务器之间经过同一个服务器套接字交换HTTP报文。
  • 使用非持续HTTP:每一对请求/响应都创建一个新的TCP连接并随后关闭(每次创建关闭不同的套接字)。频繁创建关闭套接字会影响web服务器的性能。
  • 多线程Web Server:


目录
相关文章
|
6月前
|
运维 监控 网络协议
QT实现TCP通信:从基础到高级的全面解析
QT实现TCP通信:从基础到高级的全面解析
788 0
|
6月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
166 3
|
网络协议 安全 数据库
C++实战项目-网络编程基础包含TCP详解(一)
C++实战项目-网络编程基础包含TCP详解(一)
150 0
|
6月前
|
域名解析 SQL 缓存
从0开始回顾计算机网络---系列一
基础 1、网络模型(OSI七层模型,TCP/IP四层模型、五层模型、各层协议以及作用) 网络模型 ● 七层模型: 应用层(Http、FTP)、表示层(Telnet)、会话层(DNS)、传输层、网络层、数据链路层、物理层。 ● 五层模型: 应用层(http、DNS、FTP、SMTP、telnet)、传输层(TCP、UDP)、网络层(IP.ICMP、ARP)、数据链路层(ppp)、物理层。 ● TCP/IP四层模型: 应用层,传输层,网际层,网络接口层。 作用: ● 应用层:解决通过应用进程之间的交互来实现特定网络应用的问题 ● 表示层:解决通信双方交换信息的表示问题 ● 会话层:解决进程之间进
|
6月前
|
缓存 网络协议 算法
从0开始回顾计算机网络---系列二
应用层 1、HTTP常见状态码? 分类 分类 范围 描述 1xx 信息响应(100-199) 代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。 2xx 成功响应(200-299) 代表请求已成功被服务器接收、理解、并接受 。 3xx 重定向(300-399) 表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向 4xx 客户端错误(400-499) 代表了客户端看起来可能发生了错误,妨碍了服务器的处理。 5xx 服务器错误(500-599) 表示服务器无法
|
6月前
|
网络协议 算法 网络架构
从0开始回顾计算机网络---系列四
网络层 1、IP 协议的定义和作用? 1. IP协议(Internet Protocol)又被称为互联网协议,是支持网间互联的数据包协议,工作在网际层,主要目的就是为了提高网络的可扩展性。 2. 通过网际协议IP,可以把参与互联的,性能各异的网络看作一个统一的网络。 3. 和传输层TCP相比,IP协议是一种无连接/不可靠、尽力而为的数据包传输服务,和TCP协议一起构成了TCP/IP协议的核心。 2、IP协议有哪些作用? IP协议主要有以下几个作用: ● 寻址和路由:在IP数据报中携带源IP地址和目的IP地址来表示该数据包的源主机和目标主机。IP数据报在传输过程中,每个中间节点(IP网关、路由
|
6月前
|
SQL 网络协议 安全
从0开始回顾计算机网络---系列五
数据链路层 1、数据链路层常见协议? 协议 名称 作用 ARP 地址解析协议 根据IP地址获取物理地址 RARP 反向地址转换协议 根据物理地址获取IP地址 PPP 点对点协议 主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案 2、MAC地址、IP地址以及ARP协议? ● MAC地址是以太网的MAC子层所使用的地址; ● IP地址是TCP/IP体系结构网际层所使用的地址; ● ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址; 3、MAC地址是
|
6月前
|
缓存 网络协议 算法
从0开始回顾计算机网络---系列三
传输层 1、TCP首部格式? 源端口: 占16比特,写入源端口号,用来标识发送该TCP报文段的应用进程。 目的端口: 占16比特,写入目的端口号,用来标识接收该TCP报文段的应用进程。 序号: 占32比特,取值范围[0,2^32-1],序号增加到最后一个后,下一个序号就又回到0。指出本TCP报文段数据载荷的第一个字节的序号。 确认号: 占32比特,取值范围[0,2^32-1],确认号增加到最后一个后,下一个确认号就又回到0。指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认。若确认号=n,则表明到序号n-1为止的所有数据都已正确接收,期望接收序
|
6月前
[UDS] --- UDS概述
[UDS] --- UDS概述
696 0
|
缓存 网络协议 API
C++实战项目-网络编程基础包含TCP详解(二)
C++实战项目-网络编程基础包含TCP详解(二)
184 0