网络基础:TCP协议UDP协议均属于传输层协议;TCP和UDP协议有何不同?
Posted shouhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络基础:TCP协议UDP协议均属于传输层协议;TCP和UDP协议有何不同?相关的知识,希望对你有一定的参考价值。
传输层
- 传输层的主要工作是定义端口,标识应用程序身份,并将数据包交给对应的应用程序实现端口到端口的通信,并且传输层引入了TCP/UDP协议。
1. 如果有大量数据包、数据包大?时间很长,网络中断,怎么控制重新传输?怎么确保数据包正确完整---传输层
- 传输层封装数据包,通过定义的 TCP、UDP 协议实现按序一个一个发送,保证数据完整正确性;
2. QQ发消息,你必须使用QQ接受消息,才可以正常通信;但是电脑中不是只运行了QQ,还有其他程序,怎么确定由谁来处理消息
- 传输层定义端口的概念-- HTTP-tcp-80端口、https是tcp的443端口?--交给特定应用处理
TCP协议
- TCP (Transmission Control Protocol)传输控制协议,顾名思义,就是要对数据的传输进行一定的控制.
上图为 TCP协议的基本信息
- 源目端口:源端口=本地端口、目的端口=目标主机端口;-----寻找应用的作用
- 序号:TCP 数据包很大的时候,需要分段(比如分为3段),进行三段分开发送;我怎么确认这些碎片的顺序,就会用到序号,到达目的主机时需要进行重组,重组后才可以使用这些数据
- 确认号:答复确认消息---比如微信发红包后不知道对方有没有收到,需要给我反馈。没有收到也是一个反馈,收到了就会收到确认消息
- 标志位:
- ACK=1(灯亮-ACK消息-回应消息)、
- FIN=0(灯不亮):(结束连接的包需要把 FIN 置位 1)
- SYN=1 什么类型的包:发起连接请求的包(sym包)、接受请求的包都需要把 SYN 置位 1,FIN=1(结束连接的包需要把 FIN 置位 1)
客户端 client 和 服务器 server 初始都是关闭状态
客户端茫茫人海中看到了服务器,要服务器进行通信,通信之前需要进行连接,连接之前需要通过三次握手来建立连接
一次握手:
- 客户端要给服务器发起连接,消息内包括:什么类型的消息 SYN=1(亮灯)说明是一个发起连接请求的包请求报文,还会带一个编号是J(seq=j),服务器收到消息(星宝SYN=1),后服务器状态会发生改变Sym_REVD,说明我被客户端给撩了;
二次握手:
- 服务器给客户端回应,回应要发(安可包)ACK=1(亮灯)SYN =1,会把你的确认号带着ack=j+1,和服务器自己的序列号seq=k-------后状态会发生改变Sym_REVD
三次握手:
- 客户端需要回应服务器,我应经收到了你的消息是确认包:ACK=1(确认包)ack=k+1(基于服务器的标识)------已建立链接
三次握手比如:
男生 女生
-------------------> 认识你,交往请求消息
<------------------- 我知道了,我也同意--确认消息
-------------------> 我也知道,开心~~牵手成功! ! ! | 三次挥手建立链接之后,就可以发送数据
=========== 简历链接之后,经过一段时间,需要断开链接
断开连接需要 FIN = 1(译:份包)
- 客户端告诉服务器我们要分手请求:FIN=1,swq=n
- 服务器回应客户端可以:回应包ACK=1,序列号seq=n+1
- 服务器也发给客户端一个分手请求:FIN=1,swq=m
- 客户端回应服务器拜拜就拜拜:回应包 ACK=1,seq=m+1
- 对不起,我不喜欢你了
- 好的,我知道你不喜欢我了
- 你知道了,那分手吧,再见
- 好吧,分手吧,再也不见
---------------------------------------------------------------之后再做修改
UDP协议
- UDP (User Datagram Protocol)用户数据报协议。
- UDP 不需要连接---无连接协议 -- 不可靠的协议
- 目的:速度快 --- 但是有些丢包
- 什么场景:
- 视屏、IP电话、流媒体 --- 不在乎丢包,只要不卡
- 什么协议使用 UDP 连接
- VOIP电话、DNS(域名解析协议)、SNMP(简单网络管理协议)、DHCP(动态分配地址)
TCP vs UDP
tcp 有很正规的握手和挥手的链接过程,所以是面向连接的协议;http 是基于tcp80端口的可靠的应用层协议;tcp 是可靠的 每个包都标了一个记号,这个包丢了还可以进行重传;如果传输数据量比较大时 需要可靠的场景进行传输;速度慢没关系,必须可靠;
udp 是面向非连接的,会丢包,不可靠的;传输量小,但是速度很快;要求速度快,丢包了也无所谓;
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/ 谢谢!!*******
以上是关于网络基础:TCP协议UDP协议均属于传输层协议;TCP和UDP协议有何不同?的主要内容,如果未能解决你的问题,请参考以下文章