美文网首页Java面试Java学习之路
Java 面试专题 - TCP/IP 协议

Java 面试专题 - TCP/IP 协议

作者: FX_SKY | 来源:发表于2017-03-21 23:40 被阅读62次

    TCP

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的 传输层 通信协议,由IETF的RFC 793定义。

    应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(
    MTU的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体
    的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。

    UDP

    UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。

    UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。
    UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。

    TCP和UDP的区别

    HTTP

    HTTPS

    HTTPS是Hypertext Transfer Protocol over Secure Socket Layer的缩写,即HTTP over SSL,可理解为基于SSL的HTTP协议。HTTPS协议安全是由SSL协议(目前常用的,本文基于TLS 1.2进行分析)实现的。

    SSL协议是一种记录协议,扩展性良好,可以很方便的添加子协议,而握手协议便是SSL协议的一个子协议。

    TLS协议是SSL协议的后续版本,本文中涉及的SSL协议默认是TLS协议1.2版本。

    HTTPS协议需要解决的问题

    HTTPS作为安全协议而诞生,那么就不得不面对以下两大安全问题:

    • 身份验证
      确保通信双方身份的真实性。直白一些,A希望与B通信,A如何确认B的身份不是由C伪造的。(由C伪造B的身份与A通信,称为中间人攻击)
    • 通信加密
      通信的机密性、完整性依赖于算法与密钥,通信双方是如何选择算法与密钥的。

    能同时解决以上两个问题,就能确保真实有效的通信双方采取有效的算法与密钥进行通信,便完成了协议安全的初衷。

    HTTP2

    相关文章

      网友评论

        本文标题:Java 面试专题 - TCP/IP 协议

        本文链接:https://www.haomeiwen.com/subject/trennttx.html