尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
计算机网络学习(二) — TCP_IP模型分层
计算机网络学习二 — TCP_IP模型分层一、TCP/IP与OSI参考模型TCP/IP与OSI在分层模块上稍有区别最主要的区别就是TCP/IP将OSI七层模型中的会话层、表示层、应用层全部整合为应用层进行处理。1.1 物理层与数据链路层物理层与数据链路层的实现是通过具体网卡与设备的驱动程序和网络接口进行实现的。1.2 网络层TCP/IP中的网络层包括IP、ARP、ICMP协议。IPIP是跨越网络传送数据包使整个互联网都能收到数据的协议。IP协议使数据能够发送到地球的另一端这期间它使用IP地址作为主机的标识。IP还隐含着数据链路层的功能。通过IP相互通信的主机之间不论经过怎样的底层数据链路都能够实现通信。虽然IP也是分组交换的一种协议但是它不具有重发机制。即使分组数据包未能到达对端主机也不会重发。因此属于非可靠性传输协议。ICMPIP数据包在发送途中一旦发生异常导致无法到达对端目标地址时需要给发送端发送一个发生异常的通知。ICMP就是为这一功能而制定的。它有时也被用来诊断网络的健康状况。ARP从分组数据包的IP地址中解析出物理地址MAC地址的一种协议。1.3 传输层传输层最主要的功能就是能够让应用程序之间实现通信。计算机内部通常同一时间运行着多个程序。为此必须分清是哪些程序与哪些程序在进行通信。识别这些应用程序的是端口号。TCPTCP是一种面向连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。TCP协议中定义了各种各样复杂的规范因此不利于视频会议音频、视频的数据量既定等场合使用。UDPUDP有别于TCP它是一种面向无连接的传输层协议。UDP不会关注对端是否真的收到了传送过去的数据如果需要检查对端是否收到分组数据包或者对端是否连接到网络则需要在应用程序中实现。UDP常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。1.4 应用层TCP/IP的分层中将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现。这些功能有时由一个单一的程序实现有时也可能会由多个程序实现。TCP/IP应用的架构绝大多数属于客户端/服务端模型C/S模型。提供服务的程序叫服务端接受服务的程序叫客户端。浏览器与服务端之间通信所用的协议是HTTPHyperText Transfer Protocol。所传输数据的主要格式是HTMLHyperText Markup Language。WWW中的HTTP属于OSI应用层的协议而HTML属于表示层的协议。发送电子邮件时用到的协议叫做SMTPSimple Mail Tranfer Protocol。文件传输是将保存在其他计算机硬盘上的文件转移到本地的硬盘上或将本地硬盘的文件传送到其他机器硬盘上,使用的协议叫做FTPFile Transfer Prototol。在FTP中进行文件传输时会建立两个TCP连接分别是发出传输请求时所要用到的控制连接与实际传输数据时所要用到的数据连接。远程登录是指登录到远程的计算机上使那台计算机上的程序得以运行的一种功能。TCP/IP网络中远程登录常用TELNETTELetypewriter NETwork和SSHSSH是Secure SHell两种协议。在TCP/IP中进行网络管理时采用SNMPSimple Network Management Protocol。二、TCP/IP通信过程在TCP/IP的每个分层中都会对所发送的数据增加一个首部该首部中包含该层的必要信息比如发送的目的地址和相关协议等通常为协议提供的信息为包首部要发送的内容为数据从下一层看上一层的收到的包被看作是本层的数据。2.1 发送数据包假设A对B通过TCP/IP发送一封邮件内容为“早上好”。2.1.1 应用层启动应用程序新建邮件将收件人邮箱填好再由键盘输入邮件内容点击“发送”按钮就可以开始TCP/IP的通信了。首先应用层中会进行编码处理。比如UTF-8或者GB2312等字符编码。应用在发送邮件的那一刻建立TCP连接从而利用这个TCP连接发送数据。它的过程首先是将应用的数据发送给下一层的TCP再做实际的转发处理。2.1.2 传输层TCP根据应用的指示负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。TCP在应用层数据的前端附加一个TCP首部。TCP首部中包括源端口号和目标端口号用以识别发送主机跟接收主机上的应用、序号用以发送的包中哪部分是数据以及校验和Check Sum用来检验数据的读取是否正常进行,以判断数据是否被损坏。随后将附加了TCP首部的包再发送给网络层。2.1.3 网络层IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据并在TCP首部的前端在加上自己的IP首部。IP首部中包含接收端IP地址以及发送端IP地址。紧随IP首部的还有用来判断其后面数据是TCP还是UDP的信息。IP包生成后参考路由控制表决定接受此IP包的路由或主机。随后IP包将被发送给连接这些路由器或主机网络接口的驱动程序以实现真正发送数据。如果尚不知道接收端的MAC地址可以利用ARPAddress Resolution Protocol查找。只要知道了对端的MAC地址就可以将MAC地址和IP地址交给以太网的驱动程序实现数据传输。2.1.4 数据链路层与物理层从IP传过来的IP包对于以太网驱动来说不过就是数据。给这数据附加上以太网首部并进行发送处理。以太网首部中包含接收端MAC地址、发送端MAC地址以及标志以太网类型的以太网数据的协议。根据上述信息产生的以太网数据包将通过物理层传输给接收端。发送处理中的FCSFrame Check Sequence由硬件计算添加到包的最后。设置FCS的目的是为了判断数据包是否由于噪声而被破坏。2.2 接收数据包包的接收流程是发送流程的逆序过程。2.2.1 数据链路层与物理层主机收到以太网包以后首先从以太网的包首部找到MAC地址判断是否为发给自己的包。如果不是发给自己的包则丢弃数据。而如果接收到了恰好是发给自己的包就查找以太网包首部中的类型域从而确定以太网协议所传送过来的数据类型。如果以太网包首部的类型域包含了一个无法识别的协议类型则丢弃数据。2.1.2 网络层IP模块收到IP包首部及后面的数据部分以后也做类似的处理。如果判断得出包首部中的IP地址与自己的IP地址匹配则可接收数据并从中查找上一层的协议。如果上一层是TCP就将IP包首部之后的部分传给TCP处理如果是UDP则将IP包首部后面的部分传给UDP处理。对于有路由器的情况下接收端地址往往不是自己的地址此时需要借助路由控制表在调查应该送达的主机或路由器以后再转发数据。2.1.3 传输层在TCP模块中首先会计算一下校验和判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号确定具体的应用程序。数据接收完毕后接收端则发送一个“确认回执”给发送端。如果这个回执信息未能达到发送端那么发送端会认为接收端没有接收到数据而一直反复发送。数据被完整地接收以后会传给由端口号识别的应用程序。2.1.4 应用层接收端应用程序会直接接收发送端发送的数据。通过解析数据可以获知邮件的收件人地址是乙的地址。如果主机B上没有乙的邮件信箱那么主机B返回给发送端一个“无此收件地址”的报错信息。若主机B上恰好有乙的收件箱则主机B和收件人乙能够收到电子邮件的正文。邮件会被保存到本机的硬盘上。如果保存也能正常进行那么接收端会返回一个“处理正常”的回执给发送端。反之一旦出现磁盘满、邮件未能成功保存等问题就会发送一个“处理异常”的回执给发送端。由此用户乙就可以利用主机B上的邮件客户端接收并阅读由主机A上的用户甲所发送过来的电子邮件——“早上好”。
RELATED

