今天和大家讲解的是比较基础的东西,但是却又是很重要的东西。那就是TCP/IP协议及UDP协议。但是我的重点是TCP/IP,UDP协议主要是做为一个对照。
1.什么是TCP/IP
Tcp/ip是一种传输协议,通过这个协议,我们可以对数据包进行安全有效的传输。打个比方,比如你要邮寄一封信给我(你就是客户机),邮局进行运输(邮局就是网络),我来接收(我就是服务器),但是你的信上面必须写好我的家庭地址,贴上邮票等(这种就好比TCP/IP传输协议)。
2.最基础的TCP/IP握手
运用TCP协议的时候,我们需要进行一次握手。那么什么是握手?我用一张图和大家说明。
看图很难看懂,我用抽象的语言和大家说明一下。
1.客户机发一次数据包给服务器,相当于告诉它:“我要和你XXOO,行不行?”(SYN问)
2.服务器发送一次数据包给客户机,相当于告诉它:“没问题~没问题~我已经准备好了,你呢?”(SYN ACK又问又答)
3.客户机又发送给服务器一次数据包,告诉它:“ho~亲爱的,我已经准备好了,来吧!”(AC回答)
虽然语言很抽象,但是估计还是有些人不懂,没事我再来一张图!![0_1304045456tpaK.jpg 0_1304045456tpaK.jpg](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
TCP协议:
UDP协议:
在这里,我们可以得到几个TCP和UDP协议的缺点和特点。
运用TCP传输协议时,当发送的数据包丢失,损坏,或者被黑客劫持后,我们可以再发送一个同样的数据包,也就是验证(也就是序列号和确认号),但是UDP不会,UDP协议就是只管发送!不管数据包在传输过程中怎么样,反正它就发一次!(有点像圆通快递......)在TCP协议这里,我们还看见一个窗口,窗口是什么意思呢?就是在握手的时候,他们会对于端口的大小进行传输,这样就不会造成端口堵塞,所以握手是很重要的!
这里是不是很多人就会想UDP是不是没TCP好?不!这个是个错误的想法!UDP的功能虽然没TCP那么多,但是它有一个特点就是容量大!传输数据快!像我们的视频对话,语言对话,大部分都是运用UDP传输协议。所以当我们的视频对话突然卡死时,它不会回放之前的影像,这就证明UDP传输不会验证数据包。
很多人认为TCP最基础的就是三次握手,这里我再吐槽一下,这是错误的!不管TCP的连接还是断开,最基础的TCP传输协议都是4次握手!你说教科书上讲的是3次握手,教科书讲的不完全!所以也是错的!先别喷我,看看我的讲解再说。
主机———(1触发2)———服务器(SYN) 第一次握手:主机触发服务器
主机———(2确认触发1)———服务器(SYN) 第二次握手:服务器收到触发,并且告诉主机。
主机———(2触发1)———服务器(ACK) 第三次握手:服务器触发主机
主机———(1确认触发2)———服务器(ACK) 第四次握手:主机收到,并且告诉服务器。
这里有两个过程,主机触发服务器,和服务器触发主机。每个过程用两次握手,只是虽然科技的发展,第二次握手和第三次握手被合并成一次握手了,我只想告诉大家,最基础的握手是四次握手。
3.TCP/IP协议可以运用到黑客技术上面吗
相信很多人对这个话题感兴趣,我要告诉大家的是,可以!
TCP在传输的过程中是IP对IP的进行传输。假如你是一个黑客,你要攻击一个服务器,才握完两次手你就断开握手,并且切换另外一个IP,那么会怎么样?服务器会不停的向外发送数据包,并且寻找你的存在,但是偏偏你又断开了,它不会停止,因为协议里面有个数据包验证,当数据包丢失,损坏,或者被劫持,服务器会发送相同的数据包!运用这个强大的协议,我们就可以搞垮服务器!虽然一个IP办不到,但是我们可以伪造IP地址。假设这台服务器的上限量是5万个IP同时访问,我们只用伪造出5万个IP进行这种攻击,那么服务器也就被攻死了,因为其他人访问不了,服务器却一直向那5万个IP发送握手包。当然你也别想这个是万能的,有些硬件防火墙是可以防止这种攻击的(所以硬件防火墙贵啊!)。TCP/IP协议的攻击还有很多种,大家可以自己去上网查看。
PS:如果你要搞网络安全,你必须学好TCP/IP协议!