首页 > 代码库 > 协议森林

协议森林

互联网的目的是为了实现通信,而通信的基础是有一套行之有效的网络协议。正如我们在交谈的时候需要符合一定的语法和用语规范一样,机器之间的通话也必须符合协议。否则,每一台机器各说各的,永远也无法相互理解。“协议森林”是我已经开始写的一系列关于网络协议的文章,希望能对这个错综复杂的森林进行一个简单的总结。

网络协议是技术,但又关乎设计与历史。Ethernet, IP, UDP, TCP, HTTP, DNS... 这些协议像是一片茂密的树林,盘根错节。协议之间相互关联,有时合作,有时竞争,有时是弱肉强食的替代。了解网络分层,是理解这个森林的第一步。而森林的心脏,是存在了三十多年的TCP/IP套装协议。在变化迅捷的IT领域,TCP/IP坚如磐石的地位可以算是一个奇迹。这一点也是可以理解的。许多单机技术可以很快更新,比如Java和C++兴起,而Pascal语言、Fortran语言快速没落。然而,网络协议的更换并不简单。这要求整个网络的所有设备的配合。网络协议是不老传说,它的相关技术,就非常值得拥有。

网络协议的发展总是伴随着很有趣的历史故事。网络协议的产生都有其历史环境。一些网络协议可能看起来很笨拙,但放在当时,是聪明的解决方案。所以,在了解网络协议的时候,需要了解该协议的诞生过程和设计目的。

 

网络协议可以参考许多经典书籍。“协议森林”忽略了许多细节,并采用比较直白的表达方式。

 

综述

邮差与邮局 (网络协议概观)

 

连接层协议

小喇叭开始广播 (以太网与WiFi协议)

 

网络层协议

IP接力赛 (IP, ARP, RIP和BGP协议)

地址耗尽危机 (IPv4与IPv6地址)

我尽力 (IP协议详解)

瑞士军刀 (ICMP协议)

 

传输层协议

傀儡 (UDP协议)

不放弃 (TCP协议与"流"通信)

爱的传声筒 (TCP连接)

魔鬼细节 (TCP滑窗管理) 

涅槃 (TCP重新发送)

天下为公 (TCP堵塞控制)

 

应用层

9527 (DNS协议)

先生,要点单吗? (HTTP协议)

 

综合

逆袭 (CIDR与NAT)

隧道与VPN

 

参考资料

下面是参考书籍:

豆列

http://book.douban.com/doulist/1626951/

 

有许多资料来源于wikipedia