TCPIP协议

发布时间:2026/9/1 15:04:31

TCPIP协议
TCP/IP协议文章目录TCP/IP协议IPIP地址NAT原理IP协议TCP协议TCP报文头部三次握手四次挥手TCP完整通信全流程TCP/IP四层模型总结IP先来给大家讲讲IP协议IP是什么为什么叫IPIPInternet Protocol网际协议IP地址就是互联网上设备的地址编号用来在全世界网络里定位一台设备方便其他设备进行访问通过这个IP地址找到它。IP协议就是一套跨网络送信规则。为什么需要ip地址协议硬性规则操作系统整套网络内核只认一套寻址标准要和一个进程通信必须指明目标ip目标端口不论程序在本机还是别的电脑IP地址一台电脑本身只有两个本机IP地址环回127.0.0.1内网IP环回IP地址不走网卡不走路由器不出电脑一般用来进行本地测试127开头的ip地址一律本机内部闭环都可以用来进行本地测试而且很多用来解决同端口不冲突的问题靠不同环回ip地址格里多个项目内网ip地址是你连上wifi之后路由器自动给你分配的ip地址同一个局域网互相访问用只在局域网生效全世界有很多重复的内网ip地址可能连不同wifi的电脑的内网ip地址是一样的当电脑连接不同的wifi时电脑的内网ip地址也会跟着变化因为内网ip地址是全世界唯一的公网ip(路由器)给你分配的拔网线/断wifiping不通依赖物理网卡还有一个很重要的ip地址公网ip为什么公网ip不算电脑的ip地址根本原因就在于公网ip并不在电脑上而是在路由器上公网ip是运营商分配给路由器的地址你的电脑根本拿不到公网ip拓展0.0.0.0是什么不是真实ip代表本机全部网卡所有ip程序监听0.0.0.0本机能访问同局域网能访问外网能防问思考ip地址不是用来访问某个机器的端口某个机器的程序的吗不是要求ip地址需要是全球唯一的吗但是为什么内网ip全世界会有很多一样的呢这里就引入我们的NAT原理了NAT原理NAT:网络地址转换装在路由器里的功能主要是为了解决家里多个设备共用1个运营商公网ip上网解决公网IPV4地址不够用家里的所有设备都是192.168.x.x内网ip依靠NAT翻译成唯一的公网ip和外网进行通信所以路由器其实是不认识192.168.x.x/10.x.x.x/172.16-31这些内网ip的公网路由器不会转发私网ip数据包NAT核心工作流程1.电脑发包源ip:192.168.1.100源端口8888​ 目的ip百度公网180.101.49.11目的端口2222数据包发到路由器2.路由器NAT转换删掉源内网ip源端口用路由器自身公网ip做新源ip随机挑选一个空闲公网端口333在NAT映射表记下一条记录公网端口333-内网192.168.1.100:8888新数据包源ip路由器公网ip源端口333,目的不变发往百度百度回复数据发到路由器公网ip路由器再转回内网ip发给你的电脑所以外网全程看不到你的192.168内网ip只看见路由器公网ip所以内网ip全球重复没事IP协议是网络层规则规定了数据包怎么打包怎么跨路由器转发怎么找到目标主机IP一句话就是依赖ip地址寻址负责把数据包从一台电脑送到另一台电脑只管送到目的地就行不保证可靠送达IP协议4大缺点1.发包前不会和目标主机协商握手直接发送数据包2.传输不可靠断网、网络堵塞丢包后不重传不告知3.数据包路由路径不同到达乱序4.仅定位主机无法区分主机内部程序还是依靠TCP/UDP的端口号来区分不同软件进程IP协议干3件核心工作1.封装IP数据包传输层已经打包完毕应用数据TCP头部/UDP头部ip协议在这个整体外面再加一层ip首部生成完整ip数据包IP头部(源IP目的IPTTL协议号等字段)TCP/UDP头部真实业务数据协议号标记内部是TCP还是UDP对方拆ip头后知道把数据交给TCP还是UDP封装时机发数据时操作系统内核自动逐层封装不用手动拼接2.路由寻址、按照地址一站一站送转发逻辑靠目的ip路由表路由器内部存一张路由表表格记录某个ip地址下一个路由器地址分两种情况传输局域网内部跨互联网(1)同局域网两台电脑内网ip同网段不用经过网关路由器交换机直接内网转发。不走ip跨网络交换机是二层设备只识别MAC看不懂ip源电脑A会发送本机ARP广播帧ARP内容谁是192.168.1.20请你把你的MAC地址发给我192.168.1.10交换机转发给所有同网段设备(2)跨网段本机判断目标ip不在自家局域网把数据包发给路由器内网ip路由器查路由表根据目的ip选择下一个设备把包转发给隔壁运营商路由器经过所有骨干路由器重复查表转发一站一站经过各市各省运营商最终抵达目标服务器内网目标服务器拆ip包头向上发数据路径本机、家里路由器、小区运营商设备、省级骨干路由、百度机房路由、百度服务器只负责地址转发断网、阻塞直接丢包ip不会通知发送方丢包丢包补救交给上层TCP重传3.分片TTL防死循环分片这里涉及一个概念MTU以太网默认MTU1500字节代表二层链路单次最多成在1500字节ip数据包超过无法一次性传输所以什么时候会触发分片呢当ip总长度1500字节时ip协议自动把大包切割成多个分片小包每个分片单独封装ip头部主要依靠这3个字段来实现分片标识ID、MF标志位、片偏移接收方通过标识数字来分辨哪些分片属于同一组数据一组数据的分片的标识数字一样MF1表示后面还有分片MF0表示这是最后一个分片片偏移标识当前分片数据在原始大包中的起始位置接收方依靠这个来拼接还原数据包TTL也是一个新概念叫生存时间用来防止路由配置出错时的环路无限转圈A-B-C-A1字节数值linux默认64,数据包每经过一台路由器TTL-1当TTL减到0时当前路由器丢包不再继续转发总结IP地址互联网设备的编号用于全网定位设备IP协议一套跨网络传输数据包的通用规则IP是TCP/IP体系的网络层协议核心就是基于IP地址完成跨设备数据包投递只负责送到但是不保证数据质量是整个互联网路由转发的底层基石TCP协议传输控制协议工作在TCP/IP传输层搭建在IP协议上它专门来弥补ip无连接、不可靠、乱序、无法区分进程的所有缺点它可以1.通过端口号定位一台电脑里的具体程序2.建立专属通信连接实现可靠、有序、完整的数据连接3.控制流量和网络阻塞避免过载丢包TCP协议能做到这3点离不开很重要的一点TCP报文头部这里我们简单介绍一下报文头部如果大家想要进一步了解TCP报文头部请查看这篇博客#########TCP报文头部数据封装过后整体结构以太网帧头MACIP头部TCP头部真正数据TCP头部最小20字节最大60字节来讲几个核心常用字段1.源端口/目的端口用来实现第一点IP端口全网唯一通信端点2.序号给每一个传输的字节作唯一编号用于排序、丢包重传是实现可靠传输的核心3.确认号确认号是由目标方给发送方发的表示之前的数据全部接收完毕下次请从确认号开始发确认号已收到的最后一个字节序号14.窗口大小这是如何实现流量控制的核心告知发送方我接收缓冲区还能存多少字节来限制发送速度5.校验和校验TCP头部数据出错直接丢弃报文6.6个核心标志位1位二进制0/1开关标志位作用使用场景SYX请求建立连接三次握手ACK确认应答所有正常通信报文几乎都带ACKFIN请求断开连接四次挥手RST强制重置连接连接异常、强行断开PSH推送数据不缓存立即交给应用程序URG紧急数据优先处理TCP通过4来实现流量控制1来实现找到具体程序2、3、4来实现可靠传输如何实现可靠传输每一个字节数据都有唯一序号接收方收到数据后必须返回确认号发送方通过确认确认号判断哪些数据对方已经收到如何解决丢包发送方发出数据后其启动计时器如果规定时间没有收到ACK确认判定包丢失重新发送这部分数据如何解决重复接收网络延迟可能导致接收方收到两份一样数据TCP通过序号判断重复数据直接丢弃重复报文只保留一份如何解决到达顺序错乱根据序号重新排序如何控制流量依靠TCP头部窗口大小字段接收方每次回复ACK时附带剩余缓冲区大小发送方严格按照这个窗口值控制发送速度当窗口0时发送方立即停止发送直到接收方通知窗口恢复。TCP四种内置算法也用来控制拥堵慢启动、拥塞避免、快重传、快恢复慢慢试探网络承载能力拥堵了就主动降速三次握手TCP是面向连接的协议建立连接前会有一个操作三次握手三次握手干了什么同步双方初始序号协商连接参数完整流程1.第一次握手客户端-服务端​ 客户端发送报文SYN1请求建立连接并且待客户端初始序号ISN​ 2.第二次握手服务端-客户端​ 服务端回消息SYN1 ACK1携带服务端初始序号和确认号​ 3.第三次握手客户端-服务端​ 客户端发消息ACK1并回复确认号表示连接正式建立至此握手结束连接正式建立进入数据传输阶段四次挥手完整流程1.第一次挥手客户端-服务端​ 客户端发送FIN1:我不再发送新数据了请求关闭我方发送通道​ 2.第二次挥手服务端-客户端​ 服务端回复ACK1:我收到你申请关闭的请求了这时客户端就不再发送数据了但是服务端还可以继续向客户端发剩余数据​ 3.第三次挥手还是服务端-客户端​ 服务端的数据全部发送完毕了发送FIN1我这边也没有数据要发了请求关闭连接​ 4.第四次挥手客户端-服务端​ 客户端回复ACK1收到连接彻底关闭这里还有一个比较关键的细节TIME_WAIT第四次挥手后客户端不会立马关闭还会等待2ms保证最后一个ACK报文对方收到了避免服务端没收到然后一直重新发FIN等待残留的就数据包自然消失避免干扰新连接TCP完整通信全流程本机访问网页应用层(浏览器)生成请求数据传输层TCP:装TCP头部端口、序号、标志位网络层IP封装IP头部源/目的IP、TTL跨网路由转发内网数据包经路由器NAT转换私网IP转公网IP沿途路由器逐跳转发到达目标服务器服务器逐层解包拆IP- 拆TCP- 数据交给网页服务服务器返回数据TCP通过 序号 ACK超时重传保证可靠传输通信结束双方四次挥手断开TCP连接。TCP/IP四层模型从上至下依次应用层-传输层-网络层-网络接口层数据从上到下逐层加头部接收时从下到上逐层拆头部第一层应用层(面向用户/软件)给应用软件提供网络服务不负责传输只负责生成交互内容调用下层协议完成收发数据形式原始业务数据文本文件第二层传输层TCP/UDP端口层区分一台电脑的不同应用程序对数据做传输控制有TCP传输控制协议和UDP用户数据报协议TCP面向连接、可靠、字节流、三次握手建连接、四次回手断连接、序号ACK超时重传保可靠但是存在粘包UDP无连接不可靠开销小速度快无序握手直接发包不重传不排序有消息边界不粘包第三层网络层IP靠ip地址定位全网设备进行ip地址的搜索来进行数据的转发把数据包从一台电脑送到另一台电脑三大工作封装ip包、路由转发、分片TTL防环路四大缺点无连接、不可靠、不排序、不能区分进程第四层网络接口层硬件MAC层负责物理介质比如网线、wifi之类进行传输数据局域网内依靠MAC地址定位设备完成二层转发MAC地址网卡全球唯一物理地址仅在同一局域网生效硬件设备网卡、交换机等只识别MAC看不懂ip数据封装以太网帧头(源MAC、目的MAC)IP数据包总结简单来说IP负责找地址、转发数据包只管送到不管好坏、并不靠谱而TCP专门弥补IP的不足负责建立连接、保证数据靠谱不乱、不丢包。TCP加IP相互配合就是互联网通信的根本。

