浅识TCP/UDP协议
简介
TCP为英文Transmission Control Protocol的缩写,翻译一下,就是传输控制协议。
而UDP是User Datagram Protocol的缩写,翻译一下,就是用户数据报协议。
与现实的联系
这两种协议都可以用于浏览网页,查看视频,微信电话和文件传输等中。
且TCP和UDP两者都属于OSI参考模型的第四层(传输层)。
特点
TCP实现的是基于连接的可靠的通信服务。
UDP实现的是无连接的、尽力而为的通信服务。
不妨用打电话和发短信来打个比方。
打电话是需要要求通信的双方在连接的基础上来进行对话的。(并且要保证连接是稳定,传过去的声音是否没有杂音)。
而发短信只需收件方能够收到它,且短信的内容是原封不动的。
(个人感觉连接更像是临时建议端到端之间的渠道,方便信息在上面传递,而UDP的送信息的形式,更像是邮递员送邮件,可能半路堵车,封路,但还是要求这个邮递员自己想办法,并且尽可能送过去,当然,在实在不可能送达的情况下,向发件人告知发送失败)。
TCP的传输过程
由于TCP的特性,我们很自然的可以知道TCP的传输是需要先建立连接(搞好基础建设)。而连接本身也代表资源的占用/耗损,所以在确认两个端没有再相互传输文件的必要下,记得及时将连接进行释放。
于是TCP的传输过程可以将其概括为连接的建立,文件的传输和连接的释放三个过程。
而连接的建立一般又被称为三次握手,连接的释放又被称为四次挥手。
不妨假设有两个端口,一个叫做服务端,另一个叫做客户端。
三次握手
第一次握手:客户端对服务端表示意思——想和你建立连接了。
第二次握手:服务端收到了客户端的连接请求,要把自己的回答告诉给客户端,哪怕是拒绝。于是服务端就把自己的意思答复给了服务端。
第三次握手:在第二次握手中,服务端是给客户端答复了,但至于客户端有没有收到服务端的答复,服务端是不清楚的,而这并不是一个小问题,这就使得客户端在担心服务端没有收到答复的情况下反复向服务端发送同样的答复。所以第三次握手更像是一个懂事的客户端去解决服务端的担忧,还是需要再给客户端发送一下信息,表示自己已经接收到了客户端的答复了。
四次挥手
第一次挥手:客户端跟服务端说,我们断绝关系吧。
第二次挥手:服务端跟客户端说,那行,我料理一下后事。
第三次挥手:服务端跟客户端说,我把最后想和你说的话都发给你了,我们的关系可以断了。
第四次挥手:客户端跟服务端说,好,走了,安好。
UDP的传输过程
UDP就好像是去寄包裹一样,只需将数据贴上标识性的信息段,往快递中心一送就好了。