[网络编程]网络编程基础

一.记住几个接口

二.几个基本的协议

1. 应用层(Application Layer)

这一层直接面向用户的网络服务,协议定义了数据交互的格式和规则。

  • HTTP(超文本传输协议)用于浏览器和 Web 服务器之间传输超文本(如 HTML),默认端口 80。它是无状态的,现在常用的 HTTPS 是其加密版本,端口 443。

  • FTP(文件传输协议)用于在客户端和服务器之间传输文件,使用 21 端口控制连接,20 端口数据连接,支持上传和下载。

  • SMTP(简单邮件传输协议)负责发送电子邮件,默认端口 25,只处理邮件发送,不负责接收。

  • POP3(邮局协议版本 3)用于从邮件服务器下载邮件到本地客户端,默认端口 110,下载后服务器通常会删除原邮件。

  • DNS (域名系统)将域名(如 www.baidu.com)解析为 IP 地址,默认端口 53,使用 UDP 进行快速查询,若响应过大则会回退到 TCP。

  • TFTP(简单文件传输协议)轻量级文件传输协议,基于 UDP,默认端口 69,无需认证,适合小文件传输,常用于网络设备固件升级。

  • SNMP(简单网络管理协议)用于管理和监控网络设备(如路由器、交换机),默认端口 161,通过读取设备的 MIB(管理信息库)获取状态信息。


2. 传输层(Transport Layer)

负责端到端的数据传输,提供可靠或不可靠的传输服务。

2.2.1 TCP(传输控制协议)

  • 三次握手建立连接

四次握手释放连接

  • 面向连接、可靠的字节流协议,通过三次握手建立连接,四次挥手释放连接,提供确认、重传、流量控制和拥塞控制。适合对数据完整性要求高的场景(如 HTTP、FTP、SMTP)

2.2.2UDP(用户数据报协议)

  • 无连接、不可靠的数据包协议,传输速度快,不保证数据到达顺序或完整性。适合实时性要求高的场景(如 DNS、TFTP、视频通话)。

2.2.3TCP和UDP的区别


3. 网络层(Network Layer)

负责在不同网络之间路由数据包,主要处理 IP 地址和路由选择。

  • IP(互联网协议)网络层核心协议,定义了 IP 地址格式,负责将数据包从源主机路由到目标主机,但不保证传输可靠性。

  • ICMP (互联网控制报文协议)用于诊断网络问题,传递错误和控制信息。例如 ping 命令就是基于 ICMP 来测试网络连通性的。

  • IGMP(互联网组管理协议)用于管理多播组,让路由器知道哪些主机在接收某个多播组的流量。

  • ARP(地址解析协议)将 IP 地址解析为 MAC 地址,让数据链路层能够在局域网内找到目标设备。

  • RARP(反向地址解析协议)将 MAC 地址解析为 IP 地址,早期无盘工作站通过它获取 IP,现在基本被 DHCP 取代。


协议间的依赖关系

  • 应用层协议依赖传输层:
    • HTTP、FTP、SMTP → 基于 TCP(可靠传输)
    • DNS、TFTP → 基于 UDP(快速传输)
  • 传输层依赖网络层:
    • TCP 和 UDP 都依赖 IP 来传输数据包,IP 依赖 ARP 来获取链路层的 MAC 地址。

三.网络编程基础

3.1表示IP地址

注意: InetAddress的构造器不是public的,无法从外部new对象

3.2获取本地IP地址

3.3DNS解析域名的IP地址

3.4Socket

3.4.2Socket在TCP网络编程的作用

相关推荐
库玛西1 小时前
深入浅出传输层:UDP 与 TCP 协议全景指南
linux·服务器·网络·c++·笔记·tcp/ip·udp
STQY燊桐启元(深圳)电子科技10 小时前
医疗精密电源散热方案:相变陶瓷片保障医疗设备长效稳定低干扰
大数据·网络·人工智能
CDN36012 小时前
节点智能调度实操:解决出海区域访问快慢不均、节点拥堵、跨洋延迟高,CDN 全网择优落地方案
运维·服务器·网络
roman_日积跬步-终至千里13 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
可乐鸡翅yeah_15 小时前
个人 / 外包流媒体项目交付实战,M3U8 验收与问题闭环完整工作流
运维·网络·python·低代码·django·m3u8·在线播放
黄俊懿16 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密
网络·数据库·计算机网络·安全·架构·系统架构·架构师
Patrick在香港16 小时前
Python 拉取城巴开放数据:406 条路线,香港岛巴士网络的数字画像
网络·python·数据分析·php·数据可视化·香港·开放数据
一直C17 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
Experience-摆渡17 小时前
自建 IP 轮换方案实战:健康探测 + 熔断剔除 + 粘性会话
网络·网络协议·tcp/ip
luj_176817 小时前
合法避税与投资评估实战指南
c语言·开发语言·网络·经验分享·算法