当前位置: 首页 > news >正文

计算机网络_第五章_运输层

目录:
5.1 运输层协议概述

5.1 运输层协议概述

5.1.1 进程间基于网络的通信

  • 第2~4章依次介绍了计算机网络体系结构中的物理层、数据链路层和网络层,它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信
  • 然而在计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程
  • 如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务。运输层协议又称为端到端协议。

在这里插入图片描述
图解:

网络层实现了主机到主机之间的通信,但是通信其实是主机内部的进程与进程之间的通信,AP1是进程1, AP2是进程2,运输层解决的就是不同主机之间的进程通信问题.

引出下文:在本章的学习中,运输层向应用层实体屏蔽了下面网络核心的细节(例如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输层协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章要讨论的主要内容。

5.1.2 TCP/IP运输层中两个重要协议

在这里插入图片描述

图解:

应用层有的协议使用可靠传输服务,有的使用不可靠传输服务,到运输层则使用对应的支持可靠传输服务的TCP,不可靠传输服务的UDP.
  • TCP 与UDP协议概述
    在这里插入图片描述

5.1.3 运输层端口号与复用和分用

一.运输层端口号

  • 运行在计算机上的进程是使用进程标识符(Process ldentification,PID)来标识的。
    • 然而,因特网上的计算机并不是使用统一的操作系统,而不同操作系统(Windows、Linux、MacOS)又使用不同格式的进程标识符
    • 为了使运行不同操作系统的计算机的应用进程之间能够基于网络进行通信,就必须使用统一的方法对TCP/IP体系的应用进程进行标识。
  • TCPIP体系结构的运输层使用端口号来标识和区分应用层的不同应用进程。端口号的长度为16比特,取值范围是0~65535

端口号的分类:
在这里插入图片描述
图解:

熟知端口号就是已经分好的,用户拿来就用的

二.发送方的复用和接收方的分用

在这里插入图片描述
图解:

不管用的UDP还是TCP,IP数据报用的都是一样的,根据协议字段值的不同,将他们合在一个IP数据报中传输,这就是复用,分用就是传到了地方,能够把他们分开,再各回各家.

5.2 UDP协议和它与TCP协议的对比

一.数据传输

UDP直接进行数据传输.
TCP先要三报文握手,建立TCP连接,然后基于TCP连接进行数据传输,
再四报文挥手,释放TCP连接.

二.对单播、多播、广播的支持情况

在这里插入图片描述
图解:

TCP三报文握手就好像在主机之间建立了一条可靠信道,所以TCP仅支持点到点的通信

三.对应用报文的处理

在这里插入图片描述

四.数据传输可靠性的支持情况

UDP是无连接的不可靠的(适用于IP电话,视频会议等实时应用)
TCP向上层提供面向连接的可靠传输服务(适用于要求可靠传输的应用,例如文件传输)

五.UDP首部

在这里插入图片描述

图解:

UDP首部比较简单

TCP首部比较复杂,最小20字节,最大60字节,后续会详细讲解

相关文章:

  • 红酒按照糖含量怎么分类?
  • 渲染农场渲染一分钟动画需要多少钱?需要渲染多少时间?
  • 贪心算法个人见解
  • java.math.BigDecimal cannot be cast to java.lang.String问题
  • Linux的基本指令 ( 一 )
  • 服务器环境是什么意思?
  • Elasticsearch:ES|QL 函数及操作符
  • 18.天气小案例
  • 华为---OSPF网络虚连接(Virtual Link)简介及示例配置
  • curl添加https服务
  • 电脑便签功能在哪里找?电脑桌面便签怎么添加?
  • 47-设计问题-最小栈
  • 2023亚太杯数学建模A题B题C题选题建议,思路分析,模型代码
  • ubuntu22.04在线安装redis,可选择版本
  • OTP语音芯片WTN6xxx-8S与Flash语音芯片WT588F02B-8S的区别与应用选择
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 「译」Node.js Streams 基础
  • CSS中外联样式表代表的含义
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java 多线程编程之:notify 和 wait 用法
  • opencv python Meanshift 和 Camshift
  • 订阅Forge Viewer所有的事件
  • 如何选择开源的机器学习框架?
  • nb
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #if #elif #endif
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (06)Hive——正则表达式
  • (1)(1.9) MSP (version 4.2)
  • (2)MFC+openGL单文档框架glFrame
  • (3)(3.5) 遥测无线电区域条例
  • (4)Elastix图像配准:3D图像
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (十八)SpringBoot之发送QQ邮件
  • (算法)N皇后问题
  • (一)Neo4j下载安装以及初次使用
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .Net IE10 _doPostBack 未定义
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • @我的前任是个极品 微博分析
  • []我的函数库
  • [1] 平面(Plane)图形的生成算法
  • [100天算法】-不同路径 III(day 73)
  • [20190416]完善shared latch测试脚本2.txt
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [C# 基础知识系列]专题十六:Linq介绍
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法
  • [codevs] 1029 遍历问题
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态