Loading

TCP & UDP

OSI七层中的传输层 or TCP/IP四层中的传输层

网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道

一、传输层#

传输层位于OSI七层中的第四层,TCP/IP四层中的第三层

作用:

🔸 负责将上层应用数据进行分段重组,并将他们组合成数据流形式(封装TCP报头或UDP报头)

🔸 提供端到端的数据传输服务(使用了套接字:IP+端口号)

两个协议:TCPUDP

二、TCP#

TCP的报文格式

TCP报头长度一般为20字节,但可以变长至60字节。TCP报头有很多控制信息,用于可靠传输、差错控制、流量控制等。发送数据前,先要和对方TCP三次握手建立连接。

📌 使用TCP时必须小心,因为TCP是一个没有记录边界的字节流协议。

引发的问题:粘包现象。TCP本身并不提供记录结束标志:如果应用程序需要确定记录的边界,它就要自己去实现,已有一些常用的方法可供选择。

2-1 重要字段说明#

ACK:接收顺序号有效

SYN:对顺序号同步,用于建立连接

FIN:数据传输完成,终止连接

窗口:用于流量控制

2-2 TCP三次握手#

注意:发送方和接收方的seq不一定要从0开始,seq用于识别发送了多少字节

WireShark三次握手抓包分析

源IP: 172.16.254.100
目标IP:172.16.254.31

🔹 第一次握手

🔹 第二次握手

🔹 第三次握手

三、UDP#

UDP的报文格式

源端口(2Byte) 目标端口(2Byte)
段长(2Byte) 校验和(2Byte)

UDP报头长度共8字节,开销极小,不连接对方,直接发送数据。

使用UDP协议的应用层协议有:DNS(端口号:53)、DHCP(端口号:67)...

四、TCP和UDP的比较#

传输控制协议(TCP) 用户数据包协议(UDP)
面向连接 面向无连接
可靠传输 不可靠传输
开销大 开销小
流控以及窗口机制 尽力而为的传输

应用层协议对应的使用传输层协议以及端口号

作者:caojun97

出处:https://www.cnblogs.com/caojun97/p/16175992.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   eiSouthBoy  阅读(244)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu