计算机网络【第五章-传输层】

目录

一、传输层概述

传输层的寻址与端口

二、TCP协议

1、TCP数据报格式

2、TCP连接管理

1、连接建立(三次握手)

2、TCP连接释放(四次挥手)

3、TCP流量控制(局部性)

4、TCP拥塞控制(全局性)

拥塞控制的四种算法

三、UDP协议

UDP数据报格式


一、传输层概述

传输层的寻址与端口

端口:主机中的应用进程的唯一标识(端口号)

端口号:只有本地意义,不同计算机的相同端口没有联系;长度为16字节

套接字:主机IP地址+端口号,唯一标识网络中的一个主机的一个进程

二、TCP协议

1、TCP数据报格式

①序号:TCP将文件拆为字节流,每个字节一个标号,序号表示本报文段第一个字节的序号

②确认号:期望收到对方下一个报文段的第一个字节的序号

③数据偏移:表示首部长度,以4字节为单位

④紧急位URG=1时,表明报文段有紧急数据,有高优先级,不用排队

⑤确认位ACK=1时,确认号有效

⑥(不考)推送位PSH=1时,接收方优先交付该进程

⑦(不考)复位RST=1时,表明连接出错,须重新建立链接

⑧同步位SYN=1时,表明这是一个连接请求/连接接受报文

⑨终止位FIN=1时,表明此报文段发送方数据已发完,要求释放连接

⑩窗口:发送本报文段的一方的接收窗口,即现在允许对方发送的数据量

⑪紧急指针:URG=1时有意义,指出本报文段中紧急数据的字节数

2、TCP连接管理

1、连接建立(三次握手)

①客户端发送请求

客户端向服务器发送一个同步序列号(SYN)包,发起连接

②服务器回应并准备

服务器收到后,同时发送确认(ACK)和自己的同步(SYN)包作为回应

③客户端最终确认

客户端再次发送确认(ACK),双方成功建立可靠连接

💡SYN洪泛攻击

黑客伪造大量虚假IP,向服务器多次发送第一次握手的SYN,服务器会为每一个请求分配资源并回复第二次握手的SYN-ACK,然后等待永远不会到来的第三次握手的ACK

这些半开的连接会耗尽服务器的连接队列资源,导致无法响应合法用户的连接请求,造成服务拒绝

2、TCP连接释放(四次挥手)

① 客户端主动关闭

主动关闭的一方(通常是客户端)发送终止(FIN)包

② 服务器确认收到

服务器收到FIN后,发送确认(ACK)包,表明已收到关闭请求

③ 服务器被动关闭

服务器处理完剩余数据后,发送终止(FIN)包,表示准备关闭

④ 客户端最终确认

客户端收到服务器的FIN后,发送最终确认(ACK),服务器收到后,连接正式关闭

3、TCP流量控制(局部性)

1.TCP利用++滑动窗口++实现流量控制

2.接收方根据自己接收缓存大小,动态调整发送方的发送窗口大小(接收方用确认报文段将接收窗口大小通知给发送方,发送方的发送窗口取接收窗口和拥塞窗口的最小值)

3.(拥塞窗口由发送方根据所处网络情况设置)

4、TCP拥塞控制(全局性)

拥塞控制的四种算法

①慢开始和拥塞避免

②快重传和快恢复

三、UDP协议

UDP数据报格式

相关推荐
我不会插花弄玉5 小时前
6.传输层协议UDP【由浅入深-网络】
网络·网络协议·udp
火云代理5 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
xbzb8 小时前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
火云代理9 小时前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖10 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
火云代理12 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
如夏倾城13 小时前
QUIC——HTTP/3 的唯一底层传输协议 及 0-RTT恢复
网络·网络协议·tcp/ip·安全·http
科研邪修法14 小时前
培训PDF保护配置:把需求转换成可验收权限
linux·服务器·网络
略懂而已1 天前
安装SSL后网站速度变慢?
网络·网络协议·ssl