计算机网络

一、五层协议

1.物理层:完成比特流和光、电、电磁波等信号之间的转化

2.数据链路层:在为相邻节点提供一条传输链路,主要实现封装成帧、透明传输和差错控制

3.网络层:为主机之间提供通信服务,负责原和目的地的传输和路由选择

4.传输层:为进程之间提供服务,TCP和UDP工作在这一层

5.应用层:定义报文类型,确定如何处理请求报文和确认报文,解析报文的语法和语义,控制进程进程何时及如何发送报文
二、TCP
(1)TCP三次握手
概念:

序列号(seq):发送方发送字节流的编号

确认号(ack):接收方期望接受字节流的编号

同步位(SYN);

确认位(ACK):
三次握手目的:

确保通信双方收发能力正常

同步序列号和确认号,确保后续的收发能通过序列号和确认号保证数据收发不重不漏
1.过程

第一次握手:客户端主动发起连接,随机生成序列号x;

第二次握手:服务端接收到连接请求后将随机生成序列号y,确认号置为x+1,同步位和确认位都置1,并将数据包发送给客户端

第三次握手:客户端将序列号置为x+1,确认号置为y+1,
2.如何确保双方收发能力正常

第一次握手,服务器可以确认客户端的发生能力正常;

第二次握手,客户端可以确认服务器的接收和发送能力都正常;

第三次握手,服务器可以确认客户端的接受能力正常;
3.为什么不是两次握手

原因一:两次握手,服务端无法确保客户端的接收能力是否正常

原因二:设想一种情况,当客户端首次发起连接请求,请求报文由于网络原因长时间滞留 ,客户端迟迟没有接受到服务器的响应,将再次发起连接请求,若新的请求先建立连接,并且传输完数据正常关闭后旧的连接到达服务器,由于只有两次握手,服务器收到旧连接确认后建立连接,但是客户端并不会再这个连接中收发数据,从而导致服务端一直等待,造成资源浪费。若是有第三次握手,服务端可以通过对比序列号和确认号,辨别出旧连接,并终止旧连接。
三、四次挥手
(1)过程

1.第一次挥手:客户端数据传输完毕,发生请求关闭报文,报文中随机生成序列号u,置终止位为1

2.第二次挥手:服务器收到关闭请求,发生确认报文,随机生成序列号v,确认号置u+1,确认标志位置1;

3.第三次挥手:服务器发生数据完毕,发生请求关闭报文,报文中随机生成序列号w,确认号u+1,终止位和确认位置1;

4.第四次挥手:客户端收到请求,发生确认报文,报文中序列号置u+1, 确认号置w+1,确认标志位置1 ,服务端收到确认报文后关闭连接,客户端等待2MSL没有收到服务器重新关闭的请求后也关闭连接。

2.为什么要等待2MSL(报文最大存活时间)

第四次挥手的确认报文可能丢失,若确认报文真的丢失了,服务器一定会在2MSL内重新发送关闭连接请求,若是不等待2MSL,报文丢失后服务端发起的关闭请求将得不到响应,服务器一直处于等待关闭的状态,造成服务器资源浪费。
3.为什么是四次挥手

三次挥手无法确保客户端收到了服务端关闭连接的请求,若第三次挥手服务器发送的报文丢失,此时服务端已经关闭连接,无法知道客户端是否收到关闭连接的请求,不会触发超时重传,导致客户端将一直等待服务端发送终止报文,从而导致连接无法正常关闭,若为四次挥手,服务器长时间没有收到客户端的确认,将触发超时重传,重新发起关闭请求。
四、粘包和拆包
(1)粘包

概念:TCP传输字节流数据,数据与数据之间没有分隔,当多组数据被整合到一个报时,接受方无法将数据分离。

产生原理:

①发送方:发送方连续发生多个小数据包,nagle算法会将几个小数据包组成一个大数据包

②接受方:发送速率太高,接受方无法及时将数据包从缓冲区读取,导致多个数据包堆积在一起,

解决:

①固定数据包长度:长度不足可以填充数据

②长度字段协议:数据包头部添加数据长度

③特殊标志协议:在数据包的头尾添加界定符

④关闭nagle算法
(2)拆包

概念:完整的数据包被拆成多个数据包

原因:

①接收方缓冲区太小,无法一次接受完,发生方必须将数据包拆分,以免数据丢失

②发生数据长度超过最大传输单元(MTU),必须拆开发生

解决:

①增大接受方缓冲区的大小

②调整最大传输单元(MTU)

③同粘包的三种方法
五、DNS

DNS概念:一种将域名转化为IP地址的服

相关推荐
还下着雨ZG5 小时前
TCP/IP协议族详细介绍
网络·网络协议·tcp/ip·计算机网络
蒙奇D索大6 小时前
【计算机网络】[特殊字符] 408高频考点 | 数据链路层组帧:从字符计数到违规编码,一文学透四大实现方法
网络·笔记·学习·计算机网络·考研
JZZC213 小时前
26. FTP
计算机网络·ftp·ensp
从负无穷开始的三次元代码生活20 小时前
《计算机网络技术》期末1小时救急知识点概览——概念(一)
计算机网络
报错小能手1 天前
计算机网络自顶向下方法43——网络层 详解SDN控制平面
计算机网络·平面
JZZC22 天前
29. HTTP
计算机网络·http·ensp
报错小能手3 天前
计算机网络自顶向下方法33——网络层 路由器工作原理 输入端口处理和基于目的地转发 交换 输出端口处理
网络·计算机网络·智能路由器
Yurko133 天前
【计网】基于三层交换机和 RIP 协议的局域网组建
网络·学习·计算机网络·智能路由器
L.EscaRC3 天前
【复习408】计算机网络应用层协议详解
计算机网络
报错小能手3 天前
计算机网络自顶向下方法34——网络层 排队论 缓存大小调节 分组调度 网络中立性
计算机网络