一、前语
本系列文章旨在温习核算机网络中心常识,进一步夯实根底,为今后 参与物联网、音视频、直播、即时通讯等范畴的项目做一定的常识储藏。
文章列表:
- 01-核算机网络中心常识|核算机网络通识【核算机网络性能指标、网络协议分层的几种方法、OSI七层模型概念通识】
- 02-核算机网络中心常识|【搭建调试环境、新建Java项目、核算机通讯根底、核算机衔接方法、集线器/网桥/交换机/路由器】
- 03-核算机网络中心常识|【MAC地址、IP地址的组成、IP地址的分类、CIDR、子网掩码、超网】
- 04-核算机网络中心常识|【 静态路由、动态路由、数据包的传输、ISP、服务器机房、网络分类、家用无线路由器、公网IP、
- 05-核算机网络中心常识|物理层/数据链路层【模拟信号&&数字信号、数据链路层】
- 06-核算机网络中心常识|网络层【IP数据包Packet、网络协议、Checksum、源IP地址和方针IP地址、ping】
- 07-核算机网络协议中心常识|【传输层-UDP】
- 08-核算机网络协议中心常识|【传输层-TCP之牢靠传输】
- 09-核算机网络中心常识|传输层TCP2【流量操控原理、拥塞操控:slow start、congestion avoidance、快速重传、快速康复】
- 10-核算机网络协议中心常识|【传输层-TCP衔接】
- 11-核算机网络协议中心常识|【 应用层】
- 12-核算机网络中心常识|【Cookie、Session(概念、生命周期、有效期、浏览器的要求等)、跨域(概念、 同源战略、跨域解决方
- 13-核算机网络协议中心常识|【 代理/CDN/网络安全】
- 14-核算机网络协议中心常识|【(非)对称加密/数字签名/证书】
- 15-核算机网络协议中心常识|【HTTPS】
- 16-核算机网络中心常识|HTTPS协议【HTTP2、HTTP3】
本文主要关注:
传输层有两个协议是每一个程序员必定知道的:UDP
、TCP
。
二、传输层(Transport)
TCP
和UDP
的区别:
1. 衔接性
- TCP是面向衔接
- 也便是说TCP传输有必要先要树立衔接才干通讯,树立衔接便是咱们熟知的“三次握手”。
- TCP在数据传输结束后需求断开衔接,因为服务器会有端口不断的监听本次衔接的状况,如果不断开就会一向占用资源,断开衔接需求“四次挥手”。
- UDP是无衔接,通讯时不需求树立衔接,发送方直接发送数据,不关心接纳方的接纳状况。
2. 牢靠性
- TCP:牢靠传输,不丢包。只需发现丢包就会重新发送,会确保数据是精确的。
- UDP:不牢靠传输,可能丢包。只管发送,不论接纳方的是否接纳到。
3. 首部占用空间
- TCP:因为是树立衔接的牢靠传输,所以首部会比较复杂,占用空间也就会比较大。
- UDP:几乎是无脑传输,所以只需求知道源和方针信息就可以了。相比TCP就会小许多。
4. 传输速率
UDP的特点使得其传输速率比TCP快。
5. 资源耗费
- TCP因为需求树立衔接,所以会比较耗费资源。
- UDP资源耗费就比较小。
6. 应用场景
- 浏览器、文件传输、邮件发送等都需求确保数据的完整性,所以运用TCP比较适宜。
- 音视频通话、直播等对时效性要求较高,所以运用UDP更佳。
- 如果运用TCP就会产生数据紊乱,比如3s前的音/影因为丢包原因在2min后才成功发送到接纳方。
7. 应用层协议
- 浏览器:HTTP、HTTPS
- 文件传输:FTP
- 邮件:SMTP
- DNS
三、UDP
UDP(User Datagram Protocol):用户数据报协议。
UDP是无衔接的,减少了树立和开释衔接的开销。UDP尽最大才能交给,不确保牢靠交给,因此不需求保护一些复杂的参数,首部只要8个字节(TCP的首部至少20个字节)。
1. UDP长度(Length)
占16位,首部的长度 + 数据的长度。
2. 查验和(Checksum)
查验和的核算内容:伪首部 + 首部 + 数据。
伪首部是固定的12字节,由源IP地址(4个字节) + 意图IP地址(4个字节) + 保留位(1个字节,默许是0) + 协议代表值(1个字节,UDP固定值17) + UDP长度(2个字节)
组成。仅在核算查验和时起作用,并不会传递给网络层,意图是为了增强查验功用。
查验和一般有两种,一种是
首部 + 数据
,另一种是只核算首部
。
3. 端口(Port)
UDP首部中端口占用2字节。可以推测出端口号的取值规模是:0 ~ 65535
。
客户端的源端口是暂时开启的随机端口。
防火墙可以设置开启/封闭某些端口来提供安全性。
常用命令行:
-
netstat -an
:检查被占用的端口 -
netstat -anb
:检查被占用的端口,占用端口的应用程序 -
telnet 主机 端口
:检查是否可以拜访主机的某个端口。-
Windows:安装telnet,操控面板 -> 程序 -> 发动或 封闭Windows功用 -> 勾选
Telnet Client
-> 确定。
-