python 网络的三种架构

网络的三种架构

单机架构

不用联网,好比咱们玩的单机游戏浏览器

CS架构

client: 客户 server:服务服务器

客户端-->服务端网络

BS架构

brower 浏览器 server 服务架构

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

互联网的组成

教材版

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

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

科普版

1.硬件:一些硬件设备blog

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.因此必须得有第四次,客户端像服务端进行一次确认,我收到了你中途发的数据

相关文章
相关标签/搜索