
三握,四挥,滑动窗口会了吗?图解带你20分钟搞定TCP传输层
发布日期:2021-05-07 13:03:32
浏览次数:24
分类:精选文章
本文共 1008 字,大约阅读时间需要 3 分钟。
图解带你20分钟搞定TCP/IP协议
第二章 网络之TCP/IP协议
一、传输层
1. 端口号的作用
在TCP/IP协议中,端口号用于标识主机上进行通信的不同应用程序。通过五元组(源IP、源端口号、目的IP、目的端口号、协议号)来标识通信会话。例如,HTTP默认使用80端口,FTP默认使用21端口。
端口号分为知名端口号和动态端口号。知名端口号用于常用协议,如22(SSH)、80(HTTP)、443(HTTPS)等。开发自定义协议时应避开这些知名端口号。
两个常见问题:一个进程是否可以绑定多个端口?一个端口号是否可以被多个进程绑定?答案是可以的。操作系统允许多个进程绑定同一端口号。
2. UDP协议
UDP协议的特点包括:
- 没有连接建立,直接通过IP地址和端口号进行通信。- 不可靠,没有确认机制,可能导致丢包。- 面向数据报,无法控制数据传输的次数和大小。- UDP传输速度快,适合实时通信。3. TCP协议
TCP协议是面向连接的协议,提供可靠性和流量控制。其特点包括:
- 可靠性:通过序列号、确认应答、超时重发和重传机制确保数据可靠传输。- 窗口机制:根据接收端缓冲区大小动态调整发送速度。- 拥塞控制:通过慢启动机制适应网络拥堵状态。- 三次握手和四次挥手:建立和终止连接的机制。三、TCP协议的深入探讨
1. TCP数据格式
TCP协议头部包含以下字段:源端口、目的端口、序号、确认号、窗口大小、紧急指针、校验和、选项字段等。窗口大小用于流量控制,紧急指针用于标识紧急数据的位置。
2. TCP的可靠性机制
TCP的核心可靠性机制包括:
- 序列号:确保数据按顺序传输。- 校验和:验证数据完整性。- 确认应答:接收端返回ACK报文确认接收。- 超时重发:若无确认,重发数据包。3. TCP的优化机制
TCP通过以下机制优化性能:
- 滑动窗口:无需等待确认即可继续发送数据。- 快速重传:避免重传过多次。- 延迟应答:通过控制ACK延迟来优化吞吐量。- 捎带应答:将ACK报文与数据报携带在一起发送。四、TCP与UDP的对比
TCP和UDP各有优劣,使用时需根据需求选择:
- TCP适用于可靠性和流量控制要求高的场景,如文件传输和状态更新。- UDP适用于实时性要求高、对连接无需建立的场景,如视频会议和广播通信。通过理解TCP和UDP的特点,可以更好地选择合适的协议进行开发。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月10日 07时57分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
工作动态尽在掌握 - 使用 CODING 度量团队效能
2019-03-06
CODING DevOps 代码质量实战系列最后一课,周四发车
2019-03-06
CODING DevOps 深度解析系列第二课报名倒计时!
2019-03-06
CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践
2019-03-06
翻译:《实用的Python编程》03_01_Script
2019-03-06
数据结构第八节(图(下))
2019-03-06
基础篇:异步编程不会?我教你啊!CompletableFuture
2019-03-06
基于Mustache实现sql拼接
2019-03-06
气球游戏腾讯面试题滑动窗口解法
2019-03-06
POJ 2260 Error Correction 模拟 贪心 简单题
2019-03-06
POJ - 1328 Radar Installation 贪心
2019-03-06
CSUOJ Water Drinking
2019-03-06
自定义博客园博客的背景图片
2019-03-06
Spring MVC+javamail实现邮件发送
2019-03-06
Asp.NET Core 限流控制-AspNetCoreRateLimit
2019-03-06
gRPC在 ASP.NET Core 中应用学习(一)
2019-03-06
@SuppressWarnings 用法
2019-03-06
看完你就明白的锁系列之锁的状态
2019-03-06
看完这篇操作系统,和面试官扯皮就没问题了
2019-03-06
我的价值观
2019-03-06