(读书笔记)第2章 TCP-IP的工作方式
第2章 TCP-IP的工作方式
TCP/IP协议系统
为了实现TCP的功能,TCP/IP的创建者使用了模块化的设计。TCP/IP协议系统被分为不同的组件,每个组件分别负责通信过程的一个步骤。这种模块化的好处在于让厂商方便地根据特定硬件和操作系统对协议软件进行修改。这样厂商在使用光纤网络时就不必重新构建一个全新的TCP/IP,只要修改其中的某一层就好。
TCP/IP模型
graph TD
应用层-->传输层
传输层-->网际层
网际层-->网络访问层
- 网络访问层:提供了与物理网络连接的接口。针对传输介质设置数据的格式,根据硬件的物理地址实现数据的寻址,对数据在物理网络中的传递提供错误控制
- 网际层:提供独立于硬件的逻辑寻址,从而让数据能够在具有不同物理结构的子网之间传递。提供路由功能来降低流量,支持网间的数据传递(网间是指多个局域网互相连接而形成的较大网络,比如大公司里的网络或Internet)。实现物理地址与逻辑地址的转换。
- 传输层:为网络提供了流量控制、错误控制和确认服务。充当网络应用程序的接口
- 应用层:为网络排错、文件传输、远程控制和Internet操作提供了应用程序,还支持api,从而使得针对特定操作系统编写的程序能够访问网络
当TCP/IP协议软件准备通过网络传递数据时,发送端计算机上的每一层协议都在数据上添加层信息,对应于接收端计算机上相应的层。例如:发送端计算机的网际层会向数据添加报头信息,这个过程有时也被称为封装。在接收端,当数据在协议栈里传递时,这些报头信息被逐步去除。
OSI模型
出现缘由:网络业界针对网络协议体系有一个标准的七层模型,称为“开放系统互连(OSI)”模型,这是ISO(国际标准化组织)为了标准化网络协议系统所做出的规范,目的在于提高网络互联性,并且方便软件开发人员以一种开放的方式来使用协议标准。
OSI把网络访问层的功能划分为数据链路层和物理层,将应用层划分为应用层、表示层、会话层。
graph TD
应用层-->表示层
表示层-->会话层
会话层-->传输层
传输层-->网络层
网络层-->数据链路层
数据链路层-->物理层
各层级的具体作用:
- 物理层: 把数据转换为传输介质上的电子流或模拟脉冲,并且监视数据的传输
- 数据链路层:提供与网络适配器相连的接口,维护子网的逻辑链接
- 网络层:支持逻辑寻址与路由选择
- 传输层:为网络提供错误控制和数据流控制
- 会话层:在计算机的通信应用程序之间建立会话
- 表示层:把数据转换为标准格式,管理数据加密与压缩。
- 应用层:为应用程序提供网络接口,支持文件传输、通信等功能的网络应用
数据包
在数据发送过程中,其流程是从堆栈的上到下,每一层都把相关信息(称为报头)捆绑到实际的数据上。包含报头信息和数据的数据包就作为下一层的数据,再次被添加报头信息和重新打包。接受过程是恰恰相反的,在数据从下到上经过协议栈的过程中,每一层都解开相应的报头,比如:接收端计算机上的网际层会使用网际层的头信息,传输层会使用传输层的报头信息。
数据包在每一层具有不同的形式和名称。
- 在应用层生成的数据包称为消息。
- 在传输层生成的数据包封装了应用层的消息,如果它来自于传输层的TCP协议,就称为分段;如果来自于传输层的UDP协议,就被称为数据报
- 网际层的数据包封装了传输层的片段,被称为数据报
- 网络访问层的数据包封装了数据报,被称为帧。帧被访问层的最低子层转化为比特流
基本的TCP/IP协议联网系统
- 数据从工作于应用层的协议、网络服务或应用编程接口通过TCP或UDP端口传递到两个传输层协议(TCP或UDP)中的一个。程序可以根据需要通过TCP或UDP访问网络
- TCP是面向连接的协议。面向连接的协议提供更复杂的流量控制和错误控制。TCP能够确保数据的发送质量,比UDP更可靠,但由于需要进行额外的错误检测和流量控制,因此比UDP的速度慢
- UDP是个无连接的协议,比TCP快,但是不可靠,它把错误控制的责任推给了应用。
- 数据分段传递到网际层,IP协议在此提供逻辑寻址信息,并且把数据封装为数据报。
- IP数据报进入网络访问层,传递到与物理网络相连接的软件组件。网络访问层创建一个或多个数据帧,从而进去物理网络。在像以太网这样的局域网系统中,帧可能包含获得的物理地址信息。而这些是由网际层的ARP维护
- 数据帧被转化为比特流,通过网络介质进行传输
(读书笔记)第2章 TCP-IP的工作方式的更多相关文章
- TCP/IP解析(一):TCP/IP的工作方式
本文包括下面内容: 1.TCP/IP协议系统 2.OSI模型 3.数据包 4.TCP/IP的交互方式 1.TCP/IP模型的协议层 分为四层: 网络訪问层:提供与物理网络连接的接口.依据硬件的物理地址 ...
- 《Linux内核设计与实现》读书笔记——第一二章
<Linux内核设计与实现>读书笔记——第一二章 第一章 Linux内核简介 1.1 Unix的历史 简洁:仅提供系统调用并有一个非常明确的设计目的. 抽象:Unix中绝大部分东西都被当做 ...
- 第6章 TCP/IP路由协议故障处理
第6章 TCP/IP路由协议故障处理 一.缺省网关 当包的目的地址不在路由器的路由表中,如路由器配置了缺省网关,则转发到缺省网关,否则就丢弃. Show ip route :查看Cisco路由器的缺省 ...
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...
- 《Linux内核设计与分析》第六周读书笔记——第三章
<Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...
- 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
- 《深入分析Java Web技术内幕》读书笔记 - 第1章 深入Web请求过程
第1章 深入Web请求过程 1 1.1 B/S网络架构概述 2 基于统一的应用层协议HTTP来交互数据. 1.2 如何发起一个请求 4 HTTP连接本质是建立Socket连接.请求实现方式:工具包如H ...
- 《LINUX内核设计与实现》第三周读书笔记——第一二章
<Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...
- 《Linux内核设计与实现》第四周读书笔记——第五章
<Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...
随机推荐
- 才一年,H5的发展就成这样了......
关于H5的发展,分享几个最近看到的惊人数据和新闻: 1.截至2015,有80%的App将全部或部分基于HTML5.这意味着大部分App的内容都将是以网页的形式呈现,典型的例子包括微信.Facebook ...
- jackson - 生成jason工具-简单示例
主页: http://jackson.codehaus.org/ https://github.com/FasterXML/jackson 当前jackson分为三部分,需要分别下载: jackson ...
- Android项目实战(二十九):酒店预定日期选择
先看需求效果图: 几个需求点: 1.显示当月以及下个月的日历 (可自行拓展更多月份) 2.首次点击选择"开始日期",再次点击选择"结束日期" (1).如果&qu ...
- 一篇完整的FlexBox布局指南
一篇完整的FlexBox布局指南 转载请标注本文链接并附带以下信息: 译:Cydiacen 作者:CHRIS COYIER 原文:A Complete Guide to Flexbox 原文更新于 2 ...
- 美丽的Java图表类库
摘要 在使用java做后台站点的开发张,图表和报表功能都是不可或缺 的.本文推荐了8款最精彩实用的Java图表应用,大部分图表应用的功能都类似,主要在于界面的美观性和使用的灵活性上有一点高低. 正文 ...
- 如何:使用 Visual Basic 编写基于 Unity3D 的计算器
随着 .NET 全平台战略的推进,微软正在让以 C# 为先锋的 .NET 拥有跨平台特性.这个过程中一直有人想知道其它 .NET 语言对跨平台的支持有什么改进,熟悉 C# 但是喜欢用 VB 的我也不例 ...
- ArcGIS API for JavaScript 4.2学习笔记[1] 显示地图
ArcGIS API for JavaScript 4.2直接从官网的Sample中学习,API Reference也是从官网翻译理解过来,鉴于网上截稿前还没有人发布过4.2的学习笔记,我就试试吧. ...
- 基于ssh反向代理实现的远程协助
本文描述了怎么通过ssh反向代理实现远程协助,并提供了相关代码. 可满足web开启远程协助功能后,维护人员能够通过ssh和http登录客户机器(包括在nat环境下) web开启该功能后,ssh才能登录 ...
- Xshell利用登录脚本从服务器登录到另外一个服务器
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- Vue.js 系列教程 ①
原文:intro-to-vue-1-rendering-directives-events 译者:nzbin 如果要我用一句话描述使用 Vue 的经历,我可能会说“它如此合乎常理”或者“它提供给我需要 ...