====
iso/osi七层模型
最上层应用层最贴近用户
最下层物理层最贴近实际的数据传输
上三层对用户提供服务,下四层对实际数据传输提供服务
物理层负责真正的数据传输,上面层写入对应传输信息
发送数据从上层->下层,接受数据从下层->上层
下四层数据传输有数据传输单位
比特(每个01)
帧 保存了硬件MAC地址,报文 保存IP地址,MAC地址负责局域网通信,IP地址负责外网通信
传输层数据单位 段,标准名称 TPDU 传输协议数据单元
详细:https://www.imooc.com/video/5211
详解:
- 物理层:负责设备之间比特流的传输、物理接口(网线、网卡等)等
- 数据链路层:组织数据成帧,写入MAC地址,用MAC地址确定访问对象(源MAC地址和目标MAC地址),还有一定错误检测和修正功能
- 网络层:写入IP地址(源IP和目标IP),选择通路(选择数据传递路径,经过哪些节点路径传输数据给对方)
- 传输层:确定传输协议(TCP 可靠,UDP 不可靠),传输前的数据检测,流量控制(网络卡缓一会传,网好了快点传),确定端口号
- 会话层:确定网络传输数据是否要经过会话
- 表示层:数据的表现形式(翻译传输数据给机器),特定的功能实现(加密、压缩等)
- 应用层:提供用户接口
用户A给用户B发送邮件
- 打开浏览器输入打开邮箱(应用层)
- 写完邮件点发送,数据传递给表示层,翻译数据
- 数据传递给会话层,会话层判断数据是否要经过网络传递(本地写一个文件点击保存,会判断为不需要经过网络传递)
- 数据需要网络传递,传递给传输层,确定传输协议,端口号(发送端口接收端口)
- 数据传递给网络层,写入发送IP和接受IP
- 数据传递给数据链路层,写入MAC地址(源MAC和目标MAC),数据通过互联网传递,IP负责通过互联网传递,数据还是要通过一个局域网跳到另外一个局域网最终到达,MAC负责在局域网传递
TCP/IP四层模型
参考iso/osi七层模型,有一定对应关系
应用层 对应 应用层、表示层、会话层
传输层 对应 传输层
网际互连层 对应 网络层
网络接口层 对应 数据链路层、物理层
详解:
-
网络接口层:负责监视数据在主机和网络间的交换。事实上,TCP/IP本身并未定义该层协议,而由参与互联的各网络是用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,就是OSI参考模型的数据链路层
cmd -> arp -a 把ip地址翻译成物理地址
局域网内数据传输:数据->交换机(交换机只识别MAC地址,交换机记录了所有连接设备的网卡物理地址),交换机通过MAC地址判断数据发送给谁
在公网中通信才依赖IP地址通信 -
网际互连层:主要解决主机到主机的通信问题,该层主要有三个协议,网际协议(IP)、互联网组管理协议(IGMP)、互联网控制报文协议(ICMP)(ping命令利用了ICMP协议,给指定计算机发数据包接收回应)
-
传输层:该层定义了两个主要协议:传输控制协议(TCP)、用户数据报协议(UDP)
TCP/IP 三次握手
面向连接可靠(网页、邮件等)
主机A向主机B发送数据:- A发送SYN(X)包(发起连接包)(在吗?)
- B接收到SYN(X)包,发送ACK(X+1)包(回应包)(在。)、SYN(Y)包(你还在吗?)
- A接收到SYN(Y)包、ACK(X+1)包,发送ACK(Y+1)包(在。要发送数据了。)
- B接收到ACK(Y+1)包
A和B在数据传输过程中始终有交流(面向连接),确保数据正确传输,有数据传错了会通知重新传(可靠)
UDP传输:不管B在不在,数据就发出去
面向无连接不可靠(聊天等)
更快,有可能会丢两军问题 / 2 \ 3 / 2 \
-
应用层:为用户提供所需要的各种服务(ftp、dns、telnet、smtp等)
数据封装过程:
通过文件服务器上传文件:
- 数据链路层打入包头,主要是源MAC地址和目标MAC地址
- 打包完传递给对方,对方从下往上传,拆包头
OSI模型在协议开发前设计的,具有通用性
TCP/IP现有协议然后建立模型,不适用于非TCP/IP网络
详细:https://www.imooc.com/video/5215
IP 包头:
IP包头 每行1-31 32位,5行,共160位,8位一个字节,固定20字节,还有一些可能有的选项,会超过20字节
(IPv4比IPv6慢的一个主要原因 ip包头长度不固定,接收到要先检测包头有多长,IPv6固定长度)
IP地址32位,所以IP仅有232个
00000000.00000000.00000000.00000000 - 11111111.11111111.11111111.11111111
十进制: 0.0.0.0 - 255.255.255.255
IP地址分类:
由IP地址第一个数判断类别
- 1 - 26 A类
- 128 - 191 B类
127网段只有一个IP 127.0.0.1 表示本机 - 192 - 223 C类
最大网络数:A类IP中 第一个数代表网段,属于不同的网络,后面的数表示主机
不同网络要通信需要使用路由器,路由器用来跨网络通信,同一个网络间通信,使用交换机就可以了
- 每个网络第一个地址(1.0.0.0)代表这个网络本身,不能分配
- (1.255.255.255)代表当前网络的广播地址
B类IP中 前两个数代表一个网段
C类IP中 前三个数代表一个网段
私有IP谁都可以使用,节约有限的公网IP地址。私有IP不能直接访问公网,需要转换
子网掩码:
子网掩码和IP地址不能分开查看
一个A类IP:10.1.1.200
A类IP标准子网掩码:255.0.0.0
.
分隔的四个数一一对应,255对应的数改变就是不同网段,0对应的数改变就是不同主机
一个B类IP:172.16.1.200
B类IP标准子网掩码:255.255.0.0
一个C类IP:192.168.1.200
C类IP标准子网掩码:255.255.255.0
子网掩码 确定IP地址中哪个数变化是不同网段,哪个数变化是一个网段不同主机
子网掩码中所有的1都必须是连续的 11111111.11111111.11111111.00000000
变长子网掩码 及 子网规划
一个B类IP:172.16.2.121
可以分配一个C类标准子网掩码:255.255.255.0
这个时候,172.16.2变化就是不同网段,121变化就是不同主机
网络位 | 网络位 | 子网位 | 主机位 | |
---|---|---|---|---|
172.16.2.121 | 10101100 | 00010000 | 00000010 | 01111001 |
255.255.255.0 | 11111111 | 11111111 | 11111111 | 00000000 |
网络地址 | 10101100 | 00010000 | 00000010 | 00000000 |
广播地址 | 10101100 | 00010000 | 00000010 | 11111111 |
网络地址(逻辑与):172.16.2.0
广播地址(前面不变,最后一格全部为1):172.16.2.255
主机地址:172.16.2.1 - 172.16.2.254
端口
TCP协议包头:
端口16位 可用端口 0 - 2^16-1
UDP协议包头:
端口16位 可用端口 0 - 2^16-1
常见端口:
ftp(文件传输协议):20 21
ssh(安全shell协议):22
telnet(远程登录协议):23
dns(域名系统):53
http(超文本传输协议):80
smtp(简单邮件传输协议):25
pop3(邮局协议3代):110
netstat -an
-a
查看所有连接和监听端口-n
显示ip地址和端口号,而不显示域名和服务名
DNS
解析域名 - ip
windows中本地设置ip解析对应关系:C:\Windows\System32\drivers\etc\hosts
DNS服务
将域名解析为IP地址
- 客户机向DNS服务器发送域名查询请求
- DNS告知客户机web服务器ip地址
- 客户机与web服务器通信
DNS查询过程:
网关
- 网关在所有内网计算机访问的不是本网段的数据报时使用
- 网关负责将内网ip转换为公网ip公网ip转换为内网ip
局域网内访问可以不要网关和DNS