网络通讯协议—TCP/IP协议

发布时间:2026/10/21 11:32:18

网络通讯协议—TCP/IP协议 网络协议由3部分组成语义、语法、时序。其中语义用来解释控制信息每个部分的意义语法是用户数据与控制信息的结构与格式以及数据出现的顺序时序是对事件发生顺序的详细说明。可以这样形象地描述语义表示要做什么、语法表示要怎么做时序表示做的顺序。TCP/IP协议不是TCP和IP协议的合称是因特网整个网络TCP/IP协议簇。这个协议簇由4个层次组成网络接口层、网络层、传输层、应用层。IP是计算机网络相互连接进行通信而设计的协议位于TCP/IP协议簇结构体系网络层中。IP协议是利用IP地址在主机之间传递信息这是因特网能够运行的基础。因特网每一台主机都有一个唯一的IP地址。IP指IPv4地址的长度为32位共有2^32个IP地址分为4段每段8位用十进制数字表示每段数字范围为0-255段与段之间用句点隔开比如172.168.1.100。IP地址由网络标识号码与主机标识号码两部分组成。因此IP地址可分为两部分一部分为网络地址另一部分为主机地址。IP地址分为A、B、C、D、E五类适用的类型分别为大型网络、中型网络、小型网络、多目地址、备用常用的是B和C两类。端口既可是指硬件接口、也可是TCP/IP协议中的端口是计算机与外界进行通信交流的出口。端口号的范围是0-65535任何由TCP/IP提供的服务皆基于1-1023之间的端口号进行通信由IANA分配管理。其中低于255的端口号保留用于公共应用255到1023的端口号用于特殊应用高于1023的端口号称为临时端口号常用于软件服务。Python提供网络底层接口的主要来自socket模块。socket也称为“套接字”用于描述IP地址和端口是一个通信链的句柄可以用来实现不同计算机之间的通信。套接字是通过地址簇address family控制所用OSI网络层协议和套接字类型socket type控制传输层协议两个主要属性来控制如何发送数据的。套接字地址簇常用的是AF_INET用于IPv4 Internet寻址。AF_UNIX常量仅在支持UDS的系统上定义。套接字类型默认是SOCK_STREAM。SOCK_STREAM对应传输控制协议TCP。TCP传输需要握手或其他设置过程因此能够确保每条消息只传送一次而且是按正确顺序传送从而增加了可靠性不过会引入额外的延迟。UDP则相反传送没有顺序并且可以多次传送或者不传送适用于对顺序不太重要的协议或者用于广播。使用TCP的服务器与客户端TCP是一种面向连接的、可靠的、基于字节流的传输通信协议由IETF的RFC 793定义。位于IP/TCP模型中的传输层是处在IP层之上、应用层之下的中间层因此数据传出必须经过IP层。当应用层向TCP层发送用于网间传输、用8位字节表示的数据流TCP则把数据流分割成适当长度的报文段然后将离散的报文组装成比特流。为了保证数据的可靠传输会将从应用层传送到TCP实体的数据进行监管并提供了重发机制和流控制。TCP工作原理TCP为了保证数据不发生丢失对传输数据按字节进行了编号编号的目的是为了保证传送到接收端的数据能够按序接收。接收端会对已经接收的数据发回一个确认。若发送端在规定时间内未收到有编号的数据则将重新传送前面的数据。TCP当然并不会像我们一样使用顺序的整数作为数据包的编号而是通过一个计数器记录发送的字节数。举个例子如果数据流被切割为几个包其中某个包大小为1024字节序号为3600那么下一个数据包的序号就是4624。这说明网络栈无须记录数据流是如何分割成数据包的。而且TCP初始序列号是随机选择的这样可以避免TCP序号易于猜测而伪造数据进行欺骗或攻击。TCP无须按照数据包依次发送可以一次性发送多个数据包同时通过发送方传输的数据量大小进行减缓或暂停即所谓的流量控制。TCP如果发现数据包丢弃就会减少每秒发送的数据量。使用Python的socket模块如何进行TCP通信使用TCP进行通信首先要从服务器开始先初始化Socket然后绑定bind端口对端口进行监听listen调用accept阻塞等待客户端连接。这时如果某个客户端初始化一个Socket然后连接服务器connect如果连接成功那么客户端与服务器的连接就建立了。客户端发送数据请求服务器接收请求并处理请求然后把回应数据发送给客户端客户端读取数据最后关闭连接一次交互结束。使用UDP的服务器与客户端UDPUser Datagram Protocol用户数据报协议是OSI参考模型中一种无连接的传输层协议提供面向事务的简单不可靠信息传送服务。跟TCP协议一样UDP在网络中用于处理数据包不过它只负责将应用层的数据发送出去不具备差错控制和流量控制功能。因此在传送过程中如果数据出错就要由高层协议处理。UDP不需要具备差错控制和流量控制等功能的开销使得数据传输效率高、延时小、适合用于对可靠性要求不高的应用比如视频点播、QQ等。UDP工作原理UDP使用底层互联网协议传送报文提供不可靠的无连接的数据包传输服务。UDP在IP报文的协议号为17其报文是封装在IP数据中进行传输的。UDP报文由UDP源端口字段、UDP目标端口字段、UDP报文长度字段、UDP校验和字段以及数据区组成。首先通过端口机制进行复用和分解每个UDP应用程序在发送数据报文之前必须与操作系统协商获取相应的协议端口及端口号然后根据目的端口号进行分解接收端使用UDP的效验进行确认查看UDP报文是否正确到达了目标主机的相应端口。
延伸阅读