相关推荐

ms office excel2013教程 - 自动填充

ms office excel2013教程 - 自动填充

自动填充 知识点导航: 左键下拉填充右键下拉填充等差数列等比数列自定义序列长文本序列填充 1. 左键下拉填充2. 右键下拉填充3. 等差数列 列出1 - 1000所有的奇数同理可列出1 - 1000所有的偶数。 4. 等比数列 列出 3 - 3^20 所有的等比数列5. 自定义序列6. 长文本序…

📅 2026/8/25 18:09:27
三栏式布局详解(代码+图解)

三栏式布局详解(代码+图解)

三栏式布局 三栏式布局就是两边固定,中间自适应。 三栏式布局实现方法有很多,包括: 流体布局BFC三栏布局双飞翼布局圣杯布局Flex布局Table布局绝对定位布局网格布局 流体布局左侧向左浮动、右侧向右浮动,最后渲染中间实现&#xf…

📅 2026/7/31 3:34:31
TI bq2408x线性充电器评估与设计实践:从原理到热管理

TI bq2408x线性充电器评估与设计实践:从原理到热管理

1. 项目概述:为什么我们需要关注线性充电管理?在开发任何一款便携式设备时,无论是智能手表、蓝牙耳机还是手持医疗设备,电池管理系统的设计总是绕不开的核心难题。它直接决定了产品的续航、安全性和用户体验。而在这个系统中&…

📅 2026/9/19 5:41:30
MORE NEWS

更多资讯

📰

AzureML Designer 集成推荐系统模块:将 Recommenders 算法封装为可视化画布组件

人工智能机器学习深度学习 【免费下载链接】recommenders Best Practices on Recommendation Systems 项目地址: https://gitcode.com/gh_mirrors/re/recommenders 点击查看 免费下载 本篇指南以 contrib/azureml_designer_modules 目录下的 README 与配套实现为核…

📰

Apollo Client ErrorLink 完全指南:基于 `@apollo/client/link/error` 的 GraphQL 错误处理实战

Apollo Client ErrorLink 完全指南:基于 apollo/client/link/error 的 GraphQL 错误处理实战 【免费下载链接】apollo-client The industry-leading GraphQL client for TypeScript, JavaScript, React, Vue, Angular, and more. Apollo Client delivers powerful c…

📰

ComfyUI 工作流模板全解析:20 类 50 个预配置工作流,3 步跑通第一次出图

ComfyUI 工作流模板全解析:20 类 50 个预配置工作流,3 步跑通第一次出图 【免费下载链接】ComfyUI-Workflows-ZHO 我的 ComfyUI 工作流合集 | My ComfyUI workflows collection 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-Workflows-Z…

📰

Claude Code 的 CLAUDE.md 共识协议不生效?TaoToken 这样改模型通道再查加载层级

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Umi-OCR 入门指南:免费离线 OCR,3 步让截图与扫描文件变成可搜索文字

Umi-OCR 入门指南:免费离线 OCR,3 步让截图与扫描文件变成可搜索文字 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描…

📰

Vision-Agents 实时视频风格迁移拆解指南

Vision-Agents 实时视频风格迁移拆解指南 【免费下载链接】Vision-Agents Open Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency. 项目地址: https://gitcode.com/GitH…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