TCP && UDP (复习)

概念先整清楚

TCP协议和UDP协议与TCP/IP协议的联系

  TCP/IP协议是一个协议簇,里面包括很多协议的,UDP只是其中的一个,之所有命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议 ,所以就用他们命名了

TCP/IP协议簇包括应用层、传输层、网络层、网络访问层

  • 应用层包括:

    • 超文本传输协议 HTTP,万维网的基本协议。
    • 文件传输 TFTP。
    • 远程登录 Telnet,提供远程访问其他主机功能。
    • 网络管理 SNMP 简单网络管理协议,该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等;
    • 域名系统 DNS , 将域名转换成IP地址
  • 传输层包括

    • TCP,面向连接的TCP传输控制协议,列举一些运行在TCP协议上的应用层协议
      • HTTP,主要用于普通浏览。
      • HTTPS , 安全超文本传输协议,HTTP协议的安全版本
      • FTP,文件传输协议,用于文件传输。
      • POP3,邮局协议,收邮件用。
      • SMTP,简单邮件传送协议,用来发送电子邮件
      • TELNET,通过一个终端terminal登录到网络。
      • SSH,用于替代安全性差的TELNET,用于加密安全登录用。
    • UDP,无连接的包传输的UDP用户数据报文协议,列举一些运行在UDP协议上的应用层协议:
      • BOOTP,启动协议,应用于无盘设备
      • NTP,网络时间协议,用于网络同步
      • DHCP,动态主机配置协议,动态配置IP地址
    • DCCP 数据拥塞控制协议
    • SCTP 流控制传输协议
  • 网络层包括

    • Internet协议,IP协议。
    • Internet控制信息协议,ICMP。
    • 地址解析协议,ARP。
    • 反向地址解析协议,RARP。
  • 网络访问层(主机到网络层 , host-to-network)

      TCP/IP四层模式里最后一层对应OSI七层里的数据链路层和物理层,主要功能包括IP地址与物理地址硬件的映射,以及将IP数据报封装成帧。


TCP和UDP区别 (面试常问)

  关于这个问题,我也被问了好几次了,每次都答不完整,在这里好好整理一下,方便查阅。

  • TCP,是面向连接;
  • UDP,是无连接。
  • TCP,点对点全双工通信;
  • UDP,一对一、一对多(广播)、多对一、多对多的交互通信。
  • TCP,面向字节流(把上层即应用层传下来的报文看出字节流,然后组织成大小不等数据块);
  • UDP,面向报文(对报文不合并也不拆分,只添加UDP首部8字节)。
  • TCP,是可靠的(无差错,不丢失,不重复,概括保证数据正确性,且按序到达);
  • UDP,尽最大可能交付的(是不可靠的)。
  • TCP,有拥塞控制、流量控制(下面会说明);
  • UDP,没有拥塞控制,即如果网络出现拥塞,也不会让发送方主机降低发送速率;视频传输(在线视频)、实时通信(QQ聊天)、语言传输(电话),对数据准确性和丢包要求比较低,但速度必须快的。

TCP & UDP 特点

  • 传输控制协议 TCP(Transmission Control Protocol)是面向连接的提供可靠交付有流量控制,拥塞控制提供全双工通信面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。
  • 用户数据报协议 UDP(User Datagram Protocol)是无连接的尽最大可能交付没有拥塞控制面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信

TCP 首部格式

在这里插入图片描述

  • 序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。

  • 确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。

  • 数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。

  • 确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。

  • 同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。

  • 终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。

  • 窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。

UDP 首部格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值