二、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 地址到物理地址的映射表。
当源主机要发送数据包到目的主机时:
- 先检查自己的ARP高速缓存中有没有目的主机的MAC地址。 如果有,就直接将数据包发到这 个MAC地址。 如果没有,就向所在的局域网发起一个ARP请求的广播包(在发送自己的 ARP 请求 时,同时会带上自己的 IP 地址到物理地址的映射)。
- 收到请求的主机检查自己的IP地址和 目的主机的IP地址 是否一致, 如果一致,则先保存源主机的映射到自己的ARP缓存,然后给源主机发送一个ARP响应数据包。源主机收到响应数据包之后,先添加目的主机的IP地址与MAC地址的映射,再进行数据传送。 如果源主机一直没有收到响应,表示ARP查询失败。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的 某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。 剩下的工作就由下一个网络来做。
2.5.2 什么是NAT
NAT (Network Address Translation):网络地址转换。
用于解决内网中的主机要和因特网上的主机通信。
由NAT路由器将主机的本地IP地址转换为全球IP地址,分为静态转换(转换得到的全球IP地址固定不变)和动态NAT转换。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!