目录
TCP(Transmission Control Protocol)
传输层概述和功能
传输层主要负责提供端到端的数据传输服务。它使用端口号标识不同的应用程序,为应用层提供数据可靠性、流量控制和错误恢复等功能。常用的传输层协议包括 TCP(传输控制协议)和 UDP(用户数据报协议)。
进程间的逻辑通讯
主机端的层次
网络层:校验数据首部,传输层校验数据内容 也就是差错检测了
URL 和URI
URI: /api/login
URL: https ://domain: port/api/login
https ://domain: port/projectName/api/login
端口号划分
服务端
熟知端口号
- 范围:0到1023
- 这些端口号被IANA(互联网数字分配机构)分配给了常见的服务和应用。
- 由于这些端口与特定的服务紧密相关,它们通常需要管理员权限才能在服务器上进行绑定。
-
FTP (File Transfer Protocol)
- 控制(命令)端口:21
- 数据端口:20(用于主动模式的数据传输)
-
TELNET (Teletype Network)
- 端口:23
- 用于远程登录到计算机系统。
-
SMTP (Simple Mail Transfer Protocol)
- 端口:25
- 用于发送电子邮件。
-
DNS (Domain Name System)
- 端口:53
- 用于将域名解析为IP地址。
-
TFTP (Trivial File Transfer Protocol)
- 端口:69
- 简化版的文件传输协议,不提供FTP的许多高级功能。
-
HTTP (Hypertext Transfer Protocol)
- 端口:80
- 用于在Web浏览器和服务器之间传输网页。
-
SNMP (Simple Network Management Protocol)
- 端口:161
- 用于网络管理的协议,允许网络管理员通过IP网络对设备进行管理和监控。
登记端口号 (Registered Ports):
- 范围:1024到49151
- 这些端口不是由IANA分配给特定服务的,但是用于那些不需要熟知端口号的服务。应用程序通常会在这个范围内注册一个端口用于通信。
- 这些端口通常不需要特殊权限就可以绑定,因此它们是用户级别的服务和应用的理想选择。
客户端
动态端口号或私有端口号 (Dynamic or Private Ports):
- 范围:49152到65535
- 这部分端口号通常被客户端用于与服务器的短暂通信。当客户端程序发起到服务器的连接时,会从这个范围内选择一个未使用的端口作为源端口。
- 这些端口不需要预先注册,也通常不会永久绑定到任何服务。
套接字Socket
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字Socket=(主机IP地址,端口号)
UDP(User Datagram Protocol)
1.UDP是无连接的,减少开销和发送数据之前的时延。
2.UDP使用最大努力交付,即不保证可靠交付。
3.UDP是面向报文的,适合一次性传输少量数据的网络应用。
面向报文也就是说他不会对应用层下来的报文进行任何处理 直接加上UDP头部传输给下一层
UDP首部
UDP首部仅包含四个字段,总共8个字节:
- 源端口(Source Port):这是发送方的端口号,用于接收方回复数据。如果不需要回复,该字段可设置为零。
- 目的端口(Destination Port):这是接收方的端口号,指定了数据包应被送达的目标应用程序。
- 长度(Length):这是UDP数据报的长度,包括首部和数据。它的最小值是8字节(仅首部)。
- 校验和(Checksum):用于错误检测的校验和,它包括首部和数据。如果发送方不想进行校验,可以将其设置为零。
UDP伪首部
只负责校验数据 不向上递交, 也不向下传输
虽然UDP本身的首部非常简单,