目录
根据网络规模的大小,可以分为局域网和广域网
1.局域网
一般指网络规模较小,比如:一个公司,一个学校
2.广域网
一般指网络规模较大,通常我们指的是国际互联网
3.网络通信基础
3.1IP地址:端口号
IP地址表示了主机在网络上的地址,类似于收发快递的收件人与发件人地址
端口号表示了主机中某一个进程,使用网络的进程在启动时系统都会分配一个端口号
作为服务端,主动申请
作为客户端,被动分配
127.0.0.1这个IP表示的是本机的环回网卡的IP,每台计算机都是一样的,表示本机
IP地址本质上是一个32位的整型,每八位做了分隔,0-255
表示的最大范围是255.255.255.255(点分十进制)
以目前IPv4协议,IP地址总共有42亿个
IPv4协议地址个数不够用,推行IPv6。
端口号的范围是1-65535,但是1-1024是知名端口号,有明确的程序已经占用了,我们自定义的程序一般不使用这个范围内的端口号,可以在1025-65535之间任选一个未被占用的端口号。
程序在网络中一般是要传输数据的,IP相当于收发件人的地址,端口相当于收发件人的角色。
4.协议
协议是一种约定
5.五元组
6.协议分层
6.1什么是协议分层
协议分成类似于打电话,定义不同的协议层次
6.2分层的作用
6.3OSI七层模型
6.4TCP/IP五层(或四层)模型
1.应用层:负责应用程序间沟通。程序员关心的层,我们的工作主要是在这一层,数据的编码、解码方式。
传输层: 负责两台主机之间的数据传输。操作系统在这一层,主要是确定程序的端口号。
网络层:负责地址管理和路由选择。规划出一条端到端之间的路径,包括其中要经过的其他网络设备。
数据链路层:负责设备之间数据帧的传送和识别。解决的是点到点的传输。
物理层:负责光/电信号的传递。相当于网线其他网络设备。
7.封装和分用
对于发送方来说:
对于接收方来说:
以QQ发送消息为例,模拟一下消息在网络中封装与分用的过程
1.应用层:
对于应用层协议的定义,双方要按照相同的规则去组织与解析数据
应用层会把消息组织好,统一发给操作系统的API(传输层)
2.传输层
在传输层中有几个非常著名的协议,TCP,UDP
系统操作可以确定来源端口号。
3.网络层
确定了源IP和目标IP
4.数据链路层
MAC地址:每一个MAC地址都不相同,每个硬件厂商都会分配一段地址,生产出来网络设备都在这个范围中。
校验和:CRC校验,把每一个BYTE做累加操作,最终会得到一个值。接收方也会同时的操作累加值,如果得到的值与校验和相等,那么就证明数据本身没有被改过。过程中可能会出现溢出,溢出就溢出。
5.物理层
把以上的内容转为光信号、电信号在网络设备上传输。
6.物理层
把光信号和电信号,还原成数据链路层可以解析的格式。
7.数据链路层
MAC地址,可以找到对应的主机。
帧尾:校验和,能校验数据的有效性。
脱到帧头与帧层把载荷交给网络层
8.网络层
IP协议头:目标主机的IP
脱掉协议头,把数据交给传输层
9.传输层
这里已经进入了操作系统中,通过TCP中的目标端口确认应用程序(进程)
10.应用层
应用程序按照自定义的协议格式来解析消息体,完成通信。