TCP和UDP的区别详细说明(包含大量图片帮助理解)

276 阅读3分钟

运输层TCP和UDP

网络1.PNG

运输层直接为应用进程的逻辑通信提供服务(逻辑通信,是为了方便研究虚拟的)

运输层要识别不同的应用层端口,不同操作系统系统使用不同格式的进程标识符。所以统一使用TCP/IP体系的应用进程进行标识。利用端口号区分应用层的不同应用进程。

端口号 使用16比特表示 0-65535

熟知端口号:0-1023.IANA把这些端口派给TCP/IP体系中最重要的协议,如FTP: 21/20,HTTP:80 HTTPS:443, DNS:53

登录端口号:1024-40151,给没有熟知端口号的应用程序使用,但是必须在IANA登记防止重复。 如Microsoft PDP微软远程桌面使用端口3389

短暂端口号:40152-65535,留给客户进程选择暂时使用。

端口号只具有本地意义,标识本计算机应用层中的各进程,不同计算机端口号没有联系

网络2.PNG

不同的应用选择UDP或者TCP协议进行封装,运输层通过端口号区分不同应用进程。在网络层都需要用IP协议封装成IP数据报(叫做IP复用)IP数据报中首部协议字段的值区别不同的运输层封装的报文,协议字段17是UDP,协议字段6是TCP。

接收方根据端口号的不同交个不同的应用进程

常用端口号

网络3.PNG

web网络请求

网路5.PNG

web服务器记录了网页域名,DNS服务器记录域名对应的端口号

当在页面输入url访问网站时,首先用UDP封装网络请求发送给DNS服务器,拿到该域名的IP地址, 然后通过该IP地址发送给web服务器请求网页内容(用TCP封装)

网络7.PNG

TCP和UDP对比

UDP 可以随时发送数据,所以它是无连接的

TCP 需要三次握手建立连接,四次挥手结束连接,它是面向连接的

UDP:支持单播,多播,广播,就是支持一对一,一对多,一对全

TCP:支持单播,一对一通信

网络4.PNG

UDP 对应用进程的报文既不合并也不拆分,保留报文的边界直接给报文加首部

TCP 把应用层传下来的报文看作一个无结构的字节流,并提取部分字节流加首部发送,接收方最 后把收到的字节流还原成有意义的数据

捕获6.PNG

UDP 是不可靠的传输,会发生丢失和误码情况,出现了直接丢弃不做处理,但是速度快,可以做实时传输应用

TCP 是可靠传输,不会出现误码、丢失等情况,但是速度慢。

网络8.PNG

UDP 只添加了区分应用进程的端口,所以首部比较简单,8个字节

TCP 要实现可靠传输、流量控制、拥塞控制等服务,所以体积比较,20字节

总结

网络9.PNG