更多相关文章

2026/10/21 3:06:45

模块化记忆:破解智能体持续学习难题的关键架构设计

1. 从“健忘”到“博闻强识”:智能体的持续学习之痛 在构建智能体的漫长实践中,我们常常面临一个令人沮丧的悖论:一个在特定任务上表现卓越的模型,一旦被要求学习新知识,就可能迅速遗忘旧技能。这种现象,在…

2026/10/20 23:08:00

OmniGUI:构建全模态GUI智能体基准测试框架的设计与实践

1. 项目概述:为什么我们需要一个“全能”的GUI智能体测试场?最近和几个做AI Agent的朋友聊天,大家普遍有个痛点:我们手头的智能体,在电脑上跑得挺溜,能点点按钮、填填表单,可一旦扔到真实的手机…

2026/10/21 11:29:29

热门赛道工业自动化:EtherCAT从站芯片如何切入核心场景与选型逻辑

工业自动化设备对底层通信和同步精度的要求日益严苛,EtherCAT从站芯片的选型成为硬件开发环节的关键技术决策。在实际工程选型中,行业内并没有唯一权威的参考榜单,单纯依托品牌光环已难以应对复杂的工程落地挑战。更务实的做法是围绕工况适配…

2026/10/21 11:29:29

数组名不是指针:一个流传最广的 C 语言误解

先看一段代码。不运行&#xff0c;先猜输出&#xff1a; #include <stdio.h>int main(void) {int a[5] {10, 25, -3, 42, 7};int *p a;printf("%zu\n", sizeof(a)); /* ? */printf("%zu\n", sizeof(p)); /* ? */return 0; }如果"数组…

2026/10/21 11:29:29

从 H.264 裸流到 RTSP 推流:一次完整的工程实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 11:29:28

企业微信自动回复上线前,先做哪三组测试?

上线前要过的测试不用多&#xff0c;三组。三组分别对应三类事故&#xff1a;答错、接不住、断线。每组都要有写死的通过标准&#xff0c;否则测完只是跑了一遍流程&#xff0c;谁也不敢说可以放量。[外链图片转存中…(img-jscSpNRn-1791594241511)]## 三组测试各防什么**边界测…

2026/10/21 11:24:28

【面试题】Python 面试题

1. Python中列表和元组的区别是什么&#xff1f;分别适合什么场景&#xff1f; list 列表 []&#xff1a;可变序列&#xff0c;增删改&#xff1b;内存占用略高。 tuple 元组 ()&#xff1a;不可变序列&#xff0c;元素一旦定义不可修改&#xff1b;可哈希&#xff0c;能作为字…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介&#xff1a;这份PDF报告聚焦2025年金融服务业中国AI现状与趋势&#xff0c;面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者&#xff0c;帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件&#xff0c;大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介&#xff1a;这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目&#xff0c;核心实现智能驾驶模型&#xff08;IDM&#xff09;下的车辆跟驰与换道行为&#xff0c;可用于理解速度、密度与流量之间的动态关系&#xff0c;适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”&#xff0c;而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时&#xff0c;我反复遇到一种令人困惑的现象&#xff1a;智能体在用户指令发出后&#xff0c;几乎秒级响应“已收到”“正在处理”“请稍候”&#xff0c;UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