文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

小菜学网络之TCP/IP协议栈

2024-12-03 02:07

关注

本文转载自微信公众号「小菜学编程」,作者fasionchan。转载本文请联系小菜学编程公众号。

上一小节,我们学习了 OSI 参考模型,见识到 分层 设计思想在通信系统中的重要作用。那么,现行的通信协议是不是按照 OSI 模型进行分层呢?各层的重要协议都有哪些呢?

目前使用最广泛的通信协议是 TCP/IP 系列协议,但它并不是严格按照 OSI 参考模型设计的。实际上,TCP/IP 早在 OSI 参考模型提出前就开始研发,并逐步发展至今。

TCP/IP 协议栈也是分层设计的,但与 OSI 不同,它只分为 4 层:

网络访问层

网络访问层 ( network access layer )负责管理物理介质,并提供将数据从当前节点传输到下一节点的能力。因此,网络访问层的功能相当于 OSI 中的 物理层 和 数据链路层 。

不同的通信介质,有不同的接入设备,采用的协议也不同,常见的有:

以 以太网卡 为例,它的通信介质是电缆,而通信协议则是 以太网协议 ,协议传输单元是 以太网帧 。

网卡电路直接处理电信号,并完成电信号与比特间的转化。这相当于 OSI 物理层的功能,但网卡不会将物理层功能直接呈现给上层。

实际上,网卡将数据链路层中 网络寻址 和 错误侦测 的功能也一并实现了,向上层提供以太网帧收发能力。系统可以调用网卡驱动发送以太网帧;网卡接到以太网帧后,也通过驱动程序提交给系统来处理。

总而言之,网络访问层以 帧 为通信单元,负责将数据发送到同一网络(局域网)中的另一节点。

网络互连层

网络互连层( internet layer )在网络访问层提供的局域网通信能力之上,实现网际通信能力。该层作用相当于 OSI 模型中的网络层,同样以 包 为通信单元,负责路径选择和数据包转发。

TCP/IP 协议栈中的 IP 协议就是该层最核心的协议,它以 IP 包为通信单元。采用 IP 协议进行通信的主机,需要分配一个地址,这就是 IP 地址。IP 包头部的源地址和目的地址字段,用来标注 IP 包的来源和目的地。

网络互连层利用网络访问层的局域网通信能力,将 IP 包传输到下一节点。经过若干次转发,IP 包最终被送达目标主机。更多细节,我们将在后续章节中揭晓。

传输层

传输层( transport layer )则在网络互连层点到点传输能力基础上,实现端到端的进程间通信。该层相当于 OSI 模型中的传输层,同样以 段 为通信单元,负责根据段中的端口号将数据送至目标进程。

最简单的传输层协议应该是 UDP 协议,它非常简单,只是引入了一个端口号。当一个 UDP 段搭载在 IP 包中送达目标主机后,系统根据段中的端口后,将数据提高给对应的进程。

IP 只是一种尽力而为的传输协议,并不完全可靠:一方面, IP 包在传输的过程中可能经过不同路由,达到目标主机时次序可能会乱;另一方面,中间路由可能因网络拥塞而丢包。

为了保证数据传输的可靠性,协传输层还提供了 TCP 协议。除了端口号,TCP 协议还实现了数据序号、接收确认,以及超时重传机制,从而为进程提供可靠、有序的数据流。

TCP 协议是传输层的核心协议,应用范围也非常广泛,因而是网络学习中的重点。TCP 协议的实现非常复杂,细节将在后续章节展开介绍,现在有个初步认识即可。

应用层

应用层( application layer )定义具体网络应用的通信逻辑,让应用进程间的协作成为可能。

传输层为进程提供了一般化的数据传输能力,但对数据本身未作任何规定。因此,实现应用的多个协作进程,需要一种协议,以对数据达成统一认识。

以 Web 应用举例,浏览器进程作为客户端,必须按照 HTTP 协议的规定,向 Web 服务进程发起请求,才能为服务器所理解;同理,Web 服务器处理请求后,必须按照 HTTP 协议的规定,想客户端回复响应。

HTTP 协议对 Web 应用进程来说,就是它们彼此间交流的共同语言。由于网络应用极为丰富,应用协议种类也不在少数,我们常见的有以下这些:

小结

本节介绍了目前最流行的 TCP/IP 协议栈,它同样采用分层设计思路,与 OSI 分层略有差别,但大同小异。TCP/IP 模型与 OSI 模型的对应关系,以及各层的主要协议,列举如下:

后续我们将以该图为指引,自底向上,逐层深入学习。敬请期待!

来源:小菜学编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