协议森林

简介: 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   互联网是为了通信,通信又依赖于协议。我们交谈时,要符合语法和用语规范。机器之间的通话也要符合协议。

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

互联网是为了通信,通信又依赖于协议。我们交谈时,要符合语法和用语规范。机器之间的通话也要符合协议。否则,鸡同鸭讲,无法相互理解。“协议森林”是我的一系列关于网络协议的文章,总结了多个网络协议。

网络协议属于技术,但深受政策与历史的影响。Ethernet, IP, UDP, TCP, HTTP, DNS... 这些协议形成茂密的树林,盘根错节。协议之间有时合作,有时竞争,有时弱肉强食的取代。了解网络分层,是理解这个森林的第一步。而森林的心脏,是存在了三十多年的TCP/IP套装。在变化迅捷的IT领域,TCP/IP历久弥新。这一点也是可以理解的。毕竟,单机技术可以很快更替,网络协议的更换要难很多。它要求整个网络的所有设备的配合。网络协议能持久,网络协议的知识也不会过时。

网络协议的发展伴随着有趣的故事。协议都产生于特定的历史环境。今天看来,一些网络协议显得笨拙,但在当时的条件下,则是聪明的解决方案。所以,在了解网络协议的时候,需要了解该协议的诞生过程和设计目的。

 

网络协议可以参考许多经典书籍。“协议森林”忽略了许多细节,并采用比较直白的表达方式。读过这一系列文章后,你可以找到参考书籍,继续深入学习。

 

综述

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

 

连接层协议

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

 

网络层协议

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

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

我尽力 (IP协议详解)

瑞士军刀 (ICMP协议)

 

传输层协议

傀儡 (UDP协议)

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

爱的传声筒 (TCP连接)

魔鬼细节 (TCP滑窗管理) 

涅槃 (TCP重新发送)

天下为公 (TCP堵塞控制)

 

应用层

9527 (DNS协议)

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

小美的桌号 (DHCP协议)

我和你的悄悄话 (SSL/TLS协议)

 

综合

逆袭 (CIDR与NAT)

Mac OSX网络诊断命令

 

参考资料

下面是参考书籍:

豆列

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

 

以及其它来自网路的资料。

目录
相关文章
|
2月前
|
JSON 移动开发 网络协议
Java网络编程:Socket通信与HTTP客户端
本文全面讲解Java网络编程,涵盖TCP与UDP协议区别、Socket编程、HTTP客户端开发及实战案例,助你掌握实时通信、文件传输、聊天应用等场景,附性能优化与面试高频问题解析。
|
JavaScript 前端开发 Java
Unicode转义(\uXXXX)的编码和解码
  在涉及Web前端开发时, 有时会遇到\uXXXX格式表示的字符, 其中XXXX是16进制数字的字符串表示形式, 在js中这个叫Unicode转义字符, 和\n \r同属于转义字符. 在其他语言中也有类似的, 可能还有其它变形的格式.
2960 0
|
前端开发 JavaScript Java
计算机java项目|springboot基于spring框架的电影订票系统
计算机java项目|springboot基于spring框架的电影订票系统
197 0
|
容器
flutter GestureDetector 点击空白区域无反应解决办法
flutter GestureDetector 点击空白区域无反应解决办法
290 0
|
消息中间件 Java Kafka
Spring Boot与模板引擎:整合Thymeleaf和FreeMarker,打造现代化Web应用
【8月更文挑战第29天】这段内容介绍了在分布式系统中起到异步通信与解耦作用的消息队列,并详细探讨了三种流行的消息队列产品:RabbitMQ、RocketMQ 和 Kafka。RabbitMQ 是一个基于 AMQP 协议的开源消息队列系统,支持多种消息模型,具有高可靠性及稳定性;RocketMQ 则是由阿里巴巴开源的高性能分布式消息队列,支持事务消息等多种特性;而 Kafka 是 LinkedIn 开源的分布式流处理平台,以其高吞吐量和良好的可扩展性著称。文中还提供了使用这三种消息队列产品的示例代码。
124 0
|
监控 jenkins 测试技术
构建健壮的CI/CD流程:策略与实践
【5月更文挑战第15天】构建健壮的CI/CD流程对于提升开发效率和软件质量至关重要。核心价值包括自动化构建、测试和部署,降低风险,及保证质量。选择适合团队的CI/CD工具,定义清晰阶段和任务,实现自动化,并确保流程的可靠性和稳定性。实践策略包括代码质量检查、全面测试、监控反馈和持续改进。通过这些方法,团队能更专注于核心功能开发,实现高效、高质量的软件交付。
未卸载干净的proteus安装教程7.8
未卸载干净的proteus安装教程7.8
347 0
|
设计模式 前端开发 数据库
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
1197 0
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
|
JSON NoSQL C++
VScode调试C/C++项目调试多个C++程序
VScode调试C/C++项目调试多个C++程序
295 0