深入理解TCP/IP网络编程:从基础到实践
1. IP主机与IP地址
主机是支持TCP/IP协议的计算机或设备,每台主机由一个32位的IP地址标识。为方便表示,32位IP地址常采用点分十进制表示,如134.121.64.1。主机还有主机名,如dns1.eecs.wsu.edu,实际应用中多使用主机名,可通过DNS服务器实现主机名和IP地址的相互转换。
IP地址分为网络ID(NetworkID)和主机ID(HostID)两部分,据此可将IP地址分为A - E类。例如,B类IP地址的前16位为网络ID(前2位固定为10),后16位为主机ID。发往某IP地址的数据报先被发送到具有相同网络ID的路由器,再由路由器根据主机ID将数据包转发到特定主机。
每台主机都有本地主机名localhost,默认IP地址为127.0.0.1,其链路层是一个环回虚拟设备,可将数据包路由回同一本地主机,这使我们无需连接互联网就能在同一台计算机上运行TCP/IP应用程序。
2. IP协议
IP是用于在IP主机之间发送和接收数据包的协议,采用尽力而为的方式工作。IP主机仅发送数据包,但不保证数据包能按序到达目的地,因此IP不是可靠协议,若需要可靠性,需在IP层之上实现。
3. IP数据包格式
IP数据包由IP头部、发送方和接收方的IP地址以及数据组成,最大大小为64KB。IP头部包含数据包的更多信息,如总长度、是否使用TCP或UDP、生存时间(TTL)计数、用于错误检测的校验和等。