• 运输层是面向通信功能中的最高层,又是面向用户功能中的最底层。

一、运输层的作用

  • AP~n~代表各个进程,(通讯并不是主机和主机之间的通信,实际上是应用进程之间的通信)
  • IP协议的作用范围:主机和主机之间进行通信
  • 端口:端口实际上是一个标识符,标志着是哪个进程发送的数据,或要交给哪个进程。
  • 运输层协议TCP和UDP的作用范围:从进程到进程
  • 网络层(IP协议)是为主机之间提供逻辑通信,而运输层(TCP/UDP协议)是为应用进程之间提供端到端的逻辑通信

运输层的功能和协议:

  • 在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信,这表明运输层有两个很重要的功能 :复用分用
  • 根据应用程序的不同需求,运输层需要两种不同的运输协议,即面向连接的TCP无连接的UDP。

基于端口的分用和复用

  • TCP协议和UDP协议面对不同通信需求的进程产生不同的报文,它们最终都会被封装成IP数据报,到达目的地再拆分,拆分根据IP数据报的首部中的协议字段来拆分,分出TCP和UDP

屏蔽作用
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑,所采用的的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道

二、TCP/IP运输层的两种协议

  • 运输层这条逻辑通信信道对上层的表现因运输层使用不同的协议而又很大的差别
  • 用户数据报协议UDP
    • 特点: 快速、简单、不可靠
    • 当运输层采用无连接的UDP协议时,这种逻辑通信信道是一条不可靠信道,因为对于UDP来说,它是无连接的,所以这里无所谓是全双工的半双工的概念。
  • 传输控制协议TCP :
    • 可靠
    • 提供面向连接的服务:前面网络层讲了虚电路和数据报,数据报是无连接的,这是网络层的概念,而运输层是不用知道下层是如何实现的。在运输层看来是有一个连接的,而且是一对一的连接!
    • 不提供广播和多播服务,虽然下层网络层不是可靠传输,底层也不是全双工,但这种逻辑通信信道相当于一条全双工可靠信道不用管下层怎么样,另外TCP如何保证可靠传输,在后面会提)

      应用程序如何选择哪种协议呢?

三、端口的概念

  • 计算机中的进程使用进程标识符来标志的。但各个进程不应该让计算机的操作系统来指派它的进程标识符,这是因为不同的操作系统会导致标识符格式太多,不易处理。所以端口号一般用同一方法分配
  • 端口用一个16位端口号进行标志,它只具有本地意义,仅仅为了标志本计算机各个应用进程,不同计算机的相同名称的端口号是没有任何联系的(非互相通信的计算机)。因此两台计算机在通信时,需要知道IP地址和端口号才可以。

两大类端口号:

  1. 服务器端使用的端口号

    • 熟知端口,数值一般为0-1023 (常用)
    • 登记端口号,数值为1024-49151。这个范围的端口号必须在IANA等级,以防止重复。 (用来登记将来有可能称为熟知端口号的端口号。)
  2. 客户端使用的端口号
    • 又称为短暂端口号,数值为49152-65535,留给客户进程选择暂时使用。(通讯结束后,这个端口号就被释放掉了)

四、用户数据报协议UDP

  • 协议传送单元叫做UDP报文或用户数据报
  • 特点 :
    1. 快速、不可靠、简单。
    2. UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
    3. UDP使用最大努力交付,不保证可靠交付,也不考虑数据量拥堵程度,发了就完事了。
    4. UDP是面向报文的,将整个应用层报文交给IP数据报。
      • 应用层交给UDP多长的报文,UDP就发送多长的报文,不用管它多长,不拆分,不分组,一次发完。因此应用程序自己必须选择合适大小的报文。
    5. UDP支持一对多、一对一、多对一、多对多的交互通信
    6. UDP的首部开销小,只有8个字节。
  • UDP只在IP数据报服务之上增加了很少一点的功能:
    1. 复用和分用的功能
    2. 差错检测的功能
      • IP数据报首部中有一个首部校验和,它只完成对首部的检验。
      • UDP也可以检测错误
  • 优点: UDP没有拥塞控制,因此当网络出现拥塞时不会使源主机发送速率降低,且允许在网络发生拥塞时丢失一部分数据,但不允许数据有太大的延迟。因此UDP适用于高实时性且对安全要求不是很高的场合,比如直播、视频等。(对流畅度要求比较高)
  • 缺点: 没有拥塞控制有可能造成网络拥塞加剧,使得网络瘫痪,数据延迟大大增加。

UDP首部格式

  • UDP有两个字段:首部字段和数据字段。首部字段:8个字节,分为4个字段,每个字段2个字节。其结构如下:
  • 伪首部: 在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和,计算完就丢弃了。 //具体计算方法有空再写

五、TCP协议

特点

  • TCP要实现的功能很多,比如可靠传输、流量控制、拥塞控制、建立连接、释放连接等
  • 协议传送单元叫做TCP报文段
  • TCP设计面向连接的运输层协议。
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一)
  • 提供可靠谱传输,全双工通信(收发两端都有缓存???) 、面向字节流(UDP是面向报文的)

面向字节流的概念

  • 其过程如下图所示,发送方向接收方进程发送的字节流是:0123456……21

