登录 注册
submit
近期热搜
1.
hcip
2.
CCNP
首页 > 热门文章 > 技术资讯

网工必藏!这张TCPIP全景图讲透了,小白也能看懂

小编 2025-10-10 17:36:31 人看过

嘿!兄弟们。

今天咱们唠点硬核又基础的——TCP/IP

别觉得这是老生常谈没新意,既然我专门开篇讲,肯定得给大家整出点不一样的干货。

先给你们放个大招:一张流传超广的经典TCP/IP全景图,没存过的兄弟赶紧先收藏,这玩意儿网工日常翻出来看都不亏。

图片4.jpg 

透过这张图,咱们能清楚看到七层结构里每一层的作用,搞明白每层对应的协议。

今天咱们重点扒一扒TCP,保证讲得明明白白,就算是刚入门的小白也能跟上节奏。

今日文章阅读福利:网工入门指南

扫添加小助理微信,备注【入门】,即可获取。

新盟教育助教老师微信HCIE99.png


一、先搞懂:TCP到底是个啥?

TCP的中文名叫传输控制协议,简单说,就是已经连上网的计算机之间,用来互相通信的一套规矩。

图片5.jpg 

计算机要想跟同类好好说话,就得遵守共同的规则,这就是通信协议的作用。

TCP在互联网协议家族里地位很高,算是核心成员之一。

为啥它这么重要?早年间网络刚起步的时候,TCP就已经存在了,当时它给互联网协议补了关键的短板,所以现在大家常说的“TCP/IP”,其实就是把它和互联网协议打包在一起叫了。

TCP/IP这套体系,不仅规定了电脑怎么连上网,还明确了数据在设备之间怎么传输。

其中TCP的核心作用,是给两台连在IP网络上的电脑里的应用程序,搭起一条可靠通道——它能保证数据按顺序传递,还会检查有没有错误,把数据拆成8位字节流稳稳送达。

像咱们天天用的网页浏览、传文件、远程管理设备,都得靠TCP撑着。

当然也有例外,有些应用程序不追求稳,更在意快,比如实时语音、视频通话,这时候就会用UDP(用户数据报协议)。

跟TCP比起来,UDP不纠结数据有没有传丢、顺序对不对,只求降低延迟;而TCP则把可靠和有序放在第一位。

还有个关键点得说清楚:TCP很负责,一旦发现数据传输出问题,比如某个数据包丢了,它会立刻发信号要求重新传,直到所有数据都安全准确地到了目的地。

而IP的活儿相对简单,就是给每台连网的电脑分配一个唯一的地址,让数据知道该往哪儿送。

可能有小白会问:为啥非得用协议才能传数据?

其实道理很简单,单台电脑的能力有限,没法发挥最大价值,只有把一台台电脑连起来,才能形成咱们现在离不开的网络。但这连接可不是拉根线就行,这里面门道多着呢。

你想啊,不同电脑装的操作系统不一样,提供的服务也不同。就像不同国家的人说不同的语言,你说你的、我说我的,根本没法沟通。

电脑也一样,同样的信息,在Windows和Linux系统里的表达方式可能完全不同。

要解决这个语言障碍,最直接的办法就是大家一起定一套通用规则,所有人都按这个来。

TCP/IP这类协议,就是电脑之间的通用语言,有了它,不同系统、不同品牌的电脑才能顺畅交流。

二、关键操作:TCP的“三次握手”咋回事?

搞懂了TCP的基本情况,接下来咱们聊聊它的核心操作——“三次握手”。

图片6.jpg 

你可以把“三次握手”理解成TCP建立连接前的仪式,必须走完这三步,才能开始传数据。为啥要这么麻烦?因为TCP经常要传大量数据,要保证数据能稳稳当当送到,就得在传之前做好准备:给每个数据包编上号,跟对方确认“你准备好了吗”,对方收到数据后也得反馈“我收到了”。

而三次握手的核心目的,就是双方商量好每次传多少数据,确保发送和接收的节奏同步;同时确定什么时候数据传完了,可以断开连接,相当于先搭好一条虚拟通道。

那这三次握手具体是怎么操作的?咱们一步一步说:

Step 1:客户端先“打招呼”

TCP客户端先准备一个“SYN段”,里面写清楚两件事:想连接服务器的哪个端口,以及自己的“初始序号(ISN)”。

这个SYN段,咱们就叫它“报文段1”。

Step 2:服务器“回应+反问”

服务器收到客户端的SYN段后,不会只说“收到了”,而是会回一个包含自己初始序号(ISN)的SYN段(也就是“报文段2”)。

同时,为了告诉客户端“你的消息我收到了”,服务器会把确认序号设为客户端的ISN+1。

Step 3:客户端再“确认”

最后一步,客户端得给服务器一个反馈:把确认序号设为服务器的ISN+1,发一个确认段(“报文段3”),告诉服务器“你的消息我也收到了”。

这三个报文段传完,TCP连接就算正式建立好了,这整个过程就是咱们常说的“三次握手”。

三、灵魂拷问:为啥是三次握手,不是两次或四次?

很多人会疑惑:服务器给客户端发完确认报文后,客户端既然已经收到了,直接开始传数据不就行了,为啥还要多此一举再发一个确认?

其实这就是“为啥要三次握手”的核心问题。

咱们从两个角度掰开揉碎了说,保证你能懂:

先从过程本身分析

咱们先假设一下,如果只握手两次会怎么样。

比如客户端发了第一个连接请求,结果因为网络问题,这个请求丢了,服务器根本没收到。

这时候客户端等不到回应,肯定会重新发一个连接请求。

这次服务器收到了,直接进入“连接已建立”的状态;客户端这边呢,也收到了服务器的回应,同样进入连接状态,开始传数据。

但问题来了:第一次丢了的那个请求,可能过了一会儿又活了过来,超时重传到了服务器。

可这时候客户端和服务器早就建立好连接开始干活了,服务器收到这个迟到的请求,还会以为是新的连接请求,又会进入等待状态,白白占用资源。

这么看来,两次握手既浪费资源,稳定性也差,实在不划算。

再换个日常的场景理解一下:比如小明给小红发消息,小红收到后回了一条。

这只能说明两件事:小明能正常发消息,小红能正常收消息。但小红没法确定,小明到底有没有收到自己的回复——小明要是没看见,小红可能还会琢磨“他为啥不回我?是不是我哪句话说错了?”。

可如果小明收到小红的回复后,再发一条消息过去,情况就不一样了:小红能确定小明看到了自己的回复,说明小明的接收功能没问题;

同时小明愿意回复,也证明小红的发送功能是好的。这样一来,双方都能确认“我能发、你能收,你能发、我能收”,后续沟通才不会出岔子。

TCP的三次握手,本质上就是为了让客户端和服务器互相确认对方的收发能力,避免出现一方准备好了、另一方还没就绪的情况,这也是它必须要三次握手的根本原因。

版权声明:本文部分素材整理自网络公开领域,版权归原作者所有,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章

精选好课

即刻报名 免费试听-咨询课程-获取免费资料
客服电话 16602639305 邮箱 jianyu.luo@thinkmo.com.cn 地址 天津市红桥区光荣道157号宝能创业中心2号楼-1、2门-907号
官方公众号
商务合作