1.网络层次的划分
OSI七层模型:
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
其中传输层完成数据传输服务,(会话层 表示层 应用层)面向用户
目前来说,我们常用的或者知道的就是TCP/IP五层模型:
物理层 数据链路层 网络层 传输层 应用层
接下来就四层模型依次来说:
note1:数据链路层
数据链路层最基本的服务是将源自网络层的数据可靠的传输到相邻节点的目标机网络层。因此数据链路层有以下四点:
- 数据链路层为网络层提供可靠的数据传输
- 基本的数据单位为帧
- 主要的协议;以太网协议
- 两个重要的设备:交换机和网桥
note2:网络层主要负责物理层(MAC)和IP的转换
IP地址常见的有A类 B类 C类
IP地址是一个32的地址,这个地址通常分为4端,每隔8个二进制为一段(十进制显示)
- A类:IP地址的前8位代表网络ID,后24为代表网络ID(0-127)
- B类:IP地址的前16位代表网络ID,后16位代表网络ID(128-191)
- C类:IP地址的前24位代表网络ID,后8位代表网络ID(192-223)
传输层:
通俗而言:TCP负责发现传输问题,发现问题就会发出信号,要求重新传输,知道所有的数据安全正确的阐述道目的地。而IP是为Internet的联网设备规定一个IP地址。
**
TCP协议:定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施;
UDP协议:是一个简单的面向数据报的传输层协议
**
常问面试题:
-
Q1:"TCP"通道的建立–“三次握手”?
1)在建立通道时,客户端会先向服务端发送一个SYN同步信号,即请求报文,高速服务端,我要和你链接;
2)服务端收到请求信号以后会项客户端发送一个请求SYN信号和确认ACK信号
3)当服务端的SYN信号和ACK信号到达客户端后,客户端收到信号,此时“通道建立完成” -
Q2:"TCP"通道的关闭—四次挥手?
1)在数据传输完毕以后,客户端项服务端发送一个FIN信号,告诉服务端数据传输完毕
2)服务端收到信号以后,会向客户端发送一个ACK信号,表示我收到你的请求
3)如果服务端没有数据发送给客户端,服务端会向客户端发送一个FIN信号,告诉客户端我也没有数据要发送给你
4)客户端收到服务端的信号,会回复ACK信号,告诉服务端我收到你的信号,此时服务端收到客户端的信号后,通道关闭
Q3:为什么要三次握手?二次握手可以吗?
二次握手可以,但是会造成极大的资源浪费!因为客户端发送连接请求后没进入等待状态,有时候客户端的请求因为网络并发量很大,导致节点阻塞,此时服务端会先后收到两次请求,而客户端只有一次请求,极端情况下,客户端只有一次请求,而服务端会建立多个响应在等待。
Q4: 为甚么要四次挥手?
服务端和客户端断开连接后,由于链接内可能会有数据传输,为了保证双方合约的完整执行们必须分四次断开。
Q5: 面向连接的TCP举个例子?
你给别人打电话,必须等到线路接通以后,对方拿起电话,才能够相互通话
Q6:无连接的UDP举个例子?
与手机发短信相似,在发短信的时候,只需要输入对方手机号就可以了
Q7:TCP和UDP的区别?
(1)TCP协议是一种可靠的一对一的,面向连接的通信协议;UDP协议是一种不可靠的,无链接的可以实现一对多的连接
(2)TCP面向字节流,UDP面向报文
(3)TCP传输速度慢,UDP传输速度快
应用层:
运行在TCP上的协议:
(1:HTTP协议:超文本传输协议,用于普通浏览
(2:HTTPS协议;HTTP协议的安全版本
(3:SSH:通过一个终端登录到网络(用于加密登录)
运行在UDP上的协议:
DHCP:动态分配IP地址
Q1:HTTP协议的结构?请求行的格式,结构包括什么?
HTTP报文=从客户端到服务端发起的请求+从服务端到客户端的响应
请求报文:请求方法 请求头部 空格 请求数据
请求行格式:请求方法+请求头部+URL+请求协议版本+空格+回车
Q2:GET和POST的区别和联系?
GET和POST都是为了获取资源或者提交资源
GET更多是为了获取资源,提交的URL资源长度有限
POST更多用于表单提交,提交的数据在正文中,正文长度无限制
Q3:HTTP和HTTPS的区别?
- http是超文本传输协议,简单的明文传输,而https是具有安全性的SSL加密传输协议
- HTTP和HTTPS是不同的连接方式,用的端口也不一样,HTTP用的80端口,HTTPS用的是443端口
- HTTP是简单的请求-响应模式,而https是具有SSL+HTTP具有网络加密的协议
Q4:网页上输出一个http网址,情简单说出其执行全过程:
1)客户端通过DNS解析到网址的IP地址
2)使用IP层的IP地址查找目的端
3)通过查找路由表确定如何到达服务器
4)封装好的数据包通过链路层发送到路由器,查找给定IP的MAC地址,然后发送请求查找目的地址,最后发送IP数据包到达服务器的地址