计算机网络

一、五层协议

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地址的服

相关推荐
沐浴露z1 天前
【深入理解计算机网络05】数据链路层:组帧,差错控制,流量控制与可靠传输
网络·计算机网络·网络编程·408
沐浴露z2 天前
【深入理解计算机网络04】通信基础核心知识全解析:从信号原理到物理层设备
计算机网络·网络编程·信息与通信·408
岑梓铭2 天前
计算机网络第四章(10)——网络层《路由算法+路由协议》
网络·笔记·计算机网络·考研·智能路由器·408
盛满暮色 风止何安2 天前
网络安全设备 防火墙
服务器·网络·网络协议·计算机网络·安全·web安全·网络安全
科研鬼才(bushi2 天前
计算机网络——数据链路层【碰撞检测、信道占用】
网络·计算机网络
沐浴露z4 天前
【深入理解计算机网络03】计算机网络的分层结构,OSI模型与TCP/IP模型
网络协议·tcp/ip·计算机网络
沧澜sincerely4 天前
计算机网络物理层
计算机网络
国际学术会议-杨老师4 天前
2025年计算机网络与信号处理国际会议(CNSP 2025)
计算机网络·信号处理
tt5555555555554 天前
计算机网络基础详解:从OSI模型到HTTP/HTTPS与Socket编程
计算机网络·http·https
JZZC26 天前
15.VLANIF(2025年9月30日)
网关·计算机网络·ensp·vlanif·三层交换