相关新闻

【单片机课设毕设项目】基于 ESP8266 的单片机环境参数采集与手机 APP 联动系统设计 基于 STM32 或 51 单片机的可配置阈值环境监测与风扇调控系统设计(024505)

【单片机课设毕设项目】基于 ESP8266 的单片机环境参数采集与手机 APP 联动系统设计 基于 STM32 或 51 单片机的可配置阈值环境监测与风扇调控系统设计(024505)

2026/9/1 15:04:31

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

研报记忆驱动的AI量化研究员:从信息折旧到可复用资产

研报记忆驱动的AI量化研究员:从信息折旧到可复用资产

2026/9/1 15:04:31

做量化研究最让人头疼的,往往不是没有信息,而是信息太多之后,它们反而变成了一堆没人能长期调用的死库存。研报一篇篇入库,摘要一段段生成,可是真到设计因子、复盘归因、验证假设的时候,你还是得靠人脑回忆…

【算法题解】“31号指令破解法”:字符串匹配与字符删除问题

【算法题解】“31号指令破解法”:字符串匹配与字符删除问题

2026/9/1 15:04:31

1. 问题描述 A国与B国在进行着激烈的情报战,两国都派出了大量的间谍在敌国窃取机密情报。“黎明”是A国的一名顶尖间谍,这一日他收到了来自总部的机密指令,指令由多段密文组成,在对日期和坐标进行了一系列的换算之后,他…

