互联网通信模型
互联网通信模型
目录
一、互联网协议的理解
计算机中的互联网协议相当于世界通用语言英语的语法规则,都是用于相互之间沟通交流用的
二、tcp/ip五层模型
1. 物理层:
- 将不同的电脑通过电缆、光缆、双绞线、无线电波等连接;(基础设施,传递电信号)
- 通过发送高低电压信号来传递数据,高电压对应数字1,低电压对应数字0
2. 数据链路层
- 数据链路层定义了电信号分组协议,规定了电信号每组的位数,解决了计算机之间的通信问题
2.1 以太网协议(ethernet)
- 一组电信号构成一个数据包,称为一帧
- 每一个数据包分为:抱头head和数据data两部分
- 抱头部分包括目标mac地址、发送源mac地址和数据类型三部分(固定为18个字节)
- 数据部分最短46字节,最长1500字节,一个数据包最多1518个字节,大了需要分片发送
2.2 mac地址
- 计算机想要通信需要网卡,每块网卡在出厂时都被赋予了世界唯一的mac地址,长度为48位2进制数(前六位厂商编号,后六位流水号)
2.3 广播通信
- 在同一个网络里,计算机通过广播的方式发包,也就是一个计算机发的包,该网络下所有计算机都能够接收到,但只有当计算机发现目标mac地址是自己时,才会进行拆包。可以把该方式比喻做,
2.4 arp协议
- 用于获取目标主机mac地址的协议
3. 网络层
3.1 ip协议
- 用来区分不同的子网空间
- 目前的ip地址广泛采用ipv4版本,规定ip地址由32位2进制表示,通常写为4段十进制数,例如:172.16.10.1
- ip地址分为网络部分和主机部分
- 子网掩码
- 用来规定ip地址中网络部分和主机部分
- 表示为32位的二进制数,ip地址中的网络部分标为1,主机部分标为0,例如11111111,11111111,11111111,00000000→255,255,255,0,表示网络部分为前24位。也可以写为172.16.10.1/24
- 网络地址
- 用来查看计算机是否处于同一个子网下
- 网络地址可由ip地址和子网掩码进行and运算得出(两个数都为1,运算结果为1,否则为0)
3.2 ip分类
- 截图
4. 传输层
建立端口到端口的通信,也就是建立不同计算机中软件的通信
4.1 TCP协议
- 端口号: 通过端口号来标识主机中的应用程序
- 套节字:python提供的可以直接套用协议模板的接口
- 报文内容
- 标志位:syn(发起新连接)/ack(确认连接)/fin(请求断开连接)
- 窗口:定义发送和接收数据包的大小
- 三次握手建立连接、四次挥手断开连接(建立的是双向连接)
4.2 DHCP协议
- 电脑开机后,自动通过该协议去获取本机的ip地址、子网掩码、网关ip地址、DNS的ip地址
5. 应用层
- 用来收集用户数据的,也就是我们最常接触到的一层
三、网址构成
- url地址: https://www.cnblogs.com/xiaokaibiubiu
- url地址: https://www.cnblogs.com
- 协议部分: https://
- 域名部分: www.cnblogs.com
- 资源部分: /xiaokaibiubiu
四、DNS
DNS实际上是一个服务器,负责将域名翻译成相应的ip地址
五、NAT
将内网的ip请求转换成用公网ip来发
六、子网划分
- 借主机位来充当网络位,使得一个大的ip字段,分成多个小的隔离子网络,有效地利用每个子网的计算机数
- 开头和结尾的子网字段都不能用(开头的子网字段是该子网的网络地址,结尾的子网字段是该子网的广播地址)
1. 子网划分的原因
因为互联网数据传输基于广播特性,所以如果一个网段的主机数过多的话,会大大降低数据的传输速度
2. 子网划分的步骤
- 确定要划分的子网和主机数
- 通过子网数和主机数求出需要借的主机位N,以及剩余的主机位M
# 例如:C类网络 211.168.10.0 需要划分出5个子网
2**2-2 < 5 < 2**3-2
# 得出需要借3个网络位n=3,还剩下5个主机位m=5(2**n-2,表示最多可以划分出n个子网,每个子网最多可容纳2**m-2个主机位)
子网编码为255,255,255,224
3. 子网划分的优点
- 减少网络流量、提高网络性能(一个网络下的主机数少,意味着发包的成功率高,所以耗费的网络流量少)
- 简化管理(主机数少,易于灵活配置和调度网络)
- 易于扩大地理位置(可将划分的子网分配到不同的地区)