~~网络编程(三):TCP/UDP~~

进击のpython

*****

网络编程——TCP/UDP协议


其实你也发现了,应用层是交给应用来处理的,我们什么也做不了

相较于网络编程来说,我们更重要的是在做应用层和传输层的对接

因为你也看到了,如果我传输层成功了,后面的层级其实是自动进行的

那,传输层的关键是什么呢????协议!

那传输层的协议有什么呢?TCP/UDP协议

那我们现在就可以针对这两个协议来进行学习,看看如何才能把信息传到下一层


  • TCP协议

    TCP协议是什么呢?TCP协议其实也叫流式协议

    就是像流水一样传输的协议

    他将数据看作流水一般,在服务端和客户端之间传输

    那我问你熬,我要是想把这个水流给你,直接扔给你?

    不能把,我是不是要通过一个管子给你啊

    在咱俩之间创建一个管子,然后我把水通过这个管子流给你

    那你也想把水流给我,你能用我的管子吗?不能吧

    你也得整个管子,然后把水流流给我是吧


    那我是有水流了现挖管子嘛?不是吧!

    我应该先挖管子,然后等到有水流的时候直接用是吧

    而且 我再问你 你管子一下子就整完了?

    也不是吧,是不是要有一点时间来做管子啊


    而且还有一个问题,我要往你那挖就能挖嘛?

    不是吧,是不是应该征求你的同意啊

    所以说!要是搭建这个传输层应该是这样的:

    我问你同不同意建管道

    你给我个回应说你同意

    你问我同不同意建管道

    我给你个回应说我同意

    没问题吧,这个操作过程

    那我们把一次过程叫做握手的话,那这是... ...四次握手!

    但是啊,TCP协议是三次握手,怎么握手呢?

    你会发现第二步和第三步都是你的操作

    所以本着省事的原则,二三步就可以是确认并请求对吧

    那这样,就变成了三次握手

    三次握手的完成也就是两端的管道搭建成功


    同时,TCP协议,也是可靠传输协议

    什么叫可靠??就是我传信息的时候,你必须要给你一个反馈信息

    我拿到你的反馈信息,我才继续下面的操作,否则我就一直给你传

    那我还有问题,水流总是要流完的吧,那我流完了之后是不是要拆管道了

    怎么拆呢?

    我跟你说我要拆管道

    你给我个回应说你同意

    你跟我说你要拆管道

    我给你个回应说我同意

    对吧!就是这样的吧

    那我们能不能像三次握手一样,把第二步第三步合在一起呢?

    我跟你说我的水流完了,要断开没问题吧

    但是你是不是要把流向你的水流完才能跟我说你要断开

    总不能我水刚流完你就流完了吧,这不科学啊

    所以不能合在一起

    那我把每一步都叫挥手的话,那这就叫四次挥手


  • UDP协议

    UDP协议比较好玩的就是,他根本不需要管道

    而且她知道了你的ip和端口之后,直接把数据扔给你

    管你接没接到,所以相比较TCP来说传数据的过程就不可靠了

    但是,相较于TCP来说,UDP的发送效率更高

    因为不用建管子,也不用接受确认信息


这一块的理论部分就结束了

后面就是教你怎么创建管道传输数据了


*理论结束*
*下面实操*
posted @ 2019-08-01 00:00  吃夏天的西瓜  阅读(645)  评论(0编辑  收藏  举报