TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)

article/2025/10/10 22:21:28

TCP/IP协议

       TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。


分别介绍TCP/IP协议中的四个层次:
应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。
(1)对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。 
(2)应用层还能加密、解密、格式化数据。
(3)应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。
运输层:作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中,TCP和UDP也同样起到了中流砥柱的作用。
网络层:网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。
网络接口层:在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。


TCP/IP协议能够迅速发展起来并成为事实上的标准,是它恰好适应了世界范围内数据通信的需要。它有以下特点:
(1)协议标准是完全开放的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统。
(2)独立于网络硬件系统,可以运行在广域网,更适合于互联网。
(3)网络地址统一分配,网络中每一设备和终端都具有一个唯一地址。
(4)高层协议标准化,可以提供多种多样可靠网络服务。

TCP.IP协议栈封装、解封装过程

①封装:加上协议头
Q1:上层协议是如何使用下层协议提供的服务的呢?—封装
A1:应用程序的数据在发送到物理网络上之前,将沿着协议栈从上向下一次传递,每层协议都将在上层数据的基础上加上自己的头部信息。
TCP–>TCP报文段、UDP–>UDP数据报、IP–>IP数据包、数据链路层–>帧(以太网帧、令牌环帧)
说明:TCP、UDP对数据的封装类似,不同的是,UDP无需为数据保存副本,因为UDP是不可靠的服务,当UDP数据报被成功发送之后,UDP缓冲区中的该数据报就被丢弃了(如果应用程序检测到该数据报未能被接收方正确接收,并打算重发该数据包,则应用程序需要从用户空间将该数据拷贝到UDP内核发送缓冲区中)。

②分用/解封装:解析协议头
Q2:当帧在物理网络上传输到目的主机时,将会沿着协议自底向上依次传递。
A2:各层协议将依次处理帧中本层负责的头部数据,以获取所需要的信息,并最终将处理后的帧交给目标应用程序。
(从下到上)以太网帧的分用过程

可以看到:
1. IP、ARP、RARP协议都使用帧传输数据,所以帧的头部中以太网帧的类型来区分它们。IP、ARP、RARP对应的类型分别是:0x800、0x806、0x835。
2. ICMP协议、TCP协议、UDP协议都是用IP协议,所以IP数据报的头部采用16位的协议字段来区分它们
3. TCP、UDP则通过16位的端口号字段区分上层应用程序
③对等层通信
在两个端系统的同一层上,双方都有对应的一个或多个协议进行通信

华为对TCP/IP协议栈做出了阐述:

协议栈各层作用:

 

 

 


http://chatgpt.dhexx.cn/article/0Pl6BBgp.shtml

相关文章

用户数据报协议UDP和传输控制协议TCP

目录 UDP UDP的功能 UDP的特点 UDP的首部格式 TCP TCP的功能 TCP的特点 TCP面向流的概念 套接字(socket) 无连接工作流程和面向连接的工作流程对比 UDP UDP的功能 UDP只在IP的数据报服务上增加了很少一点功能: 1.复用和分用功能 2.差错检测…

TCP(传输控制协议)

TCP 最主要的特点 TCP 是应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。 在传送数据完毕后,必须释放已经建立的 TCP 连接面向连接的运输层协议每一条 TCP 连接只能有两个,每一条 TCP 连接只能是(一对一)点对点TCP 提供的服务。 通过 TCP…

传输层-传输控制协议(TCP)

目录 TCP 协议概述TCP 报文段结构TCP连接管理三次握手四次挥手 TCP 可靠数据传输TCP拥塞控制 TCP 协议概述 传输控制协议(TCP)是Internet传输层协议。提供面向连接、可靠、有序、字节流传输服务。 面向连接:应用程序在使用 TCP 之前&#x…

传输控制协议---TCP协议【详解】

目录 一、协议简介 二、TCP报文格式 1、字段解析 2、报文解析 三、TCP的重传机制 1、超时重传 2、快速重传 3、 SACK 方法 4、Duplicate SACK 四、TCP的滑动窗口机制 五、流量控制 六、拥塞机制 1、慢启动 2、拥塞避免算法 3、拥塞发生 4、快速恢复 七、TCP的三…

传输控制协议(TCP)

