zoukankan      html  css  js  c++  java
  • 网络编程

    软件开发架构:

    ​ C/S: client/server

    ​ 客户端/服务端架构:例如手机app,电脑exe应用程序

    ​ B/S: browser/server

    ​ 浏览器/服务器: 例如网站、小程序、支付宝各种服务

    ​ 服务端24小时不间断服务

    远程通信条件

    1、物理连接介质

    2、公共的协议、标准:OSI七层协议

    ​ open system interconnection

    OSI七层协议

    应、表、会、传、网、数、物

    OSI五层协议:

    应用层:

    1、HTTP协议

    2、FTP协议

    传输层

    TCP协议:
    1、流式协议、可靠协议

    为什么可靠?有反馈机制,发送消息后,等待对方回应后,才会将数据从内存中清除。如果对方没有回应,在一段时间内,会隔段时间就继续发送请求,知道对方回应。

    2、基于TCP协议,必须建立双向通道

    客户端请求服务端,需要建立一条通道,服务端回应客户端表示收到,需要建立一条通道。

    3、三次握手

    所谓三次握手,指建立一个TCP协议时,需要客户端和服务端共发送三个包。

    三次握手的目的:

    1、明确双方收、发能力正常

    2、连接服务器指定端口,建立TCP连接

    3、交换TCP窗口信息

    流程:

    • 第一次握手(SYN=1, seq=x):

      客户端发送一个TCP的SYN标志位置1的包,指明客户端打算连接的服务器的端口,并置发送序号为X

      发送完毕,客户端进入 SYN_SEND 状态

    • 第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1):

      服务端发回确认包 (ACK) 应答,即SYN和ACK标志位均为1。并置发送序号为Y,再确认序号为X+1。

      发送完毕,服务端进入 SYN_RCVD 状态。

    • 第三次握手(ACK=1, ACKnum=y+1):

      客户端再次发送确认包(ACK),SYN标志位为0,ACK标志位为1,把服务器发来的发送序号加1并放在确定字段中发送给对方。

      发送完毕,客户端进入 ESTABLISHED 状态,服务器接收到这个包时,也进入到ESTABLISHED状态。TCP握手结束。

    4、四次挥手

    为什么叫四次挥手?TCP的连接的拆除需要发送四个包,因此也称为四次挥手。也称为改进的三次握手。

    客户端和服务器均可主动发起挥手动作。

    • 第一次挥手(FIN=1, seq=X)

      客户端想关闭连接时,发送一个FIN标志位置为1的包。表明已没数据可发,但可接收数据。

      发送完毕,进入 FIN_WAIT_1 状态

    • 第二次挥手(ACK=1, ACKnum=X+1)

      服务器端确认客户端的FIN包,发送一个确认包(ACK)。表明收到请求,但没准备好关闭。

      发送完毕,服务器端进入 CLOSE_WAIT 状态,客户端收到确认包后,进入 FIN_WAIT_2 状态,等待服务器端关闭连接。

    • 第三次挥手(FIN=1, seq=y)

      服务器端准备关闭连接,发送结束请求给客户端。FIN置为1

      发送完毕,服务器端进入 LAST_ACK 状态,等待来自客户端的最后一个ACK

    • 第四次挥手(ACK=1, ACKnum=y+1)

      客户端接收到服务器端的关闭请求,发送一个确认包,并进入 TIME_WAIT 状态,等待可能出现的要求重传的ACK包。

      服务器接收到确认包,关闭连接,进入CLOSED状态。

      客户端等待某个固定时间,没收到服务器端的ACK包,认为服务器端已正常关闭,于是自己关闭,进入CLOSED状态。

    网络层

    ip协议

    规定进入互联网的计算机必须拥有一个ip地址

    特点:点分十进制

    ​ 地址动态分配

    两版本:ip4

    ​ ip6: 计算机太多,ip4不够用,出现ip6

    最小:0.0.0.0

    最大:255.255.255.255

    数据链路层

    • 规定电信号分组方式
    • 规定计算机必须有网卡:世界唯一编号MAC地址
    • 计算机通信靠吼!

    物理层

    基于电信号传输的二进制数据

  • 相关阅读:
    js全局变量
    $.getJSON异步请求和同步请求
    让js中的函数只有一次有效调用
    两个div并排显示,当浏览器界面缩小时会出现换行
    jquery获取窗口和文档的高度和宽度
    后台传带引号(")的数据需要注意
    C# dynamic
    (转)数据库函数解析JSON字符串
    Unicode和UTF-8
    用户通过浏览器修改表单隐藏域
  • 原文地址:https://www.cnblogs.com/KbMan/p/11312790.html
Copyright © 2011-2022 走看看