计算机网络学习笔记-传输层

news2024/9/24 17:15:34

目录​​​​​​​

概述

与网络层的区别

端口号

概述

分类

重要功能:复用+分用

两个重要协议:UDP+TCP

UDP用户数据报协议

概述

主要特点

首部格式

TCP传输控制协议

主要特点

首部格式

运输连接管理


概述

  • 运输层提供应用进程间的逻辑通信
  • 通信的真正实体是位于通信两端主机间的进程

与网络层的区别

网络层:为主机之间的通信提供服务

运输层:在网络层的基础上,为应用进程之间的通信提供服务

端口号

概述

端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程

传输层协议中端口号占16位

ps:两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)

分类

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

熟知端口,数值一般为 0 ~ 1023

登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复

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

数值为 49152 ~ 65535,留给客户进程选择暂时使用

当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。

重要功能:复用+分用

  • 复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
  • 分用:传输层从网络层收到数据后交付指明的应用进程。

两个重要协议:UDP+TCP

UDP用户数据报协议

概述

UDP 只在 IP 的数据报服务之上增加了很少一点的功能:差错检测

主要特点

  1. UDP 是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
  2. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表
  3. UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文
  4. UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求
  5.  UDP 支持一对一、一对多、多对一和多对多的交互通信
  6. UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短

首部格式

  1.  源端口(2B):源端口号。在需要对方回信时选用。不需要时可用全0
  2. 目的端口(2B):目的端口号。这在终点交付报文时必须使用
  3. 长度(2B):UDP用户数据报的长度,其最小值是8(仅有首部)
  4. 检验和(2B):检测UDP用户数据报在传输过程中是否出错
     

TCP传输控制协议

主要特点

  1. TCP 是面向连接的运输层协议 每一条 TCP 连接只能有两个端点 (接字 (socket) 或插口),每一条 TCP 连接只能是点对点的(一对一)。
  2. TCP 提供可靠交付的服务。
  3. TCP 提供全双工通信。
  4. 面向字节流

面向字节流:

ps:TCP协议不知道应用层报文下发的字节流的含义。

ps:端口号拼接到 IP 地址即构成了套接字

首部格式

 

 TCP 首部的最小长度是 20 字节

  1. 源端口和目的端口字段:各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。  
  2. 序号字段:占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
  3. 确认号字段:占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
  4. 数据偏移(即首部长度):占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。  
  5. 保留字段:占 6 位,保留为今后使用,但目前应置为 0
  6. 紧急 URG:当 URG =1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
  7. 确认 ACK:只有当 ACK=1时确认号字段才有效。当 ACK=0时,确认号无效。
  8. 推送 PSH (PuSH) :接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
  9. 复位 RST (ReSeT):当 RST =1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
  10. 同步 SYN :同步 SYN = 1 表示这是一个连接请求或连接接受报文
  11. 终止 FIN (FINish):用来释放一个连接。FIN =1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
  12. 窗口字段 :占 2 字节,用来让对方设置发送窗口的依据,单位为字节
  13. 检验和:占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部
  14. 紧急指针字段:占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
  15. 选项字段:长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”

运输连接管理

3个阶段:建立连接、数据传送、释放连接

TCP 连接的建立采用客户服务器方式 :主动发起连接建立的应用进程叫做客户,被动等待连接建立的应用进程叫做服务器

建立连接过程:握手(采用三报文握手)

第一次握手:SYN = 1  ACK = 1

第二次握手:ACK = 1

第三次握手:SYN = 1

连接释放过程:采用四报文握手

第一次握手:FIN = 1 

第二次握手:ACK=1

第三次握手:FIN = 1  ACK = 1

第四次握手:ACK = 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/611017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot—yml配置多环境(踩坑总结!)

