通讯原理
# C/S B/S架构# C: client端,客户端# B: Browser,浏览器# S: server 服务端# C/S 客户端与服务器之间的架构: QQ,微信,游戏,App的都属于C/S架构.# 优点: 安全性高,个性化设置,功能全面.响应速度快.# 缺点: 开发成本高,维护成本高.(基于App),面向的客户固定.# B/S 浏览器与服务器之间的架构:它属于C/S架构,最近几年比较流行的特殊的C/S架构.# 优点: 开发维护成本低,,面向用户广泛.# 缺点: 安全性相对低,响应速度相对慢,个性化的设置单一.# 互联网通信的原理#利用物理连接和一堆协议 osi 七层协议(5层协议)# 1,首先要通过各种物理连接介质 连接。# 2,确定对方计算机(准确到软件)的位置。# 3,通过统一的标准(一揽子协议)进行数据的收发。
7层协议
物理层
# 物理层:# 一系列的物理连接介质: 网线,光纤,电缆等等等.# 发送的数据就是010101010110比特数据流,这些数据连续不断地收发数据# 因为不知道数据代表的意义,数据要进行分组(按照一定规则), 数据分组这件事物理层做不了# 所以交给了数据链路层
数据链路层
mac地址| ip(双方的) |端口]dic = {flename,md5,filesize}数据# 用到的协议: ARP协议 以太网协议 交换机的自主学习功能# 常见物理设备:网桥、以太网交换机、网卡# 从物理层拿到数据比特流 按照一定的协议对比特流数据进行分组.# 以太网协议:# 一组电信号构成一个数据报,叫做‘帧’# 每一数据帧分成:报头head和数据data两部分# 数据头(head) # 固定长度18个字节.包含了 源地址,目的地址,数据类型. # 为什么数据头要固定? #固定就是一个标准,统一,为了提取源地址以及目标地址. #以太网协议中源目标地址如何设置唯一 #网线直接接触的硬件就是网卡.网卡上有一个地址,mac地址,确定计算机的唯一性的物理地址 # (mac地址12位 16进制组成的一串数字: 前六位 厂商编号: 后六位:流水线号.).# 数据data # 46字节 <= data <=1500字节# 广播: 计算机最原始的通信方式就是吼.# 数据的分组(源地址目标地址) + 广播: 理论上我的计算机就可以通信了.效率太低,每台计算机都需要接收广播的消息,查看是否是给自己的数据.比广播风暴还要严重.# 所以: 广播它是有范围的,在同一子网,局域网内是通过广播的方式,发消息.# 中间环节一些特殊的功能:# 到这里先广播 在组播 单播# 交换机的自主学习功能:# 交换机对照(网口与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: 1C-1B-0F-4A-E8-8F# 网口1: 出来一条信息:# # 第一次广播的形式发出去.# 网口1:源地址: 1C-1B-0D-DA-E8-8F 目标地址: 1C-1B-0F-4A-E8-8F | 明天放假# 2,3,4,5口接收到次消息,查看目标mac地址是否是自己的,# 5口确定是自己的.# 每个网口都广播发送消息一遍之后,对照表就构建好,下次在任意的网口在发消息,就直接以单播的形式发送.# 目的: 避免局域网内每一次都广播的形式通信.以后就可以单播,提升效率.# ARP协议# 就是将对方的ip地址获取到对方的MAC地址 对方接受到返回 源mac 目标mac 源ip: 目标ip 此时原mac 是自己的# IP + ARP协议 获取对方的MAC地址
网络层
ip(双方的) |端1 |dic = {ilename,md5,filesize}数据# IP协议:确定对方的局域网的位置.# 理论上到了这一层可以找到世界上任意一台计算机.# 广播,mac地址,+ ip == 可以找到世界上任意一台计算机.# ip协议:# 四点分十进制(网络地址由32位2进制)网络部分:标识子网前24位 主机部分:标识主机 后8位# 范围0.0.0.0-255.255.255.255# 子网掩码(美国分的)255.255.255.0 C类子网掩码可以分配的ip数量: 254个# 通过iP地址与子网掩码可以确定对方计算机是否和自己的计算机在同一子网.# and运算# ip地址+子网掩码确定计算机所在网段,子网,局域网的位置.ip地址+子网掩码如何确定局域网的位置? and运算一个ip: 172.16.10.1 : 10101100.00010000.00001010.00000001子网掩码: 255.255.255.0 : 11111111.11111111.11111111.00000000 网段,子网,局域网: 172.16.10.0# 为了与计算机软件通讯给到传输层
传输层
传输层: TCP UDP:端协议.封装 了端口端口1 dic = {ilename,md5,filesize}数据tcp udp协议# 广播,mac地址,+ ip + 端口 == 可以找到世界上任意一台计算机对应的软件.# 端口: 0~65535端口号.# # 1~1023系统占用的端口号.# # 1024~8000之内:一般的是有软件占用.# 传输层: 端口协议.TCP UDP:端口协议封装了端口端口|dic = {filename,md5,filesize} 数据# TCP协议,UDP协议.# TCP协议# 优点:好人协议,流式协议.稳定,安全,# 缺点: 效率低,# 建立的链接不能一直连接着. 耗内存# syn洪水攻击: 黑客会虚拟很多的假IP,然后访问你的服务器, 解决方式 半连接池,缓冲效果.# TCP的三次握手四次挥手# 三次握手# 发syn=1 seq=x 回ack=1+x# 4次挥手# 因为TCP连接是全双工的,因此每一个方向都必须单独进行关闭。# fin=1 seq=x 回ack=1+x# udp协议:# 优点: 效率高,传输快.# 缺点: 不安全,不是面向连接的,不可靠# 使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP),微信qq。 直播等# 面向数据报协议 无连接协议
抽象层
socket(抽象层)
应用层
# 软件自己定义的协议. FTP自己定义报头 md5等等
各层用到的工具
# 服务器# 大黑盒子, 机房声音很大,对温度,湿度,等环境都有要求,双电源,双网卡,系统linux# 交换机(自主学习功能)# 数据经过以太网协议封装后,先要从局域网内进行吼.每次发消息,每次都要吼,这样效率也是很低的.(数据给交换机,交换机在分发出去.)应⽤层 ⽹络服务与最终⽤户的⼀个接⼝。常⻅协议:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP表示层 数据的表示、安全、压缩。(在五层模型⾥⾯已经合并到了应⽤层)格式有,JPEG、ASCll、DECOIC、加密格式等会话层 建⽴、管理、终⽌会话。(在五层模型⾥⾯已经合并到了应⽤层)对应主机进程,指本地主机与远程主机正在进⾏的会话传输层 定义传输数据的协议端⼝号,以及流控和差错校验。常⻅协议:TCP UDP,数据包⼀旦离开⽹卡即进⼊⽹络传输层常⻅的物理设备 :四层路由器、四层交换机⽹络层 进⾏逻辑地址寻址,实现不同⽹络之间的路径选择。常⻅协议:ICMP IGMP IP(IPV4 IPV6) ARP RARP常⻅物理设备:路由器、三层交换机数据链路层 建⽴逻辑连接、进⾏硬件地址寻址、差错校验 [2] 等功能。(由底层⽹络定义协议)将⽐特组合成字节进⽽组合成帧,⽤MAC地址访问介质,错误发现但不能纠正。常⻅协议:ARP协议常⻅物理设备:⽹桥、以太⽹交换机、⽹卡物理层 建⽴、维护、断开物理连接。(由底层⽹络定义协议)常⻅物理设备:中继器、集线器、双绞线
摘抄题
1、arp协议是用来完成根据IP地址获取物理地址的一个ip地址工作的,工作在osi协议的第2层这一层的名字是数据链路层,用到了交换机硬件设备,这个设备一共有三种工作方式,分别是广播、单播组播arp协议用到了其中的广播和单播,这一层还有网卡、网桥 物理设备。2、tcp协议的特点是:可靠的、面向连接的全双工传输效率低流式传输udp协议的特点是:不可靠无连接.传输效率高面向报文的其中容易发生粘包现象的协议是tcp,原因是tcp协议数据与数据之间没有边界在tcp协议三次握手的过程中请求链接的状态码是syn 回复的是ack,在四次挥手的过程中请求断开的状态码是fin