• http tcp udp ip 间的关系


    首先,我自己梳理一下,其实除了应对以后的笔试,还有需要应对的是自己在编程中对于api的选择,我在满足需求时采取哪种方案更好。

    首先,我需要了解的是tcp/ip是一个协议组,有三大层:

    ip 对应于网络层

     tcp 和 udp 对应于传输层

    http 对应于应用层 

     socket 属于api ,是对tcp/ip的封装。

    其中,应用层存在的意义是使tcp/ip传输过来的数据内容能够识别出来。

    通过socket 我们才能使用tcp/ip协议

    CSDN上有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

    (从百度摘录)

    问题1:tcp 有哪三次握手?然后结束时需要握手不?

    第一次:客户端向服务的发送SYN包,等待服务端确认;

    第二次:服务端收到客户端的SYN包,确认客户端的syn(ack=j+1),向客户端发送确认包ACK(ack=k),即syn+ack包,发送完毕后,服务端进入SYN_RECV状态

    第三次:客户端收到服务端的syn+ack包,向服务端发送确认包ack(ack=k+1),发送完毕后,双方进入establish状态,完成三次握手。

    问题2:利用socket建立的网络连接步骤

    socket 链接至少需要一套套接字,其中客户端的是client socket ,服务端的是server socket 。

    套接字之间连接过程,三个步骤:服务器监听,客户端请求,连接确认。

    1.服务器监听:服务端套接字处于等待连接状态,实时监控网络,等待客户端发送请求。

    2.客户端请求:客户端套接字提出请求,要连接服务端的套接字。客户端套接字需要指出服务端套接字的ip和端口,向服务端发出请求。

    3.连接确认:当服务端套接字接收到客户端套接字,响应客户端套接字的要求,建立一个线程,把服务端套接字的描述发送给客户端。一旦客户端确认此描述,双方建立连接。

    问题3:http链接的特点

    http 是超文本传输协议,最显著特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,主动释放连接。

    问题4:tcp和udp的区别?

    tcp是面向链接,三次握手是为了保持连接性。

    udp是非面相链接,就是发送时不需要和对方建立连接,也不需要理会对方是否接收。

    udp发送的数据内容,用户是可以进行验证的。

  • 相关阅读:
    史上最全HashMap红黑树解析
    使用httpClient 调用get,Post接口
    VS 安装resharper 后 无法进行UnitTest
    [转]大数据的高并发的数据库优化
    【转】2019年7月份,阿里最新Java高频面试真题汇总
    【转】Apache的架构师们遵循的30条设计原则
    B树索引最通俗易懂的介绍
    spring Boot 学习(八、Spring Boot与与监控管理)
    spring Boot 学习(七、Spring Boot与开发热部署)
    vs快捷键
  • 原文地址:https://www.cnblogs.com/gengen1990/p/5940020.html
Copyright © 2020-2023  润新知