目录
端口
- IP地址识别主机,端口判断主机网络进程
- Socket 套接字:IP + 端口
- 端口:16 bit, 0 ~ 65535
1.1 UDP协议头部
UDP协议:
- 16位源端口号:标识源进程
- 16位目的端口号:标识目的进程
- 16位UDP长度:标识UDP报文数据的长度
- 16位UDP校验和:附加的数据的标识,判断数据是否有出错
1.2 TCP协议
16位源端口 | 16位目的端口 | |||
序号 | ||||
确认号 | ||||
数据偏移 | 保留字段 | 控制位 | 窗口 | |
校验和 | 紧急指针 | |||
TCP选项(可选) | 填充 |
TCP协议:
- 序号:32 bit, 4byte, 0 ~ 4294967295
- 标识TCP数据字节的序号,TCP数据是字节流 -- 每个字节都有唯一的序号
- 起始序号在建立TCP连接的时候设置
- 序号表示该报文段数据的第一个字节的序号
- 确认号:4 byte
- 期待收到对方下一个报文的第一个数据字节序号 -- 和序号关联
- E.g. 确认号=N,则到序号N-1为止所有数据都已经正确收到,希望下一个数据序号为N
- 控制位:6 bit
- URG: Urgent 紧急位,URG=1 表示紧急数据
- ACK: Acknowledgement: 确认位,ACK=1, 确认号才生效
- PSH: Push 推送位,PSH=1, 尽快地把数据交付给应用层
- RST: Reset 重置位,RST=1, 重新建立连接
- SYN: Synchronization 同部位,SYN=1 表示连接请求报文
- FIN: Finish 终止位,FIN=1 表释放连接
- 窗口:2 byte, 0 ~ 65535
- 指明允许对方发送的数据量
- 数据缓冲空间有限,不能无限缓存数据
1.3 UDP VS TCP
- 复杂度:TCP头部更复杂
- TCP提供可靠的有连接服务
- 建立连接 -- 通过连接进行通信 -- 释放连接
- 可靠传输:无差错,不丢失,不重复
- 按序到达:数据有序
- UDP提供不可靠的无连接服务:只管发送,不保证其他
- 性能:UDP负载低,TCP负载高
- 速度:UDP速度快,TCP速度慢
- 实现难度:UDP实现简单,TCP实现复杂
- 应用场景:UDP简单场景,TCP复杂场景
应用 | 应用层协议 | 传输层协议 |
名字转换 | DNS 域名系统 | UDP |
文件传送 | TFTP 简单文件传送协议 | UDP |
流式多媒体通信 | - | UDP |
IP地址配置 | DHCP 动态主机配置协议 | UDP |
电子邮件 | SMTP 简单邮件传送协议 | TCP |
文件传送 | FTP 文件传送协议 | TCP |
远端终端接入 | TELNET 远程终端协议 | TCP |
WWW | HTTP 超文本传输协议 | TCP |
1.4 面试常见问题
TCP 协议与UDP协议有什么区别?
校招后端面试专题系列- 持续更新https://blog.csdn.net/weixin_53800464/article/details/123071002校招后端面试 - 高频面试题https://blog.csdn.net/weixin_53800464/article/details/123126220
标签:协议,UDP,16,TCP,序号,传输层,数据 来源: https://blog.csdn.net/weixin_53800464/article/details/123132649
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。