一、实例操作 ①、创建对应的application.yml (dev 开发;prod 生产;test 测试)文件 ②、在application.yml文件中,放公共的配置部分 (这部分最好还是复制,自己敲位置,空格不对都会报…

深入理解一下Python中的面向对象编程

Part1 如何面向“对象” 网上关于Java和**C**的面向对象编程相关介绍的博客文章已经很多了,那我为什么还写呢?因为,人生苦短,刚好我是学Python的... 今天,我们就来走进面向对象编程的理想国——深入理解一下Python中…

2023年6月杭州/广州/深圳NPDP产品经理认证招生简章

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

Go语言反射编程指南

反射[1]是一种编程语言的高级特性,它允许程序在运行时检视自身的结构和行为。通过反射,程序可以动态地获取类型(type)与值(value)等信息,并对它们进行操作,诸如修改字段、调用方法等,这使得程序具有更大的灵活性和可扩…

【论文阅读】用于大型城市场景的网格引导神经辐射场

【论文阅读】用于大型城市场景的网格引导神经辐射场 Abstract1. Introduction2. Related Works and Background大规模场景重建和渲染体积场景表示大尺度NeRF 3. Grid-guided Neural Radiance Fields3.1. Multi-resolution Feature Grid Pre-train3.2. Grid-guided Neural Radia…

AI炒股回报率500%?内行揭秘玄机

一篇来自佛罗里达大学的研究报告震惊了金融圈:用ChatGPT对公司新闻进行情绪分析,并按此在股市做多、卖空,最高可获得超过500%的投资回报率。虽然坊间对这份报告中惊人的回报率数据有所怀疑,但金融界正在因AI的介入发生改变。 摩根…

港联证券|龙头齐聚,本周7股将申购!今年第三高价新股也要来了?

本周(6月5日—6月9日),共有7只新股将进行申购,其中创业板5只(康力源、飞沃科技、恒勃股份、威士顿、海看股份)、科创板2只(西高院、智翔金泰)。 资料显示,康力源是国内健…

Windows下安装与使用Kafka(使用Kafka内置的ZooKeeper图文结合版)

文章目录 Windows安装Kafka1.安装JDK并配置好对应的环境变量 2.安装配置Zookeeper1.下载安装包Apache Zookeeper2.解压并进入Zookeeper目录 防止端口8080启动后被占用,这里考虑先配置下3.安装Kafka3.1 下载安装包3.2、 解压并进入Kafka目录, Windows安装…

Vue.js 中的指令自定义是什么?如何自定义指令?

Vue.js 中的指令自定义是什么?如何自定义指令? Vue.js是一种流行的前端框架,它提供了一种称为“指令”的技术,用于操作DOM元素。Vue.js中内置了一些常用的指令,如v-if、v-show、v-for等。除了内置指令外,V…

基于Tensorflow+VGG+DBN本地化批量图像识别系统(深度学习+Python)含全部工程源码+视频演示+图片数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境1. Python 环境2. Tensorflow 环境3. wxPython 环境4. PIL 环境 模块实现1. 数据预处理2. 模型简化处理3. 用户界面设计4. 翻译模块调用 系统测试1.模型训练效果2. 模型测试效果 代码实现1. 用户界面设计及模型调用2. 模型搭…

如何从消失的异常堆栈定位线上问题

一、消失的异常堆栈 如何快速定位问题?想必大家心中都有自己的答案,当然最简单直接的办法还是查找异常堆栈信息。 然而有时异常堆栈并不完整,只有一句描述,如下: Caused by: java.lang.NullPointerException 造成这…

显存容量一键翻倍性能暴涨,N卡遗留漏洞被破解了

2K、4K 高分辨率的普及,加上游戏特效进步复苏,显存容量的需求也提升了一个台阶。 经过测试,某些游戏最大显存占用已经超出 12GB ,即便 1080P 也占用不低。 再到生产力、AI ,显存就更容易爆炸。 显存这玩意不像内存可以…

通用文字识别OCR 之实现数字化教材

引言 通用文字 OCR 识别 API 是一种功能强大的服务,可用于多场景、多语种的整图文字检测和识别,通过将OCR技术应用于学校环境,可以实现教育资源的数字化和学习过程的自动化。 本文将探讨通用文字识别OCR 在学校的实际应用,希望对…

linux进阶 --- 环境搭建、单一执行、循环执行

环境搭建 操作环境 : 创建完虚拟机,安装命令行界面的linux操作系统(centos8,rocky8,rhel8)为服务器配置白名单和安全组 :vim /etc/selinux/config,selinuxdisabled(getenforce&…

chatgpt赋能python:Python图片处理教程

Python 图片处理教程 Python 是一种功能强大的编程语言,广泛应用于大量不同的行业和领域。其中之一是图像处理和分析。Python 提供了一个庞大的图像库,其拥有大量的工具和函数。Python 图像库具有高度的可扩展性,可以很容易地将其与其他库集…

图解LeetCode——199. 二叉树的右视图

一、题目 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 二、示例 2.1> 示例 1: 【输入】 [1,2,3,null,5,null,4] 【输出】 [1,3,4] 2.2> 示例 2: 【输入】 [1,null,3] …

ipad笔买原装还是平替?苹果平替电容笔推荐

我认为苹果的电容笔跟一般的电容笔最大的不同就是,苹果原装电容笔有一种特殊的重力压感,可以让我们在纸上感受到最真实的线条粗细变化,用来作画再合适不过了。这是市场上普通电容笔所不具备的功能特性。除了这些,这两款电容笔在写…

【启扬方案】助力智能制造,MES系统解决方案

近年来,智能制造席卷全球,越来越多的制造企业开始采用智能化的生产制造方式,智能工厂作为智能制造的核心之一,成为了制造业发展的重要趋势之一。然而,要实现智能工厂的建设,需涵盖从生产计划、生产调度到生…

安卓调试|入门扫盲必备adb调试工具介绍、安装使用说明

欢迎关注「全栈工程师修炼指南」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! “ 花开堪折直须折,莫待无花空折枝。 ” 作者主页:[ https://www.weiyigeek.top ] 博客&…

11 Redis大厂真实需求落地案例实战

案例实战:微信抢红包 需求分析 各种节假日,发红包抢红包,不说了,100%高并发业务要求,不能用mysql来做一个总的大红包,会有可能拆分成多个小红包,总金额 分金额1分金额2分金额3…分金额N每个人…