网络基础: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
  1. 对不起,我不喜欢你了
  2. 好的,我知道你不喜欢我了
  3. 你知道了,那分手吧,再见
  4. 好吧,分手吧,再也不见

---------------------------------------------------------------之后再做修改

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/   谢谢!!*******

原文地址:https://www.cnblogs.com/shouhu/p/12163238.html

时间: 2024-08-14 21:51:19

网络基础:TCP协议、UDP协议、均属于传输层协议;TCP和UDP协议有何不同?的相关文章

传输层的TCP和UDP协议

作者:HerryLo 原文永久链接: https://github.com/AttemptWeb... TCP/IP协议, 你一定常常听到,其中TCP(Transmission Control Protocol)称为 传输控制协议,IP(Internet Protocol) 称为网际协议. 事实上TCP/IP协议,是一个协议族,是一个协议的集合. TCP/IP协议,定义了一整套规则.它定义整个互联网如何连接,如何通信,如何协商的最基础规则. TCP/IP协议分为五层,分别是应用层.传输层.网络层

传输层:TCP 协议

传输层:TCP 协议 一.概述 TCP 和 UDP 处在同一层——运输层,但是它们有很多的不同.TCP 是 TCP/IP 系列协议中最复杂的部分,它具有以下特点: (1) TCP 提供 可靠的 数据传输服务,TCP 是 面向连接的 .应用程序在使用 TCP 通信之前,先要建立连接,这是一个类似“打电话”的过程,通信结束后还要“挂电话”. (2) TCP 连接是 点对点 的,一条 TCP 连接只能连接两个端点. (3) TCP 提供可靠传输,无差错.不丢失.不重复.按顺序. (4) TCP 提供 

图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用

?图解?TCP/IP? 第六章?TCP与UDP? ?笔记6.1 传输层的作用 ? 传输层必须指出这个具体的程序,为了实现这一功能,使用端口号这样一种识别码.根据端口号,就可以识别在传输层上一层的应用程序所有进行处理的具体程序. ? 6.1.1 传输层定义 6.1.2 通信处理 ? 6.1.3 两种传输层协议 TCP和UDP TCP 是面向连接的.可靠的流协议.流就是指不间断的数据结构,你可以把它想象成排水管道中的水流. UDP 是不具有可靠性的数据包协议 .细微的处理会交给上层的应用去完成.在U

各种常见英特网应用协议的使用情况和传输层三大协议的异同

今天我们总结下常见英特网应用协议的使用情况和传输层三大协议的异同 常见因特网应用协议使用情况 英特网应用 IP ICMP UDP TCP SCTP ping ● traceroute ● ● OSPF(路由协议) ● RIP(路由协议) ● BGP(路由协议) ● BOOTP (引导协议) ● DHCP (引导协议) ● NTP (时间协议) ● TFTP (简单FTP) ● SNMP (网络管理) ● SMTP (电子邮件) ● Telnet (远程登陆) ● SSH(安全的远程登陆) ● F

传输层之TCP

---恢复内容开始--- 坞无尘水槛清,相思迢递隔重城. 秋阴不散霜飞晚,留得枯荷听雨声.    --李商隐 上一篇中我们了解了socket编程是基于TCP或者UDP,所以我们有必要对TCP,和UDP先进行学习.本篇主要学TCP. 1.TCP属于那一层? 传输层 2.TCP的定义 TCP是 可靠的(如何可靠),  面向连接(三次握手和四次释放)  字节流(每个TCP报文都带着若干个字节) 服务: a.先说面向连接   (1)三次握手和四次握手(看图说清楚) http://blog.csdn.ne

TCP怎么保证证包有序传输的,TCP的慢启动,拥塞避免,快速重传,快速恢复

TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作,那么,可能会造成更多的麻烦.如造成数据包的重传.顺序的颠倒甚至造成数据包的丢失. 那么,TCP具体是通过怎样的方式来保证数据的顺序化传输呢? 主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包.接收主机利用序列号对接收的数据进行确认,以便检测

计算机网络 学习笔记-传输层:TCP协议简介

概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面4n字节是根据需要而添加的. 20字节的固定部分: 源端口和目的端口:分别写入源端口号和目的端口号 序号:0-(2^32-1),本报文段数据的第一个字节的序号,用来解决乱序问题 确认序号:期望收到对方下一个报文段的第一个数据字节的序号,用来解决丢包问题 数据偏移:TCP报头长度,包括固定的20字节和

实验:传输层:TCP协议

一.概述 TCP和UDP处在同一层——运输层,但是它们有很多的不同.TCP是TCP/IP系列协议中最复杂的部分,它具有以下特点: (1) TCP提供 可靠的 数据传输服务,TCP是 面向连接的 .应用程序在使用TCP通信之前,先要建立连接,这是一个类似“打电话”的过程,通信结束后还要“挂电话”. (2) TCP连接是 点对点 的,一条TCP连接只能连接两个端点. (3) TCP提供可靠传输,无差错.不丢失.不重复.按顺序. (4) TCP提供 全双工 通信,允许通信双方任何时候都能发送数据,因为

计算机网络-传输层(1)UDP协议

UDP协议基于Internet IP协议,只提供两个基础功能: 分用/复用 分用: 主机接收到IP数据报(datagram),每个数据报携带源IP地址.目的IP地址且携带一个传输层的段(Segment). 每个段携带源端口号和目的端口号,主机收到Segment之后,传输层协议提取IP地址和端口号信息,将Segment导向相应的Socket. 复用: 从多个Socket接收数据,为每块数据封装上头部信息,生成Segment,交给网络层 简单的错误校验 检测UDP段在传输中是否发生错误(如位翻转)