TCP的连接

  • TCP连接的端点不是主机,也不是主机的IP地址,也不是应用进程,也不是运输层的协议端口,TCP连接的端点叫做套接字或插口
  • 套接字实际上表明了是哪台主机上的哪个应用进程。
  • 每一条TCP连接有两个端点,因此TCP连接的端口有两个套接字组成:
  • TCP的连接是一条虚连接而不是一条真正存在的物理连接。(双方都承认有这么一条连接,但实际上木有)
  • TCP对于 应用程序 一次把多长的报文发送到TCP的缓存中是不关心的,应用程序该这么发就怎么发,只要缓存存的下就行。但当把缓存中的数据向外发的时候就是由TCP决定的了。
    • TCP根据对方给出的端口值和当前网络拥塞的程度来决定一个报文段应该包含多少个字节。它可以将太长的数据块分短一点,也可以先将字节存储积累一会再一起转发。(UDP发送的报文是完全由进程决定的)

运输层---运输层概述 UDP协议与TCP协议相关推荐

  1. 计算机网络整理:UDP协议和TCP协议

    系列文章目录 HTTP协议和HTTPS协议 文章目录 系列文章目录 一.TCP/IP 各层协议 二.UDP协议和TCP协议 1.TCP和UDP的区别 2.UDP 协议 3.TCP 协议 1)特点 2) ...

  2. 网络 传输层 | UDP协议与TCP协议详解(三次握手及四次挥手、滑动窗口、拥塞控制)

    概念 传输层:是负责应用程序之间的数据传输(通过端口的描述,描述了哪两个进程间的通信):传输层的两个主要协议:UDP 和 TCP UDP协议 UDP协议全称:用户数据报协议(User Dategram ...

  3. 网络协议 9 - TCP协议(下):聪明反被聪明误

    网络协议 9 - TCP协议(下):聪明反被聪明误 原文:网络协议 9 - TCP协议(下):聪明反被聪明误 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - ...

  4. 网络协议 8 - TCP协议(上):性恶就要套路深

    网络协议 8 - TCP协议(上):性恶就要套路深 原文:网络协议 8 - TCP协议(上):性恶就要套路深 系列文章: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络 ...

  5. 传输层协议之TCP协议详解

    传输层重点协议:UDP和TCP. 作用:负责数据能够从发送端传输到接收端.(在进行网络编程时,我们会使用到socket,然而一旦调用socket就进入到了传输层的范畴内) 前面我们已经讲过UDP协议了 ...

  6. 基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器——《干饭聊天室》

    基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器--<干饭聊天室> 在这里首先感谢前端小伙伴飞鸟 前端技术请看一款基于React.C++,使用TCP/HTTP协 ...

  7. 计算机网络---UDP协议与TCP协议

    传输层,负责应用程序之间的数据传输的协议,UDP与TCP UDP协议格式: 源端口与目的端口: 都为16位比特位,表示数据从那个进程来,发送到哪里去,负责应用程序之间的数据传输. 数据报长度: 16位 ...

  8. 【计算机网络】TCP/IP协议(DNS协议、IP协议、TCP协议、UDP协议、三次握手、四次挥手)

    TCP/IP协议 TCP/IP协议 TCP/IP各层作用与常见协议 各种协议与HTTP协议的关系 TCP/IP协议 本文参考<图解HTTP>--上野宣 TCP/IP是Internet上所有 ...

  9. http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎

    TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...

最新文章

  1. python小乌龟消除_悄悄告诉你,Python 里面有一只小乌龟
  2. VUE el-input正则验证
  3. RxJS实践,Vue如何集成RxJS
  4. 旷视研究院博士图鉴|Be that challenger
  5. Java中线程池,你真的会用吗
  6. linux 打开大文件命令,linux查看大文本文件命令
  7. vb.net中递归退到最外层_面试题被问到再也不慌,深究JavaScript中的深拷贝与浅拷贝...
  8. 通过MD5校验游戏安装文件完整性实例演示,MD5校验工具Hash使用演示
  9. C++递归算法经典实例详解
  10. 人工势场法(APF) —— Path Planning
  11. 让MDK5开发51单片机
  12. ResNet 网络结构与残差连接介绍
  13. [EXCEL高级应用与数据分析].沈浩.扫描版 百度云盘
  14. 消费品牌数字营销“终局九问” | 2022全球数字价值峰会
  15. 挪威议会邮件系统遭遇攻击,电子邮件安全该如何保障?
  16. Android集成Bmob后端云
  17. python Django(五)
  18. 解决“此图片来自微信公众平台 未经允许不可引用”的方法
  19. Java毕设项目保险公司风险测评管理系统(java+VUE+Mybatis+Maven+Mysql)
  20. 收集了一些distinct性能相关的文章 希望有用

热门文章

  1. 申办上海市居住证所需的材料
  2. 2022年互联网软件测试从业者如何提高自己的竞争力
  3. 正点原子 linux led 驱动之 设备树 + platform
  4. 项目经验#关于前端后台项目的从0-1到1开发记录(二)
  5. linux_sw_64,鳥哥的 Linux 私房菜
  6. 华硕路由器、LEDE、梅林,阿里DDNS教程
  7. 建模助手有什么好用的?说说你现在用的建模助手。
  8. (三十二)论文阅读 | 目标检测之SEPC
  9. 使用modbus4j通过串口解析modbus协议(java)
  10. visionpro学习课程-CogPMAlignTool大总结