如何理解网络协议?

时间:2011-03-18 13:08:03

标签: http networking tcp

我从事网络开发工作,但我对网络协议没有很好的理解。我记得听到一个类比,TCP,HTTP和SSL可以被认为是围绕实际请求内容的一系列嵌套信封。

我也有一个模糊的想法TCP由数据包组成,在另一端验证。但我有点想象将HTTP请求切换成数据包......

所以基本上,我根本不理解这些东西。 有人可以对此进行详细介绍吗?此外,是否有您推荐的适合初学者的书籍或其他资源?

6 个答案:

答案 0 :(得分:34)

答案 1 :(得分:3)

对于TCP / IP网络的整个描述(没有物理层,例如以太网),请选择Stevens的 TCP / IP Illustrated 。如果您要进行一些低级网络编程,那么同一作者的 Unix网络编程是最好的。

答案 2 :(得分:2)

您经常会听到称为“堆栈”的TCP / IP实现。这个概念的一部分是你有一个低级协议(以太网,PPP,你有什么),在它之上构建稍高级别的协议(IP),等等。它与OSI model非常相似,可以根据该模型进行描述,尽管TCP / IP分层的方式略有不同。无论如何,程序通常使用其中一个上层协议发送数据,让TCP / IP堆栈处理从A点到B点的数据获取的细节。

TCP位于IP之上,让您可以将流入和流出的数据视为一对流(一进一出),而不是获取原始IP数据包并且必须弄清楚如何处理它们。 (大的好处:它简化了多路复用。没有TCP或UDP等,IP几乎无用 - 只有一个程序可以在给定时间与网络通信。)

SSL位于TCP之上,允许您通过TCP提供的流发送数据,而不必涉及加密和解密数据,验证证书等的丑陋细节。

HTTP位于TCP(或SSL,在HTTPS的情况下)之上,并为客户端和服务器提供了传递整个请求和响应的方法,以及描述它们的元数据。

答案 3 :(得分:1)

我们在学校有计算机网络,我们不得不购买this book它确实有帮助。它解释了OSI模型的每一层。 (从internetcabel和路由器到tcp udp protecol层到应用层)。如果你想了解它如何运作的基础知识,那就必须阅读。

答案 4 :(得分:1)

  

是否有适合初学者的书或其他资源   建议?

Behrouz Forouzan的

Data Communications and Networking

这包含介绍材料,解释是初学友好的。与此同时,它并没有让人沮丧,随着你的继续,材料变得更具挑战性。还有非常好的图解释概念。排版很棒,你会有很多关于内容的有趣提示。这些章节是根据OSI堆栈排序的,如其他答案中所述。但是没有解释协议效率公式的许多数学和推导。

Computer Networks by Andrew S. Tanenbaum

Behrouz Forouzan中发现的一切+很多方程式。

我的建议是先阅读第一本书,如果你对数学特别好奇,请转到第二本书。

答案 5 :(得分:0)

网络协议是由规则,过程和格式组成的正式标准和策略,它们定义了网络上两个或多个设备之间的通信。网络协议控制着及时,安全和受管理的数据或网络通信的端到端过程。

网络协议有多种类型,包括:

•网络通信协议:基本数据通信协议,例如TCP / IP和HTTP。

•网络安全协议:通过网络通信实现安全性,包括HTTPS,SSL和SFTP。

•网络管理协议:提供网络管理和维护,并包括SNMP和ICMP。

开放系统互连(OSI)参考模型的不同层是:

  1. 应用程序层::这是OSI参考模型中的最上层。应用层提供了应用程序可以访问网络服务的方式,因此与包括对应用程序的直接支持的服务相关联。

  2. 演示层: OSI参考模型中的这一层用于指定应使用的格式,以使网络数据能够在网络中的计算机之间进行通信。表示层向数据包添加了格式,加密和数据压缩。

  3. 会话层::该层使驻留在不同计算机上的应用程序可以创建和关闭网络会话。它还管理开放的网络连接或打开的会话。

  4. 传输层:传输层负责确保按顺序,无错误且有效地通过网络传输数据。传输层还识别重复的数据包,并丢弃它们。传输层协议包括传输控制协议(TCP)和顺序分组交换(SPX)。这些协议在接收方计算机上打开数据包,并重新组合原始消息。

  5. 网络层: OSI参考模型的这一层为所有网络的消息提供寻址。它将您的逻辑地址和名称转换为物理地址,然后标识从源计算机到目标计算机的首选路由。

  6. 数据链路层:数据链路层通过定义软件驱动程序访问物理介质的方式来为物理连接准备数据。数据链路层将帧从网络层传输到物理层。

  7. 物理层:该层将数据放置在承载数据的物理介质上。它负责网络上正在交换数据的两台计算机之间的实际物理连接。

发送计算机上协议的功能总结如下:

•将数据分段为更易于管理的较小块或数据包。

•附加对数据包的寻址。

•确保已准备好将数据通过网络接口卡(NIC)发送到网络电缆

接收计算机上协议的功能总结如下:

•从网络电缆中删除数据包,然后将数据包通过NIC移动到计算机。

•删除与包发送有关的所有信息。这是发送计算机添加到数据包中的信息。

•将数据包移至缓冲区以进行重组。

•将数据传送到特定的应用程序。

Internet协议:

Internet协议套件是一组通信协议,用于实现运行Internet的协议栈。在TCP \ IP之后,Internet协议套件有时也称为TCP / IP协议套件,它指的是其中的重要协议,传输控制协议(TCP)和Internet协议(IP)。可以通过与OSI模型类似的方式来描述Internet协议套件,但是存在一些差异。同样,并不是所有的图层都对应得很好。

协议栈

协议栈是协议层的完整集合,它们一起工作以提供联网功能。

传输控制协议(TCP)

传输控制协议是Internet协议套件的核心协议。它起源于对Internet协议进行补充的网络实现。因此,整个套件通常称为TCP / IP。 TCP通过IP网络提供可靠的八位字节流交付。排序和错误检查是TCP的主要特征。所有主要的Internet应用程序,例如万维网,电子邮件和文件传输都依赖于TCP。

Internet协议(IP)

Internet协议是Internet协议套件中用于在网络之间中继数据的主要协议。它的路由功能实质上是建立互联网。从历史上看,它是原始传输控制程序中的无连接数据报服务;另一个是面向连接的协议(TCP)。因此,Internet协议套件称为TCP / IP。