《TCP/IP详解卷一》此书在学校期间就已经读过,当时还是花了一定的精力和时间去读的。前段时间在看有关LVS方面的资料,其中涉及网络方面的知识,这让我发现自己关于TCP/IP方面的细节知识已经有点模糊。于是决定再重新仔细的阅读《TCP/IP详解卷一》这边经典书籍,顺便做个笔记记录,方便以后查阅。
分层
有别于OSI七层模型,TCP/IP协议族分为四层:
- 应用层:处理应用程序细节,例如:Telnet远程登录、FTP文件传输协议、HTTP协议等。信息单元称之为数据(data)
- 传输层:主要负责提供端对端通信,主要有两个不通的传输协议:TCP(传输控制协议)、UDP(用户数据报协议)。信息单元称之为段(segment)
- 网络层:负责处理分组在网络的活动,即路由寻址。网络层协议包括:IP协议、ICMP协议和IGMP协议。信息单元称之为包/分组(Packet)
- 链路层:主要包括设备驱动及网络设备接口,链路层协议:以太网、令牌环网、FDDI等。信息单元称之为帧(frame)
IP地址
IPv4地址长32bit,分成5类
- A类地址:0.0.0.~127.255.255.255,0-网络号(7位)-主机号(24位)
- B类地址:128.0.0.0~192.255.255.255,10-网络号(14位)-主机号(16位)
- C类地址:192.0.0.0~223.255.255.255,110-网络号(21位)-主机号(8位)
- D类地址:224.0.0.0~239.255.255.255,1110-多播组号(28位)
- E类地址:240.0.0.0~255.255.255.255,11110-保留(27位)
保留地址(私有地址):
- 127.0.0.0/8
- 10.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12~172.31.0.0/12
- 192.168.0.0/16
- E类地址(用于实验)
封装
数据从应用层——>传输层——>网络层——>链路层
逐层传递时,每层都会对收到的数据添加首部信息/尾部信息
- 应用层:用户数据
- 传输层:用户数据+TCP首部 此数据单元(以TCP为例)称为——TCP报文(TCP segment)
- 网络层:用户数据+TCP首部+IP首部 此数据单元称为——分组(packet)
- 链路层:以太网尾部+应用数据+TCP首部+IP首部+以太网首部 此数据单元称为——帧(frame),由于以太网物理性质限制
46B< 应用数据+TCP首部+IP首部< 1500B
端口号
- 1~1023 知名服务端口(
/etc/services
查看常用熟知端口) - 1024~65535 随机端口(之所以最大端口号为65535是因为TCP/UDP头部采用
16bit
来标识端口,故最大为2^16
)