码迷,mamicode.com
首页 > 其他好文 > 详细

py知识(每日更新) 7.15

时间:2019-07-17 16:58:07      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:通讯   链路层   开发   img   username   原理   传输   厂商   封装   

C/S B/S架构

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软件占用的端口号
    

UDP和TCP

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

技术图片

py知识(每日更新) 7.15

标签:通讯   链路层   开发   img   username   原理   传输   厂商   封装   

原文地址:https://www.cnblogs.com/lyoko1996/p/11201837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!