编辑
2025-09-19
计算机网络
00

目录

网络开发必备理论
IP、端口、Mac地址
网络协议
OSI模型
TCP/IP 协议
TCP和UDP
TCP中的三次握手和四次挥手
UDP
TCP和UDP的区别
TCP为什么不是二次就握手,而是三次?

网络开发必备理论

IP、端口、Mac地址

image.png image.png 家里多台设备的公网IP其实是一样的,因为家里的多台设备其实是局域网,对外的公网IP基于家里的那个宽带网关(光猫)

image.png

image.png

image.png IP地址会根据你的住址和网络环境的变化发生变更,但是Mac地址是对应的唯一的物理设备的,它是不会变的

image.png


网络协议

OSI模型

OSI模型将我们互联网通信分为了7个模块 image.png

简单来了解一下原理,每个分层干了些什么事情

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


TCP/IP 协议

image.png

image.png

image.png

image.png

TCP和UDP

image.png

image.png

TCP中的三次握手和四次挥手

三次握手指的是客户端和服务器建立连接的过程 image.png

四次挥手指的是客户端和服务器断开连接的过程

注意:第二次挥手可能会出现一个等待的真空期,需要等待服务器将剩下的消息发送完,当发送完毕后,才会继续进行第三次挥手,第三次挥手依旧是服务器主动告知客户端,我的剩余的消息发送完毕了; image.png

image.png

UDP

image.png

image.png

TCP和UDP的区别

image.png

TCP为什么不是二次就握手,而是三次?

  1. 旧链接请求导致状态不一致的混乱

    假设客户端之前发送的 SYN 包在网络中滞留,迟迟才到达服务器;如果只用二次握手,服务器可能会认为这是一个新的连接请求并建立连接,从而产生“死连接”

  2. 无法确认客户端的接收能力

    • 第一次握手:客户端 → 服务器,发送 SYN;
    • 第二次握手:服务器 → 客户端,回复 SYN+ACK;
    • 如果到这里就结束,服务器确认了客户端能发,客户端也确认了服务器能收,但服务器并不知道客户端能不能正确接收自己的消息;
    • 一旦客户端无法接收(例如网络异常、软件崩溃),服务器就会一直等待,造成资源浪费;

本文作者:xuxuxuJS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!