网络协议是什么
网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。
一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。
网络上的计算机之间又是如何交换信息的呢?就象我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信。当然了,网络协议也有很多种,具体选择哪一种协议则要看情况而定。Internet上的计算机使用的是TCP/IP协议。
网络通信原理
互联网的本质就是一系列的网络协议。
- C/S 架构和B/S架构
client <—基于网络通信—> server
browser <—基于网络通信—> server
#如果没有网络,每台机器就只能彼此独立 - server端必须满足的条件:
(1)稳定运行(网络、硬件、操作系统、服务端应用软件),对外一直提供服务
(2)服务端必须绑定一个固定的地址(客户端地址不用固定,客户端先发送数据或请求,然后服务端就能知道它的地址) - 互联网两大要素
(1)底层的物理连接介质,是为通信铺好道路的
(2)一套统一的通信标准---->互联网通信协议(计算机界的英语)
常用的协议
TCP/IP的四层协议
OSI的七层协议
物理层
底层物理连接介质。负责发送电信号高电压对应数字1,低电压对应数字0。两个物理层通过光缆电缆双绞缆等介质连接
把电脑连接起来的物理手段,它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。
该层上的设备包括集线器、发送器、接收器、电缆、连接器和中继器等。
数据链路层
在物理层的基础上向上提供网络服务,将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。
网络层包含众多重要的协议:
1.数据链路层为网络层提供可靠的数据传输
2.基本数据单位为:帧
3.主要协议:以太网协议
4.包含两个子层:介质访问控制(MAC)和逻辑链路控制(LLC)
5.包含网桥,网络接口卡,交换机等设备
----------------------------------------
数据链路层的功能:定义了电信号的分组方式
以太网(ethernet)规定
一组电信号构成一个数据包,叫做‘帧’
每一数据帧分成:报头head(固定18个字节)和数据data两部分
数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
mac地址(网卡的地址,接入internet的设备都必须有网卡,即可找到某个具体的设备):
head中包含的源和目标地址由来:以太网(ethernet)规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
广播:
有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址,该主机再回应时就不用吼了,交换机的‘学习’特性)
ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼
网络层
把数据包传送到其目的地的路径。就是把逻辑网络地址转换为物理地址。基本数据单位为IP数据报。
网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
网络层包含众多重要的协议:
-
IP协议
规定网络地址的协议,叫IP协议。它所定义的地址称之为IP地址。提供不可靠、无连接的传送服务。
广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
范围0.0.0.0-255.255.255.255一个ip地址通常写成四段十进制数,例:172.16.10.1
ip地址分成两部分:
网络部分:标识子网
主机部分:标识主机
注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网子网掩码
所谓"子网掩码",就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0
标识地址的方式:
ip+mac就能标识全世界范围内独一无二的一台计算机
ip+mac+port就能标识全世界范围内独一无二的一个基于网络通信的应用软件
url地址:标识全世界范围内独一无二的一个资源 -
ICMP协议
因特网控制报文协议。 -
ARP协议
地址解析协议。IP地址转换为物理地址(MAC地址)
ARP协议功能:广播的方式发送数据包,获取目标主机的MAC地址
协议工作方式:每台主机ip都是已知的 -
RARP协议
逆地址解析协议。顾名思义,是将物理地址转换为IP地址
网络层的重要设备是路由器。
传输层
传输层建立端口到端口的通信。网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题。
传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层功能:建立端口到端口的通信
补充:端口范围0-65535,0-1023为系统占用端口,1024-65535给软件用
tcp协议(可靠传输):
以太网头-------ip 头---------tcp头---------数据
udp协议(不可靠传输):
以太网头-------ip 头---------udp头---------数据
--------------------------
TCP协议:传输控制协议。
- TCP提供一种面向连接的、可靠的字节流服务
- 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP
- TCP使用校验和,确认和重传机制来保证可靠传输
- TCP给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复
- TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制
UDP协议:用户数据报协议。
- UDP 缺乏可靠性。UDP 本身不提供确认,序列号,超时重传等机制。UDP 数据报可能在网络中被复制,被重新排序。即 UDP 不保证数据报会到达其最终目的地,也不保证各个数据报的先后顺序,也不保证每个数据报只到达一次
- UDP 数据报是有长度的。每个 UDP 数据报都有长度,如果一个数据报正确地到达目的地,那么该数据报的长度将随数据一起传递给接收方。而 TCP 是一个字节流协议,没有任何(协议上的)记录边界。
- UDP 是无连接的。UDP 客户和服务器之前不必存在长期的关系。UDP 发送数据报之前也不需要经过握手创建连接的过程。
- UDP 支持多播和广播。
重要设备:网关
tcp协议
tcp协议:
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
udp协议:
不可靠传输
1、为何建连接要三次而断开连接却需要四次
2、为何tcp协议是可靠协议,而udp协议是不可靠协议
3、tcp协议建立连接与断开连接的状态信息以及表示的意义
会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
应用层
为操作系统或网络应用程序提供访问网络服务的接口。数据单位为报文。
应用层功能:规定应用程序的数据格式。
主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。
半连接池
限制的是同一时刻的请求数,而非连接数
OSI协议和TCP/IP协议的区别
参考链接
网络协议基础知识:https://blog.youkuaiyun.com/ff55fff/article/details/77898212