这是给骷髅宝宝(还有电子专业学生)看的!
协议由三部分组成,分别是语法、语义和同步
这里的协议侧重指通讯协议
规定了数据传输的格式和结构,规定了数据出现的一定顺序
规定发送/接收要完成的操作,包括协议控制报文或成分含义的约定
控制事件实现的顺序和速度的匹配
呈现出层次结构,第n-1层对第n层提供服务;第n层又建立在第n-1层的基础上的协议结构称为协议栈
协议栈中的每一层都称为实体
不同机器(通讯对象)上对应层的实体叫做对等体,对等体之间能且只能通过对应层次的协议进行通信
基本的协议栈模型就是C/S模型(客户端-服务器模型)
客户机负责主动发起链接
服务器接受请求并提供资源
两者确立通信连接可以是全双工、半双工,但一般不能是单工的——二者要建立双向通信连接
条件如下:
- 客户机必须知道服务器的地址(服务器不需要知道客户机的地址)
- 服务器可以同时处理多个远程或本地客户请求
网络通信使用TCP-IP协议簇,其中最重要的协议就是TCP协议和IP协议,这两个主要协议和其他协议一起构成了TCP-IP协议栈
OSI规定了通讯协议的七层模型,其中从低到高每一层实体的功能解释如下:
-
物理层
传输电信号,是纯物理层面的内容,会使用明文传递比特数据
网口RJ-45物理接口和电平定义就由这一层规定,同时确定了信号传输的时序等
网络硬件工程师一般和这一层打交道
-
数据链路层
负责建立相邻节点的连接,以帧为单位
硬件物理地址(MAC地址)工作在这一层
使用ARP(地址解析协议)和RARP(逆地址解析协议)协议提供IP地址解析的支持
-
网络层
传递路由数据(传输路径)
IP协议工作在这一层,所以网络层也可以简称为IP层
主要协议包括IP、ICMP、IGMP,负责处理发报请求、转发到适当网络接口、处理数据报、选择路由、处理异常等任务
-
会话层(对话层)
调配端到端的传输方式来最好地利用网络资源
负责使用TCP、UDP等协议处理端到端通信,要求将上层数据信息流格式化为底层能接受的数据包,并提供可靠的传输方式
-
表示层
提供格式化表示转换服务,包括数据的各种处理,会将数据从抽象语法(上层应用程序的API)转换为OSI系统内的语法
-
应用层
确定应用间的通信性质以满足用户需要,并对上层应用程序提供API接口
网络程序员主要和这一层打交道,需要根据用户需求调用API进行程序设计开发
提供HTTP、SNMP、FTP、DNS、Telnet等协议
IP地址是连接在因特网中设备进行唯一标识的设备编码
IPv4协议中的IP地址由0到2^32-1空间中的32位二进制数组成,即0到42940967295
为了便于人类记忆,将32位二进制数分成4段,每段8位,中间用点.隔开,将每8位二进制数独立转换为十进制数,称为点分十进制表示法
其中将IP地址分成网络地址和主机地址,如下进行区分
网络类 | 网络地址长度 | 主机地址长度 | 最大网络地址数 | 最大主机地址数 | 类型 | 类标识 |
---|---|---|---|---|---|---|
A | 1B | 3B | 126 | 16777214 | 大型网络 | 0 |
B | 2B | 2B | 16383 | 65534 | 中型网络 | 10 |
C | 3B | 1B | 2097151 | 254 | 小型网络 | 110 |
D | 多点播送网络 | 1110 | ||||
E | 保留地址 | 11110 |
后来随着上网设备增多,感觉地址不够用了,就再将主机地址细分为子网地址和主机地址,使用子网掩码进行区分
子网掩码是32位的地址掩码,对应于网络地址和子网地址的掩码位设置为1,对应主机地址的掩码位设置为0,将子网掩码与IP地址进行按位与操作即可得到子网地址,这样就做到了区分子网地址位和主机地址位的作用