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

【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议

一、进程间的通信

通信的两端应当是两个主机中的应用进程,也就是说,端到端的通信是应用进程之间的通信

运输层有一个很重要的功能就是复用和分用,复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据,分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付给目的应用进程。

从上图可以知道,网络层为主机之间的通信提供服务,而运输层则在网络层的基础上,为应用进程之间的通信提供服务。

除此之外,运输层向高层用户屏蔽了下面网络的核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,而当采用TCP协议时,这条信道是全双工的可靠信道,但是当采取UDP协议时,这条信道是一条不可靠信道。 

二、运输层的两个主要协议

1、用户数据报协议UDP(User Datagram Protocol)

UDP协议在传输数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后不需要给出任何的确认。虽然UDP不提供可靠的交付,但是UDP非常简单

2、传输控制协议TCP(Transmission Control Protocol)

TCP则提供面向连接的服务。在传输数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或者多播服务。

三、运输层的端口

1、端口的定义

在单个计算机中的进程是用进程标识符来标志的。但是由于计算机的操作系统的种类很多,而不同的操作系统又使用不同格式的进程标识符。为了使不同操作系统之间的进程可以进行通信,就不许采取一种统一的且与特定的操作系统无关的方法来对TCP/IP体系的应用进程来进行标志。

我们把这些门设置为通信的抽象终点,被命名为协议端口(protocol port)。TCP/IP的运输层用一个16位端口号来标志一个端口。但是请注意端口号只具有本地意义,不同的计算机中相同的端口号是没有关联的。 

2、端口的分类

(1)服务器使用的端口号

一类是熟知端口号或者全球通用端口号,数值位0~1023;另一类是登记端口号,数值为1024~49151。

(2)客户端使用的端口号

数值为49152~65535。这类端口仅在客户端运行时才动态显示。通信结束之后,刚才已使用过的客户端口号就会被系统收回,以便给其他的客户进程使用。

四、实例分析

工程代码见

https://github.com/daviddou2023/page

demo网页见

https://daviddou2023.github.io/page

 

 

 

 

http://www.lryc.cn/news/439429.html

相关文章:

  • centos更改静态ip
  • YOLOv5/v8 + 双目相机测距
  • 双三次插值及MATLAB实现
  • Kubernetes 持续集成与交付(CI/CD)
  • 【Rust练习】14.流程控制
  • React-Hooks-Form 集成 Zod 校验库
  • kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件
  • 比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程
  • TeamTalk梳理概括
  • 构建“零工市场小程序”,服务灵活就业“大民生”
  • 【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式
  • Vue3中slot插槽的几种使用实践
  • SSH工具 MobaXterm的使用与快捷配置
  • git 远程分支同步本地落后的有冲突的分支
  • 如何基于Java解析国密数字证书
  • java实现系统文件管理
  • pytorch快速入门(一)—— 基本工具及平台介绍
  • 『功能项目』怪物的有限状态机【42】
  • 【C++】模板进阶:深入解析模板特化
  • Python数据分析-世界上最富有的1000人
  • CSS中隐藏滚动条的同时保留滚动功能
  • 我的标志:奇特的头像
  • 中国空间计算产业链发展分析
  • DAY14信息打点-JS 架构框架识别泄漏提取API 接口枚举FUZZ 爬虫插件项目
  • TS - tsconfig.json 和 tsconfig.node.json 的关系,如何在TS 中使用 JS 不报错
  • revisiting拉普拉斯模板
  • 深入分析计算机网络性能指标
  • pyflink 安装和测试
  • 《网络故障处理案例:公司网络突然中断》
  • JavaSE:9、数组