计算机网络技术
一. 计算机网络技术
1.1.1 基础术语
数据:信息表现新式的载体,可以是文字,数字,字母,图像,音频等
信息:就是数据的内涵,信息是加载于数据之上,对数据具有含义的解释,数据和信息是密不可分的,信息依赖数据进行表达
通信:双方将信息从一方进行传递到另一方的过程
传统的通信的方式:烽火狼烟,击鼓传声,飞鸽传书,快马传信,旗语等
计算机网络:使用通信介质将通信设备连接起来供计算机相互通信和资源分享的网络
计算机网络的组成:
网络通信设备:交换机,路由器,集线器
通信介质:网线,光纤,电磁波
通信协议:TCP/IP协议簇,通信双方共同遵守的规则
消息:数据包
发送者:消息的发送方
接受者:消息的接收者
1.1.2网络的发展过程
(1)PSTN-LAN-MAN-WAN-因特网
PSTN:公共电话交换网
LAN:局域网(方圆两公里范围)
MAN:城域网(方圆10公里范围)
WAN:广域网
www:万维网(world wide web)
因特网:lnternet(互联网)
(2)ISP:网络服务运营商
一级ISP:中国移动,联通,电信
二级ISP:宽带通,长城宽带
三级ISP:校方,公司
(3)延迟:网络中的数据从一个节点到另一个节点所用的时间,单位:ms
1.1.3网线
网线---双绞线
双绞线的分类:
Ø 5类线:带宽100Mbps
Ø 超5类线:带宽1000Mbps
Ø 6类线:带宽1000Mbps
Ø 超6类线:带宽10000Mbps
Ø 7类线:带宽10000Mbps
网线顺序:
T568A:绿白,绿,橙白,蓝,蓝白,橙,棕白,棕
T568B:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕
两种顺序组成的网线:
交叉线:T568A----T568B
适用于PC连接PC,路由器连接路由器,交换机连接交换机,PC连接路由器
直通线:T568A----T568A
T568B----T568B
适合PC连接交换机,路由器连接交换机
制作网线工具:网线钳,水晶头,网线,测试仪
二,网络通信模型
2.1.1网络通信模型
2.1.1.1 OSI开放系统互联网参考模型
1. 七层模型
第七层:应用层;负责应用软件提供服务
第六层:表示层;负责对数据格式转化,编码,压缩,加密
第五层:会话层;负责会话进行管理和控制
第四层:传输层;负责两个进程之间的可靠通信
第三层:网络层;负责为两个网络两个节点
第二层:数据链路层;负责网络中相邻节点之间的可靠传输
第一层:物理层;负责比特流传输,为数据提供物理通道(网卡,接口,通信介质)
2. 五层模型
应用层-传输层-网络层-数据链路层-物理层
3. 四层模型
应用层-传输层-网络层-数据链路层
传输层的数据:数据段
网络层的数据:数据包
数据链路层的数据:数据帧
物理成的数据:比特流
2.1.2应用层
2.1.2.1作用
为软件提供服务
应用层常见的协议:
http:超文本传输协议 80,常用于浏览器访问网站,手机APP访问服务器
https:安全的超文本传输协议443,常用于浏览器访问网站
FTP:文件传输协议 21:用于安全,可靠传输文件
SMTP:简单的邮件传输协议25用于邮件客户端软件发送邮件
IMAP:因特网邮件接收协议143用邮件客户端软件接收邮件
POP3:邮局协议110:用邮件客户端软件接收协议
SSH:安全远程控制协议 22:用于远程控制网络设备或服务器
TELNET:不安全的远程控制协议 23:用于远程控制网络设备或服务器
DHCP:动态主机分配协议:67 68用于DHCP服务器给网络中的主机自动分配IP
DNS:域名解析协议:53 用于解析域名(为IP地址格式)
TFTP:快速文件传输协议 69:用于快速传输文件
SNMP:简单的网络管理协议 161:用于管理或监控网络设备
RIP:动态路由协议:520 用于自动生成路由
http
超文本传输协议,是一种在网络中传输网络资源的协议
常见的web服务器:apache、tomcat、lls等
前端开发技术:html+css+javaScript
2.1.2.2 http的工作原理
http报文结构
请求方法 空格 url/uri 空格 http协议版本 回车符&换行符
头部字段名:值 回车符&换行符
头部字段名:值 回车符&换行符
,
,
,
空行
请求体
2.1.2.3 http
pc之间ping通信的过程的响应报文结构
http协议版本号 空格 状态码 回车符&换行符
头部字段:值 回车符&换行符
2.1.2.4 常见的http请求方法
1.GET:请求获取或查询资源(文件,数据)
2.POST:提交表单、更新获取资源信息
3.PUT:从客户端向服务器发送指定的文档数据
4.DELETE:请求删除服务器某资源
5.HEAD:服务器返回响应没有具体内容,用于获取报文头部(相当于GET请求方法返回响应中没有响应体)
6.TRACE
2.1.2.5 GET和POST区别
1.GET方法主要用于请求服务器获取服务器指定资源 ,而POST方法主要用于向服务器提交表单更新资源
2.GET方法请求服务器传参数时只能够将参数放在URL中,而POST的方法请求服务器时参数放在请求体中
GET请求方法需要将参数放在URL中相对于POST方法不安全
post http://域名(www.xxx.com)/? 参数1=值&参数2=值
请求头部字段
accept:告诉服务器自己接收的资源类型,*/*表示任何类型,test/html表示HTML类型格式,image/jpg表示接收jpg格式的图片类型
accept-encoding:客户端声明自己接收的编码方法通常指压缩方法,是否支持压缩、支持什么压缩方法(jzip,deflate)
accept-language:表示客户端能够接收的语言,zh-cn表示简体中文、gbk、utf-8
host:客户端指定自己想要访问服务器的域名/IP地址+端口
referer:客户端向服务器表明自己是从哪个网页URL来的/请求过来的
connection:表明自己需要长连接,
keep-alive:告诉服务器或者代理服务器在完成本次响应之后,保持连接,等待本次连接后的请求,
备注:http1版本支持长连接和短链接,可以使用连接
user-agent:表明客户端自己的身份(表明客户端使用的什么浏览器)
cookie:表示浏览器缓存
content-length:表明请求体携带数据的大小
2.1.2.6 http常见响应状态码
200:服务器响应成功
3xx:重定向(在完成请求之前需要进行更进一步的处理)
301:表示永久移动,请求的资源已被永久移动到新的URL
302:表示临时移动
4xx:表示客户端错误(请求的语法错误或请求无法实现)
401:表示客户端需要进行身份认证
402:表示服务器理解客户端的请求,但是拒绝执行此请求
404:表示客户端请求不到服务器指定资源
5xx:服务器端错误
501:表示服务器不支持请求的功能,无法完成请求
502:表示服务器内部错误
503:表示服务器超载或者系统维护,服务器暂时无法完成客户端请求
http协议是无状态协议,http数据在请求之后,即断开连接
cookie:客户端浏览器的认证机制
2.1.2.7 session和cookie区别
存储位置不同
cookie是存储在客户端浏览器上
session是存储在服务器上
存储大小不同
cookie存储数据不超过3kb
session是存储在服务器上无限制的存储,当session存储数据太多时,服务器会进行可选择的删除
生命周期不同
cookie存储在客户端浏览器上,可以永久保存
session:生命周期间隔短,在一段时间内没有session访问,那么服务器就删除session
请求:
浏览器--服务器--数据库
响应:
数据库--服务器--浏览器
c/s架构:客户端/服务器(微信、qq、支付宝等app)
请求:
客户端(app、pc端)--服务器
响应:
服务器(app、pc端)--客户端
2.1.2.8 B/s架构和cs结构区别
建立基础不同:
cs建立在局域网的基础上
bs建立在广域网的基础上
硬件环境不同:
cs建立在局域网上,需要有专门的硬件网络环境提供数据交换服务
bs建立在广域网上,不需要有专门的硬件网络环境提供数据交换服务
安全性不同:
cs面向的是固定的用户群体,对用户信息安全要求高
bs面向的是不可预知的未知群体,安全控制能力较差
系统维护不同:
cs程序需要进行更新、升级整体架构,升级难维护成本高
bs是浏览器和服务器架构,升级、维护简单成本低,只需要有个浏览器即可
2.1.2.9FTP协议
定义:文件传输协议
双信道协议
控制信道
传输用户相关指令
数据信道
传输数据
传输模式
主动模式
服务器使用20或21作为默认接口
被动模式(PASV)
服务器使用随机(0-65535)端口作为端口
2.1.3传输层
作用:提供端到端的服务
端口号:能够唯一标识上层协议;取值范围在0-65535,0保留不用
2.1.3.1端口号的分类:
1. 熟知端口号:0~1023,通常用来标识服务端的上层协议
2. 注册端口号:1024~49151,通常用来标识服务端的上层协议
3. 随机端口号:49152~65535,通常用来标识服务端的上层协议
2.1.3.2常用协议的端口号
1. HTTP---TCP:80
2. HTTPS---TCP:443
3. SMTP---TCP:25
4. POP3---TCP:110
5. SSH---TCP:22
6. TELNET---TCP:23
7. IMAP---TCP:143
8. FTP---TCP:21
9. DHCP---UDP:67(服务器端口)/68(客户端端口)
10. DNS---UDP:53
11. TFTP---UDP:69
12. SNMP---UDP:161
13. RIP---UDP:520
2.1.3.3传输层
常见协议
TCP和UDP
TCP:传输控制协议,是一种面向连接的,可靠的,有状态的,具备超时重传和拥塞控制的协议
UDP:用户数据报协议,非面向连接的,不可靠的,无状态协议
TCP报文结构
源端口是发送端口的端口
目的端口是接受端的端口
Source port(源端口)---16bit
Destination port(目的端口)---16bit
Sequence number(序列号)---32bit
Acknowledgment number(确认序列号)---32bit
Header length(头部长度)---4bit
Reserved(保留位)---6bit
Flags(标志位)(UPG,ACK,PSH,RST,SYN,FIN)---6bit
Windows(窗口大小)---16bit
Checkssum(检验和)---16bit
Urgent Pointer(紧急指针)---16bit
Options(可选项)---可变
TCP报文结构
源端口
目的端口
序列号
确认序列号
头部长度
保留位
标志位
窗口大小
检验和
紧急指针
可选项
URG:紧急指针有效标识,当URG=1,标识当前数据比较紧急,需要立即发送(优先传输该条数据)
ACK:确认位;当ACK=1时,确认序列号才有效,为0时确认序列号无效
PSH:推送位;当前PSH=1,才有用,应尽快交付给接收进程,而不再等待缓存填满之后再上交
RST:重置连接位;当RST=1时,表明TCP连接出现严重错误,必须重新建立连接。
SYN:同步序号标识位;用来发起一个连接。当前SYN=1时表示这是一个连接请求或者连接接收请求。
FIN:终止位;当前FIN=1时,表示此报文段的发送端的数据已经发送完毕,要断开TCP连接
UDP报文结构
源端口---16bit
目的端口---16bit
长度---16bit
检验和---16bit
2.1.3.4 TCP的三次握手
基于TCP协议的数据,在传输的过程中需要线进行“三次握手“建立连接,然后传输数据,数据传输完成之后,
客户端向服务器发送SYN报文
服务器发送客户端回复SYN+ACK报文
客户端服务器发送ACK报文
”四次挥手“断开连接
客户端向服务器发送FIN报文
服务器返回客户端一个FIN报文和ACK报文
最后服务器给客户端发送一个ACK报文
TCP和UDP的区别:
1. TCP是面向连接的,可靠的,具有超时重穿,拥塞控制的协议
2. UDP是非面向连接的,不可靠的,无状态的协议
3. TCP的传输效率要比UDP低
4. UDP适用实时性要求比较高的场合(直播,语言聊天,视屏会议)
5. TCP适用于可靠性要求高的场合(HTTP,HTTPS,POP3,SSH)
2.1.4网络层
1. 作用:提供网络节点到另一个节点的服务(节点指网络设备),表示网络节点,为数据包传输提供路由功能
2. IPv4(俗称IP):Internet Protocol Version 4因特网协议第4版本
IPv4的地址长度:32bit
IPv4地址书写格式:点分十进制4段式
(0~255.0~255.0~255.0~255)0和255无法作为计算机IPv4地址使用
3. IPv6:因特网协议第6版本
IPv6的地址长度:128bit
IPv6的地址书写格式为:冒分十六进制八段式
4. IPv4的分类
A类:0.0.0.0~127.255.255.255;用户单播和广播特性通信
B类:128.0.0.0~191.255.255.255;用户单播和广播特性通信
C类:192.0.0.0~223.255.255.255;用户单播和广播特性通信
D类:224.0.0.0~239.255.255.255;用于组播通信
E类:240.0.0.0~255.255.255.255;保留
5. 通信方式
单播:一对一的通信
组播:一对一组的通信
广播:一对所有的通信
半双工通信:同一时刻只能允许一方向另一方通信;例如:对讲机
全双工通信:同一时刻允许双向通信;例如:手机
6. 公网和私网IP地址
公网IP地址:运营商使用的地址为公网地址,需要付费
私网IP地址:个人,家庭,企业内部使用的IP地址,免费
常见的私网地址:
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
网络地址:网络任意位,主机位全为0的ip地址,是一个网络中的起始地址,代表一个网络、网段
广播地址:网络任意位,主机位全为1的ip地址,是网络中的末位地址,用于广播通信
特殊地址0.0.0.0、0:代表所有网络,常用于默认路由
127.0.0.0/8此网段的地址均为环回地址
127.0.0.1本机默认ip地址,locahost
255.255.255.255全网广播地址
9.网络层常用协议
ip:因特网协议
IPv6:因特网第六版本协议
icmp:互联网控制消息协议 1
igmp:互联网组播管理协议 2
ospf:开发最短路由协议 89
udp 17
tcp 6
2.1.4 IP的报文结构
1.版本号
2.头部长度
3.服务类型
4.总长度
5.标识号
6.标志位(df:能否分片。0表示可以分片,1表示不可以;mf:表示是否为报文最后一片,o表示最后一片,1表示还有)
7.分片偏移
8.生存时间(数据可以经过的最大路由数,即数据包在网络中通过的路由器数的最大值)
9.协议号
10.头部检验和(只检验数据包的首部,不检验数据)
11.源地址
12.目的地址
13.首选项
路由
指导IP数据报文发送的路径
路由表的组成:目的网络、子网掩码、下一跳(网关:指下一跳路由器的接口地址)出接口、开销值(跃点数)
查看windows路由表:route print
路由器:2023/02/24 14:15具备路由的网络设备
路由表作用:路由表中的每一个路由条目都指明了数据包到某个子网络或者是某个主机应该通过哪个路由器端口发出,然后到达下一个路由器或者不在经过其他路由器,而是直接发送与本路由器直接相连的目的主机
路由的分类
直连路由;由网络设备自动产生的 距离 0
静态路由:手动配置的路由 距离 1
动态路由:动态路由协议自动产生的,rip 距离rip:120
默认路由:目的网络为0.0.0.0/0的路由 距离 255
匹配顺序:由上到下
路由的匹配过程
第一步:拿数据包中的目的IP地址与直连路由表中的子网掩码进行与 运算,将运算的结果与路由表的目的网络对比,如果一致则匹配成功,发送数据,如果不一致则进行下一步
第二步:拿数据包中的目的IP与静态路由表中的子网掩码进行与运算,将运算的结果与路由表的目的网络对比,如果一致则匹配成功,发送数据,如果不一致则进行下一步
路由匹配原则
最长掩码匹配原则:同一类型路由匹配过程中,优先匹配路由条目中子网掩码最长的
最小开销值原则:同一类型路由匹配过程网络地址和子网掩码相同而吓一跳不相同时,优先匹配路由条目开销值最小的:
2.1.5数据链路层
2.1.5.1 作用
负责将一个网络节点的网络层数据无差错的传输到相邻节点的网络层
mac地址:物理地址,网卡的物理地址,出厂时已经确定的地址
mac长度:48bit
mac地址书写格式:冒分十六进制、杠分十六进制六段式、点分十六进制六段式
单播mac地址:从左往右第一个字节最后一个bit位为0的mac地址
组播mac地址:从左往右第一个字节最后一个bit位为1的mac地址
广播mac地址:全为1
常见协议:
enternet(以太网协议)
ppp(点对点协议)
2.1.5.2数据链路层的报文结构
目的mac地址
源mac地址
类型-协议类型:0x0800 IPv4协议、0x08
数据-可变长数据,最小46B,最大1500B
CRC,又称fcs或者帧校检序,校检整个数据帧的完整性
备注:mtu:最大传输单元,指数据链路层协议能够承载最大的数据量 1500b
mss:最大报文长度,指tcp协议能够承载最大数据量 mss=mtu-20-20
arp协议
arp -a 打开arp表(cmd)
arp -d 清空arp表( cmd)
地址解析协议,将IP地址解析为mac地址
工作原理
arp报文结构
硬件地址类型
协议地址类型
硬件地址长度
协议地址长度
操作码(操作码为1.表示arp请求,2表示arp响应)
源mac地址
源IP地址
目的mac地址
目的IP地址
2.1.6pc之间ping通信的过程
计算机ping另一方地址,首先封装icmp请求报文,然后先封装个IP头部信息,查路由表(拿数据包中的目的IP地址与直连路由表中的子网掩码进行与 运算),然后再查arp表(拿目的IP与arp表中IP地址进行匹配,如果匹配不成功,则发送arp的广播的请求报文)封装个以太网头部,最后从网卡发出数据
2.1.7浏览器请求服务器的过程
浏览器输入URL地址,通过DNS解析将域名解析成IP地址,封装http头部信息,然后封装tcp头部信息,封装ip头部信息,查路由表,查arp表,封装以太网头部信息,最后由网卡发送数据