网络基础
- 什么是网络
- 网络:计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规则,进行通信的集合。
- 通信,是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流。
- 网络通信,是指终端设备之间通过计算机网络进行的通信
2.常见术语
-
数据载荷(华为):传递的实际信息
-
报文(PDU–协议数据单元)
-
数据头部的作用:区分应用程序、找到数据的接收者
-
数据尾部的作用:确保数据是完整的
-
mac地址:设备全球唯一编号
-
ip地址:设备目前所在的位置逻辑上的地址
-
网关:转发不同网段的数据(离PC最近的三层交换机或者路由器)
osi七层与TCP\IP协议
1为什么要分层?
旧模型:专有产品,由一个厂商控制应用程序和嵌入的软件
基于标准的模型:多厂商软件,分层方法
- 层次划分的必要性:
很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但 T C P / I P协议族允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想。T C P / I P起源于6 0年代末美国政府资助的一个分组交换网络研究项目,到 9 0年代已发展成为计算机之间最常应用的组网形式。它是一个真正的开放系统,因为协议族的定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到。它成为被称作“全球互联网”或“因特网( I n t e r n e t )”的基础,该广域网(WA N)已包含超过1 0 0万台遍布世界各地的计算机。计算机网络是由许多硬件、软件和协议交织起来的复杂系统。由于网络设计十分复杂,如何设计、组织和实现计算机网络是一个挑战,必须要采用科学有效的方法。
-
层次划分的方法
- 网络的每层应当具有相对独立的功能(便于排错)这个功能用不了 必然是你这层处理问题
- 梳理功能之间的关系,使上一个功能可以实现为另一个功能提供必要的服务,从而形成系统的层次结构, 环环相扣(紧密联系)
- 为提高系统的工作效率,相同或相近的功能仅在一个层次中实现,而且尽可能在较高的层次中实现
- 每一层只为相邻的上一层提供服务
-
层次划分的优点
- 各层之间相互独立,每一层只实现一种相对独立的功能,使问题复杂程度降低,利于针对解决问题
- 灵活性好,各层内部的操作不会影响其他层
- 结构上可分割开,各层之间都可以采用最合适的技术来实现
- 易于实现和维护,因为整个系统已被分解成相对独立的子系统
- 能促进标准化工作,因为每一层的功能及其提供的服务都有了精确的说明
2OSI七层模型
互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分为七层。实际上这个七层是不存在的。没有这七层的概念,只是人为的划分而已。区分出来的目的只是让你明白哪一层是干什么用的。
七个分层分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
- 应用层:用户操作的一个应用(微信、QQ、陌陌等)网络服务与最终用户的一个接口(用户操作)
- 表示层:将bit转换成二进制数据并可以加密、解压等
- 会话层:确认软件之间是否可以进行通信
- 传输层:传输数据段
- 可靠传输:递数据前必须事先建立连接,可靠性高,传输效率低------打电话(tcp)
- 不可靠传输-----数据可以直接发送,传输效率高,可靠性低-----短信(udp)
- 网络层:将上层数据封装成数据包,并挑选最优路线传输
- 数据链路层:将上层数据加上源和目的方的物理(MAC)地址封装成数据帧,MAC地址是用来标识网卡的物理地址,建立数据链路;当发现数据错误时,可以重传数据帧。
- 物理层:报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。
Tips
1.网络层及以下的通信为点对点通信
2.传输层的通信为端到端通信
3七层总结
层次模型 | 作用 | 数据单元 | 主要设备 |
---|---|---|---|
物理层 | 建立、维护、断开物理连接 | 比特流 | 网卡 |
数据链路层 | 进行硬件地址寻址,差错校验等功能 | 数据帧 | 交换机 |
网络层 | 进行逻辑地址寻址,实现不同网络之间的路径选择 | 数据包 | 路由器 |
传输层 | 定义传输数据的协议端口号,以及流量和差错校验 | 数据段 | 计算机 |
会话层 | 建立、管理、中止会话 | message | 计算机 |
表示层 | 数据的表示、压缩、格式化、加密 | message | 计算机 |
应用层 | 网络服务与最终用户的一个接口 | message | 计算机 |
应用层、表示层、会话层为高三层,是面向用户的
网络层、数据链路层、物理层为低三层,是面向硬件的
网络层及以下的通信为点到点通信(主机与主机)
传输层的通信为端到端(端口到端口)
4数据封装的过程
层次模型 | 数据来源 | 作用 | 主要设备 |
---|---|---|---|
传输层 | 接收上层数据 | 加入tcp或 udp头部 | 防火墙 |
网络层 | 接收上层数据 | 加入源目ip地址 | 路由器 |
数据链路层 | 接收上层数据 | 加入源目mac地址 | 交换机 |
物理层 | 接收上层数据 | 转为 bit流 | 网卡 |
5TCP/IP协议族的组成
模型层 | 协议 |
---|---|
物理层 | IEEE802.3有线局域网(以太网) IEEE802.11无线局域网标准 |
数据链路层 | Point-to-Point Protocol |
网络层 | IP (ICMP IGMP ARP RARP) |
传输层 | TCP UDP |
应用层 | HTTP FTP TFTP SMTP SNMP DNS |
物理层: |
- IEEE802.3有线局域网(以太网)
- IEEE802.11无线局域网标准
数据链路层:
- 点对点协议(Point-to-Point Protocol) PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。
网络层:
IP协议:(Internet Protocol,网际协议),而 IP 又由四个支撑协议 组成:
-
ARP(地址解析协议): 是将IP地址转换成物理mac地址 的协议
-
RARP(逆地址解析协议): 是根据物理mac地址转换成IP地址的协议
-
ICMP(网际控制报文协议):ping 网络连通性检测 检测网络连通性
-
IGMP(网际组管理协议):一个组播协议,该协议运行在主机和组播路由器之间
单播:1对1发消息 私聊
组播:只对一部分人发消息 全班中的某 一组
广播:对所有人发消息 全班
传输层:
-
TCP :传输控制协议 可靠协议 (安全性高,速度慢)
-
UDP:用户数据报协议 不可靠协议(安全性不高,速度快)
应用层:
-
HTTP(超文本传输协议):是一个简单的请求-响应协议,现在主要的场景是web服务,就是网页的传输,默认使用tcp的80端口 http
-
HTTPs:是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,默认使用tcp的443端口 当当买书,
-
FTP文件传输协议:FTP( File Transfer Protocol)提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,默认使用tcp的20,21端口
-
TFTP简单文件传输协议:是一个小而易于实现的文件传送协议,TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别,默认使用udp的69端口
-
SNMP简单网络管理协议:是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,默认使用udp的161端口
-
SMTP简单邮件传输协议:一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式,用于邮件的发送,默认使用tcp的25端口
-
POP3邮局协议版本3:用于邮件的接收,默认使用tcp的110端口
-
telnet远程登陆协议:一种字符模式的终端服务,可以使用户通过网络进入远程主机或网络设备,然后对远程主机或设备进行操作,默认使用tcp的23端口
-
ssh安全的远程登陆协议,默认使用tcp的22端口ssh
-
DNS 域名解析系统:将域名和IP地址相互映射,默认使用tcp和udp的53端口 www.baidu.com ip地址 dns udp tcp 程序 进程: 运行中的程序0-65535
-
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,默认使用udp的67和68端口。分配ip地址
总结
网络层协议
-
icmp:检测网络中两台主机的是否连通
-
ARP:将ip地址转换成mac地址
传输层
- tcp:传输前要建立连接 安全 可靠 稳定 慢 重传
- udp:传输前不需要建立连接 不可靠 不稳定 快
应用层协议
- http:超文本传输协议(网页) 端口号80 tcp
- https: 加密的网页 443 tcp
- ftp:文本传输协议 20 21 tcp
- tmtp:简单文本传输协议 69 udb协议
- dns:域名解析协议 tcp udp的 53
远程连接协议
- telnet:明文 23 tcp
- ssh:加密 22 tcp
每层对应的协议
- 应用层: http(80tcp) ftp(20 21tcp) tftp(69udp) dns(53tcp udp)
ssh(22) telnet(23) - 传输层 tcp udp
- 网络层: arp icmp
端口号作用
- 区别系统内的进程
- 服务端端口号固定
- 客户端端口号是随机的
- 前1000 左右端口号不能使用
- 65536个端口号(0-65535)