• python 网络的三种架构


    网络的三种架构

    单机架构

    不用联网,比如我们玩的单机游戏

    CS架构

    client: 客户 server:服务

    客户端-->服务端

    BS架构

    brower 浏览器 server 服务

    客户端嫁接在浏览器上-->服务端(bs为cs的一种)

    互联网的组成

    教材版

    1.边缘部分: 客户端或者服务端

    2.核心部分:路由器,基站

    科普版

    1.硬件:一些硬件设备

    2.软件:通过一些OSI协议组织无序的电信号为有序

    OSI七层协议(面试经常问,可以参考老师的示范,MP3文件)

    物理层

    电缆,光缆,能看得见的设备,连接计算机,传输电信号

    数据链路层(局域网内)

    把信号分组,数据只能在局域网内传输,局域网传输靠mac地址和交换机

    head(以太网头)

    ​ 发送地址 6 个字节

    ​ 目标地址 6个字节

    ​ 数据类型 6个字节

    data 有长短限制

    mac地址才是计算机的唯一编号

    以广播的形式传输

    网络层(局域网相连)

    我们想连接其他局域网的电脑,比如美国的电脑,原则意义上我们可以通过交换机,网线把美国的电脑连接上,想想这可能吗?是不是想想都很恐怖

    那如何连接上其他局域网的计算机呢?就是网络层

    IP地址,IP地址是靠路由器传输,然后就可以跨局域网通信

    我们可以获取自己的IP地址,在cmd中输入ipconfig,就可以看到自己的IP地址

    IP地址+mac地址确定世界独一无二的计算机

    传输层

    传输层给了一个端口

    IP地址+mac地+端口就能确定世界上独一无二的计算机上的应用程序

    应用层

    应用程序

    TCP 协议

    数据从客户端-->服务端的协议

    三次握手建立联系

    如果你要去服务端下载视频,客户端和服务端之间必须得连接,连接就是三次握手:

    在连接之前客户端和服务端都是出于关闭状态的

    1.客户端会像服务端发起一个请求,如下载视频,会有一个syn报头

    2.服务端会接收到客户端的请求,然后会响应客户端,并且把syn报头改装好后又返回客户端,会有ACK的报头

    3.客户端开始进入建立连接状态,再发一条请求,请求带上ACK给服务器,让服务器也进入连接状态

    为什么要三次呢?

    1次可以吗?为什么

    1.客户端直接进入连接状态,直接发送请求给服务端,直接进入连接状态

    弊端:假使这时客户端发送一个伪IP,直接发给服务端,服务端就立马进入连接,会导致服务端无效传输,浪费服务端的资源

    2次可以吗?为什么

    1.客户端暂不进入连接状态,发一条请求给服务端

    2.服务端直接进入连接状态,发送一条确定请求给客户端,客户端收到直接进入连接状态

    弊端: 一般服务端不会出现故障,死机之类的,客户端比较容易出现这种问题,假使在第2步的时候,客户端死了,这时服务端知道吗?并不知道,还是照旧传输数据,也会造成服务端资源的浪费

    综上就是必须3次就可以进行建立连接

    四次挥手关闭连接(为什么3次不行)

    1.客户端会发送请求带上FIN报头给服务端说我够了,要断开连接

    2.服务端接收到客户端的请求后,返回一个带有ACK报头的请求说确认了,还有数据没有传完,等会吧

    (1.FIN报头并没有返回 2.但是服务端此时还有可能传输数据)

    3.服务端数据传输结束之后服务端又会发送一次带报头FIN的请求,告诉客户端我所有数据都发完了,结束吧

    (如果只有三次连接,但是客户端可能在第二次连接后死掉了,客户端压根没有收到第2-3步之间的数据传输,服务端并没有管你客户端到底接收到了没有,然后服务端是发送给了你确认关闭)

    4.所以必须得有第四次,客户端像服务端进行一次确认,我收到了你中途发的数据

  • 相关阅读:
    基于apache httpclient 调用Face++ API
    布隆过滤器(BloomFilter)持久化
    布隆过滤器
    基于firebird的数据转存
    kafka和rabbitmq对比
    python操作rabbitmq
    TCP窗口
    python操作kafka实践
    python使用etcd
    快速排序的python实现
  • 原文地址:https://www.cnblogs.com/geyatou322/p/11091201.html
Copyright © 2020-2023  润新知