C/S架构,osi五层协议,TCP的三次握手与四次挥手

Posted wxl1025

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/S架构,osi五层协议,TCP的三次握手与四次挥手相关的知识,希望对你有一定的参考价值。

1.C/S B/S架构

C:client   客户端
B:Browser  浏览器
S:server  服务端
C/S 客户端与服务器之间的架构:QQ,微信,游戏,App的都属于C/S架构
优点:安全性高,个性化设置,功能全面,响应速度快
缺点:开发成本高,维护成本高,面向的客户固定
B/S 浏览器与服务器之间的架构:属于C/S架构,最近几年比较流行的特殊的C/S架构
优点:开发维护成本低,面向用户广泛
缺点:安全性相对低,响应速度相对慢,个性化的设置单一

2.互联网通信的原理

1.物理连接介质将两台电脑连接起来
2.通过统一的通信标准(互联网协议),实现通信

3.osi 五层协议

数据: '今天上课,别迟到'
应用层:数据size, md5这两个参数作为报头head
 data = 'size': 22, 'md5': 'e4rrewr345345643' ,'content': '今天上课,别迟到'
传输层: 端口协议  封装了端口,确定软件在计算机的位置
tcp(端口号: 9000) |data = 'size': 22, 'md5': 'e4rrewr345345643' ,'content': '今天上课,别迟到'
网络层: ip协议
IP协议(源ip地址, 目标ip地址)|tcp(端口号: 9000) |data = 'size': 22, 'md5': 'e4rrewr345345643' ,'content': '今天上课,别迟到'
数据链路层: 以太网协议
以太网协议(源mac地址,目标mac地址 数据类型)|IP协议(源ip地址, 目标ip地址)|tcp(端口号: 9000) |data = 'size': 22, 'md5': 'e4rrewr345345643' ,'content': '今天上课,别迟到'
=>
物理层 ---> 数据链路层(以太网协议(mac地址)) ----> 网络层(IP协议) ----> 传输层(端口协议(TCP,UDP协议)) ---> 应用层
物理层
一系列的物理连接介质,网线、光纤、电缆等
发送的数据就是八位二进制比特数据流,这些数据不断地收发(数据要进行分组,物理层无法实现)
数据链路层
数据链路层:以太网协议,是按照一定的协议对比特流数据进行分组
一组电信号构成一个数据报,叫做"帧"
每一数据帧分成:报头head和数据data两部分 => 数据头|数据
    数据头:固定长度18个字节 => 源地址,目的地址,数据类型
    数据:46字节<=data<=1500字节
为什么数据头要固定?
    固定就是一个统一标准,为了提取源地址以及目标地址
以太网协议中源目标地址如何设置唯一?
    网线直接接触的硬件就是网卡,网卡上有一个地址(mac地址),确定计算机的唯一性的物理地址(12位 16进制组成的一串数字:前6位 厂商编号   后6位 流水线号)
 
广播:计算机最原始的通信方式
数据的分组(原地址+目标地址)+广播:理论上计算机可以通信,但是每台计算机都要接收广播的消息,查看是否是给自己的数据,效率极低
所以,广播是有范围的,在同一子网、局域网内是通过广播的方式发消息
数据经过以太网协议封装后,先要从局域网内进行广播,每次发消息,每次都要广播,这样效率也是很低的  =>  数据给交换机,交换机再分发出去
交换机对照(网口与MAC地址的)表:
1:    1C-1B-0D-DA-E8-8F
2:    FF-FF-FF-FF-FF-FF
3:    FF-FF-FF-FF-FF-FF
4:    FF-FF-FF-FF-FF-FF
5:    FF-FF-FF-FF-FF-FF   =>    1C-1B-0F-4A-E8-8F
网口1出来一条信息,第一次广播的形式发出去:
源地址: 1C-1B-0D-DA-E8-8F 目标地址: 1C-1B-0F-4A-E8-8F  |   data
=>    2,3,4,5口接收到此消息,查看目标mac地址是否是自己的,5口确定是自己的,则mac地址转变成上述目的地址
每个网口都广播发送消息一遍之后,对照表就构建好,下次在任意的网口在发消息,就直接以单播的形式发送
目的: 避免局域网内每一次都广播的形式通信.以后就可以单播,提升效率

两个用户进行第一次通信的时候,你不可能知道对象的mac地址,但是你必须要知道对方的IP地址
=>  ARP协议:就是通过对方的ip地址获取到对方的MAC地址
=>  IP + ARP协议 获取对方的MAC地址
网络层
IP协议:确定对方局域网的位置
广播,mac地址,ip => 可以找到世界上任意一台计算机
ip协议:ip地址+子网掩码确定计算机所在网段,子网,局域网的位置
ipV4地址:四点分十进制  取值范围:0-255,0-255,0-255,0-255
子网掩码:一般都是C类   255.255.255.0
ip地址+子网掩码如何确定局域网的位置?
一个ip:   172.16.10.1  : 10101100.00010000.00001010.00000001
子网掩码: 255.255.255.0 : 11111111.11111111.11111111.00000000     # 都是1返回1,有0返回0
      网段,子网,局域网:   172.16.10.0
另一个ip: 172.16.10.2:  10101100.00010000.00001010.00000010
子网掩码: 255.255.255.0  11111111.11111111.11111111.00000000
       网段,子网,局域网:  172.16.10.0
=>  通过iP地址与子网掩码可以确定对方计算机是否和自己的计算机在同一子网

一般情况下:,C类子网掩码,一个局域网能承载多少计算机?
C类子网掩码可以分配254个ip地址(1-254),同一个局域网内的ip地址不能重复,也就是可以连接254台计算机

路由器: 1.虚拟分配ip地址(DHCP协议)  =>  内网
       2.网关  连接外网
       3.计算最优路径
![%X83(3RR75PSABNV%QVNE](C:\Users\87348\Desktop\%X83(3RR75PSABNV%QVNE.jpg)
传输层
计算机的通信:计算机的软件与服务器的软件进行的通信(端口协议)
端口: 0~65535端口号
1~1023:系统占用的端口号
1024~8000之内:一般的是由软件占用
广播,mac地址,ip,端口 => 可以找到世界上任意一台计算机对应的软件
应用层
软件自己定义的协议
将数据按照自定义的协议进行分装  http FTP协议

4.TCP的三次握手与四次挥手

客户端与服务端第一次建立通信联系,需要三次"握手"
client  => syn=1 seq=x =>  server
client  <= ack=x+1 syn=1 seq=y <=  server
client  =>  ack=y+1  =>  server
建立的连接不能一直连接着
TCP:好人协议,不会拒绝别人
syn洪水攻击:黑客会虚拟很多的假IP,然后访问你的服务器  =>  半数据池,缓存效果

客户端与服务端切断通信联系四次挥手
client  => fin=1 seq=x =>  server
client  <= ack=x+1  <=  server
client  <= fin=1 seq=y  <=  server
client  =>  ack=y+1  =>  server

5.udp与tcp

tcp协议
优点:好人协议,流式协议,稳定,安全
缺点:效率低
应用:Web浏览器,文件传输等
udp协议:
优点:效率高,传输快
缺点:不安全,不是面向连接的,不可靠
应用:域名系统(DNS),视频流,IP语音(VoIP),微信qq

以上是关于C/S架构,osi五层协议,TCP的三次握手与四次挥手的主要内容,如果未能解决你的问题,请参考以下文章

简析TCP的三次握手与四次分手

简析TCP的三次握手与四次分手

简析TCP的三次握手与四次分手

简析TCP的三次握手与四次分手

简析TCP的三次握手与四次分手

简析TCP的三次握手与四次分手