格格小丫头
to be a new one ,believe yourself

网络的三种架构

单机架构

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

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

posted on 2019-06-26 17:52  格格小丫头  阅读(1063)  评论(0编辑  收藏  举报