计算机网络之运输层

devtools/2025/1/24 14:52:05/

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili

04 传输层

在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。  

王道考研 计算机网络笔记 第五章:传输层_王道计算机网络传输层_Baret-H的博客-CSDN博客

TCP三次握手建立连接,四次挥手释放连接。 

端口号(port)

端口号(port)是传输层协议的内容。

端口号是一个2字节、16比特位的整数。

端口号用来标识一个进程,告诉操作系统当前数据要交给哪一个进程来处理。

IP地址 + 端口号能够唯一标识网络上的某一台主机的某一个进程。

一个端口号只能被一个进程占用。

任何的网络服务或网络客户端,如果要进行正常的数据通信,必须要使用端口号来唯一标识自己。一个进程可以与一个端口号绑定,再加上主机IP地址该端口号就在网络层面上唯一标识一台主机上的唯一一个进程。

这种IP+port标识的方案叫做socket通信。

PID vs PORT

一台机器上会存在大量的进程,为了区分所有的进程,设计了PID来加以区分(系统的概念);但是只有部分进程需要进行网络数据请求,所以用port来标识这些需要进行网络数据请求的进程(网络的概念)。

这类似于身份证号可以唯一标识每一个人,但是在学校里又用学号来唯一标识每一个人。身份证号可以看做PID,学号可以看做port,它们之间并不冲突,都是在各自场景下最合适的管理方案。

注意,端口是传输层才有的概念。

传输层用一个 16 位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和传输层交互时的层间接口。在互联网的不同计算机中,相同的端口号是没有关联的。

TCP长连接和短连接-深入浅出(还在总说http长连接吗)_tcp长短连接-CSDN博客

UDP注意点

应用层给UDP多长的报文,UDP就会照样发送一整个完整的报文给网络层;

因此当报文长度过大时,网络层就需要对其进行分片,又因为接下来要传给链路层有MTU的限制,降低了网络层的效率。

TCP注意点

面向连接:使用TCP前必须先建立连接,传送数据完毕后再释放连接;虚连接表示表面上看上去是两个进程之间直接通信,但实际物理线路上需要从上而下封装再从下而上解封装。

每一个TCP连接只有两个端点,也就是每一个TCP连接都是点对点、一对一的。所以TCP协议无法广播、多播。

TCP提供可靠交付的服务,不丢不重,按序到达。

TCP提供全双工通信。两方可以同时发数据也可以同时接收数据,所以TCP连接的两端都会设置发送缓存和接收缓存。

TCP面向字节流:流是流入进程或从进程中流出的字节序列,虽然应用进程和TCP的交互是一次发送一个数据块,但是TCP会把交下来的数据仅仅看成一连串的无结构字节流。 

TCP协议报文 

TCP协议详解

TCP协议详解 - 知乎 (zhihu.com)

TCP 实战抓包分析

TCP 实战抓包分析_tcp抓包分析-CSDN博客

TCP协议:报文基础+三次握手+四次挥手

TCP协议:报文基础+三次握手+四次挥手-腾讯云开发者社区-腾讯云 (tencent.com)

TCP/IP协议(2): 以太网(IEEE 802.3) 协议 —— 构成有线局域网的基本协议-CSDN博客

TCP/IP协议详解 - 知乎 (zhihu.com)

UDP协议 

参考:

UDP协议详解 - 知乎 (zhihu.com)

网络-UDP协议详解(代码、实战)_udp data[9] != 0x11-CSDN博客


http://www.ppmy.cn/devtools/153158.html

相关文章

[Spring] Nacos详解

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

嵌入式知识点总结 C/C++ 专题提升(七)-位操作

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。 目录 1.位操作基础 2.如何求解整型数的二进制表示中1的个数 ? 3.如何求解二进制中0的个数 4.交换两个变量的值,不使用第三个变量。即a3,b5,交换之后a5,b3: 5.给定一个…

易语言模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

OpenCV: 深入理解OpenCV中CV_WRAP_AS宏及其作用

在 OpenCV 中,CV_WRAP_AS 是一个宏,主要用于 为 C 函数或运算符定义别名,以便在生成语言绑定时使用。这对于在不同的编程语言(如 Python)中使用 OpenCV 库时提供更友好的接口非常有用。尽管它在 C 代码中不会改变函数的…

MacOS/C/C++下怎样进行软件性能分析(CPU/GPU/Memory)

在macOS环境下进行C/C软件性能分析,可以使用多种工具和技术来测量和优化CPU、GPU和内存的性能。macOS提供了丰富的性能分析工具,如Instruments、gprof、Perf、以及NVIDIA和Intel的专用工具。下面详细介绍了实现思想和操作方法。 1. 性能分析的目标 CPU…

探索Linux中的进程控制:从启动到退出的背后原理

个人主页:chian-ocean 文章专栏-Linux 前言: 进程控制是操作系统对进程的创建、运行、调度、中止等活动进行管理和协调的行为。它是操作系统中至关重要的一部分,保证多任务处理环境下的资源分配和系统稳定性。 进程创建 fork( ) fork() 调…

SQL 递归 ---- WITH RECURSIVE 的用法

SQL 递归 ---- WITH RECURSIVE 的用法 开发中遇到了一个需求,传递一个父类id,获取父类的信息,同时获取其所有子类的信息。 首先想到的是通过程序中去递归查,但这种方法着实孬了一点,于是想,sql能不能递归查…

DC-DC稳压电源——实战(基于Ti5450芯片)基础知识篇(1)

一:基础知识-耦合 1)去耦电容 (1)耦合与去耦 耦合:系统内部的各个部分之间存在相互依赖、相互影响、相互制约的情况。用人话说就是不同部分之间的相互影响。 去耦:自然就是消除不同部分之间的影响了。 &…