从AI修图到工程化:构建稳定批量图片处理流水线的完整指南

从AI修图到工程化:构建稳定批量图片处理流水线的完整指南

2026/9/1 16:24:34

昨晚,我盯着屏幕,看着那个“正在处理”的进度条从1%缓慢地爬到99%,然后……卡住了。这已经不是第一次了。从一张简单的产品图抠图,到批量处理几百张活动照片,从调整色调到智能填充背景,我几乎把所有能找到的…

ch-皖星:将视频加载等待转化为品牌互动的前端解决方案

ch-皖星:将视频加载等待转化为品牌互动的前端解决方案

2026/9/1 16:24:34

最近在开发视频类应用时,你是否遇到过这样的困境:用户点击播放后,面对一个干巴巴的“加载中”转圈动画,耐心迅速流失,最终导致播放失败或用户直接离开?传统的加载状态设计,往往只关注技术层面的…

OpenClaw 卸载完全指南:从清理到彻底移除

OpenClaw 卸载完全指南:从清理到彻底移除

2026/9/1 16:24:34

1. 引言OpenClaw 是一款功能强大的开源 AI 助手框架,但当你需要更换工具链、释放磁盘空间或解决环境冲突时,彻底卸载就显得尤为重要。本文将从二进制文件、配置目录、依赖包、系统服务等多个层面,详细介绍如何在 Linux、macOS 和 Windows 上完…

