作者:骑马的仓鼠 | 来源:互联网 | 2024-12-25 10:02
本文深入探讨了计算机网络的基础概念和关键协议,帮助初学者掌握网络编程的必备知识。从网络结构到分层模型,再到传输层协议和IP地址分类,文章全面覆盖了网络编程的核心内容。
在计算机网络中,设计之初就确定了其简洁且可靠的特性,能够连接多种类型的计算设备。
一、网络的基本特点
网络中的各个节点同等重要,并且具备冗余路由以确保通信的高可靠性。
二、OSI七层模型与TCP/IP四层模型
理论上,网络分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而在实际应用中,通常使用TCP/IP四层模型:链路层、网络层、传输层和应用层。
1. 链路层负责设备间的数据帧传输(如网卡和交换机),确保设备间的互联互通。
2. 网络层负责主机间的数据包传输(如路由器),确保每个数据包能准确到达目的主机。常用协议包括IP(互联网协议)、ICMP(互联网控制消息协议)和IGMP(互联网组管理协议)。
3. 传输层负责不同主机上进程之间的数据传输。通过Socket套接字实现,常用协议有TCP(传输控制协议)和UDP(用户数据报协议)。
4. 应用层负责应用程序间的通信,例如QQ、微信等。常用协议有FTP(文件传输协议)、TFTP(简单文件传输协议)、Telnet(远程登录)、HTTP(超文本传输协议)。
三、TCP协议详解
TCP是一个工作在传输层的面向连接的网络通信协议,提供可靠的数据传输服务,适用于文件下载、视频流和邮件发送等场景。
特点:
1. 面向连接:每次通信需经历建立、使用和释放连接的过程。
2. 安全可靠但效率较低。
3. 数据包必须得到确认,否则会重传,这是DOS/DDOS攻击的基础。
4. 数据包保持顺序一致。
5. 具备完善的错误检查和重传机制。
6. 每个数据包包含序号和确认序号。
7. 不支持广播和多播。
四、UDP协议详解
UDP是另一个工作在传输层的无连接网络通信协议,适用于实时性要求较高的应用,如在线视频(RTP流媒体服务)、ARP广播、DHCP、NTP和DNS。
特点:
1. 无连接:每次通信无需建立连接。
2. 相对不可靠但效率较高。
3. 不保证数据包的顺序。
4. 缺乏完善的错误检查和重传机制。
5. 支持广播和多播。
五、IP地址分类
根据首几位的二进制值,IP地址可分为A、B、C、D和E类:
A类:0.0.0.1~126.255.255.254,共约16,777,214个地址;首位为0,127.x.x.x用于本地回环。
B类:128.0.0.1~191.255.255.254,共约65,534个地址;前两位为10。
C类:192.0.0.1~223.255.255.254,共约254个地址;前三位为110。
D类:224.0.0.1~239.255.255.254,用于多播。
E类:保留地址。
六、端口与端口号
端口可以理解为计算机的通信窗口,程序通过端口进行通信。TCP/IP协议使用端口号标识通信进程,区分同一系统内的多个进程。每个运行的网络程序都有一个进程号(PID)和至少一个端口号(Port)。端口号范围为0~65535,其中0号端口不能使用,1~1023为已知端口,如FTP-21、HTTP-80、TFTP-69、SSH-22等。
TCP和UDP各自维护独立的端口号,各有65536个端口。
七、字节序
字节序指多字节数据的存储顺序,分为小端格式和大端格式。小端格式将低字节数据存储在低地址,大端格式则相反。个人电脑通常采用小端格式,而网络通信使用大端格式。因此,在异构计算机之间通信时,需要将字节序转换为网络字节序。