文章插图
作者 | JunSIr_deCp
责编 | 王晓曼
来源 | CSDN博客
文章插图
TCP/IP协议概述
在TCP/IP协议栈,传输层有两个协议TCP和UDP:
- TCP(Transmission Control Protocol,传输控制协议)协议:负责将要传输的文件分段 进行传输,一般用于建立会话 ,其基本特性是可靠传输 、流量控制,所谓三握手、四挥手也是基于TCP协议的;
- UDP(User Data Protocol,用户数据报协议)协议:一个数据包就能够完成数据通信,数据包不分段 ,不需要建立会话 ,不需要流量控制 ,属于不可靠传输 , 屏幕广播 、多播 、广播都是基于UDP协议 。
文章插图
文章插图
传输层协议的作用体现在应用层协议
TCP和UDP协议内指定不同的端口即可对应一个应用层的协议 。
端口代表主机服务的侦听"门牌号",不管是TCP还是UDP,带上门牌号,它就能帮你找到主机上的对应服务 。
例如我们在浏览器访问某个网站地址,这个动作会被我们本机上的80端口侦听到,并处理你的网络请求 。
我们主机上常见的应用层协议端口:
- HTTP默认使用TCP的80端口标识;
- FTP默认使用TCP的21端口标识;
- SMTP默认使用TCP的25端口标识;
- POP3默认使用TCP的110端口;
- HTTPS默认使用TCP的443端口;
- DNS使用UDP的53端口;
- 远程桌面协议(RDP)默认使用TCP的3389端口;
- Telnet 使用 TCP 的23端口 windows 访问共享资源使用TCP的445端口;
文章插图
如上图,我们会在数据包中添加目标端口号,这样目标主机相关服务侦听到,就能处理我们的请求了 。
文章插图
TCP/UDP传输层协议与网络层协议的区别
- 网络层实现如何把数据包从这个地址(服务器)发送到另一个地址(服务器);
- 传输层实现如何让这个应用程序找到对应计算机的应用程序,即服务 。
文章插图
说白了,IP协议主要让数据能知道传到哪去,不管对应目标谁来负责接待,而TCP/UDP管 。
越靠近顶层应用层、功能越强大 。
文章插图
UDP协议
主要特点:
- UDP 是面向无连接的,即发送数据之前不需要建立连接,如向DNS服务器申请域名解析服务;
- UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制;
- UDP 是面向报文的 。UDP 没有拥塞控制,很适合多媒体通信的要求;
- UDP 支持一对一、一对多、多对一和多对多的交互通信,这也是,应用场景如广播、组播;
- UDP 的首部开销小,只有 8 个字节 。
UDP首部:
首先得知道数据包在OSI模型中层层传输,自顶向下 。
文章插图
来看看UDP首部:
文章插图
- 用户数据报 UDP 有两个字段:数据字段和首部字段 。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节;
- 在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起 。伪首部仅仅是为了计算检验和,伪首部12个字节取自IP数据报的字段;
- 检验和实现UDP数据检验,通过验证检验和可以知道UDP数据包是否出现异常 。
文章插图
TCP协议
基本特点:
- TCP 是面向连接的传输层协议,UDP面向无连接;
- 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一);
- TCP 提供可靠交付的服务(持续交付);
推荐阅读
- Mysql写入频繁,怎么破?这是我见过的最清晰的“神操作”
- 又一个骚操作,查询Windows Defender的白名单路径
- 我最喜欢用的 5 个 Ansible 模块
- 华安解密之DDoS攻防 21 引流回注的成败之谜
- 持续整理PyCharm的一些小用法
- CentOS7下重置root密码的操作步骤
- 淘宝团长是怎么推广的 找淘宝客推广有用吗
- 架构的腐化是必然的
- PS教程:制作霓虹灯字效果,开启斑斓的夜晚
- 如何远程开启你的电脑:WoL的原理和陷阱