美文网首页
socket知识点补充

socket知识点补充

作者: 大也 | 来源:发表于2017-08-09 21:00 被阅读21次

    socket套接字 通信基石 包含本地.远端ip地址,本地.远端通信协议,连接协议
    支持tcp/ip网络通信
    多个通信进程 通过一对套接字soket使 应用层可以和传输层区分来自不同网络连接的通信,实现数据传输并发
    soket通过:服务器监听,客户端请求,连接确认 使其在同一个TCP协议端口传输数据又可被区分
    服务基本是通过80 端口

    网络七层协议由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

    TCP/IP五层模型的协议分为:应用层、传输层、网络层、数据链路层和物理层。

    TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。
    UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。
    TCP是一种流模式的协议,UDP是一种数据报模式的协议。

    WEB使用Tcp作传输层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发送到网络上。Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

    建立起一个TCP连接需要经过“三次握手”:
    第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    三次握手(Three-way Handshake)即建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP 窗口大小信息。在socket编程中,客户端执行connect()时,将触发三次握手。

     HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。
    

    相关文章

      网友评论

          本文标题:socket知识点补充

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