1、通信
通信的本质其实就是某种物理信号的传输
通信需要具备的两个基本条件:
(1)媒介(物理层面),例如:线缆、光纤
(2)协议(软件层面),例如:网络协议
2、网络
网络是一种连接计算机主机和设备的方式,它使数据可以透过网络媒体传播。全球互联网的始网叫做阿帕网,为了使各种不同的计算机之间互联,阿帕网制定一套计算机通信协议(即TCP/IP协议) ,它们针对计算机如何连接和组网 做出了详细的规定。
网络采用 分而治之 的方法
把网络的功能划分成不同的模块,用分层的形式有机的组合在一起。在每一层定义了很多协议 这些协议的总称 就是 TCP/IP协议 。且每层实现不同的功能,每层之间 向上一层提供服务,同时使用下一层提供的服务
网络体系结构 指的是网络的层次结构 和 每层使用的协议
两个非常重要的体系结构:
OSI
TCP/IP
3、网络协议层次模型
功能模块之间存在相互调用的关系 ----> 层次关系
1) OSI 开放式系统互联 Open System Interconnect
七层模型 (理想化模型)
应用层 :提供各种应用程序的接口
让你的系统知道你的数据包 是哪一个应用程序发出去的
表示层 :转换数据格式 以及 加密解密
主要是对发送/接收的数据 加密解密 压缩解压缩
确保一个系统的应用程序发送的数据 能够被另一个系统的应用程序接收和识别
会话层 : 负责建立连接、维护会话 和 断开连接
传输层 :主要负责端到端的数据传输
主要起到可靠传输的作用,建立端到端的连接,定义一些数据传输协议和端口
网络层 :寻址 和 路由
主要负责将数据包从源地址 传输到 目标地址
数据链路层 :差错校验、链路管理、流量控制
主要将收到的数据包进行 物理地址(如MAC地址)的封装和解封装
物理层:主要是定义物理设备的标准
2)TCP/IP 四层模型
应用层
定义了各种应用程序之间的通信协议
如:
HTTP 超文本传输协议
FTP 文件传输协议
SMTP 简单邮件传输协议
SSH 安全的远程登录协议
Telnet 远程登录协议
...
传输层
主要负责端到端的数据传输,解决数据如何传输的问题
TCP :传输层控制协议 Transport Control Protocol 类似于 "打电话"
是一种面向连接的传输层协议,能够提供可靠的通信(数据无误、不丢失、不重 复、按序到达)
---> 建立连接、三路握手、四次挥手、重发机制
UDP : 用户数据报协议 User Datagram Protocol 类似于 "发短信"
是一种不可靠的无连接的传输层协议,在数据发送之前,不需要连接
可以进行高效的数据传输 "实时实用"
网络层
主要负责将数据包从源地址 传输到 目标地址,实现不同网络之间的数据交换
IP协议 :Internet Protocol 互联网协议 逻辑地址(IP地址)
网络接口层(数据链路层/物理层)
主要负责将数据包从网络层传递到物理层,实现物理层的传输
**注意:**网络数据是如何传输的?
分层传输
数据的封装和拆包的过程
每一层实现各自的功能和协议
4、常见的网络设备
集线器(物理层)
把数据传输到其他的端口
交换机(数据链路层)
物理地址(如MAC地址)的集合
路由器(网络层)
路由选择协议 负责选择最佳的路,选择网络数据的下一站
互联网 将所有的网络连接到一起
网关 实现不同网络之间的通信
==========================
ps. 路由器:是使用IP地址寻址,实现从源IP地址 到 目标IP地址的端到端的通信
工作原理:
(1)路由器收到数据包,先会提取目标IP地址和子网掩码,计算目标的物理地址
(2)根据目标物理地址 查询路由表,如果找到了的目标物理地址,就从相应的出口发送数据到下一站
(3)如果没有找到,就看是否有默认路由,如果有,就从默认路由发送数据到下一站
(4)如果没有指定默认,向源地址发送不可达报文,通知源地址找不到目标地址
(5)如果是直接路由,就直接发送数据到下一站
5、互联网的地址 IP地址
IP地址 :Internet Protocol Address 互联网协议地址
互联网网上的每一个接口(网卡)必须要有一个唯一的ip地址 ,协议上的逻辑地址,进行网络通信 用这个ip地址 唯一标识一台计算机
ipv4 : 32位 4个字节
ipv6 :128位 16个字节
1)ipv4地址
表现形式: 点分十进制
如:192.168.31.111
172.4.0.1
最后都会转换成一个无符号的32位的整数
组成:
网络号 用来表示每一个局域网
主机号 用来表示某个特点的局域网中的主机号
分类:
A类地址 0 + 网络号(7bits) + 主机号(24bits)
ip地址的范围 私有ip的范围
0.0.0.0或1.0.0.0 ~ 127.255.255.255 10.0.0.0 ~ 10.255.255.255
B类地址 10 + 网络号(14bits) + 主机号(16bits)
ip地址的范围 私有ip的范围
128.0.0.0 ~ 191.255.255.255 172.16.0.0 ~ 172.31.255.255
C类地址 110 + 网络号(21bits) + 主机号(8bits)
ip地址的范围 私有ip的范围
192.0.0.0 ~ 223.255.255.255 192.168.0.0 ~ 192.168.255.255
D类地址 1110 + 多播地址 (28bits)
224.0.0.0 ~ 239.255.255.255
E类地址 留待后用
240.0.0.0 ~ 255.255.255.255
特殊的IP地址
127.0.0.1 回环地址 本地测试用
169.254.0.0 ~ 169.254.255.255 自动配置地址 本地链路地址,用于主机自动获取地址失败后的临时通信
192.168.0.0 ~ 192.168.255.255 局域网地址
问:在设置一个ip地址,如何指定哪些是主机号,哪些是网络号?
答:netmask子网掩码 ---> 用来指定ip地址中,哪些是网络号,哪些是主机号 ,netmask中 为1的位 表示网络号为0的位 表示主机号 。
例子:
ip 192.168.31.104
netmask 255.255.255.0
192.168.31.104
& 255.255.255.0
192.168.31.0 网络号
6、端口
TCP 和 UDP 采用无符号 的16位端口号 来表示应用程序,TCP和UDP 的端口号是独立的。ip地址用来唯一标识网络中的一台计算机,一台主机可能有多个网络应用程序
一台主机网络应用程序由 : ip地址 + 传输层协议(TCP/UDP) + 端口号 共同确定的 。
端口号 本质上是一个无符号的short类型的整数: 0 ~ 65535
众所周知的端口号: 1 ~ 1023
20/21 ftp
22 ssh
23 telnet
25 smtp
80 http
443 https
53 dns
69 tftp
5900 vnc
...
注册端口号: 1024 ~ 49151
动态/私有端口: 49152 ~ 65535
7、总结
1)网络层次模型
OSI 七层模型
TCP/IP 四层模型
- TCP
UDP
- IP地址 + 端口号