浅学计网:TCP、UDP

2023-11-18 17:10:07 浏览数 (1)

二、TCP和UDP

2.1 什么是 TCP/IP 和 UDP

  • TCP/IP:即 传输控制/网络协议,是面向连接的协议,发送数据前要先建立连接(发送方和接收方的成对的两个之间必须建立连接)。 TCP提供可靠的服务,也就是说,通过TCP连接传输的数据不会丢失没有重复,并且按顺序到达
  • UDP:它是属于TCP/IP协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是没有可靠性的协议。 因为不需要建立连接所以可以在在网络上以任何可能的路径传输,因此能否到达目的地,到达目的地的时间 以及 内容的正确性 都是不能被保证的。

2.2 TCP与UDP区别

  • TCP是面向连接的协议,发送数据前要先建立连接,TCP提供可靠的服务,也就是说,通过TCP连接传输的数据不会丢失,没有重复,并且按顺序到达。
  • UDP是无连接的协议,发送数据前不需要建立连接,是没有可靠性。
  • TCP通信 类似于 要打个电话,接通了,确认身份后,才开始进行通行;
  • UDP 通信 类似于 学校广播,靠着广播播报直接进行通信。
  • TCP只支持点对点通信。
  • UDP支持一对一、一对多、多对一、多对多;
  • TCP是面向字节流的。
  • UDP是面向报文的。
  • 面向字节流是指发送数据时以字节为单位,一个数据包可以拆分成若干组进行发送,而UDP一个报文只能一次发完。
  • TCP首部开销(20字节)比UDP首部开销(8字节)要大
  • UDP 的主机不需要维持复杂的连接状态表

2.3 TCP和UDP的应用场景

对某些实时性要求比较高的情况使用UDP,比如游戏,媒体通信,实时直播,即使出现传输错误也可以容忍;

其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失的情况。

2.4 形容一下TCP和UDP

  • TCP通信可看作打电话: 李三(拨了个号码):喂,是王五吗? 王五:哎,您谁啊? 李三:我是李三,我想给你说点事儿, 你现在方便吗? 王五:哦,我现在方便,你说吧。 李三:那我说了啊? 王五:你说吧。 (连接建立了,接下来就是说正事了…)
  • UDP通信可看为学校里的广播: 播音室:喂喂喂!全体操场集合

2.5 运行在TCP 或UDP的应用层协议分析

  • 运行在TCP协议上的协议:
    • HTTP(Hypertext Transfer Protocol,超文本传输协议):主要用于普通浏览。
    • HTTPS(HTTP over SSL,安全超文本传输协议):HTTP协议的安全版本。
    • FTP(File Transfer Protocol,文件传输协议):用于文件传输。
    • POP3(Post Office Protocol, version 3,邮局协议):收邮件用。
    • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):用来发送电子邮件。
    • TELNET(Teletype over the Network,网络电传):远程终端接入,通过一个终端(terminal)登陆到网络。
    • SSH(Secure Shell,用于替代安全性差的TELNET):用于加密安全登陆用。
  • 运行在UDP协议上的协议:
    • BOOTP(Boot Protocol,启动协议):应用于无盘设备。
    • NTP(Network Time Protocol,网络时间协议):用于网络同步。
    • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议):动态配置IP地址。
  • 运行在TCP和UDP协议上的协议:
    • DNS(Domain Name Service,域名服务):用于完成地址查找,邮件转发等工作。
    • ECHO(Echo Protocol,回绕协议):用于查错及测量应答时间(运行在TCP和UDP协议 上)。
    • SNMP(Simple Network Management Protocol,简单网络管理协议):用于网络信息的 收集和网络管理。
    • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议):动态配置IP地址。
    • ARP(Address Resolution Protocol,地址解析协议):用于动态解析以太网硬件的地址。
2.5.1 什么是ARP协议

ARP(Address Resolution Protocol)协议完成了 IP地址与物理地址 的映射

每一个主机都设有一个 ARP 高速缓存,里面有 所在的局域网上 的 各主机 和 路由器 的 IP 地址到物理地址的映射表

当源主机要发送数据包到目的主机时:

  1. 先检查自己的ARP高速缓存中有没有目的主机的MAC地址。 如果有,就直接将数据包发到这 个MAC地址。 如果没有,就向所在的局域网发起一个ARP请求的广播包(在发送自己的 ARP 请求 时,同时会带上自己的 IP 地址到物理地址的映射)。
  2. 收到请求的主机检查自己的IP地址和 目的主机的IP地址 是否一致, 如果一致,则先保存源主机的映射到自己的ARP缓存,然后给源主机发送一个ARP响应数据包。源主机收到响应数据包之后,先添加目的主机的IP地址与MAC地址的映射,再进行数据传送。 如果源主机一直没有收到响应,表示ARP查询失败。

如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的 某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。 剩下的工作就由下一个网络来做。

2.5.2 什么是NAT

NAT (Network Address Translation):网络地址转换。

用于解决内网中的主机要和因特网上的主机通信。

由NAT路由器将主机的本地IP地址转换为全球IP地址,分为静态转换(转换得到的全球IP地址固定不变)和动态NAT转换。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