TCP/IP 学习心得 Zhan g li 个人认为,学习TCP/IP 是一个长期的过程,需要在工作和应用当中不断地总结,不断地深入,经常回过头来思考一下,会发现很多意想不到的东西。写这篇学习心得,是把自己在前期学习过程中的一些思考方法和思路和大家分享一下,有错误的地方,还希望得到指正。 TCP/IP 是一组不同层次上的多个协议的组合,因此要首先了解它的分层结构是什么样子的,只有了解了它各层次的作用,才能理解TCP/IP 的工作方式。 TCP/IP 模型的分层,从下往上分别是: 1. 链路层:处理电缆的物理接口细节。协议代表:ARP、RARP 2. 网络层:处理分组在网络中的活动。协议代表:IP、ICMP、IGMP 3. 链路层:为两台主机的应用程序提供端到端的通信。协议代表:UDP、TCP 4. 应用层:处理应用程序的细节。协议代表:HTTP、FTP 由于每个层次所承担的任务不一样,各协议的工作的方式不一样,每层封装上层数据的方式也不一样, 协议都是人为规定的,是根据某种需求而制定的,因此学习任何协议之前要了解它存在的意义是什么,协议中的每一种规则是对应于什么样的需求而制定的,把自己置于一个创造者的角度来思考,而非仅仅是一个学习者的眼光来看待这些理论,除此之外,还应关注它在实际应用中所发挥的作用,协议存在的最大价值就在于它有使用价值,关注它不同场合的应用更能够深入理解它的本质。 对于 TCP/IP,我觉得分层次地学习会有比较清晰的一个思路。 链路层 以太网 我们接触得比较多的以太网,要学习它的链路层,首先必须要了解它的工作原理,很多介绍网络原理的书籍都会有比较细致的描述,这部分内容是不可以忽略的。 在以太局域网中,任意两台主机是应该可以相互通信的,就跟在茫茫人海中要寻找一个人一样,它们通信时候也要根据对方的“名字”来寻找对方所处的位置,这个“名字”就是它们各自的mac 地址,而它们需要对哪方面的信息做沟通,就可以附带一个“类型”的标志来告诉对方,根据它的工作方式也就不难能理解以太帧的封装方式了。 例: 常见的以太帧封装: 以太帧头首先是一个48位的目的地址,然后是一个48位的源地址,最后是一个16位的协议类型,这个地方是OX0800,表示它里面封闭的是一个IP数据包。 以太帧的数据段长度范围为 46-1500,若数据报的长度未达 46B,那么链路层会为其填充至 46B 那么为什么要规定以太帧的长度至少要为 46 字节呢,这也是跟它的工作原理有关系的,以太网采用的协调方式 ...