随笔 - 10  文章 - 0  评论 - 0  阅读 - 2201

计算机网络协议

计算机网络协议

 

传输层主要有两种协议:UDP和TCP

TCP协议

A、特点:

  • 面向连接的协议。数据传输之前都要建立连接(三次挥手),数据传输结束都要释放连接(四次挥手)
  • 一条TCP连接只能有两个端点,端点是socket(结构 IP地址:端口号),并非主机或进程。
  • 可靠交付
  • 全双工通信(一端既可以做发送方也可以做接收方)
  • 面向字节流

B、为何TCP是可靠的呢?

其实TCP是依赖停止 等待协议和连续ARQ 协议+滑动窗口协议才达到可靠的目的

a、等待协议

  • 特点:资源利用率非常低
  • 工作原理:客户发送一次数据到服务端,必须等到服务端响应后才发第二次数据,中间的等待时间RTT占了大部分时间,中间如果出现差错(超时或确认丢失)都需要从新传输。

b、连续ARQ协议

  • 连续ARQ协议工作原理

维持一个发送窗口(记录了当前可以发送的数据包数量n),在窗口内的数据都可以连续发送出去,服务器只在接收完一个发送窗口的数据后才回响应(累计确认),发送端接收到响应就把发送窗口移动n位,开始新一轮数据发送。

 

例如TCP,是用于发大量数据的,我发了1万个包出去,另一台电脑就要告诉我是否接受到了1万个包,如果缺了3个包,就告诉我是第1001,234,8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。

 

TCP传输连接管理

连接的三个阶段:建立连接、数据传输、连接释放

在建立连接的过程中要解决三个问题:

  1. 使每一方都知道对方的存在
  2. 协商一些参数
  3. 能够运输实体资源

主动建立连接的一端叫客户端,被动等待连接建立的一方叫服务器

连接建立(三次握手)

 

连接释放(四次挥手)

第一次挥手:客户端发送连接,FIN=1标志着A已经完成了数据的发送。

第二次挥手:B回了一个确认,此时A与B的发送连接就断开了。

第三次挥手:因为TCP连接是全双工通信的,B还保留着一个对A大发送连接,如果等到B也不需要发送数据给A时,B会发送一个连接给A,seq等于一个大于或等于v的值(因为A与B断开发送连接到B与A断开发送连接期间有可能B向A发送了数据,就是消耗序号)。

第四次挥手:当A收到B的连接时,要回一个响应给B,但是此时会有一个2MSL长的等待时间,时间一过,就真正的断开与B的全部连接了

 

 

 

 

UDP协议

特点:

  • 无连接,传输数据时不需要建立连接,减小开销
  • 尽最大努力交付,不确保可靠交付
  • 面向报文
  • 没有拥塞控制、确保信息实时性
  • 支持一对一,一对多,多对一,多对多
  • 首部开销小,只有8个字节

UDP的首部格式(UDP头):

    • 源端口,发送方的端口
    • 目标端口,接收方的端口
    • 长度,首部长度 + 用户数据包的长度(可以没有数据包,所用最小值为8)
    • 检验和,检查UDP用户数据传输中是否与错,有错就丢弃(检查首部长度 + 用户数据包)

例如UDP,是用于发送少量数据的。我发20个包出去,一般不会丢包,所以,我不管你收到多少个。在多人互动游戏,也经常用UDP协议,因为一般都是简单的信息,而且有广播的需求。如果用TCP,效率就很低,因为它会不停地告诉主机我收到了20个包,或者我收到了18个包,再发我两个!如果同时有1万台计算机都这样做,那么用TCP反而会降低效率,还不如用UDP,主机发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。

 

 

 

 

应用层的HTTP协议

特点:

    • 支持客户端 / 服务器模式
    • 简单快速
    • 灵活
    • 无连接,在完成一次请求获得响应后就会断开
    • 无状态,没有记忆的,请求完一次后,就结束了,后面如果要再获得数据必须从新请求

 

 

HTTP与HTTPS的区别:

    1. HTTPS需要到CA申请证书,HTTP不需要
    2. HTTPS密文传输、HTTP明文传输
    3. 连接方式不同,HTTPS默认使用443端口,HTTP使用80端口
    4. HTTPS = HTTP + 加密+认证+完整性保护,较HTTP安全

 

 

posted on   -s1o2  阅读(357)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示