1.网络分层及对应的协议
p1.png
1.物理层:
负责0、1比特流与电压和脉冲波之间的互相转化(将数据0、1等转化为电压和脉冲光传输给物理的传输介质)
数据单位:比特(bit)
2.数据链路层:
负责物理层面上的互连的、节点之间的通信传输。将0、1序列划分为有意义的数据帧传给对端(数据帧的生成与接收)
数据单位:帧(frame)
3.网络层:
将数据传输到目标地址
数据单位:数据包(packet)
4.传输层:
建立连接,断开连接;若失败,重发。保证数据的可靠性。
数据单位:数据段(segment)
5.应用层:
为应用程序提供并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。
6.表示层:
将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的模式。因此它主要负责数据格式的转换(将设备固有的数据格式转换为网络标准的传输格式,使两者保持一致) 。
7.会话层:
建立和断开通信连接(数据流的逻辑通路,决定采用何种连接方法)。
2.网络中的常见地址
3.网络中的常见协议
IP协议:跨送网络传送数据包,使整个互联网都能收到数据的协议。IP隐含着数据链路层的功能,通过IP底层数据链路层都能实现通信;IP也是分组交换的协议,但不具有重发机制,即使分组数据包未能到达对端主机也不会重发。因此,属于不可靠传输协议。
ICMP协议:IP数据包发送异常导致无法到达对端目标时,给发送端一个异常通知。
ARP协议:从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。
超文本传输协议HTTP:这是一种最基本的客户机/服务器的访问协议;浏览器向服务器发送请求,而服务器回应相应的网页。
3.TCP协议的三次握手及四次挥手
三次握手及四次挥手的简图如下:
p2.png
三次握手的过程:
p3.png
SYN(Synchronize Sequence Numbers):包作为建立连接的请求等待确认应答。
第一次🤝:客户端将标志位SYN设置为1,并生成随机序列x,然后将该数据包发送到服务器(SYN=1+seq=x),等待服务器确认。
第二次🤝:服务器收到数据包后,由SYN=1知道客户端请求连接,向客户端发送确认消息ACK= 1, ack = x+1, 生成随机seq= y, SYN= 1(自己发送请求信息)。
第三次🤝:客户端收到服务器的数据包,回复服务端ACK=1 , ack = y+1,seq=x+1,服务端收到并核查ACK是否是1,ack是否是y+1,如果正确,则建立连接。
三次握手的必要性:
为了防止客户端过期的连接请求又发送到服务端,当服务端收到过期的连接请求,回复确认,如果只有两次握手,那么请求就已经建立了,这样会造成资源浪费;如果是三次握手,客户端不会回复服务端的确认消息,此时,并不会建立连接。
四次挥手的过程:
第一次👋:客户端向服务端发送FIN=1, 随机产生seq = u, 表明客户端已经没有数据要发送给服务端。
第二次👋:服务端收到客户端发送的FIN 报文段,回复客户端ACK=1, ack = u+1, seq = v, 表明它同意客户端的关闭连接请求。
第三次👋:服务端向客户端发送FIN=1, seq=w, ack = u+1 报文,请求关闭连接。
第四次👋:客户端收到服务端的请求,向服务端回复 ack = w+1, ACK=1,seq = u+1,关闭连接。
四次挥手的必要性:
TCP协议是面向连接的、安全的、基于字节流的连接层的通信协议,它是全双工模式,一方向另一方发送FIN报文,仅说明自己没有数据要发送到对方了,仍可以接受对方发送的数据,所以需要四次挥手:客户端发送FIN报文,服务端确认收到;服务端发送FIN报文,客户端确认收到,连接才能完全关闭。
4.TCP协议与UDP协议的区别
(1). T面向连接 U面向无连接。
(2). T是数据流(字节流)模式,U是数据包模式。
(3). T建立连接需要耗损时间,U速度快。
(4). T数据传输可靠,U没有T可靠。
(5). T适合大量数据传输,U适合小量数据传输。
(6). T在数据传输时充分实现了各种控制功能,U把这些细致的控制交给它的应用程序去实现。
(7). T具有“流量控制”U不具有。
(8). T在丢包时进行重发,对次序打乱的分包进行顺序控制;UDP都没有。
TCP的流量控制:
发送端根据自己的实际情况发送数据,但接收端在高负荷情况下无法接收任何数据,本应被接收的数据遭到丢弃,就会触发重发机制,为了防止这一现象,引入流控制:让发送端根据接收端的实际能力控制发送的数据量。具体操作:接向发通知自己可以接收数据的大小,于是发送端发送不超过这个限度的数据,该大小限度被称作窗口大小。TCP首部中有专门的一个字段通知窗口大小。













网友评论