zoukankan      html  css  js  c++  java
  • ~~网络编程(三):TCP/UDP~~

    进击のpython

    *****

    网络编程——TCP/UDP协议


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

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

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

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

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

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


    • TCP协议

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

      我问你同不同意建管道

      你给我个回应说你同意

      你问我同不同意建管道

      我给你个回应说我同意

      没问题吧,这个操作过程

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

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

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

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

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

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


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

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

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

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

      怎么拆呢?

      我跟你说我要拆管道

      你给我个回应说你同意

      你跟我说你要拆管道

      我给你个回应说我同意

      对吧!就是这样的吧

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

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

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

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

      所以不能合在一起

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


    • UDP协议

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

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

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

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

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


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

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


    *理论结束*
    *下面实操*
  • 相关阅读:
    【Java基础】9、Enumeration接口和Iterator接口的区别
    【Java基础】4、java中的内部类
    【Java基础】3、Java 位运算(移位、位与、或、异或、非)
    【高并发解决方案】6、数据库水平切分的实现原理解析
    【Java深入研究】6、CGLib动态代理机制详解
    【Java深入研究】4、fail-fast机制
    【Java深入研究】2、JDK 1.8 LinkedList源码解析
    【算法】1、快速排序
    Linux下查看系统版本号信息的方法
    Kubernetes1.2如何使用iptables
  • 原文地址:https://www.cnblogs.com/jevious/p/11307260.html
Copyright © 2011-2022 走看看