网络知识
网络
计算机通过网络互连、或者说计算机通过网络
网络体系结构(Architecture)
网络体系结构是网络如何构成和使用的一套规则和协议集合
体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件
网络体系结构
目前主要分为两种模型:ISO/OSI模型、TCP/IP模型
ISO/OSI模型
ISO
国际标准化组织,比如大家常听说的ISO9000认证,ISO是一个结构
OSI
开放系统互联参考模型OSI/RM(Open System Interconnent Reference Model)是一套关于如何设计网络、如何连接网络、如何发送和处理网络数据等规定的集合
出自1984年,由国际标准化组织制定的计算机网络通信规范
特点:概念清楚,理论完整,但既复杂又不实用
OSI模型分为7层分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
物理层:传输二进制信号,主要设备是网卡、集线器等
数据链路层:在局域网内寻找到达目的计算机的通路,以及进行流量控制等,会对传输的数据添加信息或拆解信息(具体不必做过多了解);主要设备是交换机
网络层:主要进行路由、寻址(简单说就是寻找把数据从一个网送到另一个网的目的计算机时,走哪条路更短、更快),也能进行流量控制;也会对数据添加信息和拆解信息;主要设备是路由器
传输层:主要负责传输数据到目的计算机;也会也会对数据添加信息和拆解信息;主要设备是硬件防火墙
会话层:收到计算机发来的信息,一般不说有无设备
表示层:理解信息的含义,一般不说有无设备
应用层:根据收到的信息,做具体的工作(实质是执行程序),也会对数据添加信息和拆解信息;主要设备是服务器(计算机一级内部的特定软件)
对等层之间封装、拆解信息的规则是一致的
TCP/IP四层模型
由TCP和IP为代表的一系列协议集合,包括很多规则和要求
TCP:传输控制协议,属于传输层的协议,用于保证数据安全传输和送达(如果数据丢失重新发送)
IP:网络协议,属于网络层协议,用于路由、寻址、无连接发送数据(不保证数据安全送达)
TCP/IP是一个协议簇
TCP/IP模型的4层:网络层接口、网络层、传输层、应用层
OSI和TCP/IP的对应关系
应用层 \
表示层 \
会话层 ------------ 应用层
传输层 ------------ 传输层
网络层 ------------ 网络层
数据链路层 \
物理层 ----------- 网络接口层
TCP/IP五层模型
应用层、传输层、网络层、数据链路层、物理层
TCP/IP每层包含的协议
应用层/Application
负责实现一切与应用程序相关的功能
FTP(文件传输协议)、HTTP(超文本传输协议)、DNS(域名服务器协议)、SMTP(简单邮件传输协议)、NFS(网络文件系统协议)
传输层/Transport
负责提供可靠的传输服务
TCP(控制传输协议)、UDP(用户数据报协议)
网络层/Network
负责网络间的寻址数据传输
IP(网际协议)、ICMP(网际控制消息协议)、ARP(地址解析协议)、RARP(反向地址解析协议)
网络接口层/network Interface
负责实际数据的传输
HDLC(高级链路控制协议)、PPP(点对点协议)、SLIP(串行线路接口协议)
常用windows网络使用命令
ipconfig 查看本机IP地址
ping 表示看自己的计算机能不能连上指定的IP代表的计算机 如果出现“恢复...字节=”等字样,表示计算机可以相连通
IP
网络协议,一些列的规定,具体实施是IP地址
TCP
传输控制协议
用于端到端传输数据(端到端就是一个计算机到另一个计算机),可以保证数据安全传达和传输,一般用于需要安全传输数据的程序,程序员编程时可以选择用还是不用
UDP
用于无连接传输数据,不保证数据是安全的、正确的,通常用于传送大量数据而且不要求数据完整或安全的场合,也由程序员选择是否使用,一旦程序员选择了某种传输协议,测试时需要我们去了解
应用层协议
应用层直接为用户的应用进程提供服务
HTTP:HyperText Transfer Protocol,超文本传输协议,可以传输文本、图片、声音、影像、文件等数据(突破最早只能传输文本的限制),简单理解为传输网页(不太确切)
HTTPS:HyperText Transfer Protocol over Secure Socket Layer,基于SSL(安全套接字层)的安全的http协议
FTP:File Transfer Protocol,文件传输协议,用于上传下载文件的协议
SMTP:Simple Mail Transfer Protocol ,简单邮件传输协议,用于发送邮件
POP3:Post Office Protocol version3,邮局协议第3版本,用于收邮件
端口、端口号
是一个数字,介于0-65535之间
用于一台服务器上有很多服务(或软件)时,区分不同的服务
比如同一台服务器的IP是172.166.100.24,使用80端口可以访问服务器上的网站,使用3306可以访问服务器上的mysql数据库,使用21可以访问服务器上的FTP服务器下载文件等.
注意:除了默认端口号外,不要随便把端口号改成0-1023以内的整数,尽量避开其他已使用的端口号(比如1433、3306、1521等),实际工作中,同一个计算机中,多个不同的服务(软件、接口),它们的IP地址、域名、端口号这三个不能完全相同
查询哪个程序在使用3306号端口:netstat -ano | findstr “3306”
net:网络
stat:status的缩写,状态
-a:all,所有,所有的端口(计算机时刻盯着有没有人在用某个端口,这叫监听)
-n:结果中显示IP地址和端口号
-o:显示程序编号(进程号)
findstr:在 | 左边的结果中查找字符串
根据程序编号查出程序名:tasklist | findstr “程序编号”
tasklist:查看计算机中正在运行的所有程序列表(进程列表),相当于任务管理器中看到的所有进程
端口号:用来区别应用层的协议
HTTP 80
HTTPS 443
FTP 21
SMTP 25
POP3 110
端口分类
熟知端口号(系统端口号)
在www.iana.org可以查到(国际互联网地址分配委员会IANA)
当一种新的应用程序出现后,IANA必须为它指派一个熟知端口
登记端口号
范围:1024~49151
使用这类端口号必须在IANA按照规定的手续登记
客户端使用的端口号(短暂端口号)
范围:49152——65535 仅在客户进程运行时才动态选择。
当服务器进程收到客户进程的报文时,就知道了客户进程使用的端口号,因而可以把数据发送给客户进程。通信结束后,刚才使用过的客户端口号就不复存在