标签:通讯 链路层 开发 img username 原理 传输 厂商 封装
C:client 客户端
B:Browers 浏览器
S:Service 服务端
C/S 客户端与服务器之间的架构 :QQ 微信 APP等 都属于C/S架构
? 优点:安全性高,个性化设置,功能全面,相应速度快
? 缺点:开发成本高,维护成本高,面向客户固定
B/S架构属于C/S架构, 浏览器-服务器之间的架构
? 优点:开发维护成本低,面向用户广泛
? 缺点: 安全性相对低,响应速度相对较慢,个性化设置单一
ISO七层协议(五层)
? 1.物理层:一系列的物理连接介质
发送的数据就是0101001101010001比特数据流,这些数据连续不断地收发.比特数据流要进行分组(按照一定规则) 数据分组这件事不是物理层的功能,要由数据链路做
? 2.数据链路层: 以太网协议
是按照一定的协议对比特流数据进行分组.
以太网协议:就是对数据进行分组;一组叫做一帧(数据报),
每一数据帧分为:报头head和数据data部分
数据头(head) | data数据
数据头:固定长度 18个字节 为了提取源地址以及目标地址
源地址,目的地址,数据类型 666
data数据: 最短46字节<=data<=1500字节
网线直接接触的硬件就是网卡,网卡上有一个地址,Mac地址,确定计算机的唯一性的物理地址 网卡上:12位16进制组成的一串数字,前六位:厂商编号 后六位:流水线号
? 广播: 计算机最原始的通讯方式就是吼
数据的分组(源地址,目标地址)+广播 理论上我的计算机就可以通信了. 但效率太低,每台计算机都需要接受广播的消息,查看是否是给自己的数据
所以:广播他是有范围的,在同一子网,局域网内是通过广播的方式发小时
? 3.网络层: IP协议:确定对方的局域网的位置
广播,Mac地址+ip == 可以找到世界上任意一台计算机
计算机的通讯:计算机的软件与服务器的软件进行的通讯
? 4.传输层: 端口协议
广播,Mac地址,+ip+端口 == 可以找到世界上任意一台计算机对应的软件
? 5.应用层:软件自己定义的协议.
QQ:发送数据'今晚请我吃饭...' ---> {id:'username', content:'今晚请我吃饭...'}
将数据按照自己定义的协议进行封装
重新梳理:
# 数据经过以太网协议封装吼,先要从局域网内进行广播,每次发消息,每次都要广播,这样效率是很低的.
广播:计算机的吼
单播:单线直接联系
# RP协议:通过将对方的ip地址获取到对方的Mac地址
# ip协议:ip地址加子网掩码确定计算机所在的网段,子网,局域网的位置
ipV4地址:四点分十进制
192.168.1.1 取值范围 0~255
子网掩码 中国都是C类网 最多可以分配的IP数量为254个
255.255.255.0
一个局域网最多可以放置254个IP地址(同一个局域网的IP地址唯一)
# 物理层---->数据链路层(以太网协议(Mac地址))---->网络层(ip协议)---->传输层(端口协议,TCP/udp)----> 应用层
Mac地址+广播形式+IP地址+端口 == 锁定全世界范围的任意一个计算机的某软件的位置
ip地址 + 端口 == 锁定全世界范围的任意一个计算机的某软件的位置
传输层:端口协议
TCP协议,UDP协议
端口: 0 ~ 65535端口号
1~1023 系统占用的端口号
1024~8000软件占用的端口号
TCP的三次握手四次挥手
# 三次握手
客户端 与 服务端第一次建立通信联系 需要三次'握手'
客户端向服务端发送syn=1 seq=序列号至服务端
服务端返回 ack=1+x syn=1 seq=y
客户端向服务端发送ack=1+y
ack:确认信号 syn:请求建立连接的信号 seq:发送的数据信号
# TCP协议:
优点:好人协议,不会拒绝别人,稳定,安全
缺点:效率低
syn洪水攻击:黑客会虚拟很多的假ip,然后访问你的服务器. 半连接池,缓冲效果.
# udp协议:
优点:效率高,传输快
缺点:不安全,不是面向连接的,不是很可靠
# 四次挥手
客户端 与 服务端结束通讯联系 需要四次'挥手'
客户端向服务端发送 fin=1 seq=x+2 ack=y+1
服务端返回客户端 ack=x+3
服务端向客户端发送 fin=1 seq=y+1
服务端返回客户端 ack=y+2
标签:通讯 链路层 开发 img username 原理 传输 厂商 封装
原文地址:https://www.cnblogs.com/lyoko1996/p/11201837.html