可靠的流传输服务 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。本文介绍TCP把他当成TCP/IP网际协议族的一部分,是一个独立的通信协议。 五个可靠交付特征 1.面向流…

传输控制协议TCP

一、概述 概念:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP最主要的特点: (1)TCP是面向连接的运输层协议。 (2&a…

[2] SDL的基础知识以及利用SDL播放视频

此博文相关知识点从雷神的博客以及视频学习,截图也是用了他的课件, 雷神博客地址:http://blog.csdn.net/leixiaohua1020/ 日期:2016.10.1 作者:isshe github:github.com/isshe 邮箱:i.ssheoutlook.com …

Start Game:SDL2简介

Start Game:SDL2简介 官网简介: Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级别访问。它被视频播放软件、模拟器和流行游戏使用,包括Valve的获奖目录和许…

SDL2的学习之路<三>显示文字

前言 上节介绍了怎么利用SDL接口去显示图片,这节主要介绍怎么去显示文本信息。 SDL2展示文字需要在官网下载SDL2_ttf的扩展库。这个第一节已经讲过了。 使用时需要先初始化库,使用结束时释放库资源。 TTF_Init(); //初始化库 … TTF_Quit(); //释放 显…

VS2019配置SDL2库

“SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、MacOS…

SDL系列教程(一):SDL简介

SDL教程(一) 作者:akinggw 在阔别半年后,我又回来了。这次回来,首先要向大家问声好,然后继续我们的游戏开发之旅。在以前的日子里,我主要在翻译一些游戏开发方面的文章,而现在&…

SDL2源代码分析1:初始化(SDL_Init())

SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL2源代码分析2:窗口(SDL_Window) SDL2源代码分析3:渲染器(SDL_Renderer) SDL2源代码…

SDL2入门教程(01_hello_SDL)

注: 本教程翻译自 lazyfoo的教程,原网址戳这里。翻译目的为鼓励自己坚持下去,可能语言不准确,仅供参考。 Hello SDL: 你的第一个图形窗口 这一篇教程包含最主要也最基础的一步——弹出一个窗口(Window) …

SDL2源代码分析2:窗口(SDL_Window)

SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL2源代码分析2:窗口(SDL_Window) SDL2源代码分析3:渲染器(SDL_Renderer) SDL2源代码…

SDL2使用简介

转自我的Gitee项目 SDL2使用简介 SDL2使用简介开发环境搭建WindowsVisual StudioCode::BlocksDev-Cpp CMake(CLion)问题总结 SDL2库使用介绍初始化创建窗口绘制矩形刷新屏幕读取输入直接扫描键盘读取系统事件 实例 绘制图片 SDL2使用简介 开发环境搭建 Windows Visual Stud…

SDL2 简明教程(二):创建一个空的窗口

系列文章目录 SDL2 简明教程(一):使用 Cmake 和 Conan 构建 SDL2 编程环境 SDL2 简明教程(二):创建一个空的窗口 文章目录 系列文章目录创建空窗口总结 创建空窗口 在上一篇文章中,我们了解…

强大无比的嵌入式多媒体开发神器:SDL2

SDL 是什么? SDL(Simple DirectMedia Layer)是一套开源的跨平台多媒体开发库,使用 C 语言写成。 它提供了绘制图像、播放声音、获取键盘输入等相关的 API,大大降低多媒体应用开发难度的同时,也让开发者只要…

SDL2 简明教程(五):OpenGL 绘制

系列文章目录 SDL2 简明教程(一):使用 Cmake 和 Conan 构建 SDL2 编程环境 SDL2 简明教程(二):创建一个空的窗口 SDL2 简明教程(三):显示图片 SDL2 简明教程&#xf…

SDL —— SDL2及API简介

SDL2框架 SDL( Simple DirectMedia Layer) 是一套开放源代码的跨平台多媒体开发库, 使用 C 语 言写成。 SDL 提供了数种控制图像、 声音、 输出入的函数, 让开发者只要用相同或是相似的 代码就可以开发出跨多个平台( L…

SDL2学习笔记(一):SDL2初步

一、Windows系统下的安装 MinGW ①安装MinGW并配置好环境变量; ②官网下载SDL for MinGW; ③将解压文件中的 .\i686-w64-mingw32\include\SDL2 复制到 .\MinGW\include ; //有的设备需要用x86_64-w64-mingw32中的文件,下同 ④将解…