计算机网络历史
1).50—60年代:单计算机:内部通信,数据处理
2).60—70年代,计算机互联:数据处理,通信。不同网络体系模型
3).70—80年代,计算机网络标准化:ARPANET协议
4).90年代至今,国际化互联网的诞生和发展。MILNET(军网);ARPANET(民网)
网络体系结构
OSI/RM
TCP/IP
OSI/RM模型
ISO国际标准化组织提出。
OSI/PM:开放系统互连参考模型
物理层:只负责传输二进制比特流
为数据链路层提供服务。接收数据,提供数据
数据链路层:上层数据封装成帧
帧:数据链路层完成从物理层到网络层的过度、准备工作
1)传输管理:提供低出错率、高可靠性的数据链路;
2)流量控制:主机和通信设备的数据传输率
网络层:路由寻址和广播
定向传送数据
发送消息和接收消息
传输层:可靠端到端链接
1)建立、维护、撤销传输连接
2)流量控制、差错控制
3)数据编号、排序、拼接、重同步功能
会话层:对话控制机制
1)提供进程间建立、维护和结束会话连接的功能;管理会话
2)数据传输“中间角色”和“售后服务”
传输层和会话层一般结合使用
表示层:传输数据转化
格式化、加密\解密,压缩\解压缩
应用层:展开所有应用程序的网络
确定进程之间通信的性质;事务处理、文件传输、数据检索、网络管理、加密
计网体系结构通信原理
数据通信原理
发送端自上而下传输(直到物理层),接收端自下而上传输(直到发送端发起通信的层次)
对等会话原理
1)发送端和接收端只有在对等层才可以进行通信。
发送端每经过一层(物理层除外)都要在原数据上进行协议封装,最前面加本层使用协议的协议头。接收端每经过一层都要对原数据进行协议解封,去掉原数据最前面的上层协议头
TCP/IP网络接口层
使得不同计算机之间实现数据通信 ,为计网进一步发展奠定基础。
网络接口层:物理连接、逻辑链路连接
物理连接(网线和电脑)基础之上,实现逻辑链路(用到的协议)的连接(拨号连接)
接口卡(网卡):具有物理地址,即MAC地址.每个网卡的硬件地址都是由厂商提供,且每个地址是唯一的,不允许重复。
ARP:地址解析协议
IP地址对应到MAC
RARP:反向地址解析协议
MAC地址找到IP地址
SLTP:串行线路IP协议
串行线路上封装IP数据报,用于拨号连接,没有差错校验机制。
差错校验机制:每一端必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。如果一条串行线路用于SLTP,不能同时使用其他协议。
互连层:路由寻址、传递数据报
IP:国际互连协议
无连接、不可靠(不保证数据有序到达)的协议,负责主机之间寻址
ICMP:因特网控制消息协议
面向无连接的协议,报告错误(网络错误检测、主机故障);'ping’过程就是ICMP协议工作的过程
传输层:建立应用间的端到端连接
面向连接:会话建立、数据传输、会话拆除
无连接:不保证数据有序到达
TCP:传输控制协议
面向连接(建立连接,使用连接,释放连接)、可靠(三次握手)、速度慢。适用于浏览器、文件传输、邮件发送。首部至少20个字节。面向字节流。
流量控制(滑动窗口)、拥塞控制、连接管理
UDP:用户数据报协议
无连接、不可靠、速度快。尽最大可能的交付,但不保证可靠交付。适用于音视频通话、直播。首部8个字节。占16位:首部长度+数据长度。面向报文。
端口号:识别应用层的协议
不同的应用协议有不同的端口号
端口通过端口号来标记,只有整数,范围从0—65535
端口作用:
一台拥有IP地址的主机可以提供许多服务,这些服务完全可以通过1个IP地址实现
主机如何区分不同的网络服务
不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上通过“IP地址+端口号”来区分不同服务;服务器一般通过知名端口号识别。cmd输入:netstat -a -n
TCP-序号(SYN)、确认号(ACK)
SYN—同步请求建立连接
ACK—确认或者回应
三次握手
第一次握手。客户端给服务端发送SYN报文,并指明客户端初始化序列号ISN。客户端此时处于SYN_SENT状态
第二次握手。服务器收到客户端的SYN报文之后,以自己的SYN报文作为应答,同时指定自己的初始化序列号ISN。把客户端的ISN+1作为ACK值。表示自己已经收到。此时服务器处于SYN_RCVD状态
第三次握手。客户端收到SYN报文之后,发送ACK报文;把服务器的ISN+1作为ACK值,表示已经收到。此时客户端处于ESTABLISHED状态。服务器在收到ACK报文后,也处于ESTABLISHED状态,此时,双方已经建立连接。
为什么进行三次握手
第一次握手:客户端发送网络包,服务器收到了。客户端发送能力和服务器接收能力正常
第二次握手:服务器发送网络包,客户端收到了。客户端的接收、发送能力正常。服务器的接收、发送能力正常。但此时服务器不能确认自己的发送能力和客户端的接收能力正常
第三次握手:客户端发送网络包,服务器收到了。客户端的接收、发送能力正常。服务器的接收、发送能力也正常。双方确认完毕,可进行数据传输。
三次握手完成之后,主机之间进行数据传输,数据传输完成之后,则进行四次挥手断开连接。
四次挥手
第一次挥手:主机1向主机2发送FIN报文,并指定序列号。此时主机1处于FIN_WAIT1状态
第二次挥手:在收到主机1的FIN报文段后,主机2向主机1发送ACK报文,并把主机1的序列值号+1作为ACK报文的序列值号,表示已经收到主机1的报文,此时主机2处于CLOSE_WAIT状态。
第三次挥手:若主机2也想断开连接,和主机1的第一次挥手一样,向主机1发送FIN报文,并指定序列号。此时主机2处于LAST_ACK状态。
第四次挥手:主机1收到主机2的FIN报文之后,一样的发送ACK报文作为应答,把主机2的序列号+1作为自己的ACK报文序列值。此时主机1处于CLOSE状态。主机2收到确认回复之后处于CLOSE状态。连接断开。
为什么进行四次挥手
第一次挥手:主机1发出FIN报文段;告诉主机2,主机1已经没有数据要发送了,此时主机1还可以接收来自主机2的数据
第二次挥手:主机2返回ACK报文段;表示主机2已经知道主机1没有数据发送了,但是主机2还可以发送数据到主机1
第三次挥手:主机2也发送了FIN报文段;表示主机2已经没有数据要发送了
第四次挥手:主机1知道主机2没有数据发送了,随后断开整个TCP连接
主机2收到主机1的SYN请求之后,可以直接发送SYN+ACK报文。ACK用来应答,SYN用来同步。关闭连接时,主机2收到主机1的FIN报文时,很可能并不会立即关闭SOCKET,只能先回复ACK报文,告诉主机1,我收到了。等我所有的数据发送完成之后,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。
应用层:负责主机和应用程序之间的通信
协调设备和软件的多样性问题;解决系统中文件传输问题;
FTP:文件传输协议
HTTP:超文本传输协议
DNS:域名系统
Telnet:远程终端协议
IMAP:Interent邮件访问协议
POP3:邮件协议版本3
HTTP协议和HTTPS协议的区别
http协议:客户端和服务器请求和应答的标准,浏览器更高效,网络传输减少。
https协议:建立信息安全通道;确认网站的真实性。
http是超文本传输协议,信息是明文传输;https是具有安全性的ssl加密传输协议。
http和https使用完全不同的连接方式,端口也不一样。前者是80,后者是443
http连接简单,无状态的连接。https是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http安全。
IP地址
IP地址特点
IP地址为32位长,每组8位,分4组,点隔开。每组数据范围0—255
10000011 01101011 00000011 00010001
131.107.3.17
IP地址由网络位+主机位构成
IP地址分类:A—E类
可分为A,B,C,D,E类;
保留地址
网络号(不做更改,直接使用)
10
127(环路测试,127.0.0.1指本机)
172.16.0.0-172.31.225.225
192.168. * . *
主机号
全0(表示子网)
全1(广播)
子网掩码
使用子网掩码是为了要区分一个IP地址中的网络地址和主机地址。反推属于哪类IP地址
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络
掩码技术实现方式:从主机位上抽取几位作为0,其余用1掩盖
特点:由连续的1和0组成,默认的有:255.0.0.0(A) 255.255.0.0(B) 255.255.255.0©
子网掩码可以出现的数字:0 128 192 224 240 248 252 254 255
IP地址运算
逻辑运算:与(and) 或(or) 非(not)
判断两个IP地址是否在同一子网中
将IP地址和子网掩码转换成二进制
将IP地址和子网掩码按位进行与运算。得出子网号,判断是否相等
TCP/IP调试命令。
检查配置。cmd输入ipconfig或ipconfig/all ;displaydns显示DNS客户解析缓存内容。flushdns:刷新并重设DNS客户解析缓存的内容。DNS在进行解析的时候会生成缓存,以便下次访问同样域名时,加快速度。
TCP/IP五层模型:
应用层进行进程间通信,http协议(自己发送的微信消息:在吗),不管数据如何传输,将数据直接向下传递给传输层
传输层接收到数据之后,使用TCP建立通话连接,或者UDP无连接的发送,给数据加上传输层首部向下传递
网络层接收到上层传输的数据后,使用IP协议,路由器进行路由寻址,寻找下一个要去的目标IP,在首部加上网络层封装将数据向下传递
数据链路层收到上层数据后,使用ARP协议,进行广播寻找目的主机,获取目的主机的MAC地址,在首部和尾部加上封装向下层传递
物理层收到上层传输的数据后,通过集线器将传输数据转变为广电信号进行发送。
数据传输后,经目标主机的物理层接收,数据链路层解析数据链路层的封装,向上传输,网络层解析网络层的封装,传输层解析传输层的封装,而后到达应用层,则(微信消息:在吗 传送到对方的应用层,显示在屏幕上,一次会话完成)