告别造假数据,直接连数据库查真实时序数据喂给TimechoAI大模型

告别造假数据,直接连数据库查真实时序数据喂给TimechoAI大模型

2026/9/1 16:24:34

告别造假数据,直接连数据库查真实时序数据喂给TimechoAI大模型前面三篇文章,我们其实都在做一件事情。那就是在本地用代码造假数据。我们造了CPU的数据,造了内存的数据,然后把这些假数据拼成一个长长的字符串,扔给Time…

基于ROS与Python的点焊机器人仿真与控制课程设计全解析

基于ROS与Python的点焊机器人仿真与控制课程设计全解析

2026/9/1 16:24:34

简介:本资源是一套面向高校自动化、机器人工程及相关专业本科生的ROS课程设计实践项目,聚焦机械臂在ROS环境下的运动仿真与点焊工艺控制,解决课程设计中缺乏完整可运行案例的问题。压缩包共57个文件,涵盖12个launch启动脚本&#…

龙架构双周会“生肉”学习法:交叉编译与QEMU运行实践

龙架构双周会“生肉”学习法:交叉编译与QEMU运行实践

2026/9/1 16:14:34

如果你也在关注龙架构(LoongArch)生态,应该经常遇到一类“生肉”技术资源:官方双周会以原声录像的形式发布,没有中文字幕,信息密度又高。2026 年 8 月 6 日的第 7 期双周会就是这样一场硬核内容。很多人点开…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/1 1:53:39

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/1 9:55:14

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/31 17:18:46

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…