运输层---概述

简介: 运输层---概述

运输层主要内容

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:


目录
相关文章
|
搜索推荐 算法 前端开发
图书推荐管理系统Python+Django网页界面+协同过滤推荐算法
图书推荐管理系统Python+Django网页界面+协同过滤推荐算法
319 0
图书推荐管理系统Python+Django网页界面+协同过滤推荐算法
|
关系型数据库 MySQL 数据安全/隐私保护
远程连接mysql8,报错10061 解决办法
远程连接mysql8,报错10061 解决办法
957 0
GOLANG MAP 查找
GOLANG MAP 查找
224 3
|
Web App开发 缓存 移动开发
四万字符数带你使用 Vitepress 构建博客并部署到 github 平台
四万字符数带你使用 Vitepress 构建博客并部署到 github 平台 最近写了好多篇 Chrome 浏览器插件相关的文章,有十几二十篇,就想着构建个博客,用来放置相应的文章。 正好前段时间看到 VitePress 1.0.0 发布了,而且是用 markdown 写文章,正好写插件文章的时候文章都是 md 格式,所有用下这个然后顺便写一篇使用教程。 Chrome 插件开发博客地址:https://18055975947.github.io/extension/
273 0
|
C语言
【C语言】求一个整数的二进制序列中1的个数的三种方法
【C语言】求一个整数的二进制序列中1的个数的三种方法
245 0
倚天产品介绍|阿里云核心产品—倚天710
阿里云最新产品手册——阿里云核心产品——倚天710自制脑图
倚天产品介绍|阿里云核心产品—倚天710
|
存储 Kubernetes 调度
K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(下)
本文全面探讨了Kubernetes集群中Pod的四种关键机制——Pod亲和性、污点(Taints)、容忍度(Tolerations)、生命周期以及健康探测,为读者提供了深入理解并有效应用这些特性的指南。
|
小程序 JavaScript Java
基于微信小程序的加油站服务管理系统设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的加油站服务管理系统设计与实现(源码+lw+部署文档+讲解等)
302 0
[UDS] --- DiagnosticSessionControl 0x10 service
[UDS] --- DiagnosticSessionControl 0x10 service
1030 0