计算机网络笔记

TCP有连接可靠服务

TCP特点

1.TCP是面向连接的传输层协议;

2.每条TCP连接只能有两个端点,每条TCP连接是一对一的;

3.TCP提供可靠交付,保证传送数据无差错,不丢失,不重复且有序;

4.TCP提供全双工信道,允许通信双方同时发送数据。TCP两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据;

发送缓存存放的数据:1.发送应用程序传给发送方TCP准备发送的数据。2.TCP已发送但未收到确认的数据。

接收缓存存放的数据:1.按序到达但尚未被接受应用程序读取的数据。2.不按序到达的数据。

5.TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅视为一串无结构的字节流。(这会导致粘包问题)UDP报文长度由发送应用进程决定,TCP报文的长度需要根据接收方给出的窗口值和网络拥塞程度来决定。如果进程传送到TCP缓存的数据块太长,TCP会把它划分得短一些传送,如果太短则积足够多得字节再组成报文段发出去。

TCP连接的端口为套接字,由IP和端口号组成,套接字唯一的标识网络中的一台主机和其上的一个应用(进程)。每条TCP连接唯一的被通信的两个端口确定。

三次握手

1.客户机向服务器发送请求连接报文段,报文段中同步位SYN置1,同时包含一个初始序号seq=x,客户端进入同步已发送(SYN-SENT)状态。

2.服务器收到客户端的请求连接报文,回复一个确认报文。报文中确认位ACK、同步位SYN都置1,并包含一个初始序号seq=y和确认号ack=x+1,服务器进入同步收到(SYN-RCVD)状态。

3.客户端收到服务器的确认之后再向服务器发送一个确认报文,报文中确认位ACK置1,序号为seq=x+1,确认号ack=y+1,客户进程进入已建立连接(ESTABLISHED)状态。

四次挥手

1.客户机发送释放链接报文段,并停止发送数据,主动关闭TCP连接。报文段中终止位FIN置1,序号seq=u为上一个发送序号+1,客户机进入终止等待1(FIN-WAIT_1)状态。

2.服务器收到报文段后回复一个确认报文段。报文段中确认位ACK置1,确认号ack=u+1,序号seq=v为前一个序号加一,服务器进入关闭等待状态(CLOSE-WAIT)。

3.当服务器没有要向客户机发送的数据时,通知TCP释放链接。发送释放连接报文段。报文段中终止位FIN确认位ACK都置1,确认号ack=u+1,序号seq=w(可能在这之前服务器还发送过一些数据),服务器进入最后确认状态(LAST-ACK)。

4.客户机收到报文,回复一个确认报文段。报文段中确认位ACK置1,确认号ack=w+1,序号seq=u+1。客户机等待2MSL(最长报文段寿命)后进入连接关闭状态(CLOSED)。

UDP无连接非可靠服务

UDP特点

1.无需建立连接,没有建立连接时延;

2.无连接状态,因为是无连接,因此不必维护连接状态(接收缓存发送缓存拥塞控制和确认之类的);

3.分组首部开销更小(UDP首部只有8B,而TCP有20B);

4.应用层能更好的控制发送的数据和发送时间。(没有拥塞控制不会受网络拥塞影响);

5.UDP支持一对一,一对多,多对多的交互通信,而TCP只支持一对一通信;

UDP常用于一次性传送较少数据的网络应用,如DNS,SNMP,也常用于多媒体应用,如IP电话,视屏会议,流媒体等。因为时延小。

UDP不保证可靠交互,但可由用户在应用层来完成可靠交互(可以在应用层实现类似TCP可靠交互的机制(确认,重传,数据有序))

UDP是面向报文,UDP对应用层交下来的报文既不合并,也不拆分,而是保留报文的边界,一次交付一个完整的报文(报文在UDP中是不可分割的,报文是UDP数据报处理的最小单位)。(但UDP交付给IP层(网络层)后可能会被分片)

相关推荐
TracyCoder1234 小时前
微服务框架选型学习笔记
笔记·学习·微服务
报错小能手4 小时前
计算机网络自顶向下方法50——链路层 虚拟局域网 链路虚拟化:网络作为链路层(多协议标签交换)
网络·计算机网络·智能路由器
摇滚侠4 小时前
2025最新 SpringCloud 教程,Nacos-注册中心 @LoadBalanced 注解式负载均衡,笔记11
笔记·spring cloud·负载均衡
pq113_64 小时前
开源软件学习笔记 - 移植SFUD
笔记·stm32·sfud·ft4222h
hd51cc4 小时前
MFC多线程学习笔记一:用户界面线程和工作线程
笔记·学习·mfc
草莓熊Lotso4 小时前
红黑树从入门到进阶:4 条规则如何筑牢 O (logN) 效率根基?
服务器·开发语言·c++·人工智能·经验分享·笔记·后端
报错小能手4 小时前
计算机网络自顶向下方法60——网络安全 详解TLS(传输层安全协议)
计算机网络·安全·web安全
报错小能手5 小时前
计算机网络自顶向下方法55——无线网移动网 移动性管理
网络·计算机网络
sheeta19988 小时前
LeetCode 每日一题笔记 日期:2025.11.24 题目:1018. 可被5整除的二进制前缀
笔记·算法·leetcode
chinesegf9 小时前
图文并茂的笔记、便签是如何用py开发的
笔记·状态模式