zoukankan      html  css  js  c++  java
  • TCP/IP协议

    1、OSI(Open System InterConnection),开放式系统互联,分为7层,TCP/IP分为4层:数据链路层,网络层,传输层,应用层。

    2、网络链路层的地址是MAC地址,网络层的地址是IP地址,传输层的地址是Port

    3、每一层上都有啥?

      网络层:IP,ARP,ICMP

      传输层:TCP,UDP

      应用层:HTTP,FTP,SMTP,DNS

    4、ARP(Address Resolution Protocol):将目标IP地址转化为MAC地址

    5、ICMP(Internet Control Message Protocol):确认网络是否正常。ping和tracert都是由ICMP实现的。tracert的原理:X在网络上找Y,对外发个消息,指明消息的接受者为Y,当A接收到消息时,返回消息给X,告诉X自己不是Y,把跳数(中间经过了几个人)加1,并且把消息对外发送,直到找到Y。

    6、DNS(Domain Name System):把域名转化为IP地址。

    7、对于TCP,如果每发一个消息,都要等到反馈,再发下一个,效率太低。解决办法是,发一个消息后,不必等到反馈,就发下一个消息,但是需要标记前一个消息还没有得到反馈。这就是滑动窗口协议。连续发的消息个数收到一定约束,如果发了N个消息后,还没收到第一个消息的反馈,需要等待第一个消息的反馈,不能再继续发了。

    8、对于TCP,如果一连接好,就马上发送大量消息,可能会导致阻塞。解决办法是,采用试探性的策略,先发1个试试,没问题,再发2个试试,还没问题,再发4个试试。采用指数级向上加,直到达到阈值。这就是慢启动算法,慢启动算法并不慢,只不过是启动的时候慢,很快速度就上来了。

    9、对于TCP,通信双方经常发送确认报文,单独回一个确认,效率太低。可以在给对方发数据的时候,顺便带上确认报文,这样就可以减少发送消息的个数,这就是捎带技术。

    10、TCP为什么要进行三次握手?

      TCP是面向连接的协议,是靠谱的协议。如何保证靠谱呢?要保证双方确实可以沟通的。三次握手做了下面的事情,说明双方可以沟通。

      ①A问B一个问题;②B回答A的问题,同时问A一个问题,③A回答B的问题。

  • 相关阅读:
    Kubernetes之Ingress-Nginx
    Prometheus之AWS-EC2自动发现
    Prometheus之kubernetes-sd自动发现
    ORACLE 遇到ORA 03113 数据库连接卡住
    ORACLE 遇到ORA-31693 ORA-31617 ORA-19505 ORA-27037
    Oracle 计划任务批量清理临时表实例
    GO 基础
    CentOS 7.3安装完整开发环境
    3.6 String 与 切片&str的区别
    ubantu上编辑windows程序
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3384804.html
Copyright © 2011-2022 